xmonad-contrib
xmonad-contrib copied to clipboard
Interest in new extensions?
Prompted by an issue on of the repos of my XMonad extensions, I was curious to hear if there would be any interest in including any of them into xmonad-contrib.
I have these:
- XMonad.Layout.PseudoTiling which lets windows have their preferred size (within the limits of the allotted space by the underlying layout manager), like in this screenshot.
- XMonad.Actions.Contexts which lets you switch between sets of workspaces.
- XMonad.Layout.SingleSpacing which adds spacing between windows rather than around windows (like XMonad.Layout.Spacing).
PRs are very much welcome 🎉
Yes, contributions are always welcome and these modules look quite nice! A few suggestions for making PRs:
- XMonad.Layout.PseudoTiling which lets windows have their preferred size (within the limits of the allotted space by the underlying layout manager), like in this screenshot.
I'm not quite sure how this differs from X.L.LayoutHints or X.L.HintedTile, so including that in the PR would make reviewing easier.
- XMonad.Actions.Contexts which lets you switch between sets of workspaces.
In the description you mention X.A.DynamicWorkspaceGroups but I'm not not 100% sure what the differences are between the two modules. Would be a great thing to get some elaboration on.
- XMonad.Layout.SingleSpacing which adds spacing between windows rather than around windows (like XMonad.Layout.Spacing).
This could probably live inside X.L.Spacing as an alternative layout instead of getting its own module.
- XMonad.Actions.Contexts which lets you switch between sets of workspaces.
In the description you mention X.A.DynamicWorkspaceGroups but I'm not not 100% sure what the differences are between the two modules. Would be a great thing to get some elaboration on.
@slotThe
As far as I know, there isn't really another extension like this. It may be vaguely related to X.A.Plane, X.A.DynamicWorkspaceGroups and X.L.IndependentScreens.
The most important difference between those extensions and this one is how the workspaces are internally handled. Most extensions manipulate the workspaces that XMonad keeps track of internally. This extension leaves those workspace sets completely intact, but just switches to completely other ones. One of the advantages is that this means that all your key bindings and extensions that manage workspaces can remain intact! ---https://github.com/Procrat/xmonad-contexts#similar-extensions
That's exactly the part I'd like to have some clarification on, yes :)
All right, that's all good to know!
It's been about six years since I wrote these and I have no experience with the other modules, but I'll try to answer some questions about the difference with those other ones:
-
XMonad.Layout.PseudoTiling vs X.L.LayoutHints: I use these layout modifiers in combination. In terms of the
WM_NORMAL_HINTS
property,LayoutHints
applies everything but the base size andPseudoTiling
applies just the base size. -
XMonad.Layout.PseudoTiling vs X.L.HintedTile:
HintedTile
is a layout, whereasPseudoTiling
is just a layout modifier which makes no assumptions about how space allocation for windows will happen. It will only use part of the allotted space according to its layout hints. -
XMonad.Actions.Contexts vs X.A.DynamicWorkspaceGroups: IIUC,
DynamicWorkspaceGroups
is for putting sets of workspaces on screens. Everything else that interacts with workspaces, like your bar, treats them as if they're all there (but perhaps on multiple screens).Contexts
completely hides all workspaces and switches them out with a fresh set. So your bar won't show your initial set of workspaces at all until you switch back. - XMonad.Actions.Contexts vs X.L.IndependentScreens: Similar to the one above, I think this is also just a way to have a separate set of workspaces for each screen.
Just to set some realistic expectations, I'm currently quite busy with other things in my life and this is very low on my priority list. Since I wrote these about six years ago and probably require a bit of clean up and documentation to bring them up to the standards of xmonad-contrib
, it might take a while before I turn them into a PR.
If you, @yuuyins, or anyone else wants it sooner, feel free to do so!
@Procrat friendly ping, in case you are still interested in this