Wie kann ich in xmonad eine Tastenkombination binden, um eine bestimmte Anwendung zu fokussieren?

Wie kann ich in xmonad eine Tastenkombination binden, um eine bestimmte Anwendung zu fokussieren?

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')
          )

verwandte Informationen