私はこれがHaskellが得意な人にとっては本当に簡単なはずだと思いますが、私はそれが得意ではないのでそれを理解することができませんでした。 基本的に私は現在のワークスペースのウィンドウのリストを検索し、ある条件に一致するものを見つけてそれにアクションを適用したいと思います。見つからない場合は、このウィンドウを作成してください。 私はこのようなスケルトンコードを持っていました
import qualified XMonad.StackSet as W
import XMonad.Actions.WindowGo
findWindow condition actionIfFound actionIfNotFound =
ifWindow (condition <&&> member W.current) windowFound actionIfNotFound
where windowFound = ask >>= w -> do actionIfFound w