8

さて、実際には Dvorak ではなくNeo2を使用していますが、マトリックス タイプのキーボード ( Truly Ergonomic )を使用しているため、数字もシフトしています。

したがって、私のこの構造はxmonad.hs人間工学的に機能しません。

-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
--
[((m .|. modMask, k), windows $ f i)
    | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
    , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]

これを変更して、キー 2 から 0 でワークスペース 1 から 9 にアクセスできるようにします。

どうすればそれを達成できますか?3行目を次のように変更しようとしました

    | (i, k) <- zip (XMonad.workspaces conf) [xK_2 .. xK_0]

しかし、9 番目のワークスペースにアクセスできませんでした。これを変更するにはどうすればよいですか?簡単な説明があればいいので、この構造について何かを学びましょう (私は何年も前に Haskell を学び、そのほとんどを忘れていました)。

4

1 に答える 1

8

あなたの問題はxK_2より大きいxK_0ので、リスト[xK_2 .. xK_0]は空です:

Prelude XMonad> xK_2
50
Prelude XMonad> xK_0
48
Prelude XMonad> [xK_2 .. xK_0]
[]

それよりも少し長いリストを使用する必要があります。これを行うには、少なくとも 2 つの合理的な方法があります。1 つは、すべてのキーを自分で手動で指定することです。

Prelude XMonad> [xK_2, xK_3, xK_4, xK_5, xK_6, xK_7, xK_8, xK_9, xK_0]
[50,51,52,53,54,55,56,57,48]

私がおそらく使用するものは少し短いです:

Prelude XMonad> [xK_2 .. xK_9] ++ [xK_0]
[50,51,52,53,54,55,56,57,48]

より大きな式の一部である場合は、必ず括弧を追加してください。

于 2013-02-14T23:30:40.463 に答える