diff options
| author | Josh Rahm <joshuarahm@gmail.com> | 2021-11-02 23:20:35 -0600 |
|---|---|---|
| committer | Josh Rahm <joshuarahm@gmail.com> | 2022-10-09 12:19:45 -0600 |
| commit | 6f831fdf58715087a609d4743cbcdd1ed5bb52cc (patch) | |
| tree | 0ff95668117a7b78cbd91b29a94c9904995b90ac /src/Internal/Keys.hs | |
| parent | 80522aff9bcc601b8250024fb517d153dc189024 (diff) | |
| download | rde-6f831fdf58715087a609d4743cbcdd1ed5bb52cc.tar.gz rde-6f831fdf58715087a609d4743cbcdd1ed5bb52cc.tar.bz2 rde-6f831fdf58715087a609d4743cbcdd1ed5bb52cc.zip | |
Rework keys
Finally removed the buggy hjkl navigation in favor of a more traditional
key bindings:
- h,l move between windows like Tab and S-Tab
- j,k adjust the master window size
Added ability to swap current window with a marked window using
S-'-<mark>.
Diffstat (limited to 'src/Internal/Keys.hs')
| -rw-r--r-- | src/Internal/Keys.hs | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/src/Internal/Keys.hs b/src/Internal/Keys.hs index 3dff864..0b7b1c3 100644 --- a/src/Internal/Keys.hs +++ b/src/Internal/Keys.hs @@ -42,8 +42,7 @@ applyKeys config@(XConfig {modMask = modm}) = withNewMarkContext $ \markContext -> do ks <- newKeys markContext ms <- newMouse markContext - withWindowNavigation (xK_k, xK_h, xK_j, xK_l) $ - config { keys = ks, mouseBindings = ms } + return $ config { keys = ks, mouseBindings = ms } newMouse :: MarkContext -> IO (XConfig l -> Map (KeyMask, Button) (Window -> X ())) newMouse markContext = @@ -74,28 +73,41 @@ newKeys :: MarkContext -> IO (KeyMap l) newKeys markContext = return $ \config@(XConfig {modMask = modm}) -> Map.fromList - [ ((modm, xK_F12), (void $ spawn "spotify-control next")) - , ((modm, xK_F11), (void $ spawn "spotify-control prev")) - , ((modm, xK_semicolon), scratchpadSpawnActionTerminal "scratchpad") - , ((modm, xK_F10), (void $ spawn "spotify-control play")) - , ((modm, xK_r), runDMenu) - , ((modm, xK_c), runPassMenu) + [ ((modm, xK_F12), (void $ spawn "spotify-control next")) + , ((modm, xK_F11), (void $ spawn "spotify-control prev")) + , ((modm, xK_semicolon), scratchpadSpawnActionTerminal "scratchpad") + , ((modm, xK_F10), (void $ spawn "spotify-control play")) + , ((modm, xK_r), runDMenu) + , ((modm, xK_c), runPassMenu) + , ((modm, xK_h), windows W.focusDown) + , ((modm, xK_l), windows W.focusUp) + , ((modm .|. shiftMask, xK_h), windows W.swapUp) + , ((modm .|. shiftMask, xK_l), windows W.swapDown) + , ((modm , xK_Return), windows W.swapMaster) + , ((modm, xK_j), sendMessage Shrink) + , ((modm, xK_k), sendMessage Expand) , ((modm .|. shiftMask, xK_r), (void $ spawn "gmrun")) - , ((modm .|. mod1Mask, xK_l), (void $ spawn "xsecurelock")) - , ((modm .|. mod1Mask, xK_s), (void $ spawn "sudo systemctl suspend && xsecurelock")) + , ((modm .|. mod1Mask, xK_l), (void $ spawn "xsecurelock")) + , ((modm .|. mod1Mask, xK_s), (void $ spawn "sudo systemctl suspend && xsecurelock")) , ((modm .|. shiftMask, xK_c), kill) , ((modm .|. shiftMask, xK_t), withFocused $ windows . W.sink) - , ((mod4Mask, xK_BackSpace), (void $ spawn "xterm")) - , ((mod3Mask, xK_BackSpace), (void $ spawn "pkill -SIGUSR1 xmobar")) - , ((mod3Mask, xK_t), (void $ spawn (terminal config))) - , ((modm, xK_m), (submap $ mapAlpha modm (markCurrentWindow markContext))) - , ((modm, xK_w), runXPlus markContext config windowJump) - , ((modm, xK_apostrophe), (submap $ + , ((mod4Mask, xK_BackSpace), (void $ spawn "xterm")) + , ((modm, xK_BackSpace), (void $ spawn "pkill -SIGUSR1 xmobar")) + , ((modm, xK_t), (void $ spawn (terminal config))) + , ((modm, xK_m), (submap $ mapAlpha modm (markCurrentWindow markContext))) + , ((modm, xK_w), runXPlus markContext config windowJump) + , ((modm, xK_apostrophe), (submap $ Map.insert (modm, xK_apostrophe) (jumpToLast markContext) (mapAlpha modm (jumpToMark markContext)))) + , ((modm .|. shiftMask, xK_apostrophe), (submap $ + Map.insert + (modm .|. shiftMask, xK_apostrophe) + (swapWithLastMark markContext) + (mapAlpha (modm .|. shiftMask) (swapWithMark markContext)))) + , ((modm, xK_g), (submap $ mapNumbersAndAlpha 0 ( runXPlus markContext config . gotoWorkspace))) |