dotfiles

My PC Dotfiles & Website

_install.nix (1938B)


## Install Media Desktop Configuration ##
_: {
  lib,
  pkgs,
  ...
}: let
  inherit (lib) mkForce;
in {
  imports = [(import ./gnome/_common.nix {})];

  services = {
    displayManager.gdm = {
      banner = "Install Media";
      autoSuspend = false;
    };

    desktopManager.gnome = {
      extraGSettingsOverridePackages = [pkgs.gnome-settings-daemon];
      favoriteAppsOverride = ''
        [org.gnome.shell]
        favorite-apps=[ 'org.gnome.Epiphany.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop' ]
      '';

      extraGSettingsOverrides = ''
        [org.gnome.shell]
        welcome-dialog-last-shown-version='9999999999'

        [org.gnome.desktop.session]
        idle-delay=0

        [org.gnome.settings-daemon.plugins.power]
        sleep-inactive-ac-type='nothing'
        sleep-inactive-battery-type='nothing'
      '';
    };
  };

  # Essential Utilities
  environment.systemPackages = with pkgs; [
    gparted
    epiphany
    gnome-console
    gnome-system-monitor
    gnome-text-editor
    nautilus
  ];

  # Excluded Packages
  services.gnome = {
    core-apps.enable = mkForce false;
    gnome-browser-connector.enable = mkForce false;
    gnome-remote-desktop.enable = mkForce false;
    gnome-user-share.enable = mkForce false;
    rygel.enable = mkForce false;
  };

  environment.gnome.excludePackages = with pkgs; [
    gnome-backgrounds
    gnome-tour
    gnome-user-docs
    orca
  ];

  # Disable suspension
  security.polkit.extraConfig = ''
    polkit.addRule(function(action, subject) {
        if (action.id == "org.freedesktop.login1.suspend" ||
            action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
            action.id == "org.freedesktop.login1.hibernate" ||
            action.id == "org.freedesktop.login1.hibernate-multiple-sessions") {
          return polkit.Result.NO;
        }
    });
  '';
}