我一直试图在 i3 上绑定小键盘数字键失败。这似乎是一件足够简单的事情,但它不起作用。我不明白为什么。
键盘布局:英语美国默认
例如:
bindsym $mod+KP_1 workspace $ws1
Run Code Online (Sandbox Code Playgroud)
什么都不做。
bindcode $mod+$KP_1 workspace $ws1
Run Code Online (Sandbox Code Playgroud)
错误是说我的 i3 配置中有以下错误:
ERROR: Could not parse "$mod+$KP_1" as an input code, ignoring this binding.
Run Code Online (Sandbox Code Playgroud)
$mod
并$KP_1
设置为133
与87
之前运行bindcode。
GitHub 中有评论说不能使用小键盘键。真的吗 ?
没有人有绑定之类的$mod + KP_2
吗?
解决了。他们真的应该将其添加到文档中。感谢 IRC 频道上的人帮助我解决这个问题。
好了,因为KP_0
和KP_1
钥匙在数字键盘,他们将只在当数字方式工作numlock
被打开,否则它们KP_END
,KP_HOME
等等。现在一个正常的人是这很好,但是这不工作的原因i3
是因为i3
需要为告诉numlock
是在。 靠自己来计算是不够聪明的。
因此需要相应地编写键绑定。所以正确的键绑定是:
bindsym $mod+mod2+KP_1 workspace $ws1
bindsym $mod+mod2+KP_2 workspace $ws2
bindsym $mod+mod2+KP_3 workspace $ws3
bindsym $mod+mod2+KP_4 workspace $ws4
bindsym $mod+mod2+KP_5 workspace $ws5
bindsym $mod+mod2+KP_6 workspace $ws6
bindsym $mod+mod2+KP_7 workspace $ws7
bindsym $mod+mod2+KP_8 workspace $ws8
Run Code Online (Sandbox Code Playgroud)
显而易见的问题是什么是mod2
?好吧,只要运行xmodmap
,你就会发现。大多数时候它会是NumLock
。
现在看看这个配置,看起来我正在向我的绑定添加另一个按键,但事实并非如此。因为numlock
已经是ON
我可以按第一个修饰符和小键盘键。我不必按下mod2
,因为它“已经按下”,可以这么说。
所以我可以按:Super(mod) 和键盘上的 KP_1 将工作区切换为 1。
建议使用类似numlockx
始终打开登录的程序。