Pet*_*etr 7 keyboard-layout window xmonad
我一直在使用普通的 XMonad(不与 KDE/GNome 结合使用)。目前,我只是通过全局组合键在键盘布局之间切换:
[ ((modMask , xK_Scroll_Lock ),
spawn "setxkbmap -layout us ; xmodmap ~/.Xmodmap")
, ((modMask .|. shiftMask, xK_Scroll_Lock),
spawn "setxkbmap -layout cz ; xmodmap ~/.Xmodmap") ]
Run Code Online (Sandbox Code Playgroud)
不过这有点不方便。对于许多窗口(即浏览器、终端),我大部分时间都需要保持美式布局。在 99% 的情况下,我只需要文本编辑器的本地化布局。而且我经常切换窗口/工作区,因此几乎每次切换时都必须手动切换布局。
理想情况下,我想实现:
spawn
当窗口焦点改变时,XMonad根据标志自动调用命令。如何做到这一点(如果可能的话)?感谢帮助。
(奖励:通过脚本中的某种命令在外部管理标志。)
安装完成这项工作的kbdd守护进程。
在启动时运行:
kbdd
setxkbmap "us,ua" -option grp:scroll_toggle
Run Code Online (Sandbox Code Playgroud)
就这样!
要在小部件中显示您的布局,您会发现此 Ruby 代码很有用:
interface = 'ru.gentoo.KbddService'
member = 'layoutChanged'
mon = open "| dbus-monitor --monitor \"sender='#{interface}',member='#{member}'\""
loop do
str = mon.gets
if str =~ /layoutChanged/
lang = mon.gets[/.\Z/] # lang is now either 0 or 1 depending on the current layout
end
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1501 次 |
最近记录: |