diff --git a/hosts/nb/modules/desktop/default.nix b/hosts/nb/modules/desktop/default.nix index d1e2372..923550a 100644 --- a/hosts/nb/modules/desktop/default.nix +++ b/hosts/nb/modules/desktop/default.nix @@ -3,6 +3,7 @@ let in { imports = [ ../sway/sway.nix + ../sway/launcher-cleanup.nix ./social.nix ./signal-work.nix ./thunderbird.nix diff --git a/hosts/nb/modules/sway/launcher-cleanup.nix b/hosts/nb/modules/sway/launcher-cleanup.nix new file mode 100644 index 0000000..ccb5eb6 --- /dev/null +++ b/hosts/nb/modules/sway/launcher-cleanup.nix @@ -0,0 +1,40 @@ +{ config, pkgs, ... }: +let + cleanup-launcher = pkgs.writeShellScriptBin "cleanup-sway-launcher" '' + HIST_FILE="''${XDG_CACHE_HOME:-$HOME/.cache}/.sway-launcher-desktop-wrapped-history.txt" + + # Delete the history file to clear duplicates + if [[ -f "$HIST_FILE" ]]; then + rm "$HIST_FILE" + echo "Cleared sway-launcher history at $HIST_FILE" + fi + + # Run purge to clean up any broken entries + ${pkgs.sway-launcher-desktop}/bin/sway-launcher-desktop purge 2>/dev/null || true + + echo "Sway launcher cleanup completed" + ''; +in { + environment.systemPackages = [ cleanup-launcher ]; + + systemd.user.timers = { + cleanup-sway-launcher = { + description = "Clean up sway-launcher-desktop cache"; + timerConfig = { + OnCalendar = "Sun 03:00"; + Persistent = true; + }; + wantedBy = [ "timers.target" ]; + }; + }; + + systemd.user.services = { + cleanup-sway-launcher = { + description = "Clean up sway-launcher-desktop cache and remove broken entries"; + serviceConfig = { + Type = "oneshot"; + ExecStart = "${cleanup-launcher}/bin/cleanup-sway-launcher"; + }; + }; + }; +}