2013-02-14 1 views
8

Ну, я не использую Дворжака на самом деле, но Neo2, но, как я использую матричного типа клавиатуры (Truly Ergonomic) Я также переместил номера.Переключение рабочих пространств в 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)] 

Я хочу, чтобы изменить это, чтобы иметь возможность доступа рабочих пространств от 1 до 9 с помощью клавиш 2 до 0.

Как я мог достичь этого? Я попытался изменить третью строку на

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

, но затем я не смог получить доступ к 9-му рабочему пространству. Как мне это изменить? Короткое объяснение было бы приятным, поэтому, чтобы узнать что-то об этом построении (я узнал Haskell много лет назад и забыл большую часть этого).

+0

Пожалуйста, поделитесь своей конфигурацией. Я не могу найти доступный для использования в любом месте. Спасибо :) – matiu

ответ

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] 
[] 

Вы хотите использовать немного более длинный список, чем это. Существует по крайней мере два разумных способа сделать это; один, чтобы просто указать все ключи самостоятельно вручную:

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

Смежные вопросы