{ description = "Home manager config"; inputs = { hyprland.url = "github:hyprwm/Hyprland"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; catppuccin.url = "github:catppuccin/nix"; wallpapers = { url = "github:orangci/walls-catppuccin-mocha"; flake = false; }; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; zut-calendar.url = "github:szymon-jozef/zut-calendar"; zutui.url = "github:shv187/zutui"; hyprcursor-phinger.url = "github:jappie3/hyprcursor-phinger"; }; outputs = { nixpkgs, home-manager, catppuccin, nixvim, wallpapers, zut-calendar, zutui, ... }@inputs: let defaultUserConfig = { username = "szymon"; email = "szymon_jozef@proton.me"; fullName = "Szymon P"; signingKey = "~/.ssh/github.pub"; mainMonitor = "DP-1"; statusBar = "ashell"; # available: ashell | waybar pathConfig = { wallpaper = "Obrazy/tapety/catppuccin"; screenshot = "Obrazy/zrzuty/"; obsidian = "Dokumenty/obsidian"; }; isNixOS = true; hostName = "default"; }; system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; mkHome = customConfig: let userConfig = defaultUserConfig // customConfig; in home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = { inherit inputs userConfig; }; modules = [ ./home.nix catppuccin.homeModules.catppuccin nixvim.homeModules.nixvim inputs.hyprcursor-phinger.homeManagerModules.hyprcursor-phinger ( { pkgs, ... }: { home.packages = [ zut-calendar.packages.${pkgs.system}.default zutui.packages.${pkgs.system}.default ]; } ) ] ++ (customConfig.extraModules or [ ]); }; in { homeConfigurations = { # You can overwrite default configuration here "arch" = mkHome { isNixOS = false; hostName = "arch"; }; "nixos" = mkHome { isNixOS = true; hostName = "nixos"; }; "${defaultUserConfig.username}@pitagoras" = mkHome { hostName = "pitagoras"; mainMonitor = "eDP-1"; }; "${defaultUserConfig.username}@pilecki" = mkHome { hostName = "pilecki"; mainMonitor = "LVDS-1"; }; "${defaultUserConfig.username}@paderewski" = mkHome { hostName = "paderewski"; }; }; }; }