All checks were successful
Discord / discord commits (push) Has been skipped
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
131 lines
3 KiB
Nix
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;
|
|
}
|