En xmonad, ¿cómo puedo vincular un método abreviado de teclado para centrar una aplicación específica?

En xmonad, ¿cómo puedo vincular un método abreviado de teclado para centrar una aplicación específica?

Por ejemplo, quiero vincular ++ Modpara que me lleve a la ventana cuyo nombre de clase es "Emacs", para poder cambiar instantáneamente a esa aplicación sin importar en qué espacio de trabajo estoy y en qué ventana me estoy enfocando.Shiftm

Respuesta1

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
    )

Con el módulo anterior importado, puede configurar la siguiente combinación de teclas:

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

información relacionada