aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-01-05 06:49:28 -0700
committerJosh Rahm <joshuarahm@gmail.com>2024-01-30 21:02:57 -0700
commit32ced7e1ae51b2c7f431e4c627479c7973187f62 (patch)
tree98cb57685498cf1ee9d8788c52b9a749bcad3334 /src/Rahm
parentab92f9e3005218fce2bd6bc668417d3edce2a1cc (diff)
downloadrde-32ced7e1ae51b2c7f431e4c627479c7973187f62.tar.gz
rde-32ced7e1ae51b2c7f431e4c627479c7973187f62.tar.bz2
rde-32ced7e1ae51b2c7f431e4c627479c7973187f62.zip
Add Keybinding to remove the border from a window.
In the future I would like to auto-detect when a window is large enough to be fullscreen and remove the border in that case, but that will take more work. For now a manual action is sufficient.
Diffstat (limited to 'src/Rahm')
-rw-r--r--src/Rahm/Desktop/Common.hs7
-rw-r--r--src/Rahm/Desktop/Keys.hs4
2 files changed, 11 insertions, 0 deletions
diff --git a/src/Rahm/Desktop/Common.hs b/src/Rahm/Desktop/Common.hs
index 44587d3..125d651 100644
--- a/src/Rahm/Desktop/Common.hs
+++ b/src/Rahm/Desktop/Common.hs
@@ -5,6 +5,7 @@ module Rahm.Desktop.Common
duplWindow,
pointerWorkspace,
getString,
+ setBorderWidth,
askWindowId,
windowJump,
withBorderWidth,
@@ -141,6 +142,12 @@ windowJump = mapM_ focus . headM =<< askWindowId
headM :: [a] -> Maybe a
headM = head
+setBorderWidth :: Int -> [Window] -> X ()
+setBorderWidth width wins = do
+ d <- asks display
+ forM_ wins $ \window ->
+ io $ setWindowBorderWidth d window $ fromIntegral width
+
withBorderWidth :: Int -> [Window] -> X a -> X a
withBorderWidth width ws fn = do
d <- asks display
diff --git a/src/Rahm/Desktop/Keys.hs b/src/Rahm/Desktop/Keys.hs
index 8df6e3b..5aad26d 100644
--- a/src/Rahm/Desktop/Keys.hs
+++ b/src/Rahm/Desktop/Keys.hs
@@ -53,6 +53,7 @@ import Rahm.Desktop.Common
pointerWindow,
pointerWorkspace,
runMaybeT_,
+ setBorderWidth,
)
import Rahm.Desktop.DMenu (runDMenu)
import qualified Rahm.Desktop.Dragging as D
@@ -764,6 +765,9 @@ bindings = do
justMod $
doc "Toggles respect for struts." $
sendMessage ToggleStruts
+ shiftMod $
+ doc "Remove the border from the focused window" $
+ withFocused $ setBorderWidth 0 . (: [])
bind xK_g $
(noMod -|- justMod) $