nixos-configs/modules/desktop/default.nix
matt1432 7617e3ea2d
All checks were successful
Discord / discord commits (push) Has been skipped
chore: update sources
Flake Inputs:
    • Updated input 'custom-sidebar-src':
        'github:elchininet/custom-sidebar' (2025-03-09) rev: 2f653a66ca72251668a774a1fedc77d66ffa5d19
      → 'github:elchininet/custom-sidebar' (2025-03-12) rev: 82f40bbaa1bf833290de84efbdc576362cc75905

    • Updated input 'gpu-screen-recorder-src':
        'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-03-07) rev: f23308444a94b96cf943fedc669bf2b7bc505a16
      → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-03-13) rev: bab9a0560d15e7e1621469cf8db3e70bc29833b6

    • Updated input 'gtk-theme-src':
        'github:dracula/gtk' (2025-03-04) rev: 285ff8f10084b5fdae045a8e8d09352be9af4452
      → 'github:dracula/gtk' (2025-03-13) rev: fc59294cf67110f6487f5fd06d3c845ffffdf1a9

    • Updated input 'home-manager':
        'github:nix-community/home-manager' (2025-03-12) rev: 18780912345970e5b546b1b085385789b6935a83
      → 'github:nix-community/home-manager' (2025-03-14) rev: 30cce6848a5aa41ceb5fb33185b84868cc3e9bef

    • Updated input 'hyprgrass':
        'github:horriblename/hyprgrass' (2025-03-03) rev: e59bc280b71be8c45638806f3123fc36834435bc
      → 'github:horriblename/hyprgrass' (2025-03-13) rev: ce0dcda79e0b24c9dfee2d80df50940669554f9d

    • Added input 'hyprgrass/nixpkgs':
        follows 'nixpkgs'

    • Updated input 'jovian':
        'github:Jovian-Experiments/Jovian-NixOS' (2025-03-12) rev: 2f6342dc0cc9ffe5f9be8bd4db6ce43f2c4c1d87
      → 'github:Jovian-Experiments/Jovian-NixOS' (2025-03-13) rev: 662d117ac0ffc81f3e91b5f0fb800c3effd904a1

    • Updated input 'kompass':
        'github:kotontrion/kompass' (2025-03-12) rev: cf6c8b26137adafae845f3905c11c98a197cd6cd
      → 'github:kotontrion/kompass' (2025-03-13) rev: 1a4bc3593d10512a468a9f7c02b18f7455fcb1c2

    • Updated input 'nix-fast-build':
        'github:Mic92/nix-fast-build' (2025-01-11) rev: 906af17fcd50c84615a4660d9c08cf89c01cef7d
      → 'github:Mic92/nix-fast-build' (2025-03-13) rev: 0ef0c6065345426fb4872c9ee75a58c11f62d3f8

    • Updated input 'nixcord':
        'github:kaylorben/nixcord' (2025-03-07) rev: 269b69665a78f57f2bc1b62e05e823815f41cea9
      → 'github:kaylorben/nixcord' (2025-03-13) rev: 91abbf5736459beeacb1c3163a2236241cfc6c71

    • Updated input 'nixos-jellyfin':
        'github:matt1432/nixos-jellyfin' (2025-03-06) rev: d4bd900cd1792f939b6a2650537ebee6e2130802
      → 'github:matt1432/nixos-jellyfin' (2025-03-12) rev: f3e37d6173969c2d7bec41a3888d96acde88bc5a

    • Updated input 'nixpkgs':
        'github:NixOS/nixpkgs' (2025-03-12) rev: 75cd88fa9bfa1cf444a62d5e713fc76bb0fbba6f
      → 'github:NixOS/nixpkgs' (2025-03-13) rev: 01f44b8389188522fba255168c70eda093867746

    • Updated input 'nixpkgs-wayland':
        'github:nix-community/nixpkgs-wayland' (2025-03-12) rev: 120cd8e7a8c191e097b663e2cb9a1aa4c2588a31
      → 'github:nix-community/nixpkgs-wayland' (2025-03-13) rev: 35d3b8403711ab0b38c4554703c283900cfeeb7a

    • Updated input 'pcsd':
        'github:matt1432/nixos-pcsd' (2025-02-01) rev: 1b27f1f60ae18e240269601ac09d9d5a096498b7
      → 'github:matt1432/nixos-pcsd' (2025-03-12) rev: 978c9a1d7aed8b0c94357f4173b60f46945d118b

    • Updated input 'sops-nix':
        'github:Mic92/sops-nix' (2025-03-10) rev: e653d71e82575a43fe9d228def8eddb73887b866
      → 'github:Mic92/sops-nix' (2025-03-13) rev: d016ce0365b87d848a57c12ffcfdc71da7a2b55f

    • Updated input 'spotifyplus-src':
        'github:thlucas1/homeassistantcomponent_spotifyplus' (2025-03-09) rev: 9850db38e136a885dc147e1ab00cb53957e77513
      → 'github:thlucas1/homeassistantcomponent_spotifyplus' (2025-03-13) rev: cf1acfa270b14bdaae8ca4f36cf7099f65824554

    • Updated input 'spotifywebapi-src':
        'github:thlucas1/SpotifyWebApiPython' (2025-03-09) rev: 0a005a5e30fbf0afd840f9978b9386df7accb8b6
      → 'github:thlucas1/SpotifyWebApiPython' (2025-03-13) rev: e6c5bfe0c5621bf0e24d61060a7c181a6226c6c4

Docker Images:
    • vegardit/gitea-act-runner dind-latest:
       sha256:a1c106a18b1fa02736064a18f9d31d18253347b7625673a58d5cfd98cc64bc2f
     → sha256:6190e52b6df100a1ca6be7e2e8331c60422440f98dfd286cc49c6be54d6783b5

    • freshrss/freshrss latest:
       sha256:d18055cc1c2fa807f118accb4ba74f435d381daf96130f87b17d9d9d1d169341
     → sha256:bca4407f1f3ecb2e02bd57f704593c64f89bbf3fad53f03ebcf4baecb0122de6

nix-update executions:
    fcft: 3.3.0 -> 3.3.1
2025-03-13 22:50:02 -04:00

131 lines
3 KiB
Nix

self: {
config,
lib,
...
}: let
inherit (self.inputs) home-manager;
inherit (lib) elemAt mkIf mkOption types;
cfg = config.roles.desktop;
flakeDir = config.environment.variables.FLAKE;
in {
imports = [
(import ./manager self)
(import ./environment self)
self.nixosModules.nvidia
home-manager.nixosModules.home-manager
];
config = mkIf cfg.enable {
assertions = [
{
assertion = lib.hasPrefix "/home/${cfg.user}/" flakeDir;
message = ''
Your $FLAKE environment variable needs to point to a directory in
the main users' home to use the desktop module.
'';
}
];
nixpkgs.overlays =
(map (i: self.inputs.${i}.overlays.default) [
"hyprgrass"
"hyprland"
"hyprland-plugins"
"hyprpaper"
"nixpkgs-wayland"
])
++ [
(final: prev: {
# FIXME: wait for upstream to reach same nixpkgs rev
aquamarine = prev.aquamarine.override {mesa = final.libgbm;};
hyprland = prev.hyprland.override {mesa = final.libgbm;};
xdg-desktop-portal-hyprland = prev.xdg-desktop-portal-hyprland.override {mesa = final.libgbm;};
})
];
};
options.roles.desktop = {
enable = mkOption {
type = types.bool;
default = false;
};
user = mkOption {
type = types.str;
description = ''
The name of the user who is going to be using the "DE".
'';
};
ags.enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether we want to enable AGS for the DE shell.
'';
};
mainMonitor = mkOption {
type = types.str;
description = ''
The name of the main monitor used for Hyprland
and Greetd which also uses Hyprland.
'';
# This is to allow a bash script to know whether this value exists
default = "null";
};
fontName = mkOption {
type = types.str;
default = elemAt config.fonts.fontconfig.defaultFonts.monospace 0;
};
fontSize = mkOption {
type = types.float;
default = 12.0;
description = ''
The size of the font in GUIs.
'';
};
isLaptop = mkOption {
type = types.bool;
description = ''
If the computer is a laptop.
'';
default = false;
};
isTouchscreen = mkOption {
type = types.bool;
description = ''
If the computer has a touchscreen.
'';
default = false;
};
displayManager = {
enable = mkOption {
type = types.bool;
default = true;
description = ''
Whether we want to enable the Display Manager.
'';
};
duplicateScreen = mkOption {
type = types.bool;
description = ''
If we should duplicate the login prompt on all monitors.
'';
default = true;
};
};
};
# For accurate stack trace
_file = ./default.nix;
}