Git Product home page Git Product logo

gnome-shell-volume-mixer's Introduction

GNOME Shell Volume Mixer

Linting

Shell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices.

Middle mouse click on an indicator or a slider mutes the selected stream.

Indicators and streams are also scrollable,

Outputs menuInputs menu

Requirements

  • PulseAudio (for retrieval of card details)
  • gettext (for building of language files)
  • nodejs / npm (styles and linting)
  • glib2 bin (schema compilation)

Installation

$ make

That's it. Add the resulting archive via GNOME Tweak Tool (extensions tab) or copy it's content manually to ".~/.local/share/gnome-shell/extensions/[email protected]".

Volume Steps

GNOME Settings Daemon (GSD) hardcodes the step for each key press of volume keys to 6% of maximum. While this might be OK for most people, some would prefer a configurable setting. There's a bug in GNOME's tracker which, according to the comments by developers, won't ever get fixed in a way that could allow configurable volume steps[1].

Shell Volume Mixer tried to grab GSD's hotkeys to provide configurable steps for sliders and media keys in the past, but at some point this stopped working.

GNOME's current solution to the problem is Shift + Key, i.e. hold down the shift button to switch to a 2% step.

Acknowledgments

This is a fork of AdvancedVolumeMixer by Harry Karvonen (git://repo.or.cz/AdvancedVolumeMixer.git). Many thanks go out to him for his initial work.

gnome-shell-volume-mixer's People

Contributors

aleho avatar alexandr1322 avatar alexwayfer avatar asciiwolf avatar hatell avatar jacobmischka avatar outloudvi avatar ricvelozo avatar smcv avatar tingvarsson avatar vistaus 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

gnome-shell-volume-mixer's Issues

GSD's hotkeys not grabed ?

Hello
I have some issues with the extensions replacing the volume key's default actions.
Basically what happens is that the volume down key runs the extension, with the popup showing the volume % and a bar with values possibly over 100%, and when I press the volume up key I got the default gnome behaviour with the volume not being able to go over 100% and the anoying update sound

I guess the issue is with GSD's hotkeys not boing grabed. Is this issue known ? Is there any fix ?

Update for GNOME 3.18

Hello,

GNOME 3.18 has been released and many people already use it. Could you please update your extension at extensions.gnome.org to support this new GNOME version?

Thanks!

Switch input together with output

It's very convenient in some situations to switch input together with output.
For example if you want to use a headset, especially if there're options like:

  1. Simple wired headset (plugged into audio jack)
  2. USB headset

Probably this feature could be enabled through extension configuration because some people may have different usage scenario - for example have one and only microphone and switching from headphones to say HDMI output.

Support gnome-shell 3.22

I tried installing in Fedora 25 and it seems like gnome-shell 3.22 (3.21 atm) is not supported.

switch for app icons

somebody likes, when apps and devices has their own icons, some one preffers it'll be just dynamics and microphones signs/ possibility to choose will be great.

Can't install the extension : Traceback

When i try to install the extension (via gnome-tweak-tool ) :

INFO : Extracted zip to /tmp/tmp6sqlBn/, copied to /home/roumano/.local/share/gnome-shell/extensions/[email protected]
WARNING : Error parsing theme zip
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/gtweak/tweaks/tweak_group_shell_extensions.py", line 250, in _on_file_set
verb = _("%s extension installed successfully") % extension_uuid
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 10: ordinal not in range(128)

When using Volume Boost the OSD struggles to find it's shape (Gnome Shell 3.16, Manjaro)

I usually change volume with mouse through easystroke (pressing right mouse button and scrolling one unit sends VolumeUp or VolumeDown (Fn combination keys). Because this happens usually very fast, when I use Volume Boost, the OSD goes at first wider than the resize reaches the final state (your settings I think). Sometimes it doesn't get to your dimensions on width and so they remain while changing the volume and until after the volume OSD dissapears.
PS: the problem is on width!

Add Volume Boost toggle in the tray

Hi, I opened an issue a while ago about the fact that every other boot the Volume Boost option would be disabled and I would need to go the extensions' settings and toggle it off and on again for it to work.

You answered that it was a bug that couldn't be fixed, which is fair enough, but it would go a great deal to reduce the impact of the issue there was an option to have the Volume Boost toggle directly in the tray, beneath the volume sliders. It could be fixed in two or three clicks of a mouse instead of the tedious process of going in the Tweak Tool, to the extensions tab, to the Volume Mixer settings and then back.

Thanks in advance for your answer.

No signal "stream-changed" on object "GvcMixerControl"

I know that the recent commit requires that libgnome-volume-control is patched to support "stream-changed" event.
The commit message says that it is fixed in Gnome 3.20, but I have it installed (ArchLinux) and yet see this error message (%subj) in the gnome shell debugger.

Allow to switch outputs

I only see the configured output; I'd like to switch between analog and digital outlets on the same on-board sound card.

Collapsable mixer has hardcoded width

It seems the collapsable mixer part (the one that's clickable and shows you the different output sinks) has a hardcoded width that matches the default theme. On many other themes, the control is either longer or shorter than all other controls in the status menu. Such themes include Arc and Adapta. This is with gnome 3.20

Won’t start on Archlinux GNOME Shell 3.20.1

That's what I got out of journalctl /usr/bin/gnome-shell -f -o cat.
If you need somthing from me, just ask.

Window manager warning: CurrentTime used to choose focus window; focus window may not be correct.
Gjs-Message: JS LOG: Failed to launch ibus-daemon: Kindprozess »ibus-daemon« konnte nicht ausgeführt werden (Datei oder Verzeichnis nicht gefunden)
Gjs-Message: JS LOG: Failed to add search provider /usr/share/gnome-shell/search-providers/org.gnome.bijiben-search-provider.ini: TypeError: appInfo is null
Gjs-Message: JS LOG: No permission to trigger offline updates: Polkit.Error: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: Action org.freedesktop.packagekit.trigger-offline-update is not registered
Gjs-Message: JS LOG: Extension "[email protected]" had error: Error: No signal 'stream-changed' on object 'GvcMixerControl'
Gjs-Message: JS LOG: loading default theme (Adwaita)
(gnome-shell:962): Gjs-WARNING **: JS ERROR: TypeError: this._input is undefined
VolumeMenu<._readInput@resource:///org/gnome/shell/ui/status/volume.js:296
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
(gnome-shell:962): Gjs-WARNING **: JS ERROR: TypeError: this._output is undefined
Menu<._addStream@/home/fabio/.local/share/gnome-shell/extensions/[email protected]/menu.js:162
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
Menu<._streamAdded@/home/fabio/.local/share/gnome-shell/extensions/[email protected]/menu.js:173
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
(gnome-shell:962): Gjs-WARNING **: JS ERROR: TypeError: this._output is undefined
VolumeMenu<._readOutput@resource:///org/gnome/shell/ui/status/volume.js:292
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
_parent@resource:///org/gnome/gjs/modules/lang.js:131
Menu<._readOutput@/home/fabio/.local/share/gnome-shell/extensions/[email protected]/menu.js:116
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
(gnome-shell:962): Gjs-WARNING **: JS ERROR: TypeError: this._input is undefined
VolumeMenu<._readInput@resource:///org/gnome/shell/ui/status/volume.js:296
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
(gnome-shell:962): Gjs-WARNING **: JS ERROR: TypeError: this._input is undefined
VolumeMenu<._readInput@resource:///org/gnome/shell/ui/status/volume.js:296
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
VolumeMenu<._onControlStateChanged@resource:///org/gnome/shell/ui/status/volume.js:284
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
_parent@resource:///org/gnome/gjs/modules/lang.js:131
Menu<._onControlStateChanged@/home/fabio/.local/share/gnome-shell/extensions/[email protected]/menu.js:103
wrapper@resource:///org/gnome/gjs/modules/lang.js:178
GNOME Shell started at Fri Apr 29 2016 18:18:52 GMT+0200 (CEST)

Add error handlers if Python script fails

Needs a few error handling routines in case either the Python script failed or was unable to get any cards / profiles.

Could show an error dialog in preferences.

Volume keys get unbound sometimes

It happens to me that sometimes that volume down button gets unbound from volume-mixer and is handled by gnome-settings-daemon instead. That means that instead of lowering the volume by my configured amount (2%), it lowers it by default 6%, and emits a 'blop' sound on change. But volume up button is still handled by volume-mixer.

IIRC, this always affects just volume down, never volume up. Weird.

I have no idea how to reproduce it, it seems to occur randomly. It doesn't seem directly related to e.g. system start, resume or the like.

Do you have any idea what could be the cause and what to watch out for next time, so that we can find out what causes it?

I have the latest version from extensions.gnome.org for GNOME 3.14. I'm unsure how to find out the extension version. tweak-tools prints into terminal:

Apr 25 10:25:00 titan gnome-tweak-tool.desktop[4760]: INFO    : e.g.o no updates for [email protected] (shell version 3.14.4 extension version unknown)

Large number of audio streams makes menu unwieldy

I like having the volume mixer in the status menu, but since I usually have firefox open with a large number of tabs, with some of those tabs containing youtube videos, I get a lot of sliders named "CubebUtils | AudioStream". Since I also use the media player indicator extension, this can cause the power button at the bottom of the menu to go outside the screen boundary. This also causes the device selection menu to not expand correctly when clicked. While this should probably be addressed in gnome, it would be nice if we could have some kind of blacklisting capability to suppress (or collapse into a menu) sliders we don't need.

Indicator not refreshed when output device changed

I'm not sure if this is something the extension has any control over or if it's an issue with gnome itself, but when you change output devices via the little dropdown provided by this extension, the volume indicator in the panel isn't updated, it still shows the volume of the previous device.

Before:
Before

After:
After

Add option for symbolic icons

MineyMe: Is it possible to not have detailed sliders and still have application icons? They seem to change into the generic volume icon whenever I disable detailed information.

Mouse wheel on volume slider works in reverse

In unpatched gnome-shell, mouse wheel up moves the volume slider right (increases volume), mouse wheel down moves the volume slider left (decreases volume). With Volume Mixer extension, the directions are swapped, which is somewhat confusing.

Option to merge applications in status menu

It'd be nice if there was an option to show all applications in a foldable menu, when controls are shown in the system menu. Just like gnome does it with the other options in this menu.

Allow to configure increase/decrease volume amount

When I press the volume up or volume down buttons on my keyboard, or when I scroll the mouse wheel up and down on the speaker icon or above the volume slider, the volume increases/decreases by 10%. I find that adjustment to be too large. If I want to make my music, video or a game just a bit louder or quieter, 10% change is too much, and suddenly it is too loud or too quiet. So usually I need to use the mouse cursor, open the user menu, and drag the slider a bit to the right or the left, to adjust the volume in a smaller step. That quickly becomes tiring.

Could you please add a new configuration option that would override the amount of volume adjustment? Instead of 10%, I would configure e.g. 5% or 3% step. I would have to press my buttons or scroll the wheel more, but it would be much easier for me to fine-tune exactly the volume that I want.

Ideally it should affect all parts of gnome-shell - the multimedia keys, scrolling over the speaker icon, and scrolling over the volume slider. (The multimedia keys would be the most important for me).

Thanks in advance!

Text in the floating label not visible with custom theme

I'm using different than the default shell theme. In my case the theme is Flat-Plat, which is light instead of the default dark theme.
The problem is that you are not using both background color and the text color from currently active shell theme. You are setting:
$HOME/.local/share/gnome-shell/extensions/[email protected]/stylesheet.css

.floating-label {
    background-color: rgba(0, 0, 0, 0.9);
}

But the default text color for my light theme (Flat-Plat) is black too, so I end up with black floating label on black background.

My initial workaround was to set rgba(250, 250, 250, 0.9) but that will work only for me, then I decided to totally remove the .floating-label class!

The best approach is to use both (text and background) colors - the default for the theme or to overwrite them in your stylesheet.css (if you can't make it work).

Volume slider goes beyond the edge of the menu

Hello,

As show in the attached screenshot, the volume slider expands beyond the edge of the menu (and outside the screen actually).

Running Gnome 3.14.1 on Debian GNU/Linux 8 (jessie) 64-bit.
Gnome-shell-volume-mixer is latest version from extensions.gnome.org

menu_056

Hope this helps!

Thanks

axel

crash on gnome-shell 3.16

Hey
I know it's not released yet, but still as a heads up: the extension breaks on gnome-shell 3.16 (3.15.91 to be precise) with the following error in looking-glass:
TypeError: Shell.KeyBindingMode is undefined

Information on media player not updating.

I use Rhythmbox along with two Gnome Shell Extensions - Media Player Indicator and Volume Mixer. Please note that I am running on Debian Jessie RC1 with Gnome Shell 3.14.1 and searching for usability bugs. In the area where Volume Mixer shows a slider for Rhythmbox it states the name of current song being played. Very nice. However, it does not update. Whenever I use Rhythmbox, Volume Mixer keeps indicating the first song I played. One thing to note is that the Media Player Indicator does update correctly. Also, I have the MediaServer2 D-Bus interface & the MPRIS D-Bus interface plugins for Rhythmbox enabled. All other plugins are disabled. Thank you for all you do.

Your Friend,

Len Huppe

screenshot

Closing the sinks list by pressing “Enter”

When highlighting the active sound device in the menu it's possible to open a list of available sound devices by pressing “Enter”. There should be an ability to close the list by pressing “Enter” again.

Change device name

Hi,

I would like a option to change device name

for exemple, i have enable 3 differents output

  • via hdmi (speaker of the screen)
  • via my sound blaster and optical output to my hifi
  • via usb earphone

I'm a geek, so i'm easy known/understand/remenber Sound Blaster is for hifi, hdmi for output to the screen , ...

but for my wife or someelse it's much more complex for them to understand

So i would like a option to be able to rename output device.

when i press on the config button on extensions.gnome.org

ReferenceError: Config is not defined

Stack trace:
initGettext@/home/sam/.local/share/gnome-shell/extensions/[email protected]/prefs.js:33
init@/home/sam/.local/share/gnome-shell/extensions/[email protected]/prefs.js:38
Application<._getExtensionPrefsModule@resource:///org/gnome/shell/extensionPrefs/main.js:81
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
Application<._selectExtension@resource:///org/gnome/shell/extensionPrefs/main.js:95
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
Application<._onCommandLine@resource:///org/gnome/shell/extensionPrefs/main.js:260
wrapper@resource:///org/gnome/gjs/modules/lang.js:169
main@resource:///org/gnome/shell/extensionPrefs/main.js:398
@

:1

Profiles listed in "devices" tab don't include profiles with input (or duplex)

When switching from one profile to another, it's also desirable to allow profiles with inputs (typically, "Bullt-in audio => Analog Stereo Duplex", as seen for example in pavucontrol. Currently, the profiles with inputs are not listed so the user can't switch from a "full profile" (with output AND input) to another.

In details: I have a personal setup where I "see" 4 audio devices: one builtin on motherboard (input+output), a webcam (in+out), one HDMI (output only) and finally another pro sound card (SB audigy) with complex input+output (5.1,7.1 etc.). I'd be overhappy if I could switch from a video conference setup (with very specific input + outputs) to another one for common usage (no input, usual output on speakers).

My config: OpenSUSE 42-beta1, Gnome 3.16.2

In the snapshot below, compare the listed profiles for SB Audigy between volume manager panel and pavucontrol.

screenshot from 2015-10-08 00-08-06

BTW, great work on this extension. Really useful ! Many thanks.

OSD with volume boost maxes at 100% after some time

When I activate volume boost in the volume mixer settings, the OSD correctly shows and allows volume up to 153%. After some time (not sure if its a suspend or hibernate thing), the volume control reverts to the non overboosted control.

The only way to get it back is to go into the volume mixer settings, flip the switch to shut off overboost, then flip it back on, and the OSD and volume control will go back to allowing overboost.

Add keyboard shortcuts

karatedebili:
would it be possible to implement a shortcut on the keyboard to toggle output between soundcards?

Causes echo in TeamSpeak

I love this extension and I'm using it since I use the GNOME Shell and I also had and strange echo in TeamSpeak since these days. Today I was able to find out that if I deactivate this extension with the tweak tool the echo goes away and if I reactivate it the echo will be back …

The echo is like if there is a loop back between the out- and the input. For example like if I would connect the output cable with the mic input, so my TeamSpeak buddies will hear all my sounds like music, game or error sounds and of course they will get annoyed.

If you need further informations feel free to ask ...
Wabuo

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.