2013-02-14 3 views
8

을 사용하여 xmonad에서 작업 공간 전환 실제로, Dvorak를 실제로 사용하지는 않지만 Neo2을 사용하지만 매트릭스 입력 키보드 (Truly Ergonomic) 을 사용함에 따라 숫자도 이동 시켰습니다.프로그래머 dvorak 키보드 레이아웃 (이동 된 숫자)

따라서 내 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

에 키 (9)에 작업 공간 에 액세스 할 수 있도록 1이를 변경하려면

어떻게 그럴 수 있습니까? 제 3 행을

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

으로 변경하려고했지만 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] 
[] 

당신은 그것보다 조금 더 긴 목록을 사용하는 것이 좋습니다. 최소한 두 가지 합리적인 방법이 있습니다.

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

@ 기계식 고정, 고마워요. –

+0

감사합니다. 내가 생각했던 것과 비슷합니다. – erik