我如何专注于像Firefox这样的特定应用程序类型?
我想将它绑定到一个键绑定 - 所以这不会以交互方式完成。
答案 0 :(得分:1)
您绝对应该看一下XMonad-Actions-WindowGo,尤其是raiseNextMaybe
/ raiseNext
/ runOrRaise
类似
((modMask x .|. mod1Mask, xK_BackSpace), raiseNextMaybe (spawn "google-chrome --profile-directory='Default' --app='https://www.evernote.com/Home.action'") (appName =? "www.evernote.com__Home.action"))
另外,请看一下xprop
应用程序(它可以获取窗口类和其他属性)
答案 1 :(得分:0)
module WindowFinder where
import XMonad
import qualified XMonad.StackSet as W
import Control.Monad
import Data.Bool (bool)
findWindows :: String -> X [Window]
findWindows name = do
withWindowSet $ (\ws -> do
forM (W.allWindows ws)
(\w -> do
s <- withDisplay $ \d -> fmap resClass . liftIO $ getClassHint d w
return $ bool [] [w] (s == name) :: X [Window]
) >>= return . join
)
在X ()
背景下:
win' <- findWindows "Chromium"
when (length win' > 0)
(windows $ W.focusWindow $ head win')
当有多个窗口时,上面似乎表现得非常有用。行为似乎是,返回的第一个窗口是当前在工作区上打开的窗口,或者是该应用程序类型的最后一个交互窗口。