{ nix-config, config, pkgs, ... }: { imports = with nix-config.homeModules; [ shell-conf # shell, shell utils, cli tools, libs, tui's git-conf beets taskwarrior taskwarrior-web ]; home = { packages = with pkgs; [ btop ]; username = "media"; homeDirectory = "/home/media"; sessionVariables = { NH_FLAKE = "\${HOME}/nixos-config"; }; sessionPath = [ "/home/media/.local/bin" "/home/media/.local/share" "/home/media/.nix-profile/lib" "/etc/profiles/per-user/media/bin/" "/home/media/.local/state/nix/profiles/home-manager/home-path/bin/" ]; stateVersion = "25.05"; }; sops = { age.keyFile = "/home/media/.config/sops/age/keys.txt"; # must have no password! defaultSopsFile = ../emenel/secrets.yaml; secrets = { taskchamp-id = {}; taskchamp-key = {}; }; templates."taskchamp".content = '' sync.server.client_id = ${config.sops.placeholder.taskchamp-id} sync.encryption_secret = ${config.sops.placeholder.taskchamp-key} ''; }; programs = { home-manager.enable = true; password-store.enable = true; }; systemd.user = { enable = true; startServices = "sd-switch"; # auto reload services when home is rebuilt services.taskchampion-sync-server = { Unit = { Description = "taskchamp"; After = [ "network.target" ]; }; Install = { WantedBy = [ "multi-user.target" ]; }; Service = { Type = "simple"; ExecStart = "${pkgs.taskchampion-sync-server}/bin/taskchampion-sync-server --listen media-server:33043 --data-dir /home/media/.local/share/task-sync --snapshot-days 1 --snapshot-versions 30"; }; }; }; #custom script executables home.file.".local/bin" = { source = ../emenel/dotfiles/dot_local/bin; recursive = true; }; }