Горячие клавиши на Toshiba AC100 в Ubuntu
В Лубунте (Lubuntu), которой я недавно ставил на Тошибу жены, почему-то не настроены горячие клавиши, идущие на смартбуке верхним рядом. Написал конфиг для программы input-event-daemon, может пригодится кому-нибудь. Дополнительно нужно поставить пакеты xdotool и wmctrl, остальное уже в Лубунте есть:
[Global]
# следим за событиями клавиатуры
listen = /dev/input/event0
# События крышки
listen = /dev/input/event4
[Keys]
# уменьшение яркости
META + F6 = echo $((`cat /sys/class/backlight/pwm-backlight/brightness` - 10)) > /sys/class/backlight/pwm-backlight/brightness
# увеличение яркости
META + F7 = echo $((`cat /sys/class/backlight/pwm-backlight/brightness` + 10)) > /sys/class/backlight/pwm-backlight/brightness
# включение/отключение радиомодулей (вайфай, блютуз)
META + F8 = rfkill $(rfkill list | fgrep -q yes && echo un)block all
# включение/выключение звука
META + F12 = a=$(amixer sget Master|fgrep -q '[off]'&&echo un)mute; for m in Master Speaker Headphone; do amixer -q sset "$m" $a; done
# показать/скрыть рабочий стол
MENU = wmctrl -k $(wmctrl -m|fgrep -q OFF&&echo on||echo off)
# уменьшить громкость
META + F10 = v=$((`amixer get Master|awk -F[\[%] '/[0-9]+%/ {print $2; exit}'`-10)); [ $v -lt 0 ] && v=0;amixer set Master $v%
# увеличить громкость
META + F11 = v=$((`amixer get Master|awk -F[\[%] '/[0-9]+%/ {print $2; exit}'`+10)); [ $v -gt 100 ] && v=100;amixer set Master $v%
# клавиша поиска теперь вызывает искалку
SEARCH = catfish &
# скриншот экрана на рабочий стол
META + SYSRQ = scrot 'screen-%Y-%m-%d_%s.png' -e 'chown "'$SUDO_USER'" "$f"; mv "$f" "/home/'$SUDO_USER'/Desktop"'
# Клавиша Delete, как в Маке
META + BACKSPACE = xdotool key Delete
[Switches]
# Сброс звуковой карты на подъём крышки
LID:0 = alsaucm -c tegraalc5632 reset
В качестве клавиши «Fn» выступает клавиша с «домиком», именно она опознаётся программой как «META». Последняя строка добавлена, что исправить глюк — у меня иногда после того, как устройство просыпается, звуковая плата из спячки не выходит.
Meta? Странно, обычно она обозначается как Super. Или может я что-то путаю...
Комментарий для NeonXP:
Это же не Fn, это просто клавиша с домиком.
Super -- это win который.
Meta -- обычно альт же.
Анивай странный способ ставить сторонний софт для перехвата клавиатуры, унити/гном иличто там стоит должно уметь.
Комментарий для hshhhhh.name:
На «тошке» у меня «alt» высвечивается у меня этой программой как «ALT», а «домик» — как «META». Вот тут можно посмотреть как клавиатура выглядит: http://www.priceindia.org/laptop/wp-content/uploads/2011/11/toshiba-ac100-keyboard.jpg
Это Лубунта, там LXDE+OpenBox, не знаю как это там делается, ничего не нашёл. Там софт-то,… небольшая программа на Си, которая слушает специальные файлы, которые есть в системе.
Комментарий для Евгения Степанищева:
Подскажите, пожалуйста, как установить на Тошибу ас100 (lubunta) input-event-daemon.
Комментарий для Валентин:
Я уж и не помню. Кажется, я его просто скомпилировал.
Комментарий для Евгения Степанищева:
Нашел bin и confi для input-event-daemon
( http://masu.6f.sk/index.php/Nsa310_buttons );
confi заменил на Вашу;скопировал
/usr/local/bin/input-event-daemon
/ect/input-event-daemon.confi
потом
chmod +x input-event-daemon
sudo ./input-event-daemon
но получил
sudo: unable to execute ./input-event-daemon:no such file or directory
хотя ls -ltr показывает присутствие файла.
Мои познания lubuntu любительские, связанные с покупкой АС100. Буду благодарен, если подскажите, что делаю не так.
Комментарий для Валентин:
sudo /usr/local/bin/input-event-daemon -c /ect/input-event-daemon.confi
Комментарий для Евгения Степанищева:
Большое спасибо за совет, однако получил снова no such file or directory,хотя еще проверил sudo $PATH и там присутствует /usr/local/bin/
Комментарий для Валентин:
Что выдают команды
ls /usr/local/bin/input-event-daemon
и
ls /ect/input-event-daemon.confi
?
Комментарий для Евгения Степанищева:
-bash:ls/usr/local/input-event-daemon:No such file or directory
ls:cannot access /ect/input-event-daemon.conf:No such file or directory
Комментарий для Валентин:
Хм… Ну так положите конфиг в /etc/, а input-event-daemon в /usr/local/bin/
Я почему-то из вашего первого комментария понял, что вы так и сделали.
Комментарий для Евгения Степанищева:
Сегодня проверил снова ls и вот результат,хотя ничего не трогал:
/usr/local/bin/input-event-daemon
/etc/input-event-daemon.conf
Потом попоробовал
sudo /usr/local/bin/input-event-daemon -c /etc/input-event-daemon.conf
и получил
sudo: unable to execute /usr/local/bin/input-event-daemon:no such file or directory
Комментарий для Валентин:
По переписке отладить не берусь. Вроде, всё правильно.
Комментарий для Евгения Степанищева:
Большое спасибо за помощь. Думаю осталась какая-то мелочь. Попробую разобраться.
Комментарий для Евгения Степанищева:
Все получилось, однако пришлось перекомпелировать input-event-daemon.
Еще раз спасибо за горячие клавиши.
Остался один вопроc:как запустить их при загрузке? (добавление строки @input-event-daemon в autostart не дало результата)
Комментарий для Валентин:
Увы, я не знаю что такое autostart. Я добавил строку
/usr/local/bin/input-event-daemon -c /etc/input-event-daemon.conf
в файл /etc/rc.local
Комментарий для Евгения Степанищева:
Все работает! Спасибо!
Комментарий для Евгения Степанищева:
После загрузки клавиши MENU, SEARCH, META + SYSRQ (копия экрана на desktop)сразу не поключаются, а начинают работать, если загрузить input-event-daemon из-под root.
Eсли просто загрузить input-event-daemon в терминале, то получается
input-event-daemon: open (/dev/input/event0):Permission denied
Если править вручную Permission, то правка пропадает после перезагрузки.
Комментарий для Валентин:
rc.local как раз из-под рута должен пускать.
Комментарий для Евгения Степанищева:
Как я понял, поскольку я вхожу как юзер, а rc.local запускает из-под рута MENU, SEARCH, META + SYSRQ , то они не работают. Удалось запустить MENU, SEARCH, добаив в rc.local две строчки :
chown USER:USER /dev/input/event0
chown USER:USER /dev/input/event4
Однако META + SYSRQ так и не работает.
Еще один вопрос. В конфиг в конце имеется пункт
Поскольку у меня АС100 не просыпается,то нелзя ли дописать в конфиг похожее условие для просыпания.
Комментарий для Валентин:
Можно, наверное. Только у меня нет желания этим заниматься, у меня-то он просыпается.
Комментарий для Евгения Степанищева:
Еще раз благодарю за прекрасные горячие клавиши!