Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Budgie Desktop #216737

Merged
merged 9 commits into from
Apr 3, 2023
Merged

Budgie Desktop #216737

merged 9 commits into from
Apr 3, 2023

Conversation

FedericoSchonborn
Copy link
Member

@FedericoSchonborn FedericoSchonborn commented Feb 17, 2023

Description of changes

Adds the Budgie Desktop to NixOS (this includes all of the remaining packages, and a NixOS module with a test).

This patch fixes #190192.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.05 Release Notes (or backporting 22.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

* instead of relying on the current "--login" implementation.
*/
- argv[0] = "/usr/sbin/usermod";
+ argv[0] = "@shadow@/bin/usermod";
Copy link
Member Author

@FedericoSchonborn FedericoSchonborn Feb 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When making this patch I looked up every reference to /usr and found this. This isn't in GNOME Control Center's paths.patch, I'm not sure if that's on purpose?

Copy link
Member

@bobby285271 bobby285271 Feb 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is previously patched in 1de94d5 but it's later dropped in fcf2213, not sure the reason. Is adding users in *-control-center actually works with e.g. users.mutableUsers enabled (since I think only cc-add-user-dialog uses it)?

(Ha! Saw @jtojnar in gnome-control-center!653)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, maybe it was removed accidentally, though it does not look like the surrounding code changed to cause a merge conflict.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is adding users in *-control-center actually works with e.g. users.mutableUsers enabled

I was able to create a new user and log in with its account.

Screenshots

Captura desde 2023-03-29 00-51-47
imagen

@bobby285271
Copy link
Member

bobby285271 commented Feb 17, 2023

@ofborg test budgie
@ofborg eval

VM starts. This is much more vanilla than my last try on budgie-nix flake, I will try to do some comparison 😆 Do you have a preference (on the defaults) here? (since looks like upstream does not like e.g. Adwaita gtk theme and icon theme)

Edit: having a default wallpaper will also be nice :-)

@JoshStrobl
Copy link

@ofborg test budgie

VM starts. This is much more vanilla than my last try on budgie-nix flake, I will try to do some comparison laughing Do you have a preference (on the defaults) here? (since looks like upstream does not like e.g. Adwaita gtk theme and icon theme)

My recommendation for the defaults are Papirus Icon Theme and either Materia GTK Theme (mind you that Materia is not maintained) or Pocillo, with built-in theme enabled (this is the default). Both Fedora Budgie Spin and the respective Fedora budgie-desktop-defaults package, as well as Solus, use Papirus + Materia. Ubuntu Budgie uses Pocillo for the mix between Arc GTK Theme color palette and Materia Design components, with their Pocillo Icon Theme (mix of Moka and Faba).

@FedericoSchonborn
Copy link
Member Author

FedericoSchonborn commented Feb 17, 2023

  • I decided at the last moment to rewrite the whole module and kind of left theming for later, I'll add back Qogir as we were using in budgie-nix. As for the wallpaper I guess we can keep using the (cooler) nineish-dark-gr{a,e}y instead of the one used in the other desktops. DONE.

  • I forgot the plugin support stuff in the heat of the moment, I will add it back. budgie-nix has a few plugins for testing until they land in Nixpkgs.

  • budgie-desktop-view can be put into a separate module as it is in budgie-nix, since there's nothing Budgie-specific on it (as far as I know) that wouldn't allow it to run in, for example, a standalone WM. I'm not sure if that's something upstream wants to support (@JoshStrobl).

  • Some MATE apps require a patch to show up on Budgie, last time I checked those were merged upstream, should I add the patches or wait for the stable releases?

@bobby285271
Copy link
Member

I guess it should be fine to do the patching here if they are easy to review (e.g. mate-desktop/caja@f46fe89)

@JoshStrobl
Copy link

JoshStrobl commented Feb 17, 2023

  • budgie-desktop-view can be put into a separate module as it is in budgie-nix, since there's nothing Budgie-specific on it (as far as I know) that wouldn't allow it to run in, for example, a standalone WM. I'm not sure if that's something upstream wants to support (@JoshStrobl).

Budgie Desktop View has Budgie Desktop specific functionality, specifically we have right-click options that open up Budgie Control Center and Budgie Desktop Settings.

Per its readme:

Budgie Desktop View is designed for the Budgie Desktop. Usage outside of Budgie is not supported and is outside this project's scope.

I would recommend Nemo over Caja, as Caja has the tendency to trigger its desktop icons implementation and their background / wallpaper rendering uses their own schemas, so there is a chance that can get triggered and doesn't make for an amazing experience. Mind you this was also with their implementation "disabled" and it didn't seem to respect it. But yea, Caja will show up at least if you add that patch.

@FedericoSchonborn
Copy link
Member Author

FedericoSchonborn commented Feb 17, 2023

Per its readme:

Budgie Desktop View is designed for the Budgie Desktop. Usage outside of Budgie is not supported and is outside this project's scope.

Welp, I could've just RTFM I guess 😆. I'm going to leave it as is then.

Caja has the tendency to trigger its desktop icons implementation and their background / wallpaper rendering uses their own schemas, so there is a chance that can get triggered and doesn't make for an amazing experience. Mind you this was also with their implementation "disabled" and it didn't seem to respect it.

That's marvelous.

@FedericoSchonborn
Copy link
Member Author

screen

@Krutonium
Copy link
Contributor

Very happy to see progress on this! Thank you :D

Krutonium added a commit to Krutonium/NewNix that referenced this pull request Mar 2, 2023
@FedericoSchonborn
Copy link
Member Author

Is there a way to rebase this PR on top of a more recent Nixpkgs? I'm on a new system and building the test takes a while because it downloads older packages.

@bobby285271
Copy link
Member

bobby285271 commented Mar 27, 2023

I commonly rebase to nixos-unstable (not master unless merge conflicts, since if you are not lucky you sometimes need to build webkitgtk) git fetch origin nixos-unstable:nixos-unstable && git rebase nixos-unstable (all my branches are unshallowed, this is actually more convenient to me after the first full clone tbh).

I will actually also recommend testing this against the GNOME 44 PR (though if you rebase against this you cannot push the rebased commits here since things will mess up), the most recent finished eval is 7c49b47, mainly for mutter 44 (I think budgie should already support that) and glib 2.76 (for the slice allocator removal).

Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
@github-actions github-actions bot added the 6.topic: GNOME GNOME desktop environment and its underlying platform label Mar 30, 2023
@ofborg ofborg bot requested review from hedning and bobby285271 March 30, 2023 01:00
@ofborg ofborg bot requested review from jtojnar, amaxine and dasj19 March 30, 2023 01:00
@bobby285271
Copy link
Member

I cannot set wallpaper in budgie-control-center (cc-background-chooser-WARNING **: 13:30:46.767: could not general thumbnail file:///home/bobby285271/xxxx.png (image/png) Could not find thumbnailer for mime-type 'image/png'). Did you remove those support by accident?

Otherwise with a brief testing this looks okay to me.

@FedericoSchonborn
Copy link
Member Author

I rewrote budgie-control-center using gnome-control-center as base, and added budgie-backgrounds.

Screenshot

Captura desde 2023-03-30 20-58-52

@bobby285271
Copy link
Member

bobby285271 commented Mar 31, 2023

@ofborg test budgie

I rewrote budgie-control-center using gnome-control-center as base

Hmmm, probably just add the necessary stuff, I find some of the dep weird to appear here, e.g.

  • libsoup: I imagine this no longer depends on it? Since e.g. gnome-online-accounts is ported to libsoup_3, this will become something that link against both 2 and 3 otherwise (and that should lead to some crashing)
  • tracker-miners (also tracker maybe): The comment says for search locations dialog but I haven't found a cc-search-locations-dialog yet.

(Btw is your testing all good right now? We really want this in 23.05)

@JoshStrobl
Copy link

Search Locations was removed in Budgie Control Center in BuddiesOfBudgie/budgie-control-center@434c551 as Budgie Desktop does not have that sort of functionality. tracker is not required for any Budgie components.

In the case of libsoup, as you noted it is not required for Budgie Control Center but rather required for gnome-online-accounts. It may have been pulled in for goa-1.0 / goa-backend-1.0 but it should be a dep of those not BCC. BCC does not link against it.

Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
@FedericoSchonborn
Copy link
Member Author

Okay, I removed those dependencies.

nixos/tests/budgie.nix Outdated Show resolved Hide resolved
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
Signed-off-by: Federico Damián Schonborn <fdschonborn@gmail.com>
@ofborg ofborg bot requested a review from bobby285271 April 3, 2023 01:16
@bobby285271
Copy link
Member

Okay let's go. Improvements can still be done in follow-up PRs 🙈

If you wish, you can add a budgie section, config, screenshot to calamares-nixos-extensions (you might probably grep for e.g. xfce for how to do that, or find @vlinkz for help).

@bobby285271 bobby285271 merged commit 28031f7 into NixOS:master Apr 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Packaging Request: Budgie Desktop
5 participants