aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Keys.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Rahm/Desktop/Keys.hs')
-rw-r--r--src/Rahm/Desktop/Keys.hs63
1 files changed, 62 insertions, 1 deletions
diff --git a/src/Rahm/Desktop/Keys.hs b/src/Rahm/Desktop/Keys.hs
index 7bceeef..0bf3ba0 100644
--- a/src/Rahm/Desktop/Keys.hs
+++ b/src/Rahm/Desktop/Keys.hs
@@ -141,7 +141,7 @@ import Rahm.Desktop.XMobarLog.PendingBuffer
pushAddPendingBuffer,
pushPendingBuffer,
)
-import System.Exit (exitSuccess, exitFailure)
+import System.Exit (exitFailure, exitSuccess)
import Text.Printf (printf)
import XMonad as X
import XMonad.Actions.CopyWindow as CopyWindow
@@ -1192,6 +1192,10 @@ bindings = do
)
in windows f >> escape
+-- where
+--
+-- permuteMods = map (foldl' (.|.) 0) . filterM (const [True, False])
+
myMouseMoveWindow =
D.mouseMoveWindowAndThen X.focus $
mconcat
@@ -1230,6 +1234,63 @@ windowSpecificBindings config = do
in tell =<< lift (b --> return (keymap config))
emitKey = flip sendKey w
+ configureIf (return True) $ do
+ -- The following are bindings that send keystrokes to the focused window. This
+ -- makes navigating with arrow keys and whatnot much easier.
+ forM_ (permuteMods [0, controlMask, shiftMask]) $ \mods -> do
+ bind xK_c $
+ rawMask (mod3Mask .|. mods) $
+ emitKey (mods, xK_Up)
+
+ bind xK_t $
+ rawMask (mod3Mask .|. mods) $
+ emitKey (mods, xK_Down)
+
+ bind xK_h $
+ rawMask (mod3Mask .|. mods) $
+ emitKey (mods, xK_Left)
+
+ bind xK_n $
+ rawMask (mod3Mask .|. mods) $
+ emitKey (mods, xK_Right)
+
+ forM_ [0, shiftMask] $ \m -> do
+ bind xK_braceleft $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. controlMask, xK_Up)
+
+ bind xK_braceright $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. controlMask, xK_Down)
+
+ bind xK_dollar $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. 0, xK_End)
+
+ bind xK_at $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. 0, xK_Home)
+
+ bind xK_w $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. shiftMask, xK_BackSpace)
+
+ bind xK_b $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. controlMask, xK_Left)
+
+ bind xK_e $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. controlMask, xK_Right)
+
+ bind xK_u $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. controlMask, xK_Page_Up)
+
+ bind xK_d $
+ rawMask (m .|. mod3Mask) $
+ emitKey (m .|. controlMask, xK_Page_Down)
+
configureIf (flip elem (browsers ++ spotify) <$> className) $ do
bind xK_h $ do
rawMask controlMask $ emitKey (0, xK_BackSpace)