{ inputs, lib, ... }: let channel = "unstable"; system = "x86_64-linux"; hostName = "alice"; in { flake.nixosConfigurations.${hostName} = inputs."nixpkgs-${channel}".lib.nixosSystem { inherit system; specialArgs = { inherit inputs; lib = inputs."nixpkgs-${channel}".lib.extend ( final: prev: import ../../../../lib { inherit inputs; lib = final; } ); }; modules = [ { networking.hostName = hostName; } ./_nixos inputs.impermanence.nixosModules.impermanence inputs.sops-nix.nixosModules.sops inputs."home-manager-${channel}".nixosModules.home-manager ({ config, pkgs, ... }: let user = "skye"; importBoth = module: [ inputs.self.modules.nixos.${module} { home-manager.users.${user}.imports = [inputs.self.modules.homeManager.${module}]; } ]; in { imports = with inputs.self.modules.nixos; [ core amdgpu audio nvim nix steam tailscale obs lazygit ssh-agent gnupg home-manager { home-manager.users.${user} = { imports = with inputs.self.modules.homeManager; [ mangohud git ] ++ [ { home.stateVersion = config.system.stateVersion; # Not yet in modules or anything. home.packages = with pkgs; [blender]; services.wpaperd = { enable = true; settings = { DP-3 = { path = "/home/skye/Nextcloud/Wallpapers/forest"; duration = "15m"; }; DP-2 = { path = "/home/skye/Nextcloud/Wallpapers/minimalgals"; duration = "15m"; }; }; }; } # TODO: how to position these configuration extensions { arta.git = { email = "jonni@liljamo.com"; name = "Jonni Liljamo"; sendemail.enable = true; }; arta.hyprland.extraConfig = { exec-once = [ "waybar" ]; monitor = [ "DP-2,2560x1440@59,0x0,1" "DP-3,3840x2160@60,2560x0,1,bitdepth,10,cm,hdr,sdrbrightness,1.1,sdrsaturation,0.9" ]; workspace = [ "1,monitor:DP-2,default:true" "2,monitor:DP-2" "3,monitor:DP-2" "4,monitor:DP-2" "5,monitor:DP-2" "6,monitor:DP-3,default:true" "7,monitor:DP-3" "8,monitor:DP-3" "9,monitor:DP-3" ]; }; arta.waybar.extraConfig = { output = ["DP-2"]; modules-left = ["hyprland/workspaces"]; modules-right = [ "wireplumber" "custom/sep" "disk" "custom/sep" "network" "custom/sep" "clock" "custom/sep" "hyprland/language" "tray" ]; "network".interface = "enp4s0"; }; } ]; }; } ] ++ [inputs.self.modules.nixos.${user}] ++ lib.flatten [ (importBoth "hyprland") (importBoth "shell") (importBoth "passmenu") ]; }) ]; }; }