Code Monkey home page Code Monkey logo

gse-sound-output-device-chooser's Introduction

Gnome Shell Extension - Sound Input & Output Device Chooser

A simple selector to enabled selection of sound source and sink based on Gnome Control Center

Dependency

Python 2 or 3. New version needs Python as optional dependency. Use option to turn off new profile identification logic, if Python is to be avoided. But the old logic has language dependency and works only with English display language

Installation Instructions

The official method to install this extension is from extensions.gnome.org.

To install the extension from source, clone the repository and place it in the $HOME/.local/share/gnome-shell/extensions directory

cd ~/.local/share/gnome-shell/extensions/

# Remove older version
rm -rf *sound-output-device-chooser*

# Clone current version
git clone https://github.com/kgshank/gse-sound-output-device-chooser.git

# Install it
cp -r gse-sound-output-device-chooser/[email protected] .
rm -rf "gse-sound-output-device-chooser"

Enable the extensions from GNOME Extensions App.

Gnome shell versions compatible

Notes:

  • May conflict with extensions which modify volume menu.
  • Extension works with Volume Mixer extension. Restart shell, if errors encountered.

gse-sound-output-device-chooser's People

Contributors

acabal avatar broo2s avatar bshener avatar claudiosanches avatar devbranch-vadym avatar devdef avatar eliandoran avatar fabiomt avatar goodwillcoding avatar harlemsquirrel avatar jose1711 avatar kgshank avatar kylegalloway avatar lev741 avatar mazhoon avatar mdmower avatar mjkim0727 avatar mmalafaia avatar morganantonsson avatar nhedger avatar pkomur avatar shemgp avatar shinenelson avatar sioma112233 avatar terencode avatar thesmallcreeper avatar tjikkun avatar tristantarrant avatar vistaus avatar vombato avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gse-sound-output-device-chooser's Issues

Update for Gnome 3.24?

Would be nice to have support for Gnome 3.24 now that Fedora 26 is out with this version

Kills Shell 3.30.2

I use Fedora 29. If I use this extension, I cannot log in; gnome shell crashes.

Process 2672 (gnome-shell) of user 1000 dumped core.

Stack trace of thread 2672:
#0  0x00007efe941fae0f raise (libpthread.so.0)
#1  0x0000557aca773253 n/a (gnome-shell)
#2  0x00007efe941faf70 __restore_rt (libpthread.so.0)
#3  0x00007efe9405853f raise (libc.so.6)
#4  0x00007efe94042895 abort (libc.so.6)
#5  0x00007efe94e4bde3 n/a (libglib-2.0.so.0)
#6  0x00007efe94ea66be g_assertion_message_expr (libglib-2.0.so.0)
#7  0x00007efe39ea2596 gvc_mixer_card_get_profile (libgvc.so)
#8  0x00007efe39eadcd0 gvc_mixer_ui_device_get_active_profile (libgvc.so)
#9  0x00007efe935ceace ffi_call_unix64 (libffi.so.6)
#10 0x00007efe935ce48f ffi_call (libffi.so.6)
#11 0x00007efe945d3821 n/a (libgjs.so.0)
#12 0x00007efe945d4e9a n/a (libgjs.so.0)
#13 0x00007efe919ecaf4 n/a (libmozjs-60.so.0)
#14 0x00007efe919e06e1 n/a (libmozjs-60.so.0)
#15 0x00007efe919ec496 n/a (libmozjs-60.so.0)
#16 0x00007efe919eca51 n/a (libmozjs-60.so.0)
#17 0x00007efe919eccbd n/a (libmozjs-60.so.0)
#18 0x00007efe91ca2262 n/a (libmozjs-60.so.0)
#19 0x00007efe91ca2688 n/a (libmozjs-60.so.0)
#20 0x0000367643b3ff87 n/a (n/a)
#21 0x0000557ad127ea08 n/a (n/a)
#22 0x0000367643b3f4e8 n/a (n/a)
#23 0x00007efe91b8d3cc n/a (libmozjs-60.so.0)
#24 0x00007efe919e74dd n/a (libmozjs-60.so.0)
#25 0x00007efe919ec496 n/a (libmozjs-60.so.0)
#26 0x00007efe919eca51 n/a (libmozjs-60.so.0)
#27 0x00007efe919eccbd n/a (libmozjs-60.so.0)
#28 0x00007efe91ca2262 n/a (libmozjs-60.so.0)
#29 0x00007efe91ca2688 n/a (libmozjs-60.so.0)
#30 0x0000367643b3ff87 n/a (n/a)
#31 0x0000557ad127ea08 n/a (n/a)
#32 0x0000367643b3f4e8 n/a (n/a)
#33 0x00007efe91b8d3cc n/a (libmozjs-60.so.0)
#34 0x00007efe919e74dd n/a (libmozjs-60.so.0)
#35 0x00007efe919ec496 n/a (libmozjs-60.so.0)
#36 0x00007efe919eca51 n/a (libmozjs-60.so.0)
#37 0x00007efe919eccbd n/a (libmozjs-60.so.0)
#38 0x00007efe91ca2262 n/a (libmozjs-60.so.0)
#39 0x00007efe91ca2688 n/a (libmozjs-60.so.0)
#40 0x0000367643b3ff87 n/a (n/a)
#41 0x0000557ad127ea08 n/a (n/a)
#42 0x0000367643b3f4e8 n/a (n/a)
#43 0x00007efe91b8d3cc n/a (libmozjs-60.so.0)
#44 0x00007efe919ec428 n/a (libmozjs-60.so.0)
#45 0x00007efe919eca51 n/a (libmozjs-60.so.0)
#46 0x00007efe919eccbd n/a (libmozjs-60.so.0)
#47 0x00007efe91deb9aa n/a (libmozjs-60.so.0)
#48 0x00007efe919ec8c4 n/a (libmozjs-60.so.0)
#49 0x00007efe919e06e1 n/a (libmozjs-60.so.0)
#50 0x00007efe919ec496 n/a (libmozjs-60.so.0)
#51 0x00007efe919eca51 n/a (libmozjs-60.so.0)
#52 0x00007efe919eccbd n/a (libmozjs-60.so.0)
#53 0x00007efe91ca2262 n/a (libmozjs-60.so.0)
#54 0x00007efe91ca2688 n/a (libmozjs-60.so.0)
#55 0x0000367643b3ff87 n/a (n/a)
#56 0x0000557ad127ea08 n/a (n/a)
#57 0x0000367643b3f4e8 n/a (n/a)
#58 0x00007efe91b8d3cc n/a (libmozjs-60.so.0)
#59 0x00007efe919ec428 n/a (libmozjs-60.so.0)
#60 0x00007efe919eca51 n/a (libmozjs-60.so.0)
#61 0x00007efe919eccbd n/a (libmozjs-60.so.0)
#62 0x00007efe91deb9aa n/a (libmozjs-60.so.0)
#63 0x00007efe919ec8c4 n/a (libmozjs-60.so.0)

Stack trace of thread 2757:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe92048493 _ZN7mozilla6detail21ConditionVariableImpl4waitERNS0_9MutexImplE (libmozjs-60.so.0)
#2  0x00007efe920486a5 _ZN7mozilla6detail21ConditionVariableImpl8wait_forERNS0_9MutexImplERKNS_16BaseTimeDurationINS_27TimeDurationValueCalculatorEEE (libmozjs-60.so.0)
#3  0x00007efe91dc4fe4 n/a (libmozjs-60.so.0)
#4  0x00007efe91dc01a6 n/a (libmozjs-60.so.0)
#5  0x00007efe941f058e start_thread (libpthread.so.0)
#6  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2692:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 16822:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe381a07a2 n/a (librsvg-2.so.2)
#2  0x00007efe3819a384 n/a (librsvg-2.so.2)
#3  0x00007efe3819ae86 n/a (librsvg-2.so.2)
#4  0x00007efe3819cd4c n/a (librsvg-2.so.2)
#5  0x00007efe382a74fa n/a (librsvg-2.so.2)
#6  0x00007efe3819c7eb n/a (librsvg-2.so.2)
#7  0x00007efe3827155b n/a (librsvg-2.so.2)
#8  0x00007efe3826d4d6 n/a (librsvg-2.so.2)
#9  0x00007efe941f058e start_thread (libpthread.so.0)
#10 0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2693:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2694:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2695:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2696:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2697:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2685:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2700:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2756:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe92048493 _ZN7mozilla6detail21ConditionVariableImpl4waitERNS0_9MutexImplE (libmozjs-60.so.0)
#2  0x00007efe920486a5 _ZN7mozilla6detail21ConditionVariableImpl8wait_forERNS0_9MutexImplERKNS_16BaseTimeDurationINS_27TimeDurationValueCalculatorEEE (libmozjs-60.so.0)
#3  0x00007efe91dc4fe4 n/a (libmozjs-60.so.0)
#4  0x00007efe91dc01a6 n/a (libmozjs-60.so.0)
#5  0x00007efe941f058e start_thread (libpthread.so.0)
#6  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 16820:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe381a07a2 n/a (librsvg-2.so.2)
#2  0x00007efe3819a384 n/a (librsvg-2.so.2)
#3  0x00007efe3819ae86 n/a (librsvg-2.so.2)
#4  0x00007efe3819cd4c n/a (librsvg-2.so.2)
#5  0x00007efe382a74fa n/a (librsvg-2.so.2)
#6  0x00007efe3819c7eb n/a (librsvg-2.so.2)
#7  0x00007efe3827155b n/a (librsvg-2.so.2)
#8  0x00007efe3826d4d6 n/a (librsvg-2.so.2)
#9  0x00007efe941f058e start_thread (libpthread.so.0)
#10 0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 24935:
#0  0x00007efe94117d6d syscall (libc.so.6)
#1  0x00007efe94ec611e g_cond_wait_until (libglib-2.0.so.0)
#2  0x00007efe94e50231 n/a (libglib-2.0.so.0)
#3  0x00007efe94e50825 g_async_queue_timeout_pop (libglib-2.0.so.0)
#4  0x00007efe94ea7f31 n/a (libglib-2.0.so.0)
#5  0x00007efe94ea748a n/a (libglib-2.0.so.0)
#6  0x00007efe941f058e start_thread (libpthread.so.0)
#7  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2690:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 16819:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe381a07a2 n/a (librsvg-2.so.2)
#2  0x00007efe3819a384 n/a (librsvg-2.so.2)
#3  0x00007efe3819ae86 n/a (librsvg-2.so.2)
#4  0x00007efe3819cd4c n/a (librsvg-2.so.2)
#5  0x00007efe382a74fa n/a (librsvg-2.so.2)
#6  0x00007efe3819c7eb n/a (librsvg-2.so.2)
#7  0x00007efe3827155b n/a (librsvg-2.so.2)
#8  0x00007efe3826d4d6 n/a (librsvg-2.so.2)
#9  0x00007efe941f058e start_thread (libpthread.so.0)
#10 0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2759:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe92048493 _ZN7mozilla6detail21ConditionVariableImpl4waitERNS0_9MutexImplE (libmozjs-60.so.0)
#2  0x00007efe920486a5 _ZN7mozilla6detail21ConditionVariableImpl8wait_forERNS0_9MutexImplERKNS_16BaseTimeDurationINS_27TimeDurationValueCalculatorEEE (libmozjs-60.so.0)
#3  0x00007efe91dc4fe4 n/a (libmozjs-60.so.0)
#4  0x00007efe91dc01a6 n/a (libmozjs-60.so.0)
#5  0x00007efe941f058e start_thread (libpthread.so.0)
#6  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2758:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe92048493 _ZN7mozilla6detail21ConditionVariableImpl4waitERNS0_9MutexImplE (libmozjs-60.so.0)
#2  0x00007efe920486a5 _ZN7mozilla6detail21ConditionVariableImpl8wait_forERNS0_9MutexImplERKNS_16BaseTimeDurationINS_27TimeDurationValueCalculatorEEE (libmozjs-60.so.0)
#3  0x00007efe91dc4fe4 n/a (libmozjs-60.so.0)
#4  0x00007efe91dc01a6 n/a (libmozjs-60.so.0)
#5  0x00007efe941f058e start_thread (libpthread.so.0)
#6  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2698:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2691:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2689:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2674:
#0  0x00007efe94112301 __poll (libc.so.6)
#1  0x00007efe94e7e5a6 n/a (libglib-2.0.so.0)
#2  0x00007efe94e7e6d0 g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007efe94e7e721 n/a (libglib-2.0.so.0)
#4  0x00007efe94ea748a n/a (libglib-2.0.so.0)
#5  0x00007efe941f058e start_thread (libpthread.so.0)
#6  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2678:
#0  0x00007efe94112301 __poll (libc.so.6)
#1  0x00007efe94e7e5a6 n/a (libglib-2.0.so.0)
#2  0x00007efe94e7e6d0 g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007efe8ebcac7d n/a (libdconfsettings.so)
#4  0x00007efe94ea748a n/a (libglib-2.0.so.0)
#5  0x00007efe941f058e start_thread (libpthread.so.0)
#6  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2684:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 16821:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe381a07a2 n/a (librsvg-2.so.2)
#2  0x00007efe3819a384 n/a (librsvg-2.so.2)
#3  0x00007efe3819ae86 n/a (librsvg-2.so.2)
#4  0x00007efe3819cd4c n/a (librsvg-2.so.2)
#5  0x00007efe382a74fa n/a (librsvg-2.so.2)
#6  0x00007efe3819c7eb n/a (librsvg-2.so.2)
#7  0x00007efe3827155b n/a (librsvg-2.so.2)
#8  0x00007efe3826d4d6 n/a (librsvg-2.so.2)
#9  0x00007efe941f058e start_thread (libpthread.so.0)
#10 0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2755:
#0  0x00007efe94112301 __poll (libc.so.6)
#1  0x00007efe781b4675 poll_func (libpulse.so.0)
#2  0x00007efe781a5c58 pa_mainloop_poll (libpulse.so.0)
#3  0x00007efe781a62a2 pa_mainloop_iterate (libpulse.so.0)
#4  0x00007efe781a6350 pa_mainloop_run (libpulse.so.0)
#5  0x00007efe781b45bd thread (libpulse.so.0)
#6  0x00007efe7815006c internal_thread_func (libpulsecommon-12.2.so)
#7  0x00007efe941f058e start_thread (libpthread.so.0)
#8  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2688:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2687:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2686:
#0  0x00007efe941f667c pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007efe8d88ac33 n/a (radeonsi_dri.so)
#2  0x00007efe8d88a98b n/a (radeonsi_dri.so)
#3  0x00007efe941f058e start_thread (libpthread.so.0)
#4  0x00007efe9411d513 __clone (libc.so.6)

Stack trace of thread 2675:
#0  0x00007efe94112301 __poll (libc.so.6)
#1  0x00007efe94e7e5a6 n/a (libglib-2.0.so.0)
#2  0x00007efe94e7e962 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007efe9507a79a n/a (libgio-2.0.so.0)
#4  0x00007efe94ea748a n/a (libglib-2.0.so.0)
#5  0x00007efe941f058e start_thread (libpthread.so.0)
#6  0x00007efe9411d513 __clone (libc.so.6)

Switch between A2DP and HSP/HFP input setting

With Bluetooth headsets in the settings you have an option to switch between A2DP (supports just output but has better quality, I use it for listening to music) and HSP/HFP (supports both input and output but with a lower quality of sound in the output, I use it for meetings).

With your plugin, when you select the input it switch automatically to HSP/HFP but then there is no way to go back to A2DP when you finished your meeting, so you have to enter the settings to do that.

So I have the need of continuously switching between those options inside the input settings.
Would be great that if you have an input with this options have a '>' that you can unfold and be able to switch between them.

The HSP/HFP quality is really bad for listening to music.

And I think there should be an option in settings to disable this feature if somebody does not what that feature, but should be enabled by default in my opinion.

The switcher disappears after unlocking the screen

I notice that the switcher is working well after the first login and after restarting the shell (Alt + F2 then 'r') but when I lock the screen, then unlock it again, I see the switcher disappears from the gnome shell menu.

I've stumbled upon the following lines from the Journal:

Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: Max Id:11
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: Profiles not defined
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: analog-output-speaker found
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: Port Found!!!
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: Added: 5
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: Profiles not defined
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: headset-output not found
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: card_index=0
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: card_index=1
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: card_index=4
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: (gnome-shell:2505): Gjs-WARNING **: JS ERROR: TypeError: cards[cardIndex] is undefined
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: parseOutput@/home/anass/.local/share/gnome-shell/extensions/[email protected]/convenience.js:150
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: refreshCards@/home/anass/.local/share/gnome-shell/extensions/[email protected]/convenience.js:100
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: getProfiles@/home/anass/.local/share/gnome-shell/extensions/[email protected]/convenience.js:67
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: SoundOutputDeviceChooser<._outputAdded@/home/anass/.local/share/gnome-shell/extensions/[email protected]/extension.js:139
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: wrapper@resource:///org/gnome/gjs/modules/lang.js:169
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: SoundOutputDeviceChooser<._lateInit@/home/anass/.local/share/gnome-shell/extensions/[email protected]/extension.js:85
Feb 11 02:18:17 anass-galago gnome-shell.desktop[2505]: wrapper@resource:///org/gnome/gjs/modules/lang.js:169
Feb 11 02:18:18 anass-galago gnome-shell.desktop[2505]: Gjs-Message: JS LOG: profile changed: a2dp_sink

port.profiles is undefined

after installing extension i am getting "port.profiles is undefined" when looking at errors using lg tool, is this a known problem?

Does not start due not finding appropriate card

Hi!
I've tried this extension, but it doesn't seem to show up in the menu. Upon inspecting the journal I found the following often repeated remark:

Gvc-WARNING **: Device did not have an appropriate card

I am pretty sure this is due to me having an tunneled output to another PA instance (i.e. Builtin Audio Digital Stereo (HDMI) on user@otherhost) and this output obviously doesn't have a sound card on this system.

Extension crashes after screen lock

I love this extension but it crashes for me whenever I lock the screen on my laptop. It's impossible to reload it without complete gnome shell restart. If using Wayland gnome shell restart is not available so I need to log out and log in after every screen lock.

Not compatible with Gnome 3.33

I tried out Gnome 3.33 on Fedora Rawhide today, but sadly this extension is yet not compatible. The following stacktrace can be found in the gnome-shell journal:

Extension "[email protected]" had error: TypeError: this._setLog is not a function

3.22 Update please

Debian Testing is now on Gnome 3.22. If you could update it'd be super appreciated.

Default device changes after restart

When a device is chosen, after a restart it's still highlighted in the label but the sound output comes from a different device. To fix it you have to pick a different device and re-pick the first one.

Please let me know if there is any way at all that I can help with solving this issue, logs, code, everything goes.

Thanks in advance,
ThatFatPat

Please add option to only show output devices

The extension shows input devices by default which I don't want to see because I don't care about them, but there is no option to hide those to make the extension behave like a few versions prior. Please add such an option.

Software sink duplicates in sound output list (bug)

I'm using pulseaudio-dlna to stream audio to upnp sever. It looks for upnp/dlna receivers on the network and makes a pulseaudio sink which records all audio and sends it to remote server. My problem is that after restart of pulseaudio-dlna and/or after waking pc up from suspend the list of sound outputs contains duplicates of network sinks. If you try to switch to one of them it crashes gnome shell. The only way to get rid of them is to restart gnome shell itself, disabling and enabling back this extension doesn't help. I should also mention that those software output duplicates are only present when pulseaudio-dlna is running. This issue affects only this extension, nor system sound settings, nor pavucontrol doesn't show any duplicates.
screenshot from 2018-04-18 17-10-36

Device did not have an appropriate card

Hi,
When used with the pulseaudio's jack sink, i got many "fake" jack sink in the menu, which can crash gnome if selected, and my syslog is flooded by :
org.gnome.Shell.desktop[4462]: (gnome-shell:4462): Gvc-WARNING **: Device did not have an appropriate card

Thanks for this extension !

Remove inactive network outputs from list

I've been experimenting with pulseaudio over network and I've discovered that if I disconnect from network, or the remote pulseaudio server dies, the inacive output stay is not removed from list, and if I try to choose it whole gnome shell crashs. To remove inactive output from list I have to log out.
The inactive output gets removed from gnome control center sound settings, so it's just problem with this extension, it would be nice to have this fixed.

GLib.FileError

GLib.FileError: Datei »/usr/share/gnome-shell/extensions/[email protected]/ui/prefs-dialog.gtkbuilder« konnte nicht geöffnet werden: No such file or directory

Stack trace:
SDCSettingsWidget<._init@/usr/share/gnome-shell/extensions/[email protected]/prefs.js:56
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
buildPrefsWidget@/usr/share/gnome-shell/extensions/[email protected]/prefs.js:196
Application<._selectExtension@resource:///org/gnome/shell/extensionPrefs/main.js:90
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
Application<._onCommandLine@resource:///org/gnome/shell/extensionPrefs/main.js:238
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
main@resource:///org/gnome/shell/extensionPrefs/main.js:376
@

:1

RFE: support input-devices too

Thank you for this useful extension.
It would be nice to have the same kind for control for input devices. I often used external microphones, internal ones, or the webcam's integrated one and would like to be able to swtich control/mute easily.

JS warning on Gnome 3.26

Hey, thanks for the great extension,
Here's a warning i got from journalctl on GNOME 3.25 (the alpha/beta of 3.26)

sep 04 04:56:24 lenovo gnome-shell[19623]: JS WARNING: [/home/bilal/.local/share/gnome-shell/extensions/[email protected]/base.js 167]: reference to undefined property this._availableDevicesIds[(intermediate value)]

"Port Settings" is empty

I have 4 outputs and 2 inputs in the menu. Half of them is related to a stereo speaker connected by usb. Extension works well.

But "Port Settings" in configuration is empty and I would like to use it to hide some outputs.

impressionecran_1

Version 18 does not work with 3.22.3

Debain 9, GNOME Shell 3.22.3

version 18 does not work

Error shown in tweak UI:

SyntaxError: class is a reserved identifier

Stack trace:
  @/home/vse/.local/share/gnome-shell/extensions/[email protected]/prefs.js:27
  Application<._getExtensionPrefsModule@resource:///org/gnome/shell/extensionPrefs/main.js:74
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178
  Application<._selectExtension@resource:///org/gnome/shell/extensionPrefs/main.js:89
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178
  Application<._onCommandLine@resource:///org/gnome/shell/extensionPrefs/main.js:239
  wrapper@resource:///org/gnome/gjs/modules/lang.js:178
  main@resource:///org/gnome/shell/extensionPrefs/main.js:377
  @<main>:1
  

version 17 works fine

Profile list is incomplete

I use two profiles on my soundcard, the 5.1 surround for my headset and the stereo (duplex) for my desktop speakers, but the menu only allows me to select between the 2.1 - 5.1 profiles.
Ideally, I'd like to be able to select which profiles to show in the menu, but showing all of them would be a good start :)
screenshot from 2017-03-02 12-22-29

hide if there's only one device

i have speakers+hdmi+headphones. but most of the time, hdmi or headphones are not plugged in.

ideally the entire entry would hide if i have only speakers available, the entry and others would appear as they are plugged in.

Error starting the extension. Gnome 3.20 on Archlinux

Hi,

First of all I want to thank you for this great extension.

I have just upgraded to Gnome 3.20 and I have installed your extension from extensions.gnome.org.

It fails to start and show an Error state. This is the log I got from systemd log (journalctl /usr/bin/gnome-shell -f -o cat)

Archive:  /tmp/AHJCFY.shell-extension.zip
  inflating: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/license
  inflating: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/schemas/gschemas.compiled
  inflating: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/convenience.js
  inflating: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/ui/prefs-dialog.gtkbuilder
  inflating: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/base.js
  inflating: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/prefs.js
  inflating: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/schemas/org.gnome.shell.extensions.sound-output-device-chooser.gschema.xml
  inflating: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/extension.js
 extracting: /home/rodrigo/.local/share/gnome-shell/extensions/[email protected]/metadata.json
Gjs-Message: JS LOG: Max Id:13
Gjs-Message: JS LOG: Added: 1:HDMI / DisplayPort 4:hdmi-output-3
Gjs-Message: JS LOG: Removed: 1
Gjs-Message: JS LOG: Added: 2:HDMI / DisplayPort 3:hdmi-output-2
Gjs-Message: JS LOG: Removed: 2
Gjs-Message: JS LOG: Added: 3:HDMI / DisplayPort 2:hdmi-output-1
Gjs-Message: JS LOG: Added: 4:HDMI / DisplayPort:hdmi-output-0
Gjs-Message: JS LOG: Removed: 4
Gjs-Message: JS LOG: Added: 5:Headphones:analog-output-headphones
Gjs-Message: JS LOG: Added: 7:Digital Output (S/PDIF):iec958-stereo-output
Gjs-Message: JS LOG: Activated: 7
Gjs-Message: JS LOG: Added: 8:Headphones:analog-output-headphones
Gjs-Message: JS LOG: Added: 9:Line Out:analog-output-lineout
Gjs-Message: JS LOG: Removed: 9
Gjs-Message: JS LOG: Max Id:14
Gjs-Message: JS LOG: Added: 6:Microphone:analog-input-mic
Gjs-Message: JS LOG: Activated: 6
Gjs-Message: JS LOG: Added: 10:Line In:analog-input-linein
Gjs-Message: JS LOG: Removed: 10
Gjs-Message: JS LOG: Added: 11:Rear Microphone:analog-input-rear-mic
Gjs-Message: JS LOG: Removed: 11
Gjs-Message: JS LOG: Added: 12:Front Microphone:analog-input-front-mic
Gjs-Message: JS LOG: Removed: 12
Gjs-Message: JS LOG: Extension "[email protected]" had error: Error: Expected type utf8 for Argument 'key' but got type 'undefined'

In case it helps here it my locale configuration:

rodrigo@workstation ~]$ localectl 
   System Locale: LANG=en_US.UTF-8
                  LC_NUMERIC=es_ES.UTF-8
                  LC_TIME=es_ES.UTF-8
                  LC_MONETARY=es_ES.UTF-8
                  LC_PAPER=es_ES.UTF-8
                  LC_MEASUREMENT=es_ES.UTF-8
       VC Keymap: es
      X11 Layout: es,us,us
     X11 Variant: ,colemak,
[rodrigo@workstation ~]$ echo $LANG
en_US.UTF-8
[rodrigo@workstation ~]$ echo $LC_MESSAGES

[rodrigo@workstation ~]$

Let me know if you need any other information to debug this issue.

Thanks,
Rodrigo

Deal with long sink/source names

When the sinks or sources have a long name, the menu just tries to fit the whole text and it results on very large menu:
gse-input-ouput-switcher

Three solutions I can think of:

  • Set a max character limit and replace anything after with '...'
  • Allow to rename the sinks/sources from the extension settings, but maybe it's better to do it from pulseaudio config files.
  • Keep the default menu size but make somehow the text slide from right to left.

gnome-shell 3.34 crash on audio source removal

I got the following crash, don't know if this extension was the source, but figured since it was audio related it might be.

On Arch, running gnome-shell 1:3.34.0+94+g3d86e6e79-1.
I think I'm running extension 3.34, 23.
The extensions show with error symbol on https://extensions.gnome.org/extension/906/sound-output-device-chooser/ display.

I believe the error occured when I turned off my bluetooth headphones.

       Message: Process 1329 (gnome-shell) of user 16430 dumped core.
                
                Stack trace of thread 1329:
                #0  0x00007fa9315b3804 gvc_mixer_ui_device_get_active_profile (libgvc.so)
                #1  0x00007fa950ca06d0 ffi_call_unix64 (libffi.so.6)
                #2  0x00007fa950ca00a0 ffi_call (libffi.so.6)
                #3  0x00007fa951de3b75 n/a (libgjs.so.0)
                #4  0x00007fa951de595c n/a (libgjs.so.0)
                #5  0x00002994ce23a855 n/a (n/a)
                #6  0x00005642fd5fa4b8 n/a (n/a)
                #7  0x00002994ce23bab1 n/a (n/a)
                #8  0x00005642ff33f8c8 n/a (n/a)
                #9  0x00002994ce23bab1 n/a (n/a)
                #10 0x00005642fd09f148 n/a (n/a)
                #11 0x00002994ce2324e8 n/a (n/a)
                #12 0x00007fa94ef8c37b n/a (libmozjs-60.so.0)
                #13 0x00007fa94edb3a3d n/a (libmozjs-60.so.0)
                #14 0x00007fa94edb41cf n/a (libmozjs-60.so.0)
                #15 0x00007fa94edb481f n/a (libmozjs-60.so.0)
                #16 0x00007fa94f159080 _Z15JS_CallFunctionP9JSContextN2JS6HandleIP8JSObjectEENS2_IP10JSFunctionEERKNS1_16HandleValueArrayENS1_13MutableHandleI>
                #17 0x00007fa951dde06b _Z18gjs_closure_invokeP9_GClosureN2JS6HandleIP8JSObjectEERKNS1_16HandleValueArrayENS1_13MutableHandleINS1_5ValueEEEb (l>
                #18 0x00007fa951e05cb1 n/a (libgjs.so.0)
                #19 0x00007fa95272cd3a g_closure_invoke (libgobject-2.0.so.0)
                #20 0x00007fa9527195cf n/a (libgobject-2.0.so.0)
                #21 0x00007fa95263fa74 n/a (libglib-2.0.so.0)
                #22 0x00007fa95264027f g_main_context_dispatch (libglib-2.0.so.0)
                #23 0x00007fa9526421c1 n/a (libglib-2.0.so.0)
                #24 0x00007fa9526430d3 g_main_loop_run (libglib-2.0.so.0)
                #25 0x00007fa951a9bbbc meta_run (libmutter-5.so.0)
                #26 0x00005642f82b4436 n/a (gnome-shell)
                #27 0x00007fa952b7eee3 __libc_start_main (libc.so.6)
                #28 0x00005642f82b462e n/a (gnome-shell)

Some code called array.toString() on a Uint8Array instance

I found these messages when looking at journalctl -b -p 0..4.

Some code called array.toString() on a Uint8Array instance. Previously this would have interpreted the bytes of the array as a string, but that is nonstandard. In the future this will return the bytes as comma-separated digits. For the time being, the old behavior has been preserved, but please fix your code anyway to explicitly call ByteArray.toString(array).
(Note that array.toString() may have been called implicitly.)
0 parseOutput() ["/home/hs/.local/share/gnome-shell/extensions/[email protected]/convenience.js":110]
1 refreshCards() ["/home/hs/.local/share/gnome-shell/extensions/[email protected]/convenience.js":104]
2 getProfiles() ["/home/hs/.local/share/gnome-shell/extensions/[email protected]/convenience.js":77]
3 _deviceAdded() ["/home/hs/.local/share/gnome-shell/extensions/[email protected]/base.js":142]
4 wrapper() ["resource:///org/gnome/gjs/modules/_legacy.js":82]
5 _onControlStateChanged() ["/home/hs/.local/share/gnome-shell/extensions/[email protected]/base.js":92]
6 wrapper() ["resource:///org/gnome/gjs/modules/_legacy.js":82]
7 wrapper() ["self-hosted":979]

Extension not showing list of sound cards

This extension is not appearing below my volume slider. My gnome-shell version is '3.16.4'. My OS is 'Ubuntu Gnome 15.10'.

This is my volume slider:
captura de tela de 2015-12-24 18-46-06

Just ask if you want any extra information.

Error: Extension not enable

image

GNOME 3.30.2
Fedora 29

GLib.SpawnError: Falha ao executar processo filho “pactl” (No such file or directory)

Stack trace:
  refreshCards@/home/adson/.local/share/gnome-shell/extensions/[email protected]/convenience.js:103:41
  getPorts@/home/adson/.local/share/gnome-shell/extensions/[email protected]/convenience.js:95:9
  _populatePorts@/home/adson/.local/share/gnome-shell/extensions/[email protected]/prefs.js:114:21
  wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
  _init@/home/adson/.local/share/gnome-shell/extensions/[email protected]/prefs.js:108:13
  wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
  buildPrefsWidget@/home/adson/.local/share/gnome-shell/extensions/[email protected]/prefs.js:208:27
  _selectExtension@resource:///org/gnome/shell/extensionPrefs/main.js:83:22
  wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
  _onCommandLine@resource:///org/gnome/shell/extensionPrefs/main.js:235:17
  wrapper@resource:///org/gnome/gjs/modules/_legacy.js:82:22
  main@resource:///org/gnome/shell/extensionPrefs/main.js:389:5
  @<main>:1:43

Feature: device sets

Hey. Thank you for this extension. I use it daily.

My usage is to switch between

  1. the laptop's built-in speakers and microphone: 3 clicks
  2. a headset (includes a microphone): 3 clicks

So that's a total of 6 clicks.

What I imagine is creating sets, consisting of one input device and one output device. And being able to switch to a set. That would shorten my usage from 6 clicks to 3 clicks. I do this several times per day, so it matters enough for me to write this suggestion here.

I do know my JavaScript, but I've never written for this platform.

Does not change device if Rhythmbox is open

I cannot change the device profile from Headphones to Speakers, or vice versa if Rhythmbox is running.

Expected behaviour is to change outputs, actual behaviour menu closes before when I click to expand all devices.

Hide selector when only one device error.

How to reproduce

  1. Must exist an pluggable output sound device (internal sound + hdmi sound output)
  2. In extension general settings, enable "Hide selector if there's only one device".
  3. Select pluggable output (hdmi)
  4. Remove connector
  5. Plugin doesn't allow to select internal output.

Audio streams in menu

Would it be possible to add support for different audio streams? Like on pavucontrol but within the extension's menu.

Audio channels

Hide extra information

Great extension, I like it. But I don't like that it is always showing extra information I don't usually want.
I would like to have a "smart mode" that would only show device name if there are multiple devices connected. And if there is just a single device, it should look like this:
2016-08-30 11-45-37
And like this if some application is using the mic (and there is only single mic on the system):
2016-08-30 11-47-02

Device is not activated on start if it has no profile

This causes the label to remain Extension initialising... until a device is chosen.

// base.js:96
-  if(stream_port && stream == defaultDevice && stream_port.port === uidevice.get_port()) {
+  if(stream == defaultDevice && ((stream_port && stream_port.port === uidevice.get_port()) || ! stream_port)) {

Fixes it. Though i'm not sure wether it causes trouble elsewhere.

[regression] Immediately removed after installation

This extension fails to install correctly; I toggle the switch to "on" and confirm "Install", it briefly shows as "on" for a split second before switching itself off again.

The menu does not appear after attempting instillation, the extension does not show up in GNOME Tweak Tool or on the website

The extension installed and worked fine previously, however an upgrade (to something) caused this regression.

I can reproduce this on both my Arch machine and my Fedora machine.

Allow hiding from all devices

I love the feature Hide selector if there's only one device. Now my soundcard includes an S/PDIF device that I never use. It looks like there already is support for hiding certain outputs in Port Settings. Would it make sense to include all devices in there, so that one can pick the ones that you actually use?

(Then in my case, when a pulseaudio network device is found, the device chooser appears, and when I'm on another network, it disappears - which is exactly what I'm looking for.)

Show "unplugged" ports too.

I have a very non-linux compatible soundboard. It took me quite a while to be able to use the internal mic and headphones. Saw many kernel-related posts about the ALC256. After a year, Linux still can't detect when I plug in the headphone.

I can select it manually in PavuControl:
image

Can't see it when not selected:
image

Can see after selected:
image

But can't select it in this extension, it only shows after I select in PavuControl, if I go back to speakers, it no longer is shown there.

I wish I could select "Show Unplugged Ports" in this extension's configuration, so unlucky people like me could hack they way to happiness.

I'm willing to make a pull request, but I've never dealt with Gnome Extensions, and it would be nice to have a little briefing before start. I'm not even sure that the problem is the "Unplugged" status.

collapsible selection list

Can you set up an "ON/OFF option in the extension's settings that,when turned on, will enable an automatic collapsible selection list. That is, when the user makes an audio device selection the selection list collapse automatically. Right now the list stays open until the user clicks on the selector, which is rather annoying

Stale output devices shown in outputs list

Hi,

First of all, thanks for the work you put in the extension :-)

I'm having an issue where "stale" output devices are shown in the outputs list from the extension, whereas GNOME's control center shows the correct list. If it helps, the "stale" devices are dynamically discovered on the network (those are AirPlay devices). I suspect that they were discovered when I was at home, I suspended the laptop, and when I open it again in another place (where the output devices are not available anymore), the list doesn't get refreshed.

Note: this is with version 15 of the extension, but as far as I can see no "core" code was changed between version 15 and 16.

screenshot-output-chooser

Only shows "Extension initialising..."

Hi! This looks like a great extension. But it doesn't seem to load completely on my system:
screenshot from 2017-01-25 19-22-17

Also the list of ports in the settings is pretty empty:
screenshot from 2017-01-25 19-24-45

Would be great, if you could give me a hint, how to debug this...

All other shell extensions are disabled.
My desktop system has a HDA Intel PCH with an Realtek ALC887-VD chip.
Stats:

uname -a
Linux gnome-cube 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.1 LTS
Release:	16.04
Codename:	xenial
gnome-shell --version
GNOME Shell 3.18.5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.