nixp.ru v3.0

27 мая 2017,
суббота,
18:50:44 MSK

DevOps с компанией «Флант»
Chrome написал 8 декабря 2004 года в 13:51 (1412 просмотра) Ведет себя неопределенно; открыл 21 тему в форуме, оставил 67 комментариев на сайте.

http://www.ixbt.com/peripheral/a4tech-kbs2680.shtml

Кто смог настроить мультимедиа-кнопки данного девайса в Linux/FreeBSD ?

Какие есть идеи.

Во-первых, обратите внимание на мой файл ~/.inputrc. В руководстве по настройке русского языка в Slackware был пример этого файла, однако, замечательная мысль распознавания искейп-последовательностей была в нем реализована далеко не полно.

set convert-meta off
set output-meta on
set input-meta on
set show-all-if-ambiguous on
"\e[1~" beginning-of-line           # Home
"\e[2~" " "                         # Insert
"\e[3~" delete-char                 # Delete
"\e[4~" end-of-line                 # End
"\e[5~"                             # Page Up
"\e[6~"                             # Page Down
"\e[C"  forward-char                # Right Arrow
"\e[D"  backward-char               # Left Arrow
"\e[A"  previous-history            # Up arrow
"\e[B"  next-history                # Down Arrow
"\e[P": "logout\C-m"                # Pause/Break - Выход из оболочки
"\e[[A": "mount /dev/flash\C-m"     # F1 - Монтирование флеш-драйва
"\e[[B": "umount /dev/flash\C-m"    # F2 - Демонтирование флеш-драйва
"\e[[C": "mount /dev/cdrom\C-m"     # F3 - Монтирование резака
"\e[[D": "umount /dev/cdrom\C-m"    # F4 - Демонтирование резака
"\e[[E": "eject /dev/cdrom\C-m"     # F5 - Выдвинуть лоток ODD
"\e[17~": "eject -t /dev/cdrom\C-m" # F6 - Задвинуть лоток ODD
"\e[18~":                           # F7 - UNBINDED
"\e[19~":                           # F8 - UNBINDED
"\e[20~": "startx\C-m"              # F9 - Запуск Х-сервера
"\e[21~": "logout\C-m"              # F10 - Выход из оболочки
"\e[23~": "reboot\C-m"              # F11 - Перезагрузка системы
"\e[24~": "halt\C-m"                # F12 - Остановка системы
"\e[25~":                           # F13 - UNBINDED
"\e[26~":                           # F14 - UNBINDED
"\e[28~":                           # F15 - UNBINDED
"\e[29~":                           # F16 - UNBINDED
"\e[31~":                           # F17 - UNBINDED
"\e[32~":                           # F18 - UNBINDED
"\e[33~":                           # F19 - UNBINDED
"\e[34~":                           # F20 - UNBINDED

Теперь вопрос всем обладателям клавиатур с мультимедийными кнопками: распознаются ли в консоли сигналы нажатия мультимедиа-кнопок как искейп-последовательности? Проверить это можно, напомню, в приглашении

hostname login:

Если да, сообщите об этом, чтобы я знал — заказывать мне клаву или нет :-))

Если же не распознаются — есть идеи как заставить работать кнопки другим способом??

Теперь, что касается Х-сервера. Вот здесь я не очень разбираюсь — если именно данной модели клавитуры нет в списке поддерживаемых (в xorgconfig), то шансов настроить дополнительные кнопки нет?

PS Как вы считаете, резонно линуксоиду забить на манипулятор типа «мышь» как на класс и просто поискать клаву с touch-pad’ом? Благо, клавостроительныя промышленность сейчас на подъеме…

PPS Пришла в голову мысль, что такие компании, как Logitech, A4Tech (но не Genius) должны быть ярыми поборниками систем-диалектов UNIX…

Genie

у меня: USB Sven 650 Internet

8 дополнительных кнопок.

запускаем xev, нажимаем кнопки и смотрим коды, которые они выдают.

после этого — файлик с соотвествием «КОД XF86Клавиша» скармливается xmodmap-у.

буду дома, приведу тут файлики.

Genie

Для иксов у меня такие настройки (в текстовой консоли я не сижу, за редким исключением)

$ cat ~/.fvwm/sven650internet
keycode 162=XF86AudioPlay
keycode 164=XF86AudioStop
keycode 160=XF86AudioMute
keycode 174=XF86AudioLowerVolume
keycode 176=XF86AudioRaiseVolume
keycode 144=XF86AudioPrev
keycode 153=XF86AudioNext
keycode 161=XF86Calculator
keycode 222=XF86PowerOff
keycode 223=XF86Sleep
keycode 227=XF86WakeUp

подгружается из ~/.xsession так:

xmodmap ${HOME}/.fvwm/sven650internet

соотвественно, используются клавиши настройками fvwm:

$ grep '^Key XF' ~/.fvwm/keys.hook
Key XF86AudioStop A     A       Exec exec xmms -s
Key XF86AudioPlay A     A       Exec exec xmms -t
Key XF86AudioNext A     A       Exec exec xmms -f
Key XF86AudioPrev A     A       Exec exec xmms -r
Key XF86AudioLowerVolume A S    Exec exec aumix -d /dev/mixer -w-5
Key XF86AudioLowerVolume A N    Exec exec aumix -d /dev/mixer1 -w-5
Key XF86AudioRaiseVolume A S    Exec exec aumix -d /dev/mixer -w+5
Key XF86AudioRaiseVolume A N    Exec exec aumix -d /dev/mixer1 -w+5
Key XF86Calculator A    S       Exec exec aumix -I -d /dev/mixer
Key XF86Calculator A    N       Exec exec aumix -I -d /dev/mixer1
Key XF86AudioMute A     S       Exec exec aumix -d /dev/mixer -w0
Key XF86AudioMute A     N       Exec exec aumix -d /dev/mixer1 -w0
Key XF86Sleep   A       A       Exec exec xlock -remote -nolock -mode blank

Для консоли же имеет смысл поглядеть на lineakd и hotkeys.

Chrome

Это замечательно.

Значит, можно смело покупать клаву?

А где взять xev ?

Master
Chrome
А где взять xev ?

В XFree/Xorg есть в комплекте.

Genie

ну, будь у тебя Debian, я бы сказал, что:

$ dpkg -S bin/xev
xbase-clients: /usr/X11R6/bin/xev

но как это в Slackware — Master-у виднее.

xev — X Event Viewer — стандартный (базовый) клиент. по умолчанию должен быть.

Покупать — для начала, поспрошай в гугле ;)

Master

В asplinux 9.2:

$ rpm -q -f /usr/X11R6/bin/xev
XFree86-tools-4.3.0-42

В Slackware 10:

в пакете x11-6.7.0-i486-4.tgz

Dr. Evil
Genie
Для иксов у меня такие настройки (в текстовой консоли я не сижу, за редким исключением)

$ cat ~/.fvwm/sven650internet
keycode 162=XF86AudioPlay
keycode 164=XF86AudioStop
keycode 160=XF86AudioMute
keycode 174=XF86AudioLowerVolume
keycode 176=XF86AudioRaiseVolume
keycode 144=XF86AudioPrev
keycode 153=XF86AudioNext
keycode 161=XF86Calculator
keycode 222=XF86PowerOff
keycode 223=XF86Sleep
keycode 227=XF86WakeUp

подгружается из ~/.xsession так:

xmodmap ${HOME}/.fvwm/sven650internet

соотвественно, используются клавиши настройками fvwm:

$ grep '^Key XF' ~/.fvwm/keys.hook
Key XF86AudioStop A     A       Exec exec xmms -s
Key XF86AudioPlay A     A       Exec exec xmms -t
Key XF86AudioNext A     A       Exec exec xmms -f
Key XF86AudioPrev A     A       Exec exec xmms -r
Key XF86AudioLowerVolume A S    Exec exec aumix -d /dev/mixer -w-5
Key XF86AudioLowerVolume A N    Exec exec aumix -d /dev/mixer1 -w-5
Key XF86AudioRaiseVolume A S    Exec exec aumix -d /dev/mixer -w+5
Key XF86AudioRaiseVolume A N    Exec exec aumix -d /dev/mixer1 -w+5
Key XF86Calculator A    S       Exec exec aumix -I -d /dev/mixer
Key XF86Calculator A    N       Exec exec aumix -I -d /dev/mixer1
Key XF86AudioMute A     S       Exec exec aumix -d /dev/mixer -w0
Key XF86AudioMute A     N       Exec exec aumix -d /dev/mixer1 -w0
Key XF86Sleep   A       A       Exec exec xlock -remote -nolock -mode blank

Для консоли же имеет смысл поглядеть на lineakd и hotkeys.

Genie, а что делать, если xev при нажатии на одну из клавиш просто не реагирует, т.е. никакого кода на нее нет.

Genie
Genie, а что делать, если xev при нажатии на одну из клавиш просто не реагирует, т.е. никакого кода на нее нет.

ну, более другого, как поглядеть:

Для консоли же имеет смысл поглядеть на lineakd и hotkeys.

оба не столько для консоли, сколько вообще драйвера кнопок мультимедиа-клавиатур….

единственно, что сразу приходит в голову проблемного с ними — это то, что использовать тогда клавиши как стандартные X-события будет несколько напряжно.

может, это как раз в более новых версиях и работает — я как-то не слежу, мне вышеприведённых настроек более чем достаточно, и по xev все дополнительные клавиши видны…

конечно, будь у меня такая проблема — может что более определённо сказал… ;)

Dr. Evil

Genie,

сделал все, как описано в: http://www.nixp.ru/cgi-bin/go.pl?q=articles;a=multikeyboard

создал файл:

DrEvil:~ # ls | grep .xmodmaprc

.xmodmaprc

прописал в него:

DrEvil:~ # more .xmodmaprc

keycode 161 = XF86Calculater

keycode 223 = XF86LogOff

keycode 236 = XF86Mail

keycode 162 = XF86AudioPlay

keycode 164 = XF86AudioStop

keycode 153 = XF86AudioNext

keycode 144 = XF86AudioPrev

keycode 176 = XF86AudioRaiseVolume

keycode 174 = XF86AudioLowerVolume

keycode 160 = XF86AudioMute

keycode 237 = XF86Music

добавил в: DrEvil:/etc/X11/xinit # more xinitrc

#

# This should be the default

#

export TERM=xterm

xmodmap .xmodmaprc #вот эту строку

#

# choose a window manager

#

if test -n «$WINDOWMANAGER» ; then

но после перезагрузки Х

xev не видит моих изменений!

что делать? и что значит: Теперь можно настраивать свой оконный менеджер для работы с этими клавишами.

это как?

и последнее….

можно как-нибудь заставить работать дополнительные клавиши и на мыше?

спасибо!

Curu3MyHg
Dr._Evil
и последнее….

можно как-нибудь заставить работать дополнительные клавиши и на мыше?

Я думаю сам этим озаботиться в выходные..

Вот, нашел тут кое-что:

http://www.linuxforum.ru/index.php?s=80a1e75faf6aa14272b05a50776dfbbd&showtopic=1060

Genie
Dr._Evil
но после перезагрузки Х

xev не видит моих изменений!

что делать? и что значит: Теперь можно настраивать свой оконный менеджер для работы с этими клавишами.

это как?

xev не настраивает эти клавиши никак.

он только показывает события, передаваемые ему X-сервером. потому и называется X Event Viewer

а уже эти события (в данном случае — нажатия на клавиши) на уровне самого X-сервера можно сопоставить с определёнными событиями сервера. что и делается xmodmap.

Вот, нашел тут кое-что:

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

(предыдущего такого мне дома в луже кофе утопили :(( )