Alt+Ctl+FN 组合键(又名 srvrkeys)是否硬编码到 Xorg 中?

Alt+Ctl+FN 组合键(又名 srvrkeys)是否硬编码到 Xorg 中?

Alt+Ctl+FN组合键(又名 srvrkeys)是否硬编码到 Xorg 中?

这个问题解释了如何打开和关闭它们(我已经知道了,只是提及它以表明我已经完成了我的作业)。但我现在需要的是保留该功能但绑定到不同的组合键,也许就像Alt+FN通常的 Linux VT 绑定一样。可能的?

原因是在我喜欢的 leop^H^H^H^H 键盘上,这些Alt+Ctl+FN组合实际上不存在:-(。

答案1

Alt+Ctl+FN 组合键(又名 srvrkeys)是否硬编码到 Xorg 中?

不,他们不是。它们可以通过配置Xkb。但是了解如何有效且正确地配置 Xkb 需要花费一生的时间;-)。

但作为一个简单的黑客,完全客户端,这应该允许您切换为 justAlt-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 服务器。Ctrl-Alt-BackspaceTerminate_Serverxkb

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" {

相关内容