2013-02-14 31 views
8

Vâng, tôi không sử dụng Dvorak thực sự nhưng Neo2, nhưng khi tôi đang sử dụng bàn phím loại ma trận (Truly Ergonomic) Tôi cũng đã chuyển số.Chuyển đổi không gian làm việc trong xmonad bằng cách sử dụng bố cục bàn phím dvorak (số đã dịch)

Do đó xây dựng này trong xmonad.hs tôi không hoạt động thái:

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

Tôi muốn thay đổi điều đó, để có thể truy cập các không gian làm việc 1-9 với các phím 2 để 0.

Tôi có thể đạt được điều đó bằng cách nào? Tôi đã cố gắng thay đổi dòng thứ ba thành

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

nhưng sau đó tôi không thể truy cập vào không gian làm việc thứ 9. Làm thế nào để tôi phải thay đổi điều này? Một lời giải thích ngắn gọn sẽ là tốt đẹp, vì vậy để tìm hiểu một cái gì đó về xây dựng này (tôi đã học Haskell nhiều năm trước đây và quên hầu hết nó).

+0

Vui lòng chia sẻ cấu hình của bạn. Tôi không thể tìm thấy một drop-in có thể sử dụng bất cứ nơi nào. Cảm ơn :) – matiu

Trả lời

8

Vấn đề của bạn là xK_2 lớn hơn xK_0, vì vậy danh sách [xK_2 .. xK_0] trống:

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

Bạn sẽ muốn sử dụng danh sách còn là một chút nhiều hơn thế. Có ít nhất hai cách hợp lý để làm điều này; một là để chỉ định tất cả các phím mình bằng tay:

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] 

Những gì tôi có lẽ sẽ sử dụng là một chút ngắn hơn:

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

Hãy nhớ thêm một số dấu ngoặc đơn nếu nó là một phần của một biểu thức lớn hơn.

+1

Quibble: '[a..b]' là một chuỗi * số học * của [loại được liệt kê] (http://hackage.haskell.org/packages/archive/base/3.0.3.1/doc/html /GHC-Enum.html#t%3AEnum), không phải là danh sách hiểu. –

+0

@Mechanicalsnail Đã sửa lỗi, cảm ơn. –

+0

Cảm ơn bạn. Tương tự như những gì tôi nghĩ. – erik