LINUX.ORG.RU

Переназначение клавиш

 , , ,


0

1

Товарищи, у меня переключен Caps –> Ctrl

setxkbmap -layout us,ru -option "grp:shift_toggle,grp_led:scroll",ctrl:nocaps -variant ",winkeys"
xmodmap -e "keycode 37=" # disable left Control key

Т.е получается Ctrl безхозный. А тут я нашел edwina для Emacs. А там есть

(edwina-setup-dwm-keys)

Но там бинды на Alt. Альт занят Emacs’ом, так что не вариант такое использовать. Без этого там стоит бинд на C-c C-w(модификатор) и тут до меня дошло, что под этот кейс круто было бы капс оставить как Control, а настоящий контрол заюзать для управления окнами в Emacs edwina. Вот теперь вопрос:

как правильно перебиндить Ctrl на Caps, А Ctrl заюзать как отдельную клавишу, которую можно привязать в Emacs?

★★★

Сейчас на клавиатурах существует только четыре модификатора: Control, Shift, Alt (на ANSI нет AltGraph, но и AltGraph имеет тот же флаг), Super. Ещё есть три toggle-модификатора: CapsLock, NumLock, ScrollLock, которые включаются/выключаются при нажатии (а не отжатии). Все остальные кнопки как модификаторы работать не могут — при зажатой A, нажимая B, автоматически отжимается A.

mord0d ★★★★★
()

как правильно перебиндить

Аппаратно. Не можешь аппаратно, тогда evdev+uinput.

t184256 ★★★★★
()
Ответ на: комментарий от mord0d

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

что за бред я только что прочитал?

Egor_
()
Ответ на: комментарий от mord0d

Control, Shift, Alt (на ANSI нет AltGraph, но и AltGraph имеет тот же флаг),

А ты я смотрю в теме? Линукс под ручками есть? Нет? Ну думается мне что в BSD похоже.
Открой свою keymap и смотри в сторону опции include «linux-with-two-alt-keys.inc»

cat /usr/share/kbd/keymaps/i386/dvorak/dvorak-programmer.map.gz |gunzip

anonymous
()
Ответ на: комментарий от Egor_

Ну давай, нажми какую-нибудь кнопку не-модификатор, нажми другую кнопку не-модификатор, и попробуй получить состояние первой кнопки? Особенно интересно как ты это сделаешь по USB. ☺

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

map.gz

Я свои мапы писал, когда сидел на Linux™, знаю я про это, в иксах тоже работает, но софт о левых/правых модификаторах знает редко.

Ну думается мне что в BSD похоже.

Нет, всё устроено совсем иначе. Но сканкоды у левых/правых модификаторов разные, да. Только это никак не отражается в софте, там они почти всегда унифицированы в один модификатор.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

ты вообще откуда вылез с такими «знаниями»? )))

в дорогих механических клавах работают любые комбинации любых клавиш, вообще любых

в самых дешёвых мембранных клавиатурах контроллер опрашивает матрицу клавиш, в которой, естественно, наблюдается ghosting-эффект (автоматического нажатия 4-го угла прямоугольника, если ты нажал пальцами кнопки в трёх его углах), поэтому клавиши разделяют на обычные (общая матрица клавиш) и модификаторы (для них отдельная матрица в один ряд), чтобы ты мог нажать комбинацию из 3 клавиш.

кроме этой отдельной мини-матрицы для модификаторов, клавиатура (железка) не знает различия между модификаторами и обычными клавишами и обрабатывает их одинаково (шлёт коды нажатия-отжатия).

что модификатор а что нет - определяет ОС.

количество одновременно нажатых клавиш определяет ОС (напр, у винды этот предел равен 6, когда нажимаешь седьмую клавишу, то винда «отжимает» первую)

Egor_
()
Ответ на: комментарий от Egor_

работают любые комбинации любых клавиш, вообще любых

Учи матчасть, потом будешь мне рассказывать что как работает.

что модификатор а что нет - определяет ОС

Ребинды — это совсем другое. Ну и забиндить несуществующую кнопку ты не можешь, сделать какой-то дополнительный модификатор без переписывания всего софта — тоже. Даже Hyper и Meta с лисп-машин не работают.

На этом аудиенция окончена, возвращайся с знаниями, будем дальше спорить. :3

mord0d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.