diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el
index e630922..435ad0a 100644
--- a/hmModules/emacs/init.el
+++ b/hmModules/emacs/init.el
@@ -787,11 +787,30 @@ This is meant to be an helper to be called from the window manager."
   (defun org-roam-node-date (node)
     "Return the org datestring when a node was created (obtained from the filename)"
       (format "<%s>" (file-name-sans-extension (file-name-nondirectory (org-roam-node-file node)))))
+
+  (org-roam-ql-defpred
+   'date-range
+   "Check if node was created in given time range"
+   #'org-roam-node-date
+   #'(lambda (node-date start-date end-date)
+       (let ((node-date (condition-case nil
+			    ;; if the entry is not from the journal (i.e. the filename is not something like "2024-10-10.org")
+			    ;; then it's always discarded (the epoch time is given to it)
+			    (encode-time (org-parse-time-string node-date))
+			    (error (encode-time (org-parse-time-string "<1970-01-01>")))))
+	     (start-date (encode-time (org-parse-time-string start-date)))
+	     (end-date (encode-time (org-parse-time-string end-date))))
+	 (and (time-less-p start-date node-date)
+	      (time-less-p node-date end-date)))
+       ))
   
-  (defun ccr/org-roam-spent-hours (client)
+  (defun ccr/org-roam-spent-hours (client &optional date-start date-end)
     "Return the total spent hours on something (usually a client)"
-    (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes `(tags ,client "billable")))))
-  )
+    (let* ((query-tags `(tags ,client "billable"))
+	   (query (if (and date-start date-end)
+		      `(and ,query-tags (date-range ,date-start ,date-end))
+		    query-tags)))
+      (apply #'+(mapcar #'org-roam-node-spent (org-roam-ql-nodes query))))))
 
 (use-package org-roam-ql
   :after org-roam
diff --git a/hmModules/email/default.nix b/hmModules/email/default.nix
index 5ae160a..ab37b05 100644
--- a/hmModules/email/default.nix
+++ b/hmModules/email/default.nix
@@ -22,183 +22,183 @@
     );
   };
 
-  home.file.".config/aerc/stylesets" =
-    let
-      catppuccin-aerc = pkgs.fetchFromGitHub {
-        owner = "catppuccin";
-        repo = "aerc";
-        rev = "ca404a9f2d125ef12db40db663d43c9d94116a05";
-        hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE=";
-      };
-    in
-    {
-      source = "${catppuccin-aerc}/dist";
-      recursive = true;
-    };
+  # home.file.".config/aerc/stylesets" =
+  #   let
+  #     catppuccin-aerc = pkgs.fetchFromGitHub {
+  #       owner = "catppuccin";
+  #       repo = "aerc";
+  #       rev = "ca404a9f2d125ef12db40db663d43c9d94116a05";
+  #       hash = "sha256-OWIkHsKFts/zkrDUtbBPXHVSrHL/F0v3LB1rnlFAKmE=";
+  #     };
+  #   in
+  #   {
+  #     source = "${catppuccin-aerc}/dist";
+  #     recursive = true;
+  #   };
 
-  programs.aerc = {
-    enable = true;
-    extraBinds = {
-      global = {
-        "<C-p>" = ":prev-tab<Enter>";
-        "<C-n>" = ":next-tab<Enter>";
-        "?" = ":help keys<Enter>";
-      };
+  # programs.aerc = {
+  #   enable = true;
+  #   extraBinds = {
+  #     global = {
+  #       "<C-p>" = ":prev-tab<Enter>";
+  #       "<C-n>" = ":next-tab<Enter>";
+  #       "?" = ":help keys<Enter>";
+  #     };
 
-      messages = {
-        "h" = ":prev-tab<Enter>";
-        "l" = ":next-tab<Enter>";
+  #     messages = {
+  #       "h" = ":prev-tab<Enter>";
+  #       "l" = ":next-tab<Enter>";
 
-        "j" = ":next<Enter>";
-        "<Down>" = ":next<Enter>";
-        "<C-d>" = ":next 50%<Enter>";
-        "<C-f>" = ":next 100%<Enter>";
-        "<PgDn>" = ":next 100%<Enter>";
+  #       "j" = ":next<Enter>";
+  #       "<Down>" = ":next<Enter>";
+  #       "<C-d>" = ":next 50%<Enter>";
+  #       "<C-f>" = ":next 100%<Enter>";
+  #       "<PgDn>" = ":next 100%<Enter>";
 
-        "k" = ":prev<Enter>";
-        "<Up>" = ":prev<Enter>";
-        "<C-u>" = ":prev 50%<Enter>";
-        "<C-b>" = ":prev 100%<Enter>";
-        "<PgUp>" = ":prev 100%<Enter>";
-        "g" = ":select 0<Enter>";
-        "G" = ":select -1<Enter>";
+  #       "k" = ":prev<Enter>";
+  #       "<Up>" = ":prev<Enter>";
+  #       "<C-u>" = ":prev 50%<Enter>";
+  #       "<C-b>" = ":prev 100%<Enter>";
+  #       "<PgUp>" = ":prev 100%<Enter>";
+  #       "g" = ":select 0<Enter>";
+  #       "G" = ":select -1<Enter>";
 
-        "J" = ":next-folder<Enter>";
-        "K" = ":prev-folder<Enter>";
-        "H" = ":collapse-folder<Enter>";
-        "L" = ":expand-folder<Enter>";
+  #       "J" = ":next-folder<Enter>";
+  #       "K" = ":prev-folder<Enter>";
+  #       "H" = ":collapse-folder<Enter>";
+  #       "L" = ":expand-folder<Enter>";
 
-        "v" = ":mark -t<Enter>";
-        "x" = ":mark -t<Enter>:next<Enter>";
-        "V" = ":mark -v<Enter>";
+  #       "v" = ":mark -t<Enter>";
+  #       "x" = ":mark -t<Enter>:next<Enter>";
+  #       "V" = ":mark -v<Enter>";
 
-        "T" = ":toggle-threads<Enter>";
+  #       "T" = ":toggle-threads<Enter>";
 
-        "<Enter>" = ":view<Enter>";
-        "d" = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
-        "D" = ":delete<Enter>";
-        "A" = ":archive flat<Enter>";
+  #       "<Enter>" = ":view<Enter>";
+  #       "d" = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
+  #       "D" = ":delete<Enter>";
+  #       "A" = ":archive flat<Enter>";
 
-        "C" = ":compose<Enter>";
+  #       "C" = ":compose<Enter>";
 
-        "rr" = ":reply -a<Enter>";
-        "rq" = ":reply -aq<Enter>";
-        "Rr" = ":reply<Enter>";
-        "Rq" = ":reply -q<Enter>";
+  #       "rr" = ":reply -a<Enter>";
+  #       "rq" = ":reply -aq<Enter>";
+  #       "Rr" = ":reply<Enter>";
+  #       "Rq" = ":reply -q<Enter>";
 
-        "c" = ":cf<space>";
-        "$" = ":term<space>";
-        "!" = ":term<space>";
-        "|" = ":pipe<space>";
+  #       "c" = ":cf<space>";
+  #       "$" = ":term<space>";
+  #       "!" = ":term<space>";
+  #       "|" = ":pipe<space>";
 
-        "/" = ":search<space>";
-        "\\" = ":filter<space>";
-        "n" = ":next-result<Enter>";
-        "N" = ":prev-result<Enter>";
-        "<Esc>" = ":clear<Enter>";
-      };
+  #       "/" = ":search<space>";
+  #       "\\" = ":filter<space>";
+  #       "n" = ":next-result<Enter>";
+  #       "N" = ":prev-result<Enter>";
+  #       "<Esc>" = ":clear<Enter>";
+  #     };
 
-      "messages:folder=Drafts" = {
-        "<Enter>" = ":recall<Enter>";
-      };
+  #     "messages:folder=Drafts" = {
+  #       "<Enter>" = ":recall<Enter>";
+  #     };
 
-      view = {
-        "/" = ":toggle-key-passthrough<Enter>/";
-        "q" = ":close<Enter>";
-        "O" = ":open<Enter>";
-        "S" = ":save<space>";
-        "|" = ":pipe<space>";
-        "D" = ":delete<Enter>";
-        "A" = ":archive flat<Enter>";
+  #     view = {
+  #       "/" = ":toggle-key-passthrough<Enter>/";
+  #       "q" = ":close<Enter>";
+  #       "O" = ":open<Enter>";
+  #       "S" = ":save<space>";
+  #       "|" = ":pipe<space>";
+  #       "D" = ":delete<Enter>";
+  #       "A" = ":archive flat<Enter>";
 
-        "<C-l>" = ":open-link <space>";
+  #       "<C-l>" = ":open-link <space>";
 
-        "f" = ":forward<Enter>";
-        "rr" = ":reply -a<Enter>";
-        "rq" = ":reply -aq<Enter>";
-        "Rr" = ":reply<Enter>";
-        "Rq" = ":reply -q<Enter>";
+  #       "f" = ":forward<Enter>";
+  #       "rr" = ":reply -a<Enter>";
+  #       "rq" = ":reply -aq<Enter>";
+  #       "Rr" = ":reply<Enter>";
+  #       "Rq" = ":reply -q<Enter>";
 
-        "H" = ":toggle-headers<Enter>";
-        "<C-k>" = ":prev-part<Enter>";
-        "<C-j>" = ":next-part<Enter>";
-        "J" = ":next<Enter>";
-        "K" = ":prev<Enter>";
-      };
+  #       "H" = ":toggle-headers<Enter>";
+  #       "<C-k>" = ":prev-part<Enter>";
+  #       "<C-j>" = ":next-part<Enter>";
+  #       "J" = ":next<Enter>";
+  #       "K" = ":prev<Enter>";
+  #     };
 
-      "view::passthrough" = {
-        "$noinherit" = true;
-        "$ex" = "<C-x>";
-        "<Esc>" = ":toggle-key-passthrough<Enter>";
-      };
+  #     "view::passthrough" = {
+  #       "$noinherit" = true;
+  #       "$ex" = "<C-x>";
+  #       "<Esc>" = ":toggle-key-passthrough<Enter>";
+  #     };
 
-      compose = {
-        "$noinherit" = "true";
-        "$ex" = "<C-x>";
-        "<C-k>" = ":prev-field<Enter>";
-        "<C-j>" = ":next-field<Enter>";
-        "<A-p>" = ":switch-account -p<Enter>";
-        "<A-n>" = ":switch-account -n<Enter>";
-        "<tab>" = ":next-field<Enter>";
-        "<C-p>" = ":prev-tab<Enter>";
-        "<C-n>" = ":next-tab<Enter>";
-      };
+  #     compose = {
+  #       "$noinherit" = "true";
+  #       "$ex" = "<C-x>";
+  #       "<C-k>" = ":prev-field<Enter>";
+  #       "<C-j>" = ":next-field<Enter>";
+  #       "<A-p>" = ":switch-account -p<Enter>";
+  #       "<A-n>" = ":switch-account -n<Enter>";
+  #       "<tab>" = ":next-field<Enter>";
+  #       "<C-p>" = ":prev-tab<Enter>";
+  #       "<C-n>" = ":next-tab<Enter>";
+  #     };
 
-      "compose::editor" = {
-        "$noinherit" = "true";
-        "$ex" = "<C-x>";
-        "<C-k>" = ":prev-field<Enter>";
-        "<C-j>" = ":next-field<Enter>";
-        "<C-p>" = ":prev-tab<Enter>";
-        "<C-n>" = ":next-tab<Enter>";
-      };
+  #     "compose::editor" = {
+  #       "$noinherit" = "true";
+  #       "$ex" = "<C-x>";
+  #       "<C-k>" = ":prev-field<Enter>";
+  #       "<C-j>" = ":next-field<Enter>";
+  #       "<C-p>" = ":prev-tab<Enter>";
+  #       "<C-n>" = ":next-tab<Enter>";
+  #     };
 
-      "compose::review" = {
-        "y" = ":send<Enter>";
-        "n" = ":abort<Enter>";
-        "p" = ":postpone<Enter>";
-        "q" = ":choose -o d discard abort -o p postpone postpone<Enter>";
-        "e" = ":edit<Enter>";
-        "a" = ":attach<space>";
-        "d" = ":detach<space>";
-      };
+  #     "compose::review" = {
+  #       "y" = ":send<Enter>";
+  #       "n" = ":abort<Enter>";
+  #       "p" = ":postpone<Enter>";
+  #       "q" = ":choose -o d discard abort -o p postpone postpone<Enter>";
+  #       "e" = ":edit<Enter>";
+  #       "a" = ":attach<space>";
+  #       "d" = ":detach<space>";
+  #     };
 
-      terminal = {
-        "$noinherit" = "true";
-        "$ex" = "<C-x>";
+  #     terminal = {
+  #       "$noinherit" = "true";
+  #       "$ex" = "<C-x>";
 
-        "<C-p>" = ":prev-tab<Enter>";
-        "<C-n>" = ":next-tab<Enter>";
-      };
-    };
-    extraConfig = {
-      general.unsafe-accounts-conf = true;
-      ui = {
-        styleset-name = "catppuccin-mocha";
-        this-day-time-format = ''"           15:04"'';
-        this-year-time-format = "Mon Jan 02 15:04";
-        timestamp-format = "2006-01-02 15:04";
+  #       "<C-p>" = ":prev-tab<Enter>";
+  #       "<C-n>" = ":next-tab<Enter>";
+  #     };
+  #   };
+  #   extraConfig = {
+  #     general.unsafe-accounts-conf = true;
+  #     ui = {
+  #       styleset-name = "catppuccin-mocha";
+  #       this-day-time-format = ''"           15:04"'';
+  #       this-year-time-format = "Mon Jan 02 15:04";
+  #       timestamp-format = "2006-01-02 15:04";
 
-        spinner = "[ ⡿ ],[ ⣟ ],[ ⣯ ],[ ⣷ ],[ ⣾ ],[ ⣽ ],[ ⣻ ],[ ⢿ ]";
-        border-char-vertical = "┃";
-        border-char-horizontal = "━";
-      };
-      viewer = {
-        always-show-mime = true;
-      };
-      compose = {
-        no-attachment-warning = "^[^>]*attach(ed|ment)";
-      };
-      filters = {
-        "text/plain" = "colorize";
-        "text/html" = "html";
-        "text/calendar" = "calendar";
-        "message/delivery-status" = "colorize";
-        "message/rfc822" = "colorize";
-        "image/*" = "${pkgs.catimg}/bin/catimg -";
-      };
-    };
-  };
+  #       spinner = "[ ⡿ ],[ ⣟ ],[ ⣯ ],[ ⣷ ],[ ⣾ ],[ ⣽ ],[ ⣻ ],[ ⢿ ]";
+  #       border-char-vertical = "┃";
+  #       border-char-horizontal = "━";
+  #     };
+  #     viewer = {
+  #       always-show-mime = true;
+  #     };
+  #     compose = {
+  #       no-attachment-warning = "^[^>]*attach(ed|ment)";
+  #     };
+  #     filters = {
+  #       "text/plain" = "colorize";
+  #       "text/html" = "html";
+  #       "text/calendar" = "calendar";
+  #       "message/delivery-status" = "colorize";
+  #       "message/rfc822" = "colorize";
+  #       "image/*" = "${pkgs.catimg}/bin/catimg -";
+  #     };
+  #   };
+  # };
 
   programs.notmuch = {
     enable = true;
diff --git a/hmModules/foot/default.nix b/hmModules/foot/default.nix
index e8ac8d3..840b866 100644
--- a/hmModules/foot/default.nix
+++ b/hmModules/foot/default.nix
@@ -10,7 +10,7 @@ lib.mkMerge [
       server.enable = true;
       settings = {
         main = {
-          term = "xterm-256color";
+          term = "xterm-direct";
           login-shell = "yes";
           dpi-aware = "no";
           horizontal-letter-offset = "1";
diff --git a/hmModules/shell/default.nix b/hmModules/shell/default.nix
index 22ced2b..048a65f 100644
--- a/hmModules/shell/default.nix
+++ b/hmModules/shell/default.nix
@@ -3,6 +3,7 @@
   pkgs,
   age,
   hostname,
+  config,
   ...
 }:
 {
@@ -47,13 +48,19 @@
     Install = {
       WantedBy = [ "default.target" ];
     };
-    Service.ExecStart = "${lib.getExe pkgs.atuin} daemon";
+    Service = {
+      # ExecStartPre = "${lib.getExe' pkgs.toybox "rm"} -f ${config.programs.atuin.settings.daemon.socket_path}";
+      ExecStart = "${lib.getExe pkgs.atuin} daemon";
+    };
   };
 
   programs.atuin = {
     enable = true;
     settings = {
-      daemon.enabled = true;
+      daemon = {
+        enabled = true;
+        socket_path = "/home/ccr/.local/share/atuin/atuin.sock"; # FIXME using ~ or $HOME doesn't work: https://github.com/atuinsh/atuin/issues/2289
+      };
       auto_sync = true;
       sync_frequency = "5m";
       sync_address = "http://sisko.fleet:8889";
diff --git a/hosts/default.nix b/hosts/default.nix
index 0498e19..5636017 100644
--- a/hosts/default.nix
+++ b/hosts/default.nix
@@ -115,7 +115,6 @@
             owner = "grafana";
             group = "forgejo";
           };
-          "garmin-collector-environment".owner = "garmin-collector";
         };
       };
     };
diff --git a/hosts/sisko/default.nix b/hosts/sisko/default.nix
index 6295c63..ba45c12 100644
--- a/hosts/sisko/default.nix
+++ b/hosts/sisko/default.nix
@@ -25,7 +25,6 @@
       "prometheus-exporters"
       "loki"
       "promtail"
-      "garmin-collector"
       "restic"
       "atuin"
       "immich"
@@ -63,10 +62,18 @@
   ];
 
   boot.kernelParams = [
+    "earlycon"
+    "consoleblank=0"
     "console=tty1"
-    "console=ttyS0,1500000"
+    "console=ttyS2,1500000"
   ];
 
+  systemd.services."serial-getty@ttyS2" = {
+    enable = true;
+    wantedBy = [ "getty.target" ];
+    serviceConfig.restart = "always";
+  };
+
   environment.persistence."/persist" = {
     hideMounts = true;
     directories = [
diff --git a/modules/restic/default.nix b/modules/restic/default.nix
index c3ba948..7aedfcd 100644
--- a/modules/restic/default.nix
+++ b/modules/restic/default.nix
@@ -55,5 +55,19 @@ in
     ];
     timerConfig.OnCalendar = "daily";
     timerConfig.RandomizedDelaySec = "1h";
+    backupPrepareCommand = ''
+      ${pkgs.systemd}/bin/systemctl stop podman-*
+      ${pkgs.systemd}/bin/systemctl stop syncthing
+      ${pkgs.systemd}/bin/systemctl stop paperless-*
+      ${pkgs.systemd}/bin/systemctl stop forgejo
+      ${pkgs.systemd}/bin/systemctl stop home-assistant
+    '';
+    backupCleanupCommand = ''
+      ${pkgs.systemd}/bin/systemctl start --no-block --all "podman-*"
+      ${pkgs.systemd}/bin/systemctl start syncthing
+      ${pkgs.systemd}/bin/systemctl start --no-block --all "paperless-*"
+      ${pkgs.systemd}/bin/systemctl start forgejo
+      ${pkgs.systemd}/bin/systemctl start home-assistant
+    '';
   };
 }
diff --git a/modules/syncthing/default.nix b/modules/syncthing/default.nix
index eb25947..b1b9857 100644
--- a/modules/syncthing/default.nix
+++ b/modules/syncthing/default.nix
@@ -20,7 +20,7 @@
             ];
           };
           sisko = {
-            id = "5JYQLMP-KNBMSOE-I452UDU-UTKPXJI-K27X2DI-MSCSRCG-6V54Q6U-NVGXPQA";
+            id = "TOC7QXZ-JLB4LYP-VNIJAV5-DCKVGFN-UE45SPX-PPFJHSG-O3UHFCK-2PEMAQ6";
             addresses = [
               "tcp://sisko.fleet"
             ];