This is a first stab at making X.U.NamedScratchpads a little bit more general (while trying as hard as possible to retain backwards compatibility :/).
Summary of Commits
X.U.NamedScratchpad: Use ExtensibleState to store scratchpads
Instead of using the scratchpads that the user specifies (as this will realistically just be "all of them"), create some extensible state for the scratchpads to reside in.
To ensure that this is done in a backwards compatible way, function signatures did not change and they instead just ignore the list of scratchpads given to them and the initialisation is done in the manageHook, which users already have to use anyways.
X.U.NamedScratchpad: Add support for dynamic scratchpads
With the extensible state machinery in place1, we are now able to seamlessly integrate dynamic scratchpad functionality into X.U.NamedScratchpad. This is one step into the direction of having a single scratchpad implementation that can "do anything".
[x] I've considered how to best test these changes (property, unit,
manually, ...) and concluded: I've tested this manually and (to my surprise!) is actually works
I'm semi-happy with this (certainly happier than with a standalone DynamicScratchpads module), so I will merge in a bit if there are no further objections
Description
Supersedes/Closes: https://github.com/xmonad/xmonad-contrib/pull/662
This is a first stab at making X.U.NamedScratchpads a little bit more general (while trying as hard as possible to retain backwards compatibility :/).
Summary of Commits
X.U.NamedScratchpad: Use ExtensibleState to store scratchpads
Instead of using the scratchpads that the user specifies (as this will realistically just be "all of them"), create some extensible state for the scratchpads to reside in.
To ensure that this is done in a backwards compatible way, function signatures did not change and they instead just ignore the list of scratchpads given to them and the initialisation is done in the manageHook, which users already have to use anyways.
X.U.NamedScratchpad: Add support for dynamic scratchpads
With the extensible state machinery in place1, we are now able to seamlessly integrate dynamic scratchpad functionality into X.U.NamedScratchpad. This is one step into the direction of having a single scratchpad implementation that can "do anything".
Related: https://github.com/xmonad/xmonad-contrib/issues/591 Related: https://github.com/xmonad/xmonad-contrib/pull/662
X.U.DynamicScratchpads: Deprecate
Checklist
[x] I've read CONTRIBUTING.md
[x] I've considered how to best test these changes (property, unit, manually, ...) and concluded: I've tested this manually and (to my surprise!) is actually works
[x] I updated the
CHANGES.md
file