**KOT040188, **evtest пробовали? Sven вы вряд ли соберете из-за древности исходников.
Пробовал:
*$ KOT@dhcppc0:~> ls -l /dev/input/by-id/
**$ **итого 0
**$ **lrwxrwxrwx 1 root root 9 июля 23 18:26 usb-Logitech_Gaming_Mouse_G300-event-kbd → …/event2
**$ **lrwxrwxrwx 1 root root 9 июля 23 18:26 usb-Logitech_Gaming_Mouse_G300-event-mouse → …/event1
**$ **lrwxrwxrwx 1 root root 9 июля 23 18:26 usb-Logitech_Gaming_Mouse_G300-if01-event-kbd → …/event2
**$ *lrwxrwxrwx 1 root root 9 июля 23 18:26 usb-Logitech_Gaming_Mouse_G300-mouse → …/mouse0
Мышка есть, а где клавиатура?:\
А клавиатура сидит на интерфейсе PS/2. Вместо ls -l /dev/input/by-id/ воспользуйтесь cat /proc/bus/input/devices или showkey -k.
+
Дополнительная информация:
Покоряй и властвуй: Советы по работе в терминале. Часть 5 | Русскоязычная документация по Ubuntu](Покоряй и властвуй: Советы по работе в терминале. Часть 5 | Русскоязычная документация по Ubuntu)
Мультимедиа-клавиши — База знаний проекта Russian Fedora](Russian Fedora | Russian Fedora - сообщество русскоязычных участников международного проекта Fedora)
Multimedia Keys - Gentoo Linux WikiСвязка клавиш находящихся за пределами 255.](Code-remapping for xf86-input-evdev патч)
Воспользовался cat /proc/bus/input/devices
KOT@dhcppc0:~> cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=120013
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=046d Product=c246 Version=0110
N: Name="Logitech Gaming Mouse G300"
P: Phys=usb-0000:00:1d.3-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: PROP=0
B: EV=17
B: KEY=ffff0000 0 0 0 0 0 0 0 0
B: REL=103
B: MSC=10
I: Bus=0003 Vendor=046d Product=c246 Version=0110
N: Name="Logitech Gaming Mouse G300"
P: Phys=usb-0000:00:1d.3-1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.1/input/input2
U: Uniq=
H: Handlers=kbd event2
B: PROP=0
B: EV=10001b
B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe
B: ABS=f00 0
B: MSC=10
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input4
U: Uniq=
H: Handlers=kbd event4
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input5
U: Uniq=
H: Handlers=kbd event5
B: PROP=0
B: EV=40001
B: SND=6
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA NVidia HDMI/DP"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input6
U: Uniq=
H: Handlers=event6
B: PROP=0
B: EV=21
B: SW=100
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA NVidia HDMI/DP"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input7
U: Uniq=
H: Handlers=event7
B: PROP=0
B: EV=21
B: SW=100
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA NVidia HDMI/DP"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input8
U: Uniq=
H: Handlers=event8
B: PROP=0
B: EV=21
B: SW=100
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA NVidia HDMI/DP"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input9
U: Uniq=
H: Handlers=event9
B: PROP=0
B: EV=21
B: SW=100
KOT@dhcppc0:~> cat /proc/bus/input/devices
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=120013
B: KEY=4 2000000 3803078 f800d001 feffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=046d Product=c246 Version=0110
N: Name="Logitech Gaming Mouse G300"
P: Phys=usb-0000:00:1d.3-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: PROP=0
B: EV=17
B: KEY=ffff0000 0 0 0 0 0 0 0 0
B: REL=103
B: MSC=10
I: Bus=0003 Vendor=046d Product=c246 Version=0110
N: Name="Logitech Gaming Mouse G300"
P: Phys=usb-0000:00:1d.3-1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.1/input/input2
U: Uniq=
H: Handlers=kbd event2
B: PROP=0
B: EV=10001b
B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe
B: ABS=f00 0
B: MSC=10
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input4
U: Uniq=
H: Handlers=kbd event4
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input5
U: Uniq=
H: Handlers=kbd event5
B: PROP=0
B: EV=40001
B: SND=6
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA NVidia HDMI/DP"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input6
U: Uniq=
H: Handlers=event6
B: PROP=0
B: EV=21
B: SW=100
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA NVidia HDMI/DP"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input7
U: Uniq=
H: Handlers=event7
B: PROP=0
B: EV=21
B: SW=100
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA NVidia HDMI/DP"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input8
U: Uniq=
H: Handlers=event8
B: PROP=0
B: EV=21
B: SW=100
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA NVidia HDMI/DP"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input9
U: Uniq=
H: Handlers=event9
B: PROP=0
B: EV=21
B: SW=100
Я так понял моя клавиатура это AT Translated Set 2 keyboard
KOT@dhcppc0:~> ./evtest /devices/platform/i8042/serio0/input/input0
bash: ./evtest: Нет такого файла или каталога
Видимо я что-то не так ввожу, поправте меня:shame:
Попробовал showkey -k
KOT@dhcppc0:~> showkey -k
Couldn't get a file descriptor referring to the console
Читаю дополнительную информацию.Shame
Shame
[FONT=Times New Roman]evtest /dev/input/event0
showkey -k запускается в другой виртуальной консоли Сtrl+Alt+F1
[/FONT]
KOT@dhcppc0:~> ./evtest /dev/input/event0
bash: ./evtest: Нет такого файла или каталога
KOT040188 wrote:
> KOT@dhcppc0:~> ./evtest /dev/input/event0
> bash: ./evtest: Нет такогофайла или каталога
Зачем вы запускаете из текущей директории?
Просто: ‘evtest /dev/input/event0’
На всякий случай, программа входит в пакет input-utils.
KOT@dhcppc0:/> evtest /dev/input/event0
evtest: Permission denied
C правами суперпользователя надо запускать:
sudo evtest /dev/input/event0
KOT040188 wrote:
> KOT@dhcppc0:/> evtest /dev/input/event0
> evtest: Permission denied
Попробуйте запустить с правами root.
Вопщем понажимал четыре нужных мне кнопки copy, cut, pase, undo и вот что выдало:
Event: time 1343237737.237065, type 4 (Misc), code 4 (ScanCode), value 98
Event: time 1343237737.237084, -------------- Report Sync ------------
Event: time 1343237737.327418, type 4 (Misc), code 4 (ScanCode), value 98
Event: time 1343237737.327438, -------------- Report Sync ------------
Event: time 1343237743.674186, type 4 (Misc), code 4 (ScanCode), value 88
Event: time 1343237743.674207, -------------- Report Sync ------------
Event: time 1343237743.773212, type 4 (Misc), code 4 (ScanCode), value 88
Event: time 1343237743.773232, -------------- Report Sync ------------
Event: time 1343237744.758521, type 4 (Misc), code 4 (ScanCode), value 8a
Event: time 1343237744.758541, -------------- Report Sync ------------
Event: time 1343237744.892381, type 4 (Misc), code 4 (ScanCode), value 8a
Event: time 1343237744.892402, -------------- Report Sync ------------
Event: time 1343237745.665084, type 4 (Misc), code 4 (ScanCode), value 97
Event: time 1343237745.665105, -------------- Report Sync ------------
Event: time 1343237745.778638, type 4 (Misc), code 4 (ScanCode), value 97
Event: time 1343237745.778658, -------------- Report Sync ------------
Тоесть code не выдает только value и что с ним делать дальше непонятно:\
Дальше привязываете scancode к keycode согласно приведенной информации:
Event: time 1343237737.237065, type 4 (Misc), code 4 (ScanCode), value 98 # поскольку я не знаю в какой последовательности нажимались кнопки, то допустим, что это copy
Event: time 1343237737.237084, -------------- Report Sync ------------
Event: time 1343237737.327418, type 4 (Misc), code 4 (ScanCode), value 98
Event: time 1343237737.327438, -------------- Report Sync ------------
Event: time 1343237743.674186, type 4 (Misc), code 4 (ScanCode), value 88 # допустим cut
Event: time 1343237743.674207, -------------- Report Sync ------------
Event: time 1343237743.773212, type 4 (Misc), code 4 (ScanCode), value 88
Event: time 1343237743.773232, -------------- Report Sync ------------
...и т.д.
Обратите внимание, что далее в кач-ве значений scancode берутся исходя из evtest, для более детальной информации обратитесь к сообщениям ядра: dmesg | tail
- Узнаете соответствующие коды кнопок, например:
~> xmodmap -pke | grep -i "copy\|cut\|pas\|und"
keycode 139 = Undo NoSymbol Undo
keycode 141 = XF86Copy NoSymbol XF86Copy
keycode 143 = XF86Paste NoSymbol XF86Paste
keycode 145 = XF86Cut NoSymbol XF86Cut
- C помощью текстового редактора создаете скрипт (например, setkeys.sh) следующего содержания:
#!/bin/bash
setkeycodes 98 133 # сopy, c учетом разницы между xev и evtest будет 141-8=133
setkeycodes 88 137 # cut, будет 137, а не 145
...и т.д.
- Делаете скрипт исполняемым:
chmod +x /путь/до/setkeys.sh
- Запускаете скрипт и проверяете значения keycode c помощью xev:
sudo sh /путь/до/setkeys.sh && xev
- Если все в порядке, то для автоматических изменений после перезагрузки системы отредактируйте файл /etc/init.d/after.local, добавив:
/путь/до/setkeys.sh
- Далее идете сюда](http://avm-xandry.blogspot.com/2012/05/systemd-afterlocal.html) и делаете все как там расписано.
- Перезагружаетесь.
В качестве примера:
# evtest /dev/input/event0
...
Event: time 1343259012.984846, type 4 (Misc), code 4 (ScanCode), value 2a
Event: time 1343259012.984852, type 1 (Key), code 42 (LeftShift), value 1 # scancode 2a соответствует keycode 42
...
Event: time 1343259013.074329, -------------- Report Sync ------------
Event: time 1343259016.347997, type 4 (Misc), code 4 (ScanCode), value 0f
Event: time 1343259016.348003, type 1 (Key), code 15 (Tab), value 1
Поменяем клавиши местами:
# setkeycodes 2a 15
# setkeycodes 0f 42
Проверим:
# evtest /dev/input/event0
...
Event: time 1343259068.543899, type 4 (Misc), code 4 (ScanCode), value 2a
Event: time 1343259068.543905, type 1 (Key), code 15 (Tab), value 1 # теперь наоборот scancode 2a соответствует keycode 15
...
Event: time 1343259068.665965, -------------- Report Sync ------------
Event: time 1343259072.771724, type 4 (Misc), code 4 (ScanCode), value 0f
Event: time 1343259072.771732, type 1 (Key), code 42 (LeftShift), value 1
Вам будет полезно почитать: LXF118:keyboard — Linuxformat
**aliaksei1818 **спасибо вам большое все получилось, клавиши видятся системой, но есть нюансы. Во первых в “Комбинации клавиш и росчерки” не удается использовать клавишу undo, выдает ошибку “Нажатая клавиша не поддерживается в Qt” (на всякий случай undo-value 88). Во вторых в “Комбинации клавиш” я добавляю дополнительные клавиши на дествия соответственно копировать-copy, вырезать-cut, вставить-paste, но они действуют только в текстовых полях а хотелось бы что-бы везде в файловом менеджере и др. То-есть есть ли способ повесить на клавишу copy комбинацию ctrl+c, cut-ctrl+x, paste-ctrl+v. Пробовал настроить это в “Специальные действия-имитация ввода с клавиатуры”, но что-то не работает.
Какая сейчас используется модель клавиатуры:
Alt+F2 -> kcmshell4 kcm_keyboard
Alt+F2 -> kcmshell4 standard_actions -> в кач-ве комбинации клавиш выберите: дополнительная
Какая сейчас используется модель клавиатуры:
Alt+F2 -> kcmshell4 kcm_keyboard
Generic | Обычная 101-клавишная.
Alt+F2 -> kcmshell4 standard_actions -> в кач-ве комбинации клавиш выберите: дополнительная
Я так и делаю, но оказалось что клавиши не работают в Dolphin, а в Krusader работают и еще работают не во всех текстовых полях, закономерность выявить не удалось.
По поводу undo, есть такой косяк, воспользуйтесь др. значением keycode:
xmodmap -pke
Насчет остального не знаю, только что присвоил кнопке keycode 141 = XF86Copy, все работает.
Да и еще, по поводу имитации ввода с клавиатуры, также все нормально:
Добавить -> Глобальная комбинация клавиш -> Имитация ввода с клавиатуры -> Активация (нажимаете клавишу сopy) -> Действие (Ctrl+C).
Странное дело после нескольких перезагрузок клавиши заработали везде. Назначил undo другой keycode и опять же после нескольких перезагрузок он заработал везде кроме firefox, не хочет в нем работать и всё тут. Странно…
Снова подниму тему. Неожиданно обнаружил что в приложениях запущеных от root клавиши не работают, подскажете что нужно сделать чтобы они заработали. И по прежнему не работает undo в firefox, придется наверное перебирать значения keycode пока не зароботает…
А зачем Вам запускать приложения от имени root? Комбинации клавиш для root настраиваются от имени root:
kdesu systemsettings
По поводу firefox, привяжите комбинацию клавиш с помощью “Имитация ввода с клавиатуры”.