No xmonad, como posso vincular um atalho de teclado para focar em um aplicativo específico?

No xmonad, como posso vincular um atalho de teclado para focar em um aplicativo específico?

Por exemplo, eu quero vincular Mod+ Shift+ mpara me levar à janela cujo className é "Emacs", para que eu possa mudar instantaneamente para esse aplicativo, independentemente do espaço de trabalho em que estou e da janela em que estou focando.

Responder1

https://stackoverflow.com/a/50427647/1663462

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
    )

Com o módulo acima importado, você pode definir a seguinte combinação de teclas:

          , ((modm, xK_c), do
            win' <- findWindows "Chromium"
            when (length win' > 0)
              (windows $ W.focusWindow $ head win')
          )

informação relacionada