1

Поэтому я хочу создать привязку клавиш, используя мой sxhkd, который работает как привязка для создания панелей в tmux.

Я создал привязки раньше, так что я знаю, что могу использовать xev для распечатки названий клавиш, вот вывод при нажатии % затем " :

Событие KeyPress, серийный номер 32, синтетический номер NO, окно 0x2200001, корень 0x9f, subw 0x0, время 8068709, (324,604), корень: (325,624), состояние 0x0, код ключа 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString дает 0 байтов : XmbLookupString дает 0 байтов: XFilterEvent возвращает: False

Событие KeyPress, серийный номер 32, синтетический номер NO, окно 0x2200001, корень 0x9f, subw 0x0, время 8069165, (324,604), корень: (325,624), состояние 0x1, код клавиши 14 (keysym 0x25, процент), same_screen YES, XLookupString дает 1 байт : (25) "%" XmbLookupString дает 1 байт: (25) "%" XFilterEvent возвращает: False

Событие KeyRelease, серийный номер 32, синтетический номер NO, окно 0x2200001, корень 0x9f, subw 0x0, время 8069236, (324,604), корень: (325,624), состояние 0x1, код клавиши 14 (keysym 0x25, проценты), same_screen YES, XLookupString дает 1 байт : (25) "%" XFilterEvent возвращает: False

Событие KeyRelease, серийный номер 32, синтетический номер NO, окно 0x2200001, корень 0x9f, subw 0x0, время 8069615, (324,604), корень: (325,624), состояние 0x1, код ключа 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString дает 0 байтов : XFilterEvent возвращает: False

Событие KeyPress, серийный номер 32, синтетический номер NO, окно 0x2200001, корень 0x9f, subw 0x0, время 8090326, (324,604), корень: (325,624), состояние 0x0, код ключа 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString дает 0 байтов : XmbLookupString дает 0 байтов: XFilterEvent возвращает: False

Событие KeyPress, серийный номер 32, синтетический номер NO, окно 0x2200001, корень 0x9f, subw 0x0, время 8090442, (324,604), корень: (325,624), состояние 0x1, код клавиши 48 (keysym 0x22, quotedbl), same_screen YES, XLookupString дает 1 байт : (22) "" "XmbLookupString дает 1 байт: (22)" "" XFilterEvent возвращает: False

Событие KeyRelease, серийный номер 32, синтетический номер NO, окно 0x2200001, корень 0x9f, subw 0x0, время 8090593, (324,604), корень: (325,624), состояние 0x1, код ключа 48 (keysym 0x22, quotedbl), same_screen YES, XLookupString дает 1 байт : (22) "" "XFilterEvent возвращает: False

Событие KeyRelease, серийный номер 32, синтетический номер NO, окно 0x2200001, корень 0x9f, subw 0x0, время 8090652, (324,604), корень: (325,624), состояние 0x1, код ключа 62 (keysym 0xffe2, Shift_R), same_screen YES, XLookupString дает 0 байтов : XFilterEvent возвращает: False

Итак, в моем ~/.config/sxhkd/sxhkdrc я поставил:

super + percent
    bspc window -p right && urxvt
super + quotedbl 
    bspc window -p down && urxvt

Теперь, когда я перезагружаю sxhkd и нажимаю клавиши super + % ничего не происходит, но другая привязка работает отлично.

  • Почему sxhkd не распознает ключ процента?
  • Идентифицирует ли sxhkd ключ процента как имя, отличное от имени, данного xev?

Редактировать: я сделал еще несколько поисков в репозитории sxhkd git и нашел файл, в котором хранятся номера ключей для каждого ключа.

В parse.c:

{"percent"                     , 0x0025}

Я попытался изменить его на 0x25 и перекомпилировать, но все равно не повезло. :(

1 ответ1

0

Поэтому после многих испытаний я нашел несколько собственных решений.

Оказывается, процентный ключ распознается просто отлично, но просто не работает вместе с супер ключом

Вариант 1) Добавить @ перед ключом

 @super + percent
     bspc window -p right && urxvt

Это работает, но работает только после того, как вы отпустите клавишу

Вариант 2) Заменить super на любой другой ключ

Я решил пойти с вариантом 2 и заменить super с ctrl

ctrl + {percent,quotedbl}
    bspc window -p {right,down} && urxvt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .