Linux

Alt+Ctl+FN 組合鍵(又名 srvrkeys)是否硬編碼到 Xorg 中?

  • October 6, 2020

Alt+Ctl+FN組合鍵(又名 srvrkeys)是否硬編碼到 Xorg 中?

這個問題解釋瞭如何打開和關閉它們(我已經知道了,只是提到它以表明我已經完成了我的作業)。但我現在需要的是保留該功能,但綁定到不同的組合鍵,也許Alt+FN就像通常的 Linux VT 綁定一樣。可能的?

原因是在我首選的 leop^H^H^H^H 鍵盤上,Alt+Ctl+FN組合實際上不存在:-(。

Alt+Ctl+FN 組合鍵(又名 srvrkeys)是否硬編碼到 Xorg 中?

不,他們不是。它們可以通過Xkb進行配置。但是了解如何有效且正確地配置 Xkb 將花費人們一生的時間;-)。

但作為一個簡單的hack,完全是客戶端,這應該允許你切換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(某些編輯器中的常用鍵綁定)可能會殺死您的 X11 伺服器,而不是可能會殺死您的 X11 伺服器。Ctrl-Alt-Backspace``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" {

引用自:https://unix.stackexchange.com/questions/613080