|
@@ -67,117 +67,113 @@ main = do
|
|
|
`removeKeys` myRemoveKeys
|
|
|
|
|
|
myKeys conf@(XConfig {XMonad.modMask = myModMask}) = M.fromList $
|
|
|
- [
|
|
|
- -- extra programs
|
|
|
- ((myModMask, xK_x),
|
|
|
- spawn "emacsclient -c")
|
|
|
- , ((myModMask, xK_z),
|
|
|
- spawn "firefox-nightly")
|
|
|
- , ((myModMask, xK_m),
|
|
|
- spawn ":"
|
|
|
- -- TODO put social stuff here (Discord, Riot) and open it on a particular workspace
|
|
|
- )
|
|
|
-
|
|
|
- -- defaults
|
|
|
-
|
|
|
- -- Spawn terminal.
|
|
|
- , ((myModMask .|. shiftMask, xK_Return),
|
|
|
- spawn myTerminal)
|
|
|
-
|
|
|
- -- Close focused window.
|
|
|
- , ((myModMask .|. shiftMask, xK_c),
|
|
|
- kill)
|
|
|
-
|
|
|
- -- Cycle through the available layout algorithms.
|
|
|
- , ((myModMask, xK_space),
|
|
|
- sendMessage NextLayout)
|
|
|
-
|
|
|
- -- Reset the layouts on the current workspace to default.
|
|
|
- , ((myModMask .|. shiftMask, xK_space),
|
|
|
- setLayout $ XMonad.layoutHook conf)
|
|
|
-
|
|
|
- -- Resize viewed windows to the correct size.
|
|
|
- , ((myModMask, xK_n),
|
|
|
- refresh)
|
|
|
-
|
|
|
- -- Move focus to the next window.
|
|
|
- , ((myModMask, xK_Tab),
|
|
|
- windows W.focusDown)
|
|
|
-
|
|
|
- -- Move focus to the next window.
|
|
|
- , ((myModMask, xK_j),
|
|
|
- windows W.focusDown)
|
|
|
-
|
|
|
- -- Move focus to the previous window.
|
|
|
- , ((myModMask, xK_k),
|
|
|
- windows W.focusUp )
|
|
|
-
|
|
|
- -- Move focus to the master window.
|
|
|
- , ((myModMask, xK_m),
|
|
|
- windows W.focusMaster )
|
|
|
-
|
|
|
- -- Swap the focused window and the master window.
|
|
|
- , ((myModMask, xK_Return),
|
|
|
- windows W.swapMaster)
|
|
|
-
|
|
|
- -- Swap the focused window with the next window.
|
|
|
- , ((myModMask .|. shiftMask, xK_j),
|
|
|
- windows W.swapDown )
|
|
|
-
|
|
|
- -- Swap the focused window with the previous window.
|
|
|
- , ((myModMask .|. shiftMask, xK_k),
|
|
|
- windows W.swapUp )
|
|
|
-
|
|
|
- -- Shrink the master area.
|
|
|
- , ((myModMask, xK_h),
|
|
|
- sendMessage Shrink)
|
|
|
-
|
|
|
- -- Expand the master area.
|
|
|
- , ((myModMask, xK_l),
|
|
|
- sendMessage Expand)
|
|
|
-
|
|
|
- -- Push window back into tiling.
|
|
|
- , ((myModMask, xK_t),
|
|
|
- withFocused $ windows . W.sink)
|
|
|
-
|
|
|
- -- Increment the number of windows in the master area.
|
|
|
- , ((myModMask, xK_comma),
|
|
|
- sendMessage (IncMasterN 1))
|
|
|
-
|
|
|
- -- Decrement the number of windows in the master area.
|
|
|
- , ((myModMask, xK_period),
|
|
|
- sendMessage (IncMasterN (-1)))
|
|
|
-
|
|
|
- -- Toggle the status bar gap.
|
|
|
-
|
|
|
- -- Restart xmonad.
|
|
|
- , ((myModMask, xK_q),
|
|
|
- restart "xmonad" True)
|
|
|
- ]
|
|
|
- ++
|
|
|
-
|
|
|
- -- mod-[1..9], Switch to workspace N
|
|
|
- -- mod-shift-[1..9], Move client to workspace N
|
|
|
- [((m .|. myModMask, k), windows $ f i)
|
|
|
- | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
|
|
|
- , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
|
|
|
- ++
|
|
|
-
|
|
|
- -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
|
|
|
- -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
|
|
|
- [((m .|. myModMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
|
|
|
- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
|
|
|
- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
|
|
|
+ -- extra programs
|
|
|
+ [ ((myModMask, xK_x),
|
|
|
+ spawn "emacsclient -c")
|
|
|
+ , ((myModMask, xK_z),
|
|
|
+ spawn "firefox-nightly")
|
|
|
+ , ((myModMask, xK_m),
|
|
|
+ spawn ":")
|
|
|
+ -- TODO put social stuff here (Discord, Riot) and open it on a particular workspace
|
|
|
+
|
|
|
+ -- defaults
|
|
|
+
|
|
|
+ -- Spawn terminal.
|
|
|
+ , ((myModMask .|. shiftMask, xK_Return),
|
|
|
+ spawn myTerminal)
|
|
|
+
|
|
|
+ -- Close focused window.
|
|
|
+ , ((myModMask .|. shiftMask, xK_c),
|
|
|
+ kill)
|
|
|
+
|
|
|
+ -- Cycle through the available layout algorithms.
|
|
|
+ , ((myModMask, xK_space),
|
|
|
+ sendMessage NextLayout)
|
|
|
+
|
|
|
+ -- Reset the layouts on the current workspace to default.
|
|
|
+ , ((myModMask .|. shiftMask, xK_space),
|
|
|
+ setLayout $ XMonad.layoutHook conf)
|
|
|
+
|
|
|
+ -- Resize viewed windows to the correct size.
|
|
|
+ , ((myModMask, xK_n),
|
|
|
+ refresh)
|
|
|
+
|
|
|
+ -- Move focus to the next window.
|
|
|
+ , ((myModMask, xK_Tab),
|
|
|
+ windows W.focusDown)
|
|
|
+
|
|
|
+ -- Move focus to the next window.
|
|
|
+ , ((myModMask, xK_j),
|
|
|
+ windows W.focusDown)
|
|
|
+
|
|
|
+ -- Move focus to the previous window.
|
|
|
+ , ((myModMask, xK_k),
|
|
|
+ windows W.focusUp )
|
|
|
+
|
|
|
+ -- Move focus to the master window.
|
|
|
+ , ((myModMask, xK_m),
|
|
|
+ windows W.focusMaster )
|
|
|
+
|
|
|
+ -- Swap the focused window and the master window.
|
|
|
+ , ((myModMask, xK_Return),
|
|
|
+ windows W.swapMaster)
|
|
|
+
|
|
|
+ -- Swap the focused window with the next window.
|
|
|
+ , ((myModMask .|. shiftMask, xK_j),
|
|
|
+ windows W.swapDown )
|
|
|
+
|
|
|
+ -- Swap the focused window with the previous window.
|
|
|
+ , ((myModMask .|. shiftMask, xK_k),
|
|
|
+ windows W.swapUp )
|
|
|
+
|
|
|
+ -- Shrink the master area.
|
|
|
+ , ((myModMask, xK_h),
|
|
|
+ sendMessage Shrink)
|
|
|
+
|
|
|
+ -- Expand the master area.
|
|
|
+ , ((myModMask, xK_l),
|
|
|
+ sendMessage Expand)
|
|
|
+
|
|
|
+ -- Push window back into tiling.
|
|
|
+ , ((myModMask, xK_t),
|
|
|
+ withFocused $ windows . W.sink)
|
|
|
+
|
|
|
+ -- Increment the number of windows in the master area.
|
|
|
+ , ((myModMask, xK_comma),
|
|
|
+ sendMessage (IncMasterN 1))
|
|
|
+
|
|
|
+ -- Decrement the number of windows in the master area.
|
|
|
+ , ((myModMask, xK_period),
|
|
|
+ sendMessage (IncMasterN (-1)))
|
|
|
+
|
|
|
+ -- Toggle the status bar gap.
|
|
|
+
|
|
|
+ -- Restart xmonad.
|
|
|
+ , ((myModMask, xK_q),
|
|
|
+ restart "xmonad" True)
|
|
|
+ ]
|
|
|
+ ++
|
|
|
+
|
|
|
+ -- mod-[1..9], Switch to workspace N
|
|
|
+ -- mod-shift-[1..9], Move client to workspace N
|
|
|
+ [ ((m .|. myModMask, k), windows $ f i)
|
|
|
+ | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
|
|
|
+ , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]
|
|
|
+ ]
|
|
|
+ ++
|
|
|
+
|
|
|
+ -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
|
|
|
+ -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
|
|
|
+ [ ((m .|. myModMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
|
|
|
+ | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
|
|
|
+ , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]
|
|
|
+ ]
|
|
|
|
|
|
myRemoveKeys =
|
|
|
[ (mod4Mask, xK_Tab)
|
|
|
, (mod4Mask .|. shiftMask, xK_Tab)
|
|
|
+ , (mod4Mask, xK_p)
|
|
|
]
|
|
|
- ++
|
|
|
- -- if s == "xmonad" then
|
|
|
- [(mod4Mask, xK_p)]
|
|
|
- -- else
|
|
|
- -- []
|
|
|
|
|
|
myManageHook = composeAll . concat $
|
|
|
[ [ className =? c --> doFloat | c <- myFloats]
|