我非常喜欢 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确实报告了紧急提示已设置。