Xmonad用のEZConfigモジュールを使用しています。バインドしたいModMask s
最初に現在フォーカスされているウィンドウを他の画面に移動し、次にフォーカスを他の画面に移動します。
CycleWSモジュールを使用すると、「shiftNextScreen」に続いて「nextScreen」を実行することでこれを実現できます。
2つのコマンドを1つのキーにバインドできますか?
また、行ってみました
((modMask, xK_s),
shiftNextScreen nextScreen)
しかし、nextScreenがshiftNextScreenの引数になるため、これは機能しません。これは意味がありません。私はhaskellをまったく知りません。
今まで誰もあなたの質問に答えられなかったようです。試してみましょう:
TL; DR
_((modMask, xK_s),
sequence_ [shiftNextScreen, nextScreen])
_
動作するはずです。
どうして?
http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Actions-CycleWS.html を見ると、
関数には次のタイプが表示されます。
_nextScreen :: X ()
shiftNextScreen :: X ()
_
xがモナドであり、キーバインディングのタイプが_(ButtonMask,KeySym), X ()
_であるという知識とともに、必要なものは次のとおりです。
nextScreen
とshiftNextScreen
を組み合わせて、タイプX ()
の結果を取得します。
単純に次のようにリストを作成すると、次のようになります。
_[nextScreen,shiftNextScreen]
_タイプは[X ()]
で、閉じていますが、まだ必要なものはありません。
Xがモナドであることがわかっているので、 hoogle をすばやく検索すると、_sequence_
_が表示されます。
それは私たちに与えます:
_sequence_ [shiftNextScreen, nextScreen]
_
これはタイプX ()
を生成するため、キーマッピングの右側の有効なアクションです。