modules.gui.gnome: fix build

This commit is contained in:
Colin 2024-01-31 15:29:49 +00:00
parent f5c88853ee
commit 91eae95b32
4 changed files with 35 additions and 7 deletions

View File

@ -1,18 +1,17 @@
{ lib, config, ... }:
{ lib, config, pkgs, ... }:
with lib;
let
cfg = config.sane.gui.gnome;
in
{
options = {
options = with lib; {
sane.gui.gnome.enable = mkOption {
default = false;
type = types.bool;
};
};
config = mkIf cfg.enable {
config = lib.mkIf cfg.enable {
sane.programs.guiApps.enableFor.user.colin = true;
# start gnome/gdm on boot
@ -23,6 +22,27 @@ in
# gnome does networking stuff with networkmanager
networking.networkmanager.enable = true;
networking.wireless.enable = lib.mkForce false;
# services.xserver.desktopManager.gnome.enable enables some default apps we don't really care about.
# see <nixos/modules/services/x11/desktop-managers/gnome.nix>
environment.gnome.excludePackages = with pkgs; [
# gnome.gnome-menus # unused outside gnome classic, but probably harmless
gnome.gnome-control-center #< if you want a faster deploy
gnome-tour
];
# disable these for a faster build cycle
services.dleyna-renderer.enable = false;
services.dleyna-server.enable = false;
services.gnome.gnome-browser-connector.enable = false;
services.gnome.gnome-initial-setup.enable = false;
services.gnome.gnome-remote-desktop.enable = false;
services.gnome.gnome-user-share.enable = false;
services.gnome.rygel.enable = false;
services.gnome.evolution-data-server.enable = lib.mkForce false;
services.gnome.gnome-online-accounts.enable = lib.mkForce false;
services.gnome.gnome-online-miners.enable = lib.mkForce false;
};
# user extras:
# obtain these by running `dconf dump /` after manually customizing gnome

View File

@ -14,6 +14,14 @@
# OAuth depends on webkitgtk_4_1: old, forces an annoying recompilation
enableOAuth2 = false;
};
gnome-control-center = gsuper.gnome-control-center.override {
# i build goa without the "backend", to avoid webkit_4_1.
# however gnome-control-center *directly* uses goa-backend because it manages the accounts...
# so if you really need gnome-control center, then here we are, re-enabling the goa backend.
gnome-online-accounts = self.gnome-online-accounts.override {
enableBackend = true;
};
};
# gnome-shell = gsuper.gnome-shell.override {
# evolution-data-server-gtk4 = evolution-data-server-gtk4.override {
# # avoid webkitgtk_6_0 build. lol.

View File

@ -113,7 +113,7 @@ let
firefox-unwrapped = callPackage ./patched/firefox-unwrapped { inherit (unpatched) firefox-unwrapped; };
gnome = unpatched.gnome.overrideScope' (gself: gsuper: {
gnome-control-center = gself.callPackage ./patched/gnome-control-center {
gnome-control-center = import ./patched/gnome-control-center {
inherit (gsuper) gnome-control-center;
};
});

View File

@ -1,6 +1,6 @@
{ gnome-control-center }:
(gnome-control-center.overrideAttrs (upstream: {
gnome-control-center.overrideAttrs (upstream: {
# gnome-control-center does not start without XDG_CURRENT_DESKTOP=gnome
# see: <https://github.com/NixOS/nixpkgs/issues/230493>
# see: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/736>
@ -12,4 +12,4 @@
--set XDG_CURRENT_DESKTOP "gnome"
);
'' + upstream.preFixup;
}))
})