Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Горячие клавиши на 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». Последняя строка добавлена, что исправить глюк — у меня иногда после того, как устройство просыпается, звуковая плата из спячки не выходит.

23 комментария
NeonXP 2012

Meta? Странно, обычно она обозначается как Super. Или может я что-то путаю...

Евгений Степанищев (bolknote.ru) 2012

Комментарий для NeonXP:

Это же не Fn, это просто клавиша с домиком.

hshhhhh (hshhhhh.name) 2012

Это же не Fn, это просто клавиша с домиком.

Super -​-​ это win который.
Meta -​-​ обычно альт же.

Анивай странный способ ставить сторонний софт для перехвата клавиатуры, унити/гном иличто там стоит должно уметь.

Евгений Степанищев (bolknote.ru) 2012

Комментарий для hshhhhh.name:

На «тошке» у меня «alt» высвечивается у меня этой программой как «ALT», а «домик» — как «META». Вот тут можно посмотреть как клавиатура выглядит: http://www.priceindia.org/laptop/wp-content/uploads/2011/11/toshiba-ac100-keyboard.jpg

Анивай странный способ ставить сторонний софт для перехвата клавиатуры, унити/гном иличто там стоит должно уметь.

Это Лубунта, там LXDE+OpenBox, не знаю как это там делается, ничего не нашёл. Там софт-то,… небольшая программа на Си, которая слушает специальные файлы, которые есть в системе.

Валентин 2013

Комментарий для Евгения Степанищева:

Подскажите, пожалуйста, как установить на Тошибу ас100 (lubunta) input-event-daemon.

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Валентин:

Я уж и не помню. Кажется, я его просто скомпилировал.

Валентин 2013

Комментарий для Евгения Степанищева:

Нашел 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. Буду благодарен, если подскажите, что делаю не так.

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Валентин:

sudo /usr/local/bin/input-event-daemon -c /ect/input-event-daemon.confi

Валентин 2013

Комментарий для Евгения Степанищева:

Большое спасибо за совет, однако получил снова no such file or directory,хотя еще проверил sudo $PATH и там присутствует /usr/local/bin/

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Валентин:

Что выдают команды
ls /usr/local/bin/input-event-daemon
и
ls /ect/input-event-daemon.confi
?

Валентин 2013

Комментарий для Евгения Степанищева:

-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

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Валентин:

Хм… Ну так положите конфиг в /etc/, а input-event-daemon в /usr/local/bin/
Я почему-то из вашего первого комментария понял, что вы так и сделали.

Валентин 2013

Комментарий для Евгения Степанищева:

Сегодня проверил снова 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

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Валентин:

По переписке отладить не берусь. Вроде, всё правильно.

Валентин 2013

Комментарий для Евгения Степанищева:

Большое спасибо за помощь. Думаю осталась какая-то мелочь. Попробую разобраться.

Валентин 2013

Комментарий для Евгения Степанищева:

Все получилось, однако пришлось перекомпелировать input-event-daemon.
Еще раз спасибо за горячие клавиши.
Остался один вопроc:как запустить их при загрузке? (добавление строки @input-event-daemon в autostart не дало результата)
 

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Валентин:

Увы, я не знаю что такое autostart. Я добавил строку
/usr/local/bin/input-event-daemon -c /etc/input-event-daemon.conf
в файл /etc/rc.local

Валентин 2013

Комментарий для Евгения Степанищева:

Все работает! Спасибо!

Валентин 2013

Комментарий для Евгения Степанищева:

После загрузки клавиши MENU, SEARCH, META + SYSRQ (копия экрана на desktop)сразу не поключаются, а начинают работать, если загрузить input-event-daemon из-под root.
Eсли просто загрузить input-event-daemon в терминале, то получается
input-event-daemon: open (/dev/input/event0):Permission denied
Если править вручную Permission, то правка пропадает после перезагрузки.

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Валентин:

rc.local как раз из-под рута должен пускать.

Валентин 2013

Комментарий для Евгения Степанищева:

Как я понял, поскольку я вхожу как юзер, а 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 не просыпается,то нелзя ли дописать в конфиг похожее условие для просыпания.

Евгений Степанищев (bolknote.ru) 2013

Комментарий для Валентин:

Поскольку у меня АС100 не просыпается,то нелзя ли дописать в конфиг похожее условие для просыпания

Можно, наверное. Только у меня нет желания этим заниматься, у меня-то он просыпается.

Валентин 2013

Комментарий для Евгения Степанищева:

Еще раз благодарю за прекрасные горячие клавиши!