- дополнительные клавиши
- Re: дополнительные клавиши
- Re: дополнительные клавиши
- Re: дополнительные клавиши
- Re: дополнительные клавиши
- Re: дополнительные клавиши
- Как заставить работать дополнительные кнопки USB-клавиатуры?
- 3 ответа 3
- unixforum.org
- Как задействовать дополнительные клавиши клавиатуры (Linux Mandriva 2010)
- Как задействовать дополнительные клавиши клавиатуры
- Re: Как задействовать дополнительные клавиши клавиатуры
- Re: Как задействовать дополнительные клавиши клавиатуры
- Re: Как задействовать дополнительные клавиши клавиатуры
- Re: Как задействовать дополнительные клавиши клавиатуры
- Re: Как задействовать дополнительные клавиши клавиатуры
- Re: Как задействовать дополнительные клавиши клавиатуры
- Re: Как задействовать дополнительные клавиши клавиатуры
- Настраиваем сочетания клавиш в Linux наподобие Mac OS X
- Linux. Настройка клавиатуры
- Почему я захотел изменить свою клавиатуру?
- Настройка переключения раскладки
- Ациклическое переключение раскладок
- Замечание
- Изменение клавиш
- Двоеточие и точка с запятой
- ESC и CapsLock
- Alt и Win
- Модификаторы
- Назначение модификатора как второе значение клавиши
- Дальнейшие изменения
- Замечание
- Интересный вариант BackSpace напоследок
дополнительные клавиши
Если стандартные типа громкости, мыла и т.п., то, как ни странно, Кедовой переключалкой — даже модель в xorg.conf прописывать не надо.
Re: дополнительные клавиши
lineak? там и OSD есть, если в списке «поддерживаемых» нет, то добавь с помощью xev.
Re: дополнительные клавиши
> Если стандартные типа громкости, мыла и т.п., то, как ни странно, Кедовой переключалкой — даже модель в xorg.conf прописывать не надо
если можно, чуть поподробнее:-)
Re: дополнительные клавиши
В Кедовом ЦУПе, там где про раскладку, выбирается тип клавы — и клавиши работают. Или в xorg.conf прописать в Section «InputDevice», Identifier «Keyboard0» Option «XkbModel» «a4techKB21» (в моём случае). У меня, по крайне мере, даже если клава в xorg.conf не прописана правильно была, громкость и др. кнопки работали.
Re: дополнительные клавиши
пускаешь xev и тыкаешь клавиши, смотришь как он в консоль ругается, выдираешь коды клавиш. Потом в
/.Xmodmap записываешь в виде:
keycode 164 = XF86AudioStop
keycode 160 = XF86AudioMute
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 176 = XF86AudioRaiseVolume
keycode 174 = XF86AudioLowerVolume
keycode 178 = XF86WWW
keycode 236 = XF86Mail
Re: дополнительные клавиши
ну, коды клавиш мне и xbindkeys показалю как их теперь забиндить на определенные команды?
Источник
Как заставить работать дополнительные кнопки USB-клавиатуры?
Я недавно купил USB-клавиатуру. Он имеет 12 дополнительных кнопок, но только 5 из них работают. В журналах нет сообщений «неизвестный скан-код». Evtest не может их обнаружить, он даже не может обнаружить работающую 5 (только обычные ключи). Ксев обнаруживает рабочую 5, но не другие. «cat /dev/input/by-path/pci-0000:00:02.0-usb-0:4:1.0-event-kbd» аналогичен evtest с более уродливым выводом. Фактически единственный способ, которым я смог обнаружить другие 7 ключей, — это USB-слежка с помощью wireshark. Так что моя клавиатура не неисправна.
Я использую Gentoo Linux с ядром gentoo-sources-2.6.30-r4, xorg-server-1.6.2-r1 и драйвером xf86-input-evdev версии 1.6.2-r1. Вот соответствующий раздел xorg.conf:
Я попытался узнать больше о таких опциях, как XkbModel, но страницы руководства не очень полезны. Я искал каждый вопрос [клавиатуры] здесь, но нашел только что-то похожее на окнах.
Что я могу сделать, чтобы ключи работали? Если это ошибка, где я должен сообщить об этом?
Обновление: вот вывод showkeys -s. Когда я это сделал, X-сервер не работал.
Я нажал дополнительные клавиши слева направо. Каждая клавиша имеет 2 строки (думаю, нажмите и отпустите), и только 5 рабочих обнаружены.
Обновление: я придумал действительно плохой способ сделать это. Я могу запустить tshark (интерфейс командной строки wireshark) в фоновом режиме, анализируя вывод и выполняя произвольные программы на соответствующих USB-пакетах. Существует серьезная проблема безопасности: любой пользователь, которому разрешено использовать дополнительные ключи, будет иметь возможность видеть любой USB и сетевой трафик. Единственное преимущество этого подхода в том, что он работает. Я выложу полную программу для этого после некоторой очистки.
3 ответа 3
Итак, моя программа работала в течение ночи, и она все еще работает, поэтому я публикую код. Это немного неопрятно, но работает. Я также напишу о том, как я это сделал, потому что это будет полезно для людей с не совсем моей клавиатурой. Программа нуждается в достаточно недавних libpcap и wireshark. Необходимо отладить debugfs (mount -t debugfs none_debugs /sys /kernel /debug) и загрузить модуль usbmon (modprobe -v usbmon).
Это программа, которая работает в фоновом режиме:
Как вы можете видеть, существует большой массив команд, индексируемый данными приложения из пакетов USB. Значения являются выданными командами. Я использую DBus, чтобы делать то, что должно быть сделано, но вы можете использовать xvkbd для генерации реальных событий нажатия клавиш (я обнаружил, что xvkbd очень медленный, для отправки простой комбинации клавиш требуются секунды). tshark-wrapper — это простая оболочка вокруг tshark, она запускает tshark от имени пользователя root и отключает stderr.
Есть проблема. Пользователю необходимо разрешение для запуска tshark от имени пользователя root без пароля. Это действительно очень плохо. Риск может быть уменьшен, если поместить больше оболочек в оболочку и меньше в скрипт Python и позволить пользователям запускать оболочку от имени пользователя root.
Теперь о том, как это сделать с другими клавиатурами. Я почти ничего не знаю о USB, и все же это было не так сложно. Большая часть моего времени была потрачена на выяснение того, как выполнять небуферизованное чтение из канала. Из вывода lsusb я знал, что моя клавиатура находится на втором USB-интерфейсе. Поэтому я начал захватывать с помощью wireshark на usbmon2. Мышь и другое оборудование создают много шума, поэтому отключите их или, по крайней мере, не двигайте мышь.
Первое, что я заметил, было то, что дополнительные ключи имеют идентификатор конечной точки 0x82, а обычные ключи имеют идентификатор конечной точки 0x81. В начале было несколько пакетов с 0x80. Это хорошо, это может быть легко отфильтровано:
Обычное нажатие клавиши:
Дополнительное нажатие клавиши:
Было легко увидеть, что нажатие клавиши генерирует 4 USB-пакета: 2 для нажатия, 2 для отпускания. В каждой паре первый пакет отправлялся с клавиатуры на ПК, а второй — наоборот. Казалось, ACK-ы с TCP. «ACK» был URB-SUBMIT, а обычный пакет был URB-COMPLETE. Поэтому я решил отфильтровать «ACK» и показывать только нормальные пакеты:
Теперь было только 2 пакета на нажатие клавиши. Каждая секунда имела нулевое поле значения приложения, а все остальные имели разные значения. Поэтому я отфильтровал нули и использовал другие значения для идентификации ключей.
Выпуск дополнительного ключа:
Моя клавиатура — Slimstar 220 (надеюсь, это не квалифицируется как спам, если она удаляется). Если у вас есть шансы того же типа, то немодифицированная программа будет работать. В противном случае, я думаю, что, по крайней мере, ценность приложения будет другой.
Если кому-то захочется написать настоящий драйвер на основе этих данных, пожалуйста, дайте мне знать. Мне не нравится мой уродливый хак.
Обновление: код теперь, надеюсь, защищен от перезагрузки.
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
Как задействовать дополнительные клавиши клавиатуры (Linux Mandriva 2010)
Модератор: Bizdelnick
Как задействовать дополнительные клавиши клавиатуры
Сообщение nilpointer » 23.12.2009 22:19
Re: Как задействовать дополнительные клавиши клавиатуры
Сообщение SLEDopit » 23.12.2009 23:03
Re: Как задействовать дополнительные клавиши клавиатуры
Сообщение ATIpro » 23.12.2009 23:07
Re: Как задействовать дополнительные клавиши клавиатуры
Сообщение AlexYeCu » 24.12.2009 00:35
Re: Как задействовать дополнительные клавиши клавиатуры
Сообщение SinClaus » 24.12.2009 10:07
Re: Как задействовать дополнительные клавиши клавиатуры
Сообщение AlexYeCu » 24.12.2009 11:21
Re: Как задействовать дополнительные клавиши клавиатуры
Сообщение SinClaus » 24.12.2009 14:35
Re: Как задействовать дополнительные клавиши клавиатуры
Сообщение nilpointer » 24.12.2009 22:34
Клавиатура подключена через конвертер ( PS/2 в USB ) и в оборудование определяет конвертер При возможности определить самостоятельно такой как у меня нет в списках A4Tech KL-7MU
Для Amarok в KDE я както настроил клавиши мультимедиа, а вот с остальными, как-то не очень.
Кроме мультимедиа еще работают XF86Back, XF86Forward, XF86HomePage, XF86Search и XF86Mail (настроил запуск Kmail), а
Cancel, XF86Reload, XF86Favorites, XF86Explorer, XF86Calculator никак не реагируют, но через xev как-бы определены.
Спасибо за инструкцию но куда именно все прописывать я так и не разобрался, так в тех папках что указано еще куча файлов и папок.
Я просто до этого момента этого никогда еще не делал.
Источник
Настраиваем сочетания клавиш в Linux наподобие Mac OS X
Раньше, у меня довольно часто возникала такая ситуация, когда одновременно работаешь в терминале и, например, в браузере.
После нескольких часов работы начинаешь путаться и в терминале вместо [Ctrl]+[Shift]+[C] нажимаешь [Ctrl]+[C], а в браузере наоборот. В итоге в терминале вы получаете прерывание а в браузере вместо ожидаемого эффекта у вас медленно прогружается дебаггер.
В один прекрасный момент меня это достало и я решил, что пора что-то менять.
До того как я переустановил на своей рабочей машине OSX на Linux, я успел привыкнуть к довольно приятной реализации сочетаний клавиш. А точнее к тому, что все основные операции, такие как «Вырезать», «Копировать» и «Вставить», все они используют кнопку [Cmd] (аналог кнопки [Win] на PC), а не [Ctrl], как это сделано по умолчанию в Linux и Windows. Это очень удобно, так как, повторюсь, если вы часто работаете в терминале, вы имеете единые сочетания клавиш для копирования и вставки как и во всех других приложениях, а прерывание всегда остается на своем месте [Ctrl]+[C].
Вы так же олучите профит от такого способа, если вы используете тайловый оконный менеджер, т.к. в большинстве случаев для использования стандартных операций и переключений между тэгами/окнами вам не придется снимать палец с вашего modkey
Конечно настраивать сочетания клавиш можно в конфигах каждого определенного приложения, но это слишком не удобно, к тому же не каждое приложение поддерживает такую настройку. По этому я решил просто забиндить стандартные сочетания клавиш на те, что нужны мне.
Т.е. нажимая [Win]+[C], ваш терминал будет думать, что вы нажимаете [Ctrl]+[Shift]+[C], а все остальные приложения, что [Ctrl]+[C].
Для реализации задуманного нам понадобятся программа, которая будет отслеживать наши нажатия, например xbindkeys или же можно воспользоваться штатными возможностями вашего оконного менеджера, и эмулятор нажатий на клавиши, их несколько: xdotool, xte и xvkbd.
Правда с первыми двумя у меня возникал один преинтереснийший глюк: если например вы нажимете [Win]+[A], эмулятор покорно передаст [Ctrl]+[A] в приложение, а приложение увидит что нажаты все три клавиши [Win]+[Ctrl]+[A] и не обработает такое сочетание. Этот весьма неприятный баг было не просто обнаружить, так как не помогала даже опция —clearmodifiers для xdotool, которая, казалось бы, специально для такого случая и создана. В xkdbb подобного поведения замечено не было.
Начнем, пожалуй с xbindkeys. Отключем все CapsLock, NumLock и прочие модификаторы, запускаем:
Открывается окошко, в окошке нажимаем сочетание [Win]+[A], в терминале получаем такой вывод:
где Mod4 — это наша клавиша [Win]. Это же можно использовать для написания конфига xbindkeys:
/.xbindkeysrc и пишем:
Теперь запустим xbindkeys:
И попробуем нажать [Win]+[A], эффект будет такой-же как и если бы вы нажали [Ctrl]+[A]
После того что вы убедитесь, что все работает, можно продолжить править кофиг, но перед следующим запуском нужно с начала завершить предыдущий процесс xbindkeys:
Ок, с этим разобрались, но как нам передавать различные сочетания клавиш, при нажатии одних и тех же кнопок, в зависимости от программы с которой мы работем?
На помощь приходит все тот же xdotool и xprop, с помощью которых мы определяем является ли активное окно терминалом.
Давайте напишем простенький скрипт и положим его в /bin/copypaste.sh:
Используйте xprop, если вы не знаете какой класс использует ваша программа:
и клик на окне
Не забываем сделать скрипт исполняемым:
Работает он вот так:
Это же и допишем в наш конфиг
Подобным образом настраиваем сочетания для остальных клавиш.
Источник
Linux. Настройка клавиатуры
Для чего вообще специально настраивать клавиатуру?
Можно пользоваться и стандартными настройками, но иногда внесенные изменения дают возможность набирать быстрее (это, конечно, не слепая печать, но все же), совершать меньше ошибок, меньше переключать раскладку.
Почему я захотел изменить свою клавиатуру?
Во-первых, когда я начал использовать vim как основной редактор, я понял, что не хочу каждый раз тянуться к ESC . Кроме того, я писал в основном на питоне, поэтому ; нажимал сильно реже, чем : , а в vim разница стала более явной.
Во-вторых, через некоторое время я стал пользоваться вимовскими комбинациями для навигации в браузере, дальше — тайловый оконный менеджер i3 , где они тоже использовались, и хотелось перейти на них везде (вместо обычных стрелок, например, в файловом менеджере).
В-третьих, когда начал писать конспекты на TeX в vim , я понял, что могу реально упростить и ускорить этот процесс; если английская и русская раскладки будут больше похожи друг на друга, то я смогу вводить одинаковые символы (например, точку, запятую, кавычки, доллар) одинаково. Плюс приходится часто менять язык, поэтому надо это делать быстро, надежно и удобно.
Настройка переключения раскладки
Что же, начнем. Сначала разберемся, как можно настроить смену раскладки клавиатуры.
Первый способ. Можно воспользоваться какой-нибудь программой, например, gnome-tweaks :
здесь мы можем выбрать один из вариантов, предлагаемых нам разработчиками.
Главное — мы не можем создать свой вариант. Давайте научимся делать и это.
Второй способ.
Посмотрим, как то же самое можно сделать руками, и чего еще можно добиться.
Давайте поставим переключение на правый Alt (он же AltGr ):
Но где можно узнать, какие еще есть варианты, и как создать свои? Все файлы лежат /usr/share/X11/xkb/symbols/ . И наши переключения находятся в /usr/share/X11/xkb/symbols/group . Вот так выглядит выбранный вариант:
Там же можно найти множество других вариантов, в том числе ациклические, которые позволяют быть уверенным, какой язык будет после переключения, вместо того, чтобы каждый раз проверять раскладку или смотреть на индикатор.
Ациклическое переключение раскладок
Изменим циклическое переключение по AltGr на ациклическое: AltGr переключает на латинскую раскладку, Shift+AltGr — на русскую.
Перед тем как что-то менять, посмотрим на текущие настройки:
Должны получить что-такое ( pc105 может отличаться в зависимости от количества клавиш на вашей клавиатуре):
Теперь запишем это в конфигурационный файл
В файле /usr/share/X11/xkb/symbols/group можно найти аналогичный вариант с CapsLock , откуда можно понять, что на us будет переключать ISO_First_Group , а на ru — ISO_Second_Group .
Вот такая строчка
говорит, что клавиша при обычном нажатии вызывает ISO_First_Group , а вместе с Shift — ISO_Last_Group .
Изменим в только что созданном файле xkb_symbols :
Проверим, что у нас получилось. Загружаем конфиг:
Теперь язык должен переключаться по заданным комбинациям.
Замечание
Это очень удобно, когда набираешь текст, используя сразу две раскладки (например, TeX ), потому что, переключение происходит часто и гораздо проще каждый раз когда начинаешь писать русский текст нажимать нужные клавиши, чем проверять, какой язык стоит сейчас, и переключать, если нужно. Просто меньше тратишь умственных сил, меньше совершаешь ошибок.
Еще один плюс ациклического переключения — можно больше не использовать никаких индикаторов.
Изменение клавиш
Двоеточие и точка с запятой
Поменяем местами двоеточие и точку с запятой. Как задать значение мы уже знаем, осталось понять как называются символы. Это можно посмотреть в тех же файлах /usr/share/X11/xkb/symbols/ . Выберем файл us и найдем нужную клавишу:
Осталось записать в наш конфигурационный файл в обратном порядке.
ESC и CapsLock
Поменяем ESC и CapsLock . В той же директории в файле capslock можно найти:
partical — специальные куски, которые мы можем включать в другие раскладки.
Теперь либо пишем include «swapescape» , либо просто копируем код.
Alt и Win
Еще аналогично можно поменять, например, левый Alt и Win , что особенно удобно в i3wm , если поставить главный модификатор на Win , то он будет ближе к остальной клавиатуре, и плюс мы не ограничим себя в использовании Alt в комбинациях различный программ (браузер, файловый менеджер. ).
Модификаторы
Для чего вообще они нужны? Можно задать комбинации, которые будут позволять нам быстрее и удобнее набирать какие-то символы или вызывать какое-то действие, помещая поверх других, то есть эти комбинации не будут пересекаться с уже созданными или с комбинациями заданными системой.
Существует два дополнительных уровня: level3 , level5 . И еще комбинации с Shift .
Сделаем так, чтобы клавиша CapsLock в комбинации с h, j, k, l давала эффект стрелки. Тогда не нужно будет каждый раз тянуться ним.
Назначим модификатор (мы уже решили поставить туда ESC , но можно сделать и то и другое: об этом далее):
Если мы хотим назначить для разных раскладок разное значение, то сначала нужно их определить:
Теперь нужно настроить клавиши h, j, k, l. Сначала узнаем их имя — тоже можно посмотреть файл раскладки, это несложно. Их зовут ,… . Какие команды вызывают стрелки можно узнать совершенно аналогично. Дальше пропишем поведение в комбинации с модификатором:
При нормальном нажатии будет обычная буква, при нажатии с шифтом — заглавная, с модификатором третьего уровня — стрелки.
Назначение модификатора как второе значение клавиши
Кроме стрелок можно назначить на третий слой символы или другие операции.
Давайте сделаем, чтобы кроме функции модификатора клавиша CapsLock выполняла и предназначенную ей миссию ранее — была ESC .
Для этого нам понадобится xcape , которая позволяет назначить на на клавишу значение, которое она будет иметь, если нажать ее не в комбинации. Еще есть полезная функция: можно настроить время, после истечения которого ее эффект отменяется.
Как я уже обещал, мы сделаем так, чтобы при однократном нажатии клавиши CapsLock вызывался ESC , а в комбинациях выступала в роли модификатора третьего уровня.
Для этого нужно выполнить
Я использую интервал 500 миллисекунд. Для нашей цели:
Дальнейшие изменения
Когда я пишу в TeX , я использую достаточно много одинаковых символов, но в разных раскладках. Поэтому появилась идея сделать их максимально похожими. В раскладках по умолчанию сильно отличаются положения точки, запятой, кавычек, квадратных и фигурных скобок, вопросительных знаков, различных слэшей.
Здесь было две идеи:
Поставим редко используемые русские буквы на крайних правых клавишах на третий слой других букв.
Схема была такая:
Клавиша | Третий слой |
---|---|
у | ю |
в | б |
ь | ъ |
з | ж |
щ | х |
Для достижения такого эффекта добавляем в конфиг (здесь для у/ю, для остальных аналогично, названия букв русского алфавита можно посмотреть, где и все остальное):
А на освобожденные клавиши просто назначаем такие же символы, как во второй раскладке.
Этот вариант оказался для меня неудобным и скорее снизил скорость, так как приходилось вспоминать и искать нужные буквы (хоть я выбирал специально созвучные), кроме этого я понял, что не так уж и редко они используются. А заглавные вообще тяжело набирать было.
Этот вариант я использую и сейчас: давайте оставим русские буквы на своих местах, а на третий слой на них назначим те символы, которые стоят на них на английской раскладке.
Тогда мы сможем нажимать одинаковые клавиши, но с модификатором (причем, если мы не назначим что-то другое поверх символов а английской раскладке, то ничего не случиться, если мы будем нажимать модификатор и в ней тоже).
Получаем такую схему:
Еще можем поставить в русской раскладке слэш и вопросительный знак туда, где они стоят в английской.
Плюс к этому добавляется возможность сделать одинаковыми и символы на цифрах, так как и кавычки, и двоеточие, и точка с запятой будет на других клавишах.
И главное, что это реально упростило процесс набора текста.
Замечание
Аналогично можно добавлять пятый слой, хотя пока лично я не испытываю никакой нужды — вполне хватает третьего.
Интересный вариант BackSpace напоследок
А может хватит тянуться далеко-далеко в дальний угол клавиатуры?
Поставим-ка BackSpace на $mod3+Space ( $mod3 наш модификатор третьего уровня)!
Все настройки в принципе применимы для любых Linux дистрибутивов, использующих X.
Полные конфиги можно найти на GitHub.
Этот пост стал для меня отправной точкой к пониманию того, как можно и нужно настроить клавиатуру.
Источник