#+TITLE: Flake configuration #+AUTHOR: Tulkdan #+EMAIL: pedro8correa@gmail.com #+begin_src nix :tangle flake.nix :noweb yes { <> inputs = { <> }; outputs = { self, nixpkgs, home-manager, niri, vicinae, ... }@inputs: let system = "x86_64-linux"; hostname = "nixos"; stateVersion = "25.05"; pkgs = import nixpkgs { inherit system; }; users = { pedro = { username = "pedro"; }; work = { username = "pedro-correa"; }; }; in { <> }; } #+end_src ** Description #+NAME: description #+begin_src nix description = "Tulk'dan's system config"; #+end_src ** Inputs :PROPERTIES: :header-args: :noweb-ref inputs :END: *** Nixpkgs #+begin_src nix nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; #+end_src *** Home Manager #+begin_src nix home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; #+end_src *** Niri #+begin_src nix niri.url = "github:sodiboo/niri-flake"; #+end_src *** AGR #+begin_src nix ags.url = "github:Aylur/ags"; #+end_src *** [[https://docs.vicinae.com/][Vicinae]] #+begin_src nix vicinae.url = "github:vicinaehq/vicinae"; #+end_src ** Outputs :PROPERTIES: :header-args: :noweb-ref outputs :END: *** Formatter #+begin_src nix formatter.x86_64-linux = pkgs.alejandra; #+end_src *** NixOS System #+begin_src nix nixosConfigurations = { ${hostname} = nixpkgs.lib.nixosSystem { inherit system; modules = [ niri.nixosModules.niri ({pkgs, ...}: { nixpkgs.overlays = [niri.overlays.niri]; programs.niri.package = pkgs.niri-unstable; # programs.niri.package = pkgs.niri-stable; # programs.niri.package = pkgs.niri-unstable.override {src = niri-working-tree;}; environment.variables.NIXOS_OZONE_WL = "1"; environment.systemPackages = with pkgs; [ wl-clipboard wayland-utils libsecret cage ]; }) home-manager.nixosModules.home-manager { home-manager = { useUserPackages = true; extraSpecialArgs = inputs; }; } ./hosts/desktop ]; }; }; #+end_src *** Home Manager **** Personal #+begin_src nix homeConfigurations = { pedro = home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = { inherit stateVersion; inherit inputs; username = users.pedro.username; }; modules = [ vicinae.homeManagerModules.default ./home ./home/personal.nix ]; }; }; #+end_src **** Work #+begin_src nix homeConfigurations = { work = home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = { inherit stateVersion; username = users.work.username; }; modules = [ vicinae.homeManagerModules.default ./home ./home/work.nix ]; }; }; #+end_src