stylix: allow choosing testbed desktop#1222
Conversation
fff4795 to
c32bab3
Compare
|
This seems a bit overkill IMO. The standard configuration was meant as a default for when the target is an application rather than a DE/WM itself - with the plan that GNOME would eventually be replaced with something more minimal like By adding options like this, we risk duplicating a lot of the |
imo cage is too minimal because it doesn't interact well with popups iirc. perhaps we use a minimal wm like river. |
|
The reasoning is that: a) Some applications might be desktop specific, like b) In the case of We could limit our selection to a couple desktops for their specific properties (Eg. X11/Wayland, doesn't include a bar, doesn't handle notifications). Right now, I added all desktops we have testbeds for. |
c32bab3 to
af9721a
Compare
Flameopathic
left a comment
There was a problem hiding this comment.
When adding testbeds, I was running into the issue of needing different WMs to test different targets. I think this would be a great addition; thank you!
af9721a to
046be3a
Compare
trueNAHO
left a comment
There was a problem hiding this comment.
This seems a bit overkill IMO. The standard configuration was meant as a default for when the target is an application rather than a DE/WM itself - with the plan that GNOME would eventually be replaced with something more minimal like
cage.
Yes, migrating to the minimal functioning graphical environment would be the ideal solution.
If testbeds are targeting a DE/WM, or an application which requires something more specific then they should include their own configuration from scratch.
I agree that providing interfaces to several graphical environments is arguably overkill. The main benefit of this abstraction is the reduction of the very occasional code duplication:
a) Some applications might be desktop specific, like
gnome-text-editorfor example. So if we support multiple applications for the same desktop, we end up with a lot of duplicate code and potentially inconsistent setups. If a module needs a more specific setup on top of the desktop, it can handle that.
By adding options like this, we risk duplicating a lot of the
services.xserver.*options from NixOS as essentially aliases which just enable a couple of things.
Yes, but providing a graphical environment interface increases the consistency for the same graphical environment across testbeds:
b) In the case of
mako(#1192), for example, I had to replicate basically all ofHyprland's testbed code.
Despite this abstraction being arguably overkill, it allows testbeds to target X11 and Wayland individually. However, does XWayland nowadays not cover all our X11 use cases:
We could limit our selection to a couple desktops for their specific properties (Eg. X11/Wayland, doesn't include a bar, doesn't handle notifications).
This solves the problem generally by interfacing all our supported graphical environments:
Right now, I added all desktops we have testbeds for.
However, I agree with danth's stance of this abstraction being overkill. The best solution would be to replace GNOME with something like cage and make everything work there.
Instead of #1192 changing the entire graphical environment, it would be better if it would somehow be able to replace GNOME's notification daemon:
Regardless of this PR being merged, the change in /modules/bspwm/testbeds/default.nix of replacing xsession.windowManager.bspwm.startupPrograms with stylix.testbed.ui.command.text is probably good to keep since it uses our consistent stylix.testbed.ui interface.
|
+1 wayprompt doesn't work in gnome environment for some reason, i tested it on sway and hyprland, works great on those wms |
046be3a to
9af04ef
Compare
Ah, the reason is that Wayprompt requires the compositor to support the layer shell protocol, and GNOME doesn’t. |
That must be the same reason notification daemons won't work on it |
trueNAHO
left a comment
There was a problem hiding this comment.
However, I agree with danth's stance of this abstraction being overkill. The best solution would be to replace GNOME with something like
cageand make everything work there.Instead of #1192 changing the entire graphical environment, it would be better if it would somehow be able to replace GNOME's notification daemon:
I forgot to mention that I am fine with merging this PR for practical reasons, especially since using cage in our testbeds has been a long standing task that may involve nasty bugs and take longer than expected. In the meantime, more desktops can be supported, simplifying future incremental migrations to cage.
Also, it might be better to to refer to DEs and WMs as "graphical environment" instead of just "desktop".
+1 wayprompt doesn't work in gnome environment for some reason, i tested it on sway and hyprland, works great on those wms
Ah, the reason is that Wayprompt requires the compositor to support the layer shell protocol, and GNOME doesn’t.
Thanks for looking into this.
e94573c to
d00c805
Compare
|
I'm currently unhappy with:
Despite that, I believe this PR is ready for a proper review. So, I'm marking this as ready. |
d00c805 to
0ea01a5
Compare
0ea01a5 to
21a1e03
Compare
5a1eebf to
0c5c1f7
Compare
0c5c1f7 to
2d7585d
Compare
trueNAHO
left a comment
There was a problem hiding this comment.
LGTM, except for very minor things.
0xda157
left a comment
There was a problem hiding this comment.
LGTM aside from nit + naho's comments
2d7585d to
342b2b5
Compare
This adds `stylix.testbed.ui.desktop` which allows the testbed to pick what desktop environment/window manager will be ran inside the VM.
342b2b5 to
7f106f0
Compare
|
Backport failed for Please cherry-pick the changes locally and resolve any conflicts. git fetch origin release-25.05
git worktree add -d .worktree/backport-1222-to-release-25.05 origin/release-25.05
cd .worktree/backport-1222-to-release-25.05
git switch --create backport-1222-to-release-25.05
git cherry-pick -x 8c854fe383fda20e8befefc31ecf248988a40bcc |
Allow choosing the testbed desktop, ideally as a temporary solution until migrating to the cage environment. Link: nix-community#1222 Reviewed-by: Flameopathic <64027365+Flameopathic@users.noreply.github.com> Reviewed-by: awwpotato <awwpotato@voidq.com> Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com> (cherry picked from commit 8c854fe)
Allow choosing the testbed desktop, ideally as a temporary solution until migrating to the cage environment. Link: nix-community#1222 Reviewed-by: Flameopathic <64027365+Flameopathic@users.noreply.github.com> Reviewed-by: awwpotato <awwpotato@voidq.com> Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com> (cherry picked from commit 8c854fe)
Allow choosing the testbed desktop, ideally as a temporary solution until migrating to the cage environment. Link: #1222 Reviewed-by: Flameopathic <64027365+Flameopathic@users.noreply.github.com> Reviewed-by: awwpotato <awwpotato@voidq.com> Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com> (cherry picked from commit 8c854fe)
This adds
stylix.testbed.ui.desktopwhich allows the testbed to pick what desktop environment/window manager will be ran inside the VM.This PR is currently a PoC and I'm open to any suggestions. I'm actively working on it, so everything is subject to change.
Relevant: #1192 (comment)
Things done
Notify maintainers
@danth @trueNAHO @awwpotato @Flameopathic
Who else?