wmix: added an option to disable grabbing the volume control keys
There may be some case where user would like to fall back to the original behaviour, for example if grabbing these keys could get in conflict with other applications. Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This commit is contained in:
parent
d83b160217
commit
67548f3b6a
|
@ -41,6 +41,7 @@
|
||||||
" -e <name> exclude channel, can be used many times\n" \
|
" -e <name> exclude channel, can be used many times\n" \
|
||||||
" -f <file> parse this config [~/.wmixrc]\n" \
|
" -f <file> parse this config [~/.wmixrc]\n" \
|
||||||
" -h print this help\n" \
|
" -h print this help\n" \
|
||||||
|
" -k disable grabing volume control keys\n" \
|
||||||
" -m <dev> mixer device [/dev/mixer]\n" \
|
" -m <dev> mixer device [/dev/mixer]\n" \
|
||||||
" -v verbose -> id, long name, name\n" \
|
" -v verbose -> id, long name, name\n" \
|
||||||
|
|
||||||
|
@ -64,6 +65,7 @@ void config_init(void)
|
||||||
config.mixer_device = (char *) default_mixer_device;
|
config.mixer_device = (char *) default_mixer_device;
|
||||||
config.mousewheel = 1;
|
config.mousewheel = 1;
|
||||||
config.scrolltext = 1;
|
config.scrolltext = 1;
|
||||||
|
config.mmkeys = 1;
|
||||||
config.wheel_button_up = 4;
|
config.wheel_button_up = 4;
|
||||||
config.wheel_button_down = 5;
|
config.wheel_button_down = 5;
|
||||||
config.scrollstep = 0.03;
|
config.scrollstep = 0.03;
|
||||||
|
@ -117,7 +119,7 @@ void parse_cli_options(int argc, char **argv)
|
||||||
config.verbose = false;
|
config.verbose = false;
|
||||||
error_found = false;
|
error_found = false;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
opt = getopt(argc, argv, ":d:e:f:hm:v");
|
opt = getopt(argc, argv, ":d:e:f:hkm:v");
|
||||||
if (opt == -1)
|
if (opt == -1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -158,6 +160,10 @@ void parse_cli_options(int argc, char **argv)
|
||||||
exit(0);
|
exit(0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'k':
|
||||||
|
config.mmkeys = false;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'm':
|
case 'm':
|
||||||
if (config.mixer_device != default_mixer_device)
|
if (config.mixer_device != default_mixer_device)
|
||||||
free(config.mixer_device);
|
free(config.mixer_device);
|
||||||
|
|
|
@ -34,6 +34,7 @@ extern struct _Config {
|
||||||
unsigned int osd : 1; /* show OSD? */
|
unsigned int osd : 1; /* show OSD? */
|
||||||
unsigned int mousewheel : 1; /* mousewheel enabled? */
|
unsigned int mousewheel : 1; /* mousewheel enabled? */
|
||||||
unsigned int scrolltext : 1; /* scroll channel names? */
|
unsigned int scrolltext : 1; /* scroll channel names? */
|
||||||
|
unsigned int mmkeys : 1; /* grab multimedia keys for volume control */
|
||||||
|
|
||||||
unsigned int wheel_button_up; /* up button */
|
unsigned int wheel_button_up; /* up button */
|
||||||
unsigned int wheel_button_down; /* down button */
|
unsigned int wheel_button_down; /* down button */
|
||||||
|
|
11
wmix/wmix.1x
11
wmix/wmix.1x
|
@ -40,6 +40,12 @@ Use config file instead of
|
||||||
\fB\-h\fR
|
\fB\-h\fR
|
||||||
Display list of command\-line options
|
Display list of command\-line options
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-k\fR
|
||||||
|
Disable grabbing the audio volume control keys on keyboard (see
|
||||||
|
.SM
|
||||||
|
.B BUGS
|
||||||
|
below)
|
||||||
|
.TP
|
||||||
\fB\-m\fR <\fIdevice\fP>
|
\fB\-m\fR <\fIdevice\fP>
|
||||||
Use specified mixer device instead of
|
Use specified mixer device instead of
|
||||||
.I /dev/mixer
|
.I /dev/mixer
|
||||||
|
@ -137,6 +143,11 @@ that a channel has been muted.
|
||||||
The X server allows only one application at a time to place a grab on a key,
|
The X server allows only one application at a time to place a grab on a key,
|
||||||
so if another application already claimed the volume control keys then \fBwmix\fP
|
so if another application already claimed the volume control keys then \fBwmix\fP
|
||||||
will warn you about it and continue without the functionality.
|
will warn you about it and continue without the functionality.
|
||||||
|
If on the other hand you encounter problem with applications that do
|
||||||
|
not work because they could not grab these keys (a typical symptom is
|
||||||
|
an X Error of type \fIBadAccess\fP with major opcode 33 \fIX_GrabKey\fP),
|
||||||
|
you can ask \fBwmix\fP to not grab them using the command line option
|
||||||
|
\fB-k\fP.
|
||||||
.LP
|
.LP
|
||||||
If you modify the configuration file, do not expect \fBwmix\fP to reload
|
If you modify the configuration file, do not expect \fBwmix\fP to reload
|
||||||
it automatically, this is considered a too costly feature for such a
|
it automatically, this is considered a too costly feature for such a
|
||||||
|
|
|
@ -93,7 +93,9 @@ int main(int argc, char **argv)
|
||||||
dockapp_init(display);
|
dockapp_init(display);
|
||||||
new_window("wmix", 64, 64);
|
new_window("wmix", 64, 64);
|
||||||
new_osd(DisplayWidth(display, DefaultScreen(display)) - 200, 60);
|
new_osd(DisplayWidth(display, DefaultScreen(display)) - 200, 60);
|
||||||
mmkey_install(display);
|
|
||||||
|
if (config.mmkeys)
|
||||||
|
mmkey_install(display);
|
||||||
|
|
||||||
config_release();
|
config_release();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue