Являются ли комбинации клавиш Alt+Ctl+FN (, также известные как srvrkeys ), жестко закодированы в Xorg?

Кажется, я нашел обходной способ решения этой проблемы.

Мой ~/.config/zathura/zathurarcфайл:


# midnight mode
map  feedkeys ":set recolor-lightcolor \#002b36"
map  feedkeys ":set recolor-darkcolor \#839496"
map ! feedkeys ""
# amber on dark slate
map  feedkeys ":set recolor-lightcolor \#0a0a12"
map  feedkeys ":set recolor-darkcolor \#ff9900"
map @ feedkeys ""
# green on black
map  feedkeys ":set recolor-lightcolor #000000"
map  feedkeys ":set recolor-darkcolor \#00B800"
map \# feedkeys ""
# original (black on white)
map  feedkeys ":set recolor-lightcolor \#ffffff"
map  feedkeys ":set recolor-darkcolor \#000000"
map $ feedkeys ""

Как Вы можете видеть выше, согласно zathurarcсправочной странице (ZATHURARC(5)), я mappingкоманды setдля Special keys, а затем mapsдля моих привязок. Обратите внимание, что в Zathura у меня нет никаких привязок к этим клавишам().

Редактировать:Поскольку F5назначен режиму презентации, я изменил map на map , а другой mapsитеративно вверх.

2
06.10.2020, 04:54
1 ответ

Are the Alt+Ctl+FN key combinations (aka srvrkeys) hardcoded into Xorg?

Нет, это не так. Их можно настроить через Xkb . Но понимание того, как эффективно и правильно настроить Xkb, заняло бы у кого-то больше жизни; -).

Но в качестве простого хака, полностью на стороне клиента -, это должно позволить вам переключаться только с помощью Alt-F1вместо Ctrl-Alt-F1[см. разницу в конце, если ваш макет настолько отличается, что edскрипт не работает]:

xkbcomp $DISPLAY - > xkb
cp xkb xkb~
ed xkb <<EOT
/type "CTRL+ALT"/
/Level5/s/Control+//p
w
EOT
xkbcomp - $DISPLAY < xkb

Однако обратите внимание, что среда вашего рабочего стола может переопределить ваши изменения. Кроме того, простоAlt-Backspace(обычная привязка клавиш в некоторых редакторах )вместо Ctrl-Alt-Backspaceможет убить ваш сервер X11, если у вас включена эта опция (найдите Terminate_Serverв сгенерированном файле xkbвыше ).

diff xkb~ xkb
...
@@ -376,15 +376,15 @@
     type "CTRL+ALT" {
         modifiers= Shift+Control+Alt+LevelThree;
         map[Shift]= Level2;
         preserve[Shift]= Shift;
         map[LevelThree]= Level3;
         map[Shift+LevelThree]= Level4;
         preserve[Shift+LevelThree]= Shift;
-        map[Control+Alt]= Level5;
+        map[Alt]= Level5;
         level_name[Level1]= "Base";
         level_name[Level2]= "Shift";
         level_name[Level3]= "Alt Base";
         level_name[Level4]= "Shift Alt";
         level_name[Level5]= "Ctrl+Alt";
     };
     type "LOCAL_EIGHT_LEVEL" {
1
18.03.2021, 22:59

Теги

Похожие вопросы