[xmonad] Hide border when switching to full screen
Brandon Allbery
allbery.b at gmail.com
Sat Jan 13 21:16:01 UTC 2024
You don't handle app-initiated fullscreen mode. There's a rework of
EwmhDesktops somewhere that would let you register a handler for
`_NET_WM_STATE_FULLSCREEN` to toggle the border, but no ETA for it to land,
so you would have to use `handleEventHook` to watch for the `_NET_WM_STATE`
event being sent to the root window, extract the target window from it,
check that the requested state flag is `_NET_WM_STATE_FULLSCREEN`, and set
or toggle the border appropriately. See
https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.html#idm46201142858672
at "To change the state of a mapped window".
On Sat, Jan 13, 2024 at 9:10 AM Eyal Erez <oneself at gmail.com> wrote:
> Hi,
>
> Currently, if a window goes into full screen mode (e.g., if I hit "f"
> while watching a youtube video in Chrome), I would like it to take up the
> entire screen and also remove the window border. I have tried doing this
> with the code snippets I've included below (full xmonad.hs
> <https://pastebin.com/uDqdETiF>). However this only works partially. The
> window resizes to take up the entire screen, including toggling struts.
> However, the border does not toggle off. Is there anything I can do
> differently? Thank you.
>
> -- Define a function which toggles borders and also does full float
> doFullFloatNoBorders :: ManageHook
> doFullFloatNoBorders = do
> liftX $ withFocused toggleBorder
> doFullFloat
>
> myManageHook :: [ManageHook]
> myManageHook =
> [ isFullscreen --> doFullFloatNoBorders
> -- more rules
> ]
> where role = stringProperty "WM_WINDOW_ROLE"
> unfloat = ask >>= doF . W.sink
>
> myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
> [ -- Toggle borders
> ((modMask .|. shiftMask, xK_b ), withFocused toggleBorder)
> -- more key definitions
> ]
>
> -- Main configuration
> myConfig = ewmhFullscreen $ ewmh def
> { modMask = mod1Mask
> , keys = myKeys
> , manageHook = manageDocks <+> composeAll myManageHook
> -- more configuration
> }
> -- Key binding to toggle the gap for the bar.
> toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask .|.
> controlMask, xK_b)
>
> main = xmonad =<< statusBar "xmonad" def toggleStrutsKey myConfig
>
> --
> *Eyal Erez <**oneself at gmail.com* <oneself at gmail.com>*>*
>
> There are 10 types of people, those who know binary and those who don't.
>
> _______________________________________________
> xmonad mailing list
> xmonad at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
>
--
brandon s allbery kf8nh
allbery.b at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/xmonad/attachments/20240113/b3e0b09d/attachment.html>
More information about the xmonad
mailing list