diff options
| author | Josh Rahm <rahm@google.com> | 2022-03-28 11:52:34 -0600 |
|---|---|---|
| committer | Josh Rahm <joshuarahm@gmail.com> | 2022-10-09 12:19:45 -0600 |
| commit | 0762cb0962e269caa70d5aa6c012a2a3fc1140c9 (patch) | |
| tree | b9621342d9f16d25ce9ae2fdc1929934e4f8931e /src/Internal/Keys.hs | |
| parent | c8e3f7627115603cb794deb47505b0506baad7b0 (diff) | |
| download | rde-0762cb0962e269caa70d5aa6c012a2a3fc1140c9.tar.gz rde-0762cb0962e269caa70d5aa6c012a2a3fc1140c9.tar.bz2 rde-0762cb0962e269caa70d5aa6c012a2a3fc1140c9.zip | |
Add (some) ability to send keys to other windows
Diffstat (limited to 'src/Internal/Keys.hs')
| -rw-r--r-- | src/Internal/Keys.hs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Internal/Keys.hs b/src/Internal/Keys.hs index 5d4e6fe..13112cb 100644 --- a/src/Internal/Keys.hs +++ b/src/Internal/Keys.hs @@ -1,6 +1,8 @@ {-# LANGUAGE RankNTypes #-} module Internal.Keys (applyKeys) where +import Control.Monad.Trans.Class +import Control.Monad.Reader import Control.Monad.Loops (iterateWhile) import Control.Monad.Fix (fix) import Graphics.X11.ExtraTypes.XF86; @@ -41,6 +43,7 @@ import XMonad.Actions.SpawnOn as SpawnOn import qualified Data.Map as Map import qualified XMonad.StackSet as W +import Internal.Windows import Internal.Lib import Internal.DMenu import Internal.PassMenu @@ -112,8 +115,26 @@ keymap = runKeys $ do -- something goes wrong with the keyboard layout and for first-time boots -- where dmenu/alacritty may not be installed. rawMask mod4Mask $ spawn "xterm" + + -- Moves xmobar to different monitors. justMod $ spawn "pkill -SIGUSR1 xmobar" + bind xK_F1 $ do + -- Experimental. Sends 'a' to all windows. + -- + -- I've discovered that many clients ignore such synthetic events, including + -- Spotify, Chrome and Gedit. Some, like Chrome, seem to honor them if it's + -- focused. It's pretty annoying because it keeps me from doing some cool + -- things all for BS security theater, but I guess there might be some way + -- to do this via XTest? + shiftMod $ forAllWindows $ \w -> do + logs $ "Try send to " ++ show w + sendKey (0, xK_a) w + + -- Experimental. Sends 'A' 10 times to the focused window. + justMod $ + replicateM_ 10 $ withFocused (sendKey (shiftMask, xK_a)) + bind xK_F10 $ do justMod playPause |