From ec22c69ea0c2468f98e1b1ba067f55a3414179f5 Mon Sep 17 00:00:00 2001 From: Joshua Falkenberg Date: Fri, 11 Sep 2026 13:17:53 +0200 Subject: [PATCH] niri + noctalia --- flake.nix | 32 ++++++++++++++++---- home/user.nix | 62 ++++++++++++++++++++++++++++++++++----- hosts/desktop/default.nix | 6 +++- modules/base.nix | 15 ++++++++++ modules/desktop.nix | 24 +++++++++++++-- modules/impermanence.nix | 4 --- modules/persistence.nix | 6 ---- 7 files changed, 124 insertions(+), 25 deletions(-) delete mode 100644 modules/impermanence.nix diff --git a/flake.nix b/flake.nix index fb6b866..1218152 100644 --- a/flake.nix +++ b/flake.nix @@ -1,8 +1,8 @@ { - description = "Declarative NixOS desktop configuration"; + description = "fe5hua's flake"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; home-manager = { url = "github:nix-community/home-manager"; @@ -10,14 +10,30 @@ }; impermanence.url = "github:nix-community/impermanence"; + impermanence.inputs.nixpkgs.follows = "nixpkgs"; + impermanence.inputs.home-manager.follows = "home-manager"; sops-nix.url = "github:Mic92/sops-nix"; + sops-nix.inputs.nixpkgs.follows = "nixpkgs"; - disko.url = "github:nix-community/disko"; + disko.url = "github:nix-community/disko/latest"; + disko.inputs.nixpkgs.follows = "nixpkgs"; + + noctalia = { + url = "github:noctalia-dev/noctalia"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + niri-flake.url = "github:sodiboo/niri-flake"; + + noctalia-greeter = { + url = "github:noctalia-dev/noctalia-greeter"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = - { + inputs@{ nixpkgs, home-manager, impermanence, @@ -29,17 +45,23 @@ nixosConfigurations.desktop = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; + specialArgs = { + inherit inputs; + }; + modules = [ disko.nixosModules.disko impermanence.nixosModules.impermanence sops-nix.nixosModules.sops home-manager.nixosModules.home-manager + inputs.niri-flake.nixosModules.niri + inputs.noctalia.nixosModules.default + inputs.noctalia-greeter.nixosModules.default ./hosts/desktop ./modules/base.nix ./modules/boot.nix ./modules/ephemeral-root.nix - ./modules/impermanence.nix ./modules/persistence.nix ./modules/secrets.nix ./modules/desktop.nix diff --git a/home/user.nix b/home/user.nix index 977717e..7b93ac0 100644 --- a/home/user.nix +++ b/home/user.nix @@ -1,16 +1,64 @@ -{ pkgs, ... }: +{ pkgs, inputs, ... }: { - home.stateVersion = "26.05"; + imports = [ + inputs.niri-flake.homeModules.niri + inputs.noctalia.homeModules.default + ]; - programs.home-manager.enable = true; + programs.niri = { + enable = true; + + settings = { + layout = { + gaps = 8; + }; + }; + }; + + programs.noctalia = { + enable = true; + + settings = { + shell.settings_show_advanced = true; + theme = { + mode = "dark"; + source = "builtin"; + builtin = "Catppuccin"; + }; + }; + }; programs.git = { enable = true; + userName = "fe5hua"; + userEmail = "gitea@fe5hua.de"; }; - home.packages = with pkgs; [ - age - sops - ]; + home.sessionVariables = { + # EDITOR = "vim"; + }; + + home.persistence."/persist" = { + directories = [ + "nixos-config" + "Downloads" + "Music" + "Pictures" + "Documents" + "Videos" + "Projects" + # "VirtualBox VMs" + # { directory = ".gnupg"; mode = "0700"; } + # { directory = ".ssh"; mode = "0700"; } + # { directory = ".nixops"; mode = "0700"; } + # { directory = ".local/share/keyrings"; mode = "0700"; } + # ".local/share/direnv" + ]; + files = [ + ]; + }; + + home.stateVersion = "26.05"; + programs.home-manager.enable = true; } diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 2edd983..a6086aa 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -1,4 +1,4 @@ -{ config, ... }: +{ config, inputs, ... }: { imports = [ @@ -28,6 +28,10 @@ useGlobalPkgs = true; useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + }; + users.user = import ../../home/user.nix; }; diff --git a/modules/base.nix b/modules/base.nix index f474f36..06f993d 100644 --- a/modules/base.nix +++ b/modules/base.nix @@ -23,6 +23,21 @@ wget htop tree + age + sops + ghostty + librewolf + nautilus + xdg-utils + xdg-user-dirs + wl-clipboard + grim + slurp + playerctl + brightnessctl + file + unzip + zip ]; programs.git.enable = true; diff --git a/modules/desktop.nix b/modules/desktop.nix index 180bce9..7d2d656 100644 --- a/modules/desktop.nix +++ b/modules/desktop.nix @@ -1,7 +1,27 @@ -{ ... }: +{ pkgs, ... }: { - hardware.graphics = { + programs.niri = { enable = true; + + settings = { + environment."NIXOS_OZONE_WL" = "1"; + }; }; + + programs.noctalia = { + enable = true; + systemd.enable = false; + recommendedServices.enable = false; + }; + + programs.noctalia-greeter = { + enable = true; + + settings = { + session.default = "niri"; + }; + }; + + hardware.graphics.enable = true; } diff --git a/modules/impermanence.nix b/modules/impermanence.nix deleted file mode 100644 index 04618ac..0000000 --- a/modules/impermanence.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ ... }: - -{ -} diff --git a/modules/persistence.nix b/modules/persistence.nix index ad9267c..99c87b4 100644 --- a/modules/persistence.nix +++ b/modules/persistence.nix @@ -7,12 +7,6 @@ hideMounts = true; directories = [ - { - directory = "/home/user/nixos-config"; - user = "user"; - group = "users"; - } - "/var/lib/nixos" ];