繁体   English   中英

xmonad自动切换到应用程序

[英]xmonad automatically switch to application

我非常喜欢xmonad,但有一点会很棒:

如果我通过gvim -p --remote-tab-silent my-file打开一个文件,它在vim中打开,它总是在workspace 1 ,我想自动切换到workspace 1

我刚刚发现了viewShift -trick ,但是这只会在生成新的gvim更改工作区,因此只是部分地解决了我的问题。

编辑:

感谢Daniel Wagner的评论,我能够做一些研究:

我找到了一个小程序来设置和取消紧急提示: 设置 使用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.hsxmonad --recompile && xmonad --restart没有错误,但没有命中mod4 + x什么都没做,虽然xprop确实报告了紧急提示设置。

感谢Daniel Wagner和Joachim Breitner的评论,我至少可以部分解决这个问题。

  • 如果它没有打开,自动切换到gvim,只需添加到`myManageHooks

     myManageHook = composeAll [.., className =? "Gvim"--> viewShift "^ vim",..] 
  • 如果gvim已经打开,情况有点棘手,我已经制作了一个shell脚本来获取gvim的窗口id并查看是否有传递的参数。

     #! /usr/bin/zsh GVIMWINID=`xwininfo -tree -root |grep GVIM | cut -d ' ' -f6` if [[ -n $GVIMWINID ]]; then #echo gvim is running #echo $GVIMWINID if [[ -n $@ ]]; then #echo there are args gvim -p --remote-tab-silent $@ else #echo no args gvim --remote-send ":tabnew<cr>" fi else #echo gvim is not yet running #echo $GVIMWINID gvim -p $@ fi seturgent $GVIMWINID 1 

现在,如果我生成一个新的gv,窗口有紧急提示设置,我可以切换到它。 但我想自动切换到窗口 - 所以至少如果我通过键盘生成gvim我想自动切换。 所以我在myKeys中添加了xmonad.hs

myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
[.., ((mod4Mask, xK_F1),
        spawn "gv" >>
        spawn "notify-send -t 500 -i /usr/share/pixmaps/vim-32.xpm gVim" >>
        focusUrgent),..]

spawn "notify-send .."行作为时间缓冲器时,产生+设置紧急提示似乎需要一些时间并且focusUrgent被调用。

唯一未解决的问题是,如果我从终端调用我的gv -script切换到gvim的工作区。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM