lxqt-panel icon indicating copy to clipboard operation
lxqt-panel copied to clipboard

[Feature request] Volume control plugin: linear scale and run alsamixer using QTerminal

Open redtide opened this issue 3 years ago • 4 comments

Is your feature request related to a problem? Please describe.

Currently I'm using PNMixer as replacement for the volume control plugin for 2 reasons:

  1. apparently I can't start alsamixer via terminal, which works with PNMixer using qterminal -e alsamixer command
  2. there is no normalized/linear scale, which is the same that alsamixer uses, the one in use is based on dB value only

Describe the solution you'd like

Have both command line and linear volume scale as described above. As additional reference I can say that the current scale is the default one used when running amixer -R (raw), the one I would like to use and that also alsamixer seems to display is when running amixer -M (mapped).

Describe eventual alternatives you've considered

I could try to add the requested features myself, but I'm not able to debug lxqt-panel from qt-creator ide; when I start it I get 3 empty panels without any way to add any element/plugin. Closing or keep open the system panel makes no difference. Is there some reference documentation? This is using Archlinux and current lxqt-panel git code.

Context

See above.

redtide avatar Nov 12 '21 00:11 redtide

can't start alsamixer via terminal

I'm not sure if/how the plugin parses arguments, but u can use a script for that

#!/bin/bash
qterminal -e alsamixer

I'm not able to debug lxqt-panel from qt-creator ide

U need to compile from terminal or add config to qtcreator, this is how i normally do: mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr .. && make && sudo make install Need to install because the panel will look for the plugins on specific folders according to prefix, so if it did find the plugins, it would be the system version. I think there was another location for the plugins on ~/.local folder but i'm not sure. It's probably better to remove the lxqt-panel package before that so pacman doesn't start throwing errors

Can't help with linear scale

elviosak avatar Nov 12 '21 17:11 elviosak

I'm not sure if/how the plugin parses arguments, but u can use a script for that

Thanks, I thought about that but I want to avoid to do it, so I would prefer if it was a simple enhancement or a possible change that I could contribute myself

It's probably better to remove the lxqt-panel package before that so pacman doesn't start throwing errors

this is not a problem, just that I'm not sure how to debug it once installed

redtide avatar Nov 12 '21 18:11 redtide

so I would prefer if it was a simple enhancement or a possible change that I could contribute myself

https://github.com/lxqt/lxqt-panel/blob/master/plugin-volume/volumebutton.cpp#L161 Just need to separate the command and args here with QProcess::splitCommand()

this is not a problem, just that I'm not sure how to debug it once installed

If u just need to see some output i think u just need to log with qDebug() and run the panel from the terminal

elviosak avatar Nov 12 '21 18:11 elviosak

Just need to separate the command and args here with QProcess::splitCommand()

Yes, the solution for it is in another plugin.

u just need to log with qDebug() and run the panel from the terminal

I prefer to debug steps in the IDE than spit messages, so I wrote a standalone application that implements what I need, but I have some difficult with the AlsaEngine code to get a proper solution that I would like to add in a PR to solve this issue, hope some dev will help at some point.

redtide avatar Nov 20 '21 13:11 redtide