Vla*_*lad 8 linux keyboard xfce xkb
标题说明了一切:我有兴趣模仿 Windows 行为,其中Left Ctrl+Left Alt充当第 3 级选择器。这是对我来说比较重要的,因为,作为一个程序员,我的键盘布局,如重要标志{,[,]或}只能按访问Right Alt+ Key,只用一只手,这是非常不舒服。目前,我将两个Alt键都用作 3 级选择器,但这会产生一些不良后果,因为我无法再输入某些快捷方式(例如 Firefox 中的 Home)。
我在 openSuse 13.1 上,使用 XFCE 作为桌面环境。这个问题已经被问过几次了,但不幸的是,其中任何一个都没有提供答案,而且关于 xkb 的文档非常少。
下面的解决方案是野蛮的,但它有效(只要您对 Level3 Latch 而不是 Level3 Shift \xe2\x80\x94 感到满意,区别在于后者必须同时按下所有键,对于前者,您首先按LeftCtrl+LeftAlt,释放它,然后再按要切换的键)并且不需要 root。
\n\nsetxkbmap -option grp:lctrl_lalt_toggle\n\nxmodmap -e \'keycode 37 = Control_L ISO_Level3_Latch\'\nxmodmap -e \'keycode 64 = Alt_L ISO_Level3_Latch\'\nRun Code Online (Sandbox Code Playgroud)\n\nxkb grp:lctrl_lalt_toggle 选项可以LeftCtrl切换LeftAlt到 level2,反之亦然(请参阅:/usr/share/X11/xkb/symbols/group)。LeftCtrl它还使和 的level2 转变LeftAlt为 ISO_Next_Group,这是不希望的,因为我们希望它是 ISO_Level3_Latch,因此我们使用 xmodmap 将 和 的 level2 更改为 ISO_Level3_Latch LeftCtrl(LeftAlt同时保持 level1 为 Control_L 和 Alt_L)。键码(37 和 64)可以通过检查输出xmodmap -pke或使用xev来找到键码(37 和 64) 。
如果我们只应用 xmodmap 重新定义(不setxkbmap首先使用),那么负责 level2 移位的键将是Shift,因为它几乎适用于所有键,所以Shift+LeftCtrl和Shift+ LeftAlt(但不是LeftCtrl+LeftAlt)都将成为 Level3 锁存器。
如果您要使用 ISO_Level3_Shift 而不是 ISO_Level3_Latch,则必须同时按LeftCtrl+ LeftAlt+YourDesiredKey才能发生 level3 转变。不幸的是,LeftCtrl并且LeftAlt保留修饰符,因此除了正确移动 YourDesiredKey 之外,它还会被 Alt 或 Ctrl 之一“修改”(取决于您首先按下的键)。有了闩锁,就不会有这个问题了。
\n| 归档时间: |
|
| 查看次数: |
3547 次 |
| 最近记录: |