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}