xmonad / xmonad-contrib

Contributed modules for xmonad

Home Page:https://xmonad.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Interest in new extensions?

Procrat opened this issue · comments

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:

PRs are very much welcome 🎉

Yes, contributions are always welcome and these modules look quite nice! A few suggestions for making PRs:

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.

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.

This could probably live inside X.L.Spacing as an alternative layout instead of getting its own module.

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

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 and PseudoTiling applies just the base size.
  • XMonad.Layout.PseudoTiling vs X.L.HintedTile: HintedTile is a layout, whereas PseudoTiling 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