2013-02-14 10 views
8

実際にはDvorakを使用していませんが、Neo2ですが、マトリックスタイプのキーボード(Truly Ergonomicも使用しています。プログラマdvorakのキーボードレイアウト(シフト番号)を使用してxmonadのワークスペースを切り替える

そこで私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)] 

私はそれを変更したい、0

にキー2と9のワークスペース1 アクセスできるように

どうすればいいですか?私は第3行を

に変更しようとしましたが、第9番目の作業領域にアクセスできませんでした。どのようにこれを変更する必要がありますか?簡単な説明は素晴らしいかもしれないので、この構築について何かを学ぶために(私は何年も前にハスケルを学び、そのほとんどを忘れてしまった)。

+0

あなたの設定を共有してください。私はどこにでもドロップイン可能なものを見つけることができません。ありがとう:) – matiu

答えて

8

あなたの問題はxK_2xK_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] 

は、それがより大きな式の一部だ場合、いくつかの括弧を追加することを忘れないでください。

+1

Quibble: '[a..b]'は[列挙型]の算術シーケンス*です(http://hackage.haskell.org/packages/archive/base/3.0.3.1/doc/html /GHC-Enum.html#t%3AEnum)、リストの理解ではありません。 –

+0

@Mechanicalsnail固定、ありがとう。 –

+0

ありがとうございます。私はそれがそうであると思ったものに似ています。 – erik