From 89a5c66949acf1b9eb91d65a167aa1b9d6696fd2 Mon Sep 17 00:00:00 2001 From: Sridhar Ratnakumar Date: Wed, 30 Jun 2021 10:03:43 -0400 Subject: [PATCH] xmonad: pointer follows focus (trackpoint love) --- features/desktopish/xmonad/xmonad-srid/Main.hs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/features/desktopish/xmonad/xmonad-srid/Main.hs b/features/desktopish/xmonad/xmonad-srid/Main.hs index 1435a86..74f95ae 100644 --- a/features/desktopish/xmonad/xmonad-srid/Main.hs +++ b/features/desktopish/xmonad/xmonad-srid/Main.hs @@ -1,8 +1,8 @@ {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TypeApplications #-} import qualified Data.Map.Strict as M import XMonad +import XMonad.Actions.UpdatePointer (updatePointer) import XMonad.Hooks.EwmhDesktops (ewmh) import XMonad.Hooks.ManageDocks (ToggleStruts (..), avoidStruts, docks) import XMonad.Layout.NoBorders (withBorder) @@ -22,14 +22,20 @@ main = do { modMask = mod4Mask, -- Use Super instead of Alt terminal = "alacritty", -- "myst", layoutHook = - borderSpacing $ + borderSpacingBetweenWindows $ avoidStruts $ ThreeColMid 1 (3 / 100) (1 / 2) ||| layoutHook def, + logHook = + pointerFollowsFocus, keys = myKeys, -- https://htmlcolorcodes.com/ focusedBorderColor = "#50CBE8" } - -- Add border spacing between windows + + pointerFollowsFocus = + let centerOfWindow = ((0.5, 0.5), (0, 0)) + in uncurry updatePointer centerOfWindow + myKeys baseConfig@XConfig {modMask = modKey} = keys def baseConfig <> M.fromList @@ -38,7 +44,8 @@ main = do ((modKey, xK_b), sendMessage ToggleStruts) -- ... ] - borderSpacing = + + borderSpacingBetweenWindows = withBorder 5 . spacingRaw -- Apply borders only when there are 2 or more windows