Win7 Volume Mixer
Plasma 5 Widgets
Score 69%
Description:

v18+ requires Plasma 5.8
v11+ requires Plasma 5.7
v2 is tested on Plasma 5.5 and Plasma 5.6

A reskin of the default plasmoid. Cannot be placed in the systray (use kmix instead if you want that).

* Vertical sliders
* Can change the media keys volume up/down percentage.
* Added links to alsamixer and pavucontrol in the context menu.
* Plasma 5.7: Can volume boost to 150% with the context menu
* Plasma 5.7: Can switch default speaker/microphone (and move all app streams to the device) with the context menu
* Plasma 5.7: Media Playback Controls
* v19: Keyboard Shortcuts (See config for a list)

After installing, System Tray Settings > Extra Items > Uncheck "Audio Volume". This will hide the default audio widget.

pavucontrol is not installed by default, so the context menu item will do nothing if not installed.

Github: https://github.com/Zren/plasma-applets/tree/master/org.kde.plasma.volumewin7mixer
Last changelog:

v19 - March 29 2017 5 months ago

* Can now use keyboard navigation to select a stream.
** Left/Right: Select speaker/mic/app/etc.
** Up/Down: Increase/decrease selected volume (by same amount as volume keys).
** M: Mute/unmute selected stream.
** 0-9: Set volume to 0%-90%
** Enter: If a mic/speaker is selected, make it the default device.
* Selected stream will have a pulsating outline. Current default speaker is selected by default. Outline is hidden if you open the mixer with the mouse, but shortcuts will still work.
* Global shortcut will now toggle the popup.
* Fix the blue on gray theme using the color scheme rather than hardcoded colours.
* Fix toggling the volume boost, snapping the value to just over 100% causing it to remain in "boosted" state (with a max of 150%).
* Drag to 1% intervals when volume boosted (instead of 1.5%, 3%, 4.5%, etc).
* Possibly fix a binding loop when checking if you can seek through a song.

obedlink

5 months ago

can you do that when you have several tabs in the browser, the audio mixer shows the name of the tab instead of displaying firefox or chrome in all.

This is a problem with the original plasma audio mixer because we do not know which is which.

Report

Zren

5 months ago

I've previously skimmed the chromium source code to see the difference on how it handles this in Windows and in Linux with PulseAudio. I couldn't lock down where it tells the stream name the title of the tab. I'll try looking into Firefox's source code next time and see if I can find it there. Basically, this requires patching Chrome + Firefox I think because running "pactl list" doesn't show the title of the tabs.

Report

rocky7x

6 months ago

The widget looks really great - thank you for the excellent work! The only thing I'm missing is the volume feedback as in the original Plasma volume widget - when you increase or decrease the volume, a popping sound indicating the current volume at every step provides a good information about the current volume.

Report

Zren

5 months ago

Hum, wow, plasma added that back in 5.8, I've been pretty lazy on adding that. v18 should have it.

Report

rocky7x

5 months ago

Thank you very much :)

Report

tarbos

11 months ago

I like this much better than the default plasma mixer :D

A few feature requests though: (i'm using v2 / KDE 5.5, so some things may already be done)
* Button to make the window sticky (open from control panel, click on button, focus another window, mixer widget stays open)
* Make it possible to hide certain volume bars.
* Switch output device for an application
* Button: "Show non-active applications"
* Full keyboard control
* Make it possible to configure the following things:
* Bar colors
* Bar width
* Volume Up/Down steps for the mouse wheel (its way too big now) and keyboard (which needs to be implemented first)

okay it's quite a lot, but that would make it perfect for me ;)

I'd help you coding, but that probably won't make much sense as long i'm stuck with plasma < 5.7, which won't change until i can afford a new GFX card, which in turn may still take a few months :/

Report

Zren

11 months ago

* Pin Button is in a future version, but would be easy to backport to a v2.1 branch
https://github.com/Zren/plasma-applets/tree/volumewin7mixer-2
https://github.com/Zren/plasma-applets/commit/972f93b99228a40009a3305f307a43ef05dffdd4
* You can drag and drop the app onto a speaker. This is a feature ported from the default widget (though it was added in KDE 5.7).
* Showing non active applications is something you'd have to ask upstream for (plasma-pa / the default widget).
* Not sure what you mean by keyboard controls. Elaborate?
* I've considered creating a color picker layout for awhile, but it's just easier to depend on the theme for the colors. Might do it eventually.
* As in the width of the volume control? or the text label + icon as well?
* Scrolling over the icon in the panel is configurable in the settings right? Hovering the volume sliders is waaay too much work to make configurable since it depends on a specific variable. I'd have to rewrite the QML slider to do that. The best I can do is chose a different default. Right now, 11 mousewheel clicks gets you from 0 -> 99% volume (so 12 clicks). Should I aim for the default of 15 clicks? Or...?

Report

tarbos

11 months ago

* Glad to hear that about the Pin Button
* Yay! Drag and drop is a good thing here, unfortunately it's not immediately clear to a user.
Possible solutions:
1. A first use dialog explaining it.
2. In context-menu: "Tips & Tricks" item, explaining this (and possibly other nice stuff)
3. In context-menu: "Move to" submenu, with 2 inactive Items "You can also drag & drop" "the application icon on an In-/Output"
* ok
* Plasma allows each widget to be focused by a shortcut - no worry here... but then:
1. Cursor Keys to switch channel and raise, lower volume. Active channel needs to be highlighted somehow (maybe a line below). Highlighting could fade when no keys are pressed for a while. Menu key/Space/something for advanced options.
2. Direct control through keys like shown here: http://www.aguzinski.eu/BWPubq6/VolKeysMockup.png
A "what do i press" window like that could pop up on pressing Shift. The idea is first keyboard rom Channel switch, second Volume up and so on. Mapping should probably start from the right to make non-apps always have the same keys. Of course this has to be configurable in order to be usable for people with non-programmer-dvorak layouts, but i'm sure i can write some code to create a sane default mapping depending on the users current layout (have done something similar in qt/c++ by parsing output from xmodmap -pk).
On that pic you can also see why i want to hide some channels. 2 Mics and 1 Speaker are never used. Also something has to be done about identically named channels, but upstream may be the better place for that.
* and * What bothers me is too much bright blue in the dark. I'd say shrink both, but that may leave too little space for the text. Something like this may be a good alternative: http://www.aguzinski.eu/BWPubq6/VolSliderMockup.png Note that the slider is 50% transparent. Goals: less brightness & smaller widget. Again this has to be configurable, as some people will certainly like the current style better.
* Seems like upstream needs to add a stepsize property ^^. 15 is probably a good default. 16-20 may work well, too.
There seems to be a bug though, as it's only 8 steps from 0 to 100 for me.

Report

tarbos

11 months ago

i mean keyboard *row* - not rom

Report

Zren

11 months ago

> Also something has to be done about identically named channels, but upstream may be the better place for that.

When you hover the icon, what does it say the name+description for both of them?

I changed the name to be "Speaker" and "Mic" instead of the long and useless "Built in Analog Stereo". It will use that when the name starts with "alsa_output." and ends with ".analog-stereo".

* I'm unlikely to add AlsaMixer-like keyboard controls anytime soon.
* I'll probably do a "Speaker" submenu someday, I remember that iterating the speakers was a pain though so that's probably why I didn't add it.
* I don't think I'll be doing vertical text even as an option.
You're welcome to try doing some more heavy customizing by editing the file:
/home/chris/.local/share/plasma/plasmoids/org.kde.plasma.volumewin7mixer/contents/ui/MixerItem.qml
then restart plasma with:
killall plasmashell; plasmashell & disown

Report

Zren

5 months ago

I'll be adding keyboard control in the next version. If you open it with the global shortcut, it'll add a pulsating outline around the selected stream. You can then hit up/down to control the volume.

Preview: https://streamable.com/w7gzh

Report

aramgrigoryan

1 year ago

Thanks for a nice widget! But why call it WIN7?

Report

Zren

1 year ago

I wrote this before I found out about KMix, so I didn't know there was another "vertical" mixer with the same style. If needed, I can always change it to "Vertical Volume Mixer" if using Win7 ever becomes a problem.

Ideally, I plan on showing the current "volume" peeks like Win7. I've managed to do it with a seperate script based off reading pavucontrol's code ( https://streamable.com/zfzr ). I haven't merged it since there the "executeable" datasource doesn't "stream" a process. So I had to run a script x FPS per second, which spams top.

One thing I won't copy from Win7. One is scaling the volume's sliders to the max volume (that's the most annoying part of it).

I might eventually include a Win7 theme too (upside down isosceles triangle, but for now it works fairly well with themes.

Report

v19 - March 29 2017 5 months ago

* Can now use keyboard navigation to select a stream.
** Left/Right: Select speaker/mic/app/etc.
** Up/Down: Increase/decrease selected volume (by same amount as volume keys).
** M: Mute/unmute selected stream.
** 0-9: Set volume to 0%-90%
** Enter: If a mic/speaker is selected, make it the default device.
* Selected stream will have a pulsating outline. Current default speaker is selected by default. Outline is hidden if you open the mixer with the mouse, but shortcuts will still work.
* Global shortcut will now toggle the popup.
* Fix the blue on gray theme using the color scheme rather than hardcoded colours.
* Fix toggling the volume boost, snapping the value to just over 100% causing it to remain in "boosted" state (with a max of 150%).
* Drag to 1% intervals when volume boosted (instead of 1.5%, 3%, 4.5%, etc).
* Possibly fix a binding loop when checking if you can seek through a song.

v18 - March 23 2017 5 months ago

* Raised minimum requirements to Plasma 5.8
* [upstream] Add volume feedback
* Show current version in the config.

v17 - March 21 2017 6 months ago

* Fix for the media slider starting at the length of the previous song. Thanks davidedmundson.
* Get rid of the 1px outline on the volume slider groove.
* The new volume slider layout will now be coloured based on the desktop theme.
* The previous volume slider theme/colouring (light blue on gray) can be selected in the settings.
* Add time elapsed & time left next to the song's progressbar like the default media controller widget. Both are toggleable, along with the option to show the total duration of the song.

v16 - March 15 2017 6 months ago

* Make the icon+label into a button that opens the context menu.
* You can now drag a microphone onto a recording app to change it's input. I only tested this with SimpleStreamRecorder and it added recorded both the desktop output and the microphone output at the same time rather than switching from one to the other.
* Overlay 'emblem-unlocked' when app isn't using the default speaker/mic. I may change the icon if a better one is recommended.
* Fuss with the volume slider triangle. It will now be thicker when volume is boosted.
* Make the group title (Apps/Mics/Speakers) into a button. It will probably be used for filtering unwanted streams in the future, but for now it just lists the items in it's group.
* Fix the label/icon when using the echo-cancel pulseaudio module.

v15 - March 14 2017 6 months ago

* Reskin the volume sliders to be triangular similar to kmix/win7.
* Allow placing the media controller at the top of the popup.
* Make the media controller slider taller.
* Scale the widget based on the DPI.
* Remove context menu link to the kcm like the default widget. It's still availble with "Audio Volume Settings..." > "Audio Volume".
* Map speakers with names starting with "bluez_sink." to a bluetooth icon.
* Add a properties dialog listing all the values for a speaker/app/microphone.
* Use 'google-chrome' icon for "chrome (deleted)" streams.
* Use the "microphone volume/mute" icons from the OSD for a microphones mute button.
* Add toggle for showing the OSD.
* [upstream] Mute volume when the slider is at 0%.
* When using the mediakeys, jump to 100%/0% if less than 1 step away.
* Compare the port key for "headphone" instead of the localized "Headphone" when deciding on the icon.
* Fix the mute button icon's hover effects.
* Fix all strings for localization with i18n.
* Russian translations are available in RosaLinux's ABF: https://abf.rosalinux.ru/victorr2007/plasma5-applet-volumewin7mixer
* Use doubles instead of ints for the mpris2/media controller's position/duration which are in microseconds since it was overflowing on songs/movies longer than 33 minutes.

Full Changelog 1 year ago

https://github.com/Zren/plasma-applets/blob/master/org.kde.plasma.volumewin7mixer/Changelog.md

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
19
updated Mar 29 2017
added May 13 2016
downloads today
3
page views today 0