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