nixos/flake.nix
Sasza Stanczew 1a2966e054 Refactor: czysta separacja system/user, moduł Tibii jako shared home-manager
[HermesAI]

Główne zmiany:

1. Separacja pakietów (best practice 2025+):
   - base.nix: tylko konfiguracja Nix-a (gc, flakes, allowUnfree), zero pakietów
   - home.nix: wszystkie pakiety użytkownika (brave, neovim, git, lutris, itd.)
   - NixOS modules (plasma.nix, gaming.nix): tylko enable serwisów, bez pakietów

2. Tibia jako shared home-manager module:
   - modules/home/tibia.nix — opcja programs.tibia.enable dostępna dla każdego usera
   - Rejestracja przez home-manager.sharedModules w flake.nix
   - packages/libxml2-2.9/ — osobny callPackage zamiast inline build
   - Nowe: tibia-install (pobiera launcher na świeżym systemie), .desktop entry
   - tibia-patch: check "already patched", quoted heredoc (bez expandowania $@)
   - Poprawiona ścieżka do tibia-client (store path przez ${...} zamiast /run/...)

3. Porządki:
   - Usunięte puste moduły (3dmodel, 3dprint, network, office) — pakiety w home.nix
   - hosts/nix-latitude/configuration.nix: usunięty duplikat hostname, packages z usera
   - flake.nix: home-manager spięty do nixos-unstable, usunięty brakujący host nix-gaming
   - .gitignore: result, .direnv, *.swp

UWAGA: Wymaga nix flake lock na maszynie NixOS po pull.
Nowy user: programs.tibia.enable = true w home.nix + tibia-install.
2026-05-30 23:18:50 +02:00

35 lines
993 B
Nix

{
description = "Konfiguracja wielu maszyn na raz";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/nixos-unstable";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, ... }:
let
mk_system = system: hostname: modules: nixpkgs.lib.nixosSystem {
inherit system;
modules = [
{ networking.hostName = hostname; }
./base.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules = [ ./modules/home/tibia.nix ];
home-manager.users.sasza = import ./home.nix;
}
] ++ modules;
};
in {
nixosConfigurations = {
nix-latitude = mk_system "x86_64-linux" "nix-latitude" [
./hosts/nix-latitude/configuration.nix
./modules/plasma.nix
];
};
};
}