diff options
| author | Josh Rahm <rahm@josher.dev> | 2026-04-14 12:07:53 -0600 |
|---|---|---|
| committer | Josh Rahm <rahm@josher.dev> | 2026-04-14 12:07:53 -0600 |
| commit | 7d904ac759a2b57aebc7af3f1ae3dbb12026771d (patch) | |
| tree | 2c04dba3bbc816499a662ccce7792418a72b6155 /src/Main.hs | |
| parent | 65c68092cbccc2c54ea792b6d09f643edbebd4de (diff) | |
| download | rde-7d904ac759a2b57aebc7af3f1ae3dbb12026771d.tar.gz rde-7d904ac759a2b57aebc7af3f1ae3dbb12026771d.tar.bz2 rde-7d904ac759a2b57aebc7af3f1ae3dbb12026771d.zip | |
[feat] Implement "server" mode.
This allows a much better external control plane than hacky xdotool.
Diffstat (limited to 'src/Main.hs')
| -rw-r--r-- | src/Main.hs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Main.hs b/src/Main.hs index be77b34..9bdb76e 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -15,12 +15,13 @@ import Rahm.Desktop.Common import Rahm.Desktop.DMenu (menuCommandString) import Rahm.Desktop.History (historyHook) import Rahm.Desktop.Hooks.WindowChange (withStackChangeHook) -import Rahm.Desktop.Keys (applyKeys) +import Rahm.Desktop.Keys (applyKeys, commandHandler) import Rahm.Desktop.Layout (myLayout) import Rahm.Desktop.Logger (LogLevel (Debug, Info, Trace), logs) import Rahm.Desktop.Marking (Mark, markAllLocations) import Rahm.Desktop.PopupTerminal import Rahm.Desktop.RebindKeys (WindowHook, remapHook) +import Rahm.Desktop.Server (enableServerMode) import qualified Rahm.Desktop.StackSet as W ( RationalRect (..), allWindows, @@ -30,6 +31,7 @@ import Rahm.Desktop.XMobarLog (spawnXMobar, xMobarLogHook) import System.Directory (getHomeDirectory) import System.Environment (setEnv) import System.FilePath ((</>)) +import Control.Monad ((<=<)) import XMonad ( Default (def), ManageHook, @@ -77,6 +79,7 @@ import XMonad.Hooks.EwmhDesktops (ewmh) import XMonad.Hooks.ManageDocks (docks) import XMonad.Hooks.ManageHelpers (doFullFloat, isFullscreen) import XMonad.Hooks.ScreenCorners +import XMonad.Hooks.ServerMode (serverModeEventHook) import XMonad.Layout.Fullscreen (fullscreenEventHook) import XMonad.Util.SpawnOnce (spawnOnce) @@ -94,7 +97,7 @@ main = do xmobar <- spawnXMobar (=<<) X.xmonad - $ applyKeys + $ (enableServerMode commandHandler <=< applyKeys) $ withStackChangeHook ( mconcat [ historyHook, |