Страница 1 из 1

реализовать хоткеи с зажатием

Добавлено: 06.09.2011 00:43
varuh
Привет всем! Кто знает, можно ли как-нибудь в боксе настроить хоткеи, срабатывающие на зажатие клавиши?
Т.е. повесить на одно клавосочетание две команды, допустим одна срабатывает по ctrl+alt+(короткое нажатие m), а другая команда по ctrl+alt+(долгое нажатие m). Тут даже не надо долго удерживать, если у меня автостартом выпоняется xset r rate 140 50 , то чуть более 140мс.(как обычное нажатие) и все ок. В итоге имеем повышение функционала в 2 раза.
p.s. Просто хоткеев мне уже не хватает, помимо приложений еще и свои скрипты на них вешаю.

Re: реализовать хоткеи с зажатием

Добавлено: 06.09.2011 03:02
liaonau
Это, по идее, вопрос не специфичный для openbox. Скорее аппаратный. Посмотрите на вывод xev при зажатой клавише «m» — будет очень много событий keyPress и keyRelease. А для, скажем, Alt — нет. Наверное, можно исхитриться повесить на хоткей скрипт запускающий таймер, сохраняющий где-нибудь состояние «была нажата клавиша» на время действия таймера, выполняющий в зависимости от этого разные действия etc. Все это, на мой взгляд чрезвычайно костыльно.

Я, например, сделал так: одну из клавиш-модификаторов (В моем случае это правый Ctrl на клавиатуре, но контролы я поменял местами с alt, т.е. у меня есть оба контрола, но только левый alt) назначил слать Hyper — при старте X вызывается xkbcomp. Так можно получить очень много свободных сочетаний пожертвовав одним из дублируемых модификаторов.

Re: реализовать хоткеи с зажатием

Добавлено: 06.09.2011 21:34
varuh
Да, думаю слишком костыльно. Так что даже не хочется копать. А за подсказку с xkbcomp спасибо, до этого момента с ней еще не работал.

Re: реализовать хоткеи с зажатием

Добавлено: 08.09.2011 23:14
pifonn
varuh писал(а):
06.09.2011 00:43
...
допустим одна срабатывает по ctrl+alt+(короткое нажатие m), а другая команда по ctrl+alt+(долгое нажатие m). ...
Просто хоткеев мне уже не хватает, помимо приложений еще и свои скрипты на них вешаю.

imho, нет. В xmonad
M-m-p - команда
и
M-m p другая команда.