
Source (link to git-repo or to original if based on someone elses unmodified work): https://github.com/Zren/plasma-applet-volumewin7mixer
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.
* Can volume boost to 150% with the context menu
* Can switch default speaker/microphone (and move all app streams to the device) with the context menu
* Media Playback Controls
* Keyboard Shortcuts (See config for a list). I recommend assigning Meta+V as the widget's Global Shortcut.
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.
Arch: pacman -S plasma5-applets-volumewin7mixer
Translations: Dutch, French
Translators: https://github.com/Zren/plasma-applet-volumewin7mixer/tree/master/package/translate#new-translations
v26 - November 20 2020 1 month ago
* Support Plasma 5.20's osd.show(percent, maxPercent).
* Fix workaround for opening custom popup when in system tray.
* Use radio button instead of a checkmark for default device (Issue #19) with a QQC2 ToolTip on hover.
* Update i18n scripts.
* Use some of plasma-pa's improvements on port selection.
* Add support for left clicking device icon to set default device instead of showing the context menu by @linchangyi (Pull Request #20 and #21)
* Applet name correction in documentation by @luema (Pull Request #18)
v26 - November 20 2020 1 month ago
* Support Plasma 5.20's osd.show(percent, maxPercent).
* Fix workaround for opening custom popup when in system tray.
* Use radio button instead of a checkmark for default device (Issue #19) with a QQC2 ToolTip on hover.
* Update i18n scripts.
* Use some of plasma-pa's improvements on port selection.
* Add support for left clicking device icon to set default device instead of showing the context menu by @linchangyi (Pull Request #20 and #21)
* Applet name correction in documentation by @luema (Pull Request #18)
v25 - June 24 2020 6 months ago
* Only jump to 0%/100% if there's less than `step/2` remaining (Issue #17)
* Use `kmix` icon instead of the `speaker` icon for "speaker" pulseaudio sinks. It looks more like a speaker.
* Increment using config step percentage when scrolling the sliders themselves.
* Show Plasma 5.14's VolumeObject.rawChannels in the PulseObject's properties popup.
* Use aec_method="webrtc" argument with echocancel.
v24 - January 28 2019 1 year ago
* Add @RValeye's french translations (Issue #8).
* Add @Vistaus dutch translations (Pull Request #9).
* Round up the volume percentage increment to avoid 50 => 59% instead of 60% when you have 10 steps.
* Scale properties dialog sizes by dpi + fix the headings when scrolling.
* Code cleanup.
v23 - June 5 2018 2 years ago
* Add "Profile" submenu for devices to quickly switch HDMI => Speakers for certain laptops, or from Stereo to Surround. Creating a submenu required a workaround to avoid a SegFault (plasmashell crash). While the workaround does work, please report if plasmashell crashes when opening a device's context menu.
* Don't send multiple "set volume" events when changing a left/right/etc channel volume.
* Add ability to open the a stream's context menu via the keyboard "Menu" key.
* Attempts to fix the Media Controller's various glitches.
v22 - December 26 2017 3 years ago
* Reimplement mouse wheel mute, wheel to control volume which was accidentally removed in the v21 refactor.
v21 - December 6 2017 3 years ago
* Add (proper) support for use in the system tray. Will open in it's own popup window.
* Unchecking echo cancellation will also uncheck the "list to device" if listening to the echo cancelled stream.
v20 - November 11 2017 3 years ago
* Use the same shape for the slider handle as Windows 7.
* Automatically close popup when selecting default device (can disable in config).
* Implement toggle for echo cancelling and microphone loopback.
* Show checkmark next to the default speaker/mic when 2+ devices.
* Hide virtual streams by default (configurable).
* Scale panel icon to the same maximum size as the other icons in Plasma 5.10.
* Begin packaging translations in the *.plasmoid (requires KDE Frameworks v37 to work). Reused some translations from the default volume and mediacontroller widgets.
v19 - March 29 2017 3 years 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 3 years ago
* Raised minimum requirements to Plasma 5.8
* [upstream] Add volume feedback
* Show current version in the config.
v17 - March 21 2017 3 years 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 3 years 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 3 years 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 3 years ago
https://github.com/Zren/plasma-applets/blob/master/org.kde.plasma.volumewin7mixer/Changelog.md
Zren
3 years ago
Report
rocky7x
3 years ago
Report
Zren
3 years ago
Report
rocky7x
3 years ago
Report
tarbos
4 years ago
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
4 years ago
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
4 years ago
* 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
Zren
3 years ago
Preview: https://streamable.com/w7gzh
Report
Zren
4 years ago
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
tarbos
4 years ago
Report
aramgrigoryan
4 years ago
Report
Zren
4 years ago
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