Как мне включить подсветку Caps Lock с помощью xset? - PullRequest
9 голосов
/ 09 октября 2011

Я написал небольшой скрипт fetchmail, который проверяет удаленный сервер и воспроизводит аудиофайл при получении новой почты.Я также хотел включить один из индикаторов клавиатуры, когда почта была доступна, но я столкнулся с проблемой.Я могу включить индикатор блокировки прокрутки следующим образом:

/usr/bin/xset led named "Scroll Lock"

Но я не могу включить Caps Lock таким же образом:

/usr/bin/xset led named "Caps Lock"

Я попытался указатьключ с номером (1-6), но, несмотря на изменение загадочной «маски светодиодов» (видимой с «xset q»), я не увидел никаких изменений в свете.

Это сломано, потому что я нанес на карту мои заглавные буквыКлавиша блокировки, как еще один Ctrl?

В ~ / .Xmodmap у меня есть:

keycode 66 = Control_L
clear Lock
add Control = Control_L

Я не хочу включать и отключать заглавные буквы, только свет.Есть ли способ сделать это?

Дальнейшее объяснение

Это на машине x86 kubuntu lucid, но позже я перейду на debian.Я запускаю скрипт как непривилегированный пользователь в демоне python.Запуск того же скрипта, что и root, не будет работать, потому что fetchmail настроен для меня как пользователя.И наконец, все это выполняется в сеансе tmux.

Когда я начал этот процесс, я прочитал о setleds, но, похоже, он ограничен терминалами в сеансах не x.

Вход в систему от имени root и запуск 'setleds -D + caps </ dev / tty7' работает, но при запуске sudo setleds -D + caps </ dev / tty7 'выдается ошибка отказа в разрешении. </p>

Команда xset кажется идеальной для моего приложения, она просто отказывается менять подсветку Caps Lock.

Ответы [ 3 ]

12 голосов
/ 09 октября 2011

Выполнить под root:

setleds -D +caps < /dev/console

хак, но у меня работает :) 1006 *

1 голос
/ 09 октября 2011

Это должно быть xset?Вы когда-нибудь использовали setleds?

setleds -D +caps
setleds -D -caps

Краткий обзор: Linux / Unix Команда: setleds

0 голосов
/ 04 ноября 2018

xset без root привилегий

Редактировать /usr/share/X11/xkb/compat/ledcaps один раз, используя sed.Это изменение остается постоянным, независимо от каких-либо перезагрузок.

$ sudo sed -i 's|\!allowExplicit|allowExplicit|g' /usr/share/X11/xkb/compat/ledcaps

После выхода и повторного входа светодиод Caps Lock теперь может управляться без каких-либо привилегий root с помощью команд:

$ xset led named 'Caps Lock'
$ xset -led named 'Caps Lock'
...