Tomas Janousek 69134f9e8a X.Operations: Apply size hints in floatLocation
This is hopefully harmless with well-behaved clients and ordinary xmonad
configs, and it enables using re-floating to apply size hints to
existing windows. The only visible behaviour change I can foresee is
that tiled windows (which ignore hints by default, unless
X.L.LayoutHints is used) will now snap to size hints whenever they're
floated (either via a keybinding or on mouseMoveWindow), whereas
previously they'd only do so on mouseResizeWindow.

My use-case for this is the following: when I change fonts in my
terminal, it updates its size hints and then sends a
ConfigureRequestEvent to change its size to keep the number of rows and
columns the same, and it also happens to reset the position to 0, 0. If
it's tiled, that request is just ignored and hintsEventHook handles the
layout refresh. If it happens to be floating, I want neither the move to
0, 0 nor the window size change to keep rows/colums, so I have a
handleEventHook that ignores that ConfigureRequestEvent and just
refloats the window, but I need a way to reapply size hints.

I could add a separate function that applies these hints to the floating
RationalRect, but that seems like a lossy operation due to the Doubles
in there. So I'd probably end up replicating most of the code from
floatLocation, and then I might just improve that instead… :-)

(I'll submit that custom ConfigureRequestEvent-ignoring hook to
xmonad-contrib later.)
2023-05-20 08:34:07 +02:00
2023-04-01 15:18:08 +02:00
2023-04-01 15:17:45 +02:00
2022-09-05 20:14:46 +12:00
2022-06-25 18:49:02 +01:00
2023-04-01 15:18:23 +02:00
2022-09-05 20:14:46 +12:00
2023-05-12 13:19:45 -04:00
2023-01-06 13:49:07 +01:00
2007-03-07 01:35:27 +00:00
2023-04-01 15:17:45 +02:00
2023-02-11 14:00:51 +00:00
2023-04-02 15:18:47 +02:00

XMonad logo

Hackage License Made in Haskell
Stack Cabal Nix
GitHub Sponsors Open Collective
Chat on #xmonad@irc.libera.chat Chat on #xmonad:matrix.org

xmonad

A tiling window manager for X11.

XMonad is a tiling window manager for X11. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use. Window manager features are accessible from the keyboard: a mouse is optional. xmonad is written, configured and extensible in Haskell. Custom layout algorithms, key bindings and other extensions may be written by the user in config files. Layouts are applied dynamically, and different layouts may be used on each workspace. Xinerama is fully supported, allowing windows to be tiled on several physical screens.

This repository contains the xmonad package, a minimal, stable, yet extensible core. It is accompanied by xmonad-contrib, a library of hundreds of additional community-maintained tiling algorithms and extension modules. The two combined make for a powerful X11 window-manager with endless customization possibilities. They are, quite literally, libraries for creating your own window manager.

Installation

For installation and configuration instructions, please see:

If you run into any trouble, consult our documentation or ask the community for help.

Contributing

We welcome all forms of contributions:

Please do read the CONTRIBUTING document for more information about bug reporting and code contributions. For a brief overview of the architecture and code conventions, see the documentation for the XMonad.Doc.Developing module. If in doubt, talk to us.

Authors

Started in 2007 by Spencer Janssen, Don Stewart and Jason Creighton, the XMonad project lives on thanks to new generations of maintainers and dozens of contributors.

Description
The core of xmonad, a small but functional ICCCM-compliant tiling window manager
Readme BSD-3-Clause 6.2 MiB
Languages
Haskell 97.6%
Nix 2%
Shell 0.4%