dotfiles

My PC Dotfiles & Website

modules/desktop/_install.nix (1938B)


 1## Install Media Desktop Configuration ##
 2_: {
 3  lib,
 4  pkgs,
 5  ...
 6}: let
 7  inherit (lib) mkForce;
 8in {
 9  imports = [(import ./gnome/_common.nix {})];
10
11  services = {
12    displayManager.gdm = {
13      banner = "Install Media";
14      autoSuspend = false;
15    };
16
17    desktopManager.gnome = {
18      extraGSettingsOverridePackages = [pkgs.gnome-settings-daemon];
19      favoriteAppsOverride = ''
20        [org.gnome.shell]
21        favorite-apps=[ 'org.gnome.Epiphany.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop' ]
22      '';
23
24      extraGSettingsOverrides = ''
25        [org.gnome.shell]
26        welcome-dialog-last-shown-version='9999999999'
27
28        [org.gnome.desktop.session]
29        idle-delay=0
30
31        [org.gnome.settings-daemon.plugins.power]
32        sleep-inactive-ac-type='nothing'
33        sleep-inactive-battery-type='nothing'
34      '';
35    };
36  };
37
38  # Essential Utilities
39  environment.systemPackages = with pkgs; [
40    gparted
41    epiphany
42    gnome-console
43    gnome-system-monitor
44    gnome-text-editor
45    nautilus
46  ];
47
48  # Excluded Packages
49  services.gnome = {
50    core-apps.enable = mkForce false;
51    gnome-browser-connector.enable = mkForce false;
52    gnome-remote-desktop.enable = mkForce false;
53    gnome-user-share.enable = mkForce false;
54    rygel.enable = mkForce false;
55  };
56
57  environment.gnome.excludePackages = with pkgs; [
58    gnome-backgrounds
59    gnome-tour
60    gnome-user-docs
61    orca
62  ];
63
64  # Disable suspension
65  security.polkit.extraConfig = ''
66    polkit.addRule(function(action, subject) {
67        if (action.id == "org.freedesktop.login1.suspend" ||
68            action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
69            action.id == "org.freedesktop.login1.hibernate" ||
70            action.id == "org.freedesktop.login1.hibernate-multiple-sessions") {
71          return polkit.Result.NO;
72        }
73    });
74  '';
75}