From f24008745e645cf03a1e78fdbf751924f75fb9eb Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Wed, 11 Apr 2007 08:04:56 +0200 Subject: Statically distinguish Workspace and Screen indices darcs-hash:20070411060456-9c5c1-a5642813cffe434e60310d21497217ef3704b296.gz --- Config.hs | 131 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 65 insertions(+), 66 deletions(-) (limited to 'Config.hs') diff --git a/Config.hs b/Config.hs index 9b2d2f5..ab92814 100644 --- a/Config.hs +++ b/Config.hs @@ -1,70 +1,69 @@ module Config where -{- -xmonad bindings follow mostly the dwm/wmii conventions: - - key combination action - - mod-shift-return new xterm - mod-p launch dmenu - mod-shift-p launch gmrun - - mod-space switch tiling mode - - mod-tab raise next window in stack - mod-j - mod-k - - mod-h resize currently focused window - mod-l - - mod-shift-c kill client - mod-shift-q exit window manager - mod-shift-ctrl-q restart window manager - - mod-return move currently focused window into master position - - mod-1..9 switch to workspace N - mod-shift-1..9 move client to workspace N - - mod-w,e,r switch to physical/Xinerama screen 1, 2 or 3. - -xmonad places each window into a "workspace." Each workspace can have -any number of windows, which you can cycle though with mod-j and mod-k. -Windows are either displayed full screen, tiled horizontally, or tiled -vertically. You can toggle the layout mode with mod-space, which will -cycle through the available modes. - -You can switch to workspace N with mod-N. For example, to switch to -workspace 5, you would press mod-5. Similarly, you can move the current -window to another workspace with mod-shift-N. - -When running with multiple monitors (Xinerama), each screen has exactly -1 workspace visible. When xmonad starts, workspace 1 is on screen 1, -workspace 2 is on screen 2, etc. If you switch to a workspace which is -currently visible on another screen, xmonad simply switches focus to -that screen. If you switch to a workspace which is *not* visible, xmonad -replaces the workspace on the *current* screen with the workspace you -selected. - -For example, if you have the following configuration: - -Screen 1: Workspace 2 -Screen 2: Workspace 5 (current workspace) - -and you wanted to view workspace 7 on screen 1, you would press: - -mod-2 (to select workspace 2, and make screen 1 the current screen) -mod-7 (to select workspace 7) - -Since switching to the workspace currently visible on a given screen is -such a common operation, shortcuts are provided: mod-{w,e,r} switch to -the workspace currently visible on screens 1, 2, and 3 respectively. -Likewise, shift-mod-{w,e,r} moves the current window to the workspace on -that screen. Using these keys, the above example would become mod-w -mod-7. - --} +-- +-- xmonad bindings follow mostly the dwm/wmii conventions: +-- +-- key combination action +-- +-- mod-shift-return new xterm +-- mod-p launch dmenu +-- mod-shift-p launch gmrun +-- +-- mod-space switch tiling mode +-- +-- mod-tab raise next window in stack +-- mod-j +-- mod-k +-- +-- mod-h resize currently focused window +-- mod-l +-- +-- mod-shift-c kill client +-- mod-shift-q exit window manager +-- mod-shift-ctrl-q restart window manager +-- +-- mod-return move currently focused window into master position +-- +-- mod-1..9 switch to workspace N +-- mod-shift-1..9 move client to workspace N +-- +-- mod-w,e,r switch to physical/Xinerama screen 1, 2 or 3. +-- +-- xmonad places each window into a "workspace." Each workspace can have +-- any number of windows, which you can cycle though with mod-j and mod-k. +-- Windows are either displayed full screen, tiled horizontally, or tiled +-- vertically. You can toggle the layout mode with mod-space, which will +-- cycle through the available modes. +-- +-- You can switch to workspace N with mod-N. For example, to switch to +-- workspace 5, you would press mod-5. Similarly, you can move the current +-- window to another workspace with mod-shift-N. +-- +-- When running with multiple monitors (Xinerama), each screen has exactly +-- 1 workspace visible. When xmonad starts, workspace 1 is on screen 1, +-- workspace 2 is on screen 2, etc. If you switch to a workspace which is +-- currently visible on another screen, xmonad simply switches focus to +-- that screen. If you switch to a workspace which is *not* visible, xmonad +-- replaces the workspace on the *current* screen with the workspace you +-- selected. +-- +-- For example, if you have the following configuration: +-- +-- Screen 1: Workspace 2 +-- Screen 2: Workspace 5 (current workspace) +-- +-- and you wanted to view workspace 7 on screen 1, you would press: +-- +-- mod-2 (to select workspace 2, and make screen 1 the current screen) +-- mod-7 (to select workspace 7) +-- +-- Since switching to the workspace currently visible on a given screen is +-- such a common operation, shortcuts are provided: mod-{w,e,r} switch to +-- the workspace currently visible on screens 1, 2, and 3 respectively. +-- Likewise, shift-mod-{w,e,r} moves the current window to the workspace on +-- that screen. Using these keys, the above example would become mod-w +-- mod-7. +-- import Data.Ratio import Data.Bits @@ -129,7 +128,7 @@ keys = M.fromList $ ] ++ -- Keybindings to get to each workspace: - [((m .|. modMask, xK_0 + fromIntegral i), f i) + [((m .|. modMask, xK_0 + fromIntegral i), f (fromIntegral (pred i))) -- index from 0. | i <- [1 .. workspaces] , (f, m) <- [(view, 0), (tag, shiftMask)]] -- cgit v1.2.3