auto-update-daily-20260202
1{ pkgs, ... }:
2let
3 # Wrapper for jira-cli that injects API token from passage
4 jira-wrapped = pkgs.writeShellScriptBin "jira" ''
5 export JIRA_API_TOKEN=$(${pkgs.passage}/bin/passage show redhat/issues/token/kyushu)
6 exec ${pkgs.jira-cli-go}/bin/jira "$@"
7 '';
8in
9{
10 imports = [
11 ../../home/common/dev/containers.nix
12 ../../home/common/dev/gh-news.nix
13 ../../home/common/dev/lazyworktree.nix
14 ../../home/common/dev/neovim.nix
15 ../../home/common/dev/tektoncd.nix
16 ../../home/common/services/color-scheme-timer.nix
17 ../../home/common/services/gcal-to-org.nix
18 ../../home/common/services/goimapnotify.nix
19 ../../home/common/services/mail-monitor.nix
20 ../../home/common/services/redhat.nix
21 ../../home/common/shell/gh.nix
22 ];
23
24 home.file.".gmailctl/config.jsonnet".source = ./config.jsonnet;
25 home.file.".gmailctl/gmailctl.libsonnet".source = ./gmailctl.libsonnet;
26 home.packages = with pkgs; [
27 spotify
28 # easyeffects # Not using it really
29
30 thunderbird
31 nautilus
32
33 slack
34
35 gmailctl
36 gcalcli
37 nextmeeting
38
39 calibre
40
41 ntfy-sh
42 libnotify
43
44 monolith
45
46 did
47
48 feishin # navidrome - uses mpv-unwrapped via overlay
49
50 gops
51 lazygit
52
53 # Keyboard
54 qmk
55 qmk_hid
56
57 startpaac
58 abs-tui
59
60 batzconverter # TODO I need to fix it or package it upstream
61
62 simple-scan
63 keybase
64
65 # transmission_4-gtk # Using remote one for now
66
67 # forgejo-cli
68 jira-wrapped
69
70 # lisp
71 # roswell # Disabled: broken in nixpkgs-unstable (register_runtime_options error)
72 # sbcl # Not using
73
74 go-org-readwise
75 gh-pr
76 lazypr
77 nixpkgs-pr-watch
78 arr
79 claude-hooks
80 toggle-color-scheme
81 shpool-remote
82 cliphist-cleanup
83
84 slackdump
85 ];
86
87 # Automatic color scheme switching
88 services.color-scheme-timer = {
89 enable = true;
90 latitude = "48.87"; # Paris coordinates
91 longitude = "2.33";
92 lightTime = "07:00"; # Switch to light mode at 7am
93 darkTime = "19:00"; # Switch to dark mode at 7pm
94 };
95
96 # Google Calendar sync to org-mode
97 services.gcal-to-org = {
98 enable = true;
99 interval = "hourly";
100 };
101
102 # ntfy notification subscriber
103 systemd.user.services.ntfy-subscriber = {
104 Unit = {
105 Description = "ntfy notification subscriber";
106 Documentation = "https://ntfy.sh";
107 After = [
108 "graphical-session.target"
109 "network-online.target"
110 ];
111 Wants = [ "network-online.target" ];
112 };
113
114 Service = {
115 Type = "simple";
116 ExecStart = "${pkgs.ntfy-sh}/bin/ntfy subscribe --from-config";
117 Restart = "on-failure";
118 RestartSec = 10;
119 Environment = [
120 "PATH=${pkgs.bash}/bin:${pkgs.coreutils}/bin:${pkgs.libnotify}/bin:${pkgs.ntfy-sh}/bin:${pkgs.xdg-utils}/bin:${pkgs.curl}/bin:${pkgs.passage}/bin"
121 "PASSAGE_DIR=/home/vincent/.local/share/passage"
122 "PASSAGE_IDENTITIES_FILE=/home/vincent/.local/share/passage/identities"
123 ];
124 };
125
126 Install = {
127 WantedBy = [ "graphical-session.target" ];
128 };
129 };
130
131}