Ich möchte z. B. Mod+ Shift+ binden m, um zu dem Fenster zu gelangen, dessen Klassenname „Emacs“ ist, sodass ich sofort zu dieser Anwendung wechseln kann, unabhängig davon, in welchem Arbeitsbereich ich mich befinde und auf welches Fenster ich mich konzentriere.
Antwort1
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
)
Mit dem oben importierten Modul können Sie die folgende Tastenkombination festlegen:
, ((modm, xK_c), do
win' <- findWindows "Chromium"
when (length win' > 0)
(windows $ W.focusWindow $ head win')
)