flake-update-20260201
 1{ pkgs, config, ... }:
 2{
 3  imports = [
 4    ../../home/common/dev/default.nix
 5    ../../home/common/dev/gh-news.nix
 6    ../../home/common/dev/lazyworktree.nix
 7    ../../home/common/dev/neovim.nix
 8    ../../home/common/dev/emacs.nix
 9    ../../home/common/dev/containers.nix
10    ../../home/common/dev/tektoncd.nix
11    ../../home/common/desktop/passage.nix
12    ../../home/common/shell/gh.nix
13  ];
14  systemd.user.services.syncthing.Install.WantedBy = [ "multi-user.target" ];
15
16  home.sessionVariables = {
17    PASSAGE_IDENTITIES_FILE = pkgs.lib.mkForce "${config.home.homeDirectory}/.ssh/id_ed25519";
18  };
19
20  home.packages = with pkgs; [
21    gnumake
22
23    go-org-readwise
24    gh-pr
25    lazypr
26    claude-hooks
27    nixpkgs-pr-watch
28    ssh-to-age
29
30    lazygit
31  ];
32
33  # Passage update service and timer
34  systemd.user.services.passage-update = {
35    Unit = {
36      Description = "Update passage password store";
37    };
38    Service = {
39      Type = "oneshot";
40      ExecStart = "${pkgs.passage}/bin/passage git pull --rebase";
41      WorkingDirectory = config.home.sessionVariables.PASSAGE_DIR;
42    };
43  };
44
45  systemd.user.timers.passage-update = {
46    Unit = {
47      Description = "Daily passage password store update";
48    };
49    Timer = {
50      OnCalendar = "daily";
51      Persistent = true;
52      RandomizedDelaySec = "1h";
53    };
54    Install = {
55      WantedBy = [ "timers.target" ];
56    };
57  };
58}