aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Keys.hs
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2022-04-28 18:15:34 -0600
committerJosh Rahm <rahm@google.com>2022-04-28 18:15:34 -0600
commitfcea6ce1371de988deb2dd719263cb2c9c59dfd7 (patch)
tree29cfd78c34160715fd33e3133f74a704318841ca /src/Rahm/Desktop/Keys.hs
parent9b60476c272d5a9dd8cce4b811c2da6ee4a203aa (diff)
downloadrde-fcea6ce1371de988deb2dd719263cb2c9c59dfd7.tar.gz
rde-fcea6ce1371de988deb2dd719263cb2c9c59dfd7.tar.bz2
rde-fcea6ce1371de988deb2dd719263cb2c9c59dfd7.zip
Add Bordering layout.
The bordering layout can add windows along the border of the screen, that way something like videos or something can be shown in the corner of the screen.
Diffstat (limited to 'src/Rahm/Desktop/Keys.hs')
-rw-r--r--src/Rahm/Desktop/Keys.hs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/Rahm/Desktop/Keys.hs b/src/Rahm/Desktop/Keys.hs
index 50b7104..26021bb 100644
--- a/src/Rahm/Desktop/Keys.hs
+++ b/src/Rahm/Desktop/Keys.hs
@@ -14,6 +14,7 @@ import Data.List.Safe ((!!))
import Data.Map (Map)
import Data.Maybe (isJust, fromMaybe, mapMaybe)
import Data.Monoid (Endo(..))
+import Data.Proxy
import Debug.Trace
import Graphics.X11.ExtraTypes.XF86;
import Graphics.X11.ExtraTypes.XorgDefault
@@ -44,6 +45,7 @@ import qualified Data.Map as Map
import Rahm.Desktop.DMenu
import Rahm.Desktop.Keys.Dsl
import Rahm.Desktop.Layout
+import Rahm.Desktop.Layout.Bordering
import Rahm.Desktop.Layout.ConsistentMosaic
import Rahm.Desktop.Layout.Flip (flipHorizontally, flipVertically)
import Rahm.Desktop.Layout.Hole (toggleHole)
@@ -294,6 +296,44 @@ keymap = runKeys $ do
moveLocationToWorkspaceFn ws loc
gotoWorkspaceFn ws
+ bind xK_n $ do
+ justMod $
+ doc "Banish the current window to the border" $
+ withFocused $ sendMessage . toggleBanish
+
+ shiftMod $
+ doc "Rotate border windows" $ repeatable $ do
+
+ bind xK_h $ do
+
+ (justMod -|- noMod) $
+ withFocused $ sendMessage . moveForward
+
+ shiftMod $
+ sendMessage (rotateBorderForward (Proxy :: Proxy Window))
+
+ bind xK_l $ do
+
+ (justMod -|- noMod) $
+ withFocused $ sendMessage . moveBackward
+
+ shiftMod $
+ sendMessage (rotateBorderBackward (Proxy :: Proxy Window))
+
+ bind xK_plus $ do
+
+ (justMod -|- noMod) $
+ sendMessage $
+ changeWidth Proxy (1/24) <>
+ changeHeight (Proxy :: Proxy Window) (1/24)
+
+ bind xK_minus $ do
+
+ (justMod -|- noMod) $
+ sendMessage $
+ changeWidth Proxy (-1/24) <>
+ changeHeight (Proxy :: Proxy Window) (-1/24)
+
bind xK_d $
justMod $
doc "Record (define) macros." $