我非常喜欢 xmonad,但有一件事会很棒:
如果我打开一个文件gvim -p --remote-tab-silent my-file
并且它在始终打开的 vim 中打开workspace 1
,我想自动切换到workspace 1
.
我刚刚发现了viewShift
-trick,但这只会在gvim
产生新的工作空间时改变工作空间,因此只能部分解决我的问题。
编辑:
感谢丹尼尔瓦格纳的评论,我能够做一些研究:
我找到了一个设置和取消设置紧急提示的小程序:seturgency。我xwininifo
可以得到 gvim 的窗口 id。经过反复试验,我xprop
向我展示了实际上设置了提示标志。
GVIMWINID=`xwininfo -tree -root | grep GVIM | cut -d ' ' -f6`
seturgent $GVIMWINID 1
xprop -id $GVIMWINID | grep urgency
现在我添加了
import XMonad.Hooks.UrgencyHook
..
myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
[..
, ((mod4Mask , xK_x ), focusUrgent)
..]
..
main = do¬
xmproc <- spawnPipe "/usr/bin/xmobar"¬
xmonad $ withUrgencyHook NoUrgencyHook $ defaultConfig {..}
到我的.xmonad.hs
,并且xmonad --recompile && xmonad --restart
没有错误但没有击中什么也没mod4 + x
做,尽管xprop
确实报告了紧急提示已设置。