aboutsummaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
authorJosh Rahm <rahm@josher.dev>2026-04-14 12:07:53 -0600
committerJosh Rahm <rahm@josher.dev>2026-04-14 12:07:53 -0600
commit7d904ac759a2b57aebc7af3f1ae3dbb12026771d (patch)
tree2c04dba3bbc816499a662ccce7792418a72b6155 /src/Main.hs
parent65c68092cbccc2c54ea792b6d09f643edbebd4de (diff)
downloadrde-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.hs7
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,