diff --git a/.github/workflows/build-machines-and-homes.yml b/.github/workflows/build-machines-and-homes.yml index 908806f..e276cbf 100644 --- a/.github/workflows/build-machines-and-homes.yml +++ b/.github/workflows/build-machines-and-homes.yml @@ -10,6 +10,7 @@ jobs: machine: - chunk - ytnix + - titan os: - ubuntu-latest runs-on: ${{ matrix.os }} diff --git a/home/yt/ytnix.nix b/home/yt/ytnix.nix index ddb2212..c3a0414 100644 --- a/home/yt/ytnix.nix +++ b/home/yt/ytnix.nix @@ -19,6 +19,30 @@ }; programs.home-manager.enable = true; + systemd.user.startServices = "sd-switch"; + + # keep this commented when using plasma + # otherwise "system settings" in KDE will not function + # qt = { + # enable = true; + # platformTheme.name = "kde"; + # style.name = "breeze-dark"; + # style.package = pkgs.kdePackages.breeze; + # }; + + # this one too + # gtk = { + # enable = true; + # theme = { + # package = pkgs.adw-gtk3; + # name = "adw-gtk3-dark"; + # }; + # iconTheme = { + # package = pkgs.adwaita-icon-theme; + # name = "Adwaita"; + # }; + # }; + home.pointerCursor = { package = pkgs.bibata-cursors; name = "Bibata-Modern-Classic"; @@ -32,6 +56,7 @@ ungoogled-chromium librewolf bitwarden-desktop + bitwarden-cli fastfetch nwg-look kdePackages.gwenview @@ -42,6 +67,11 @@ signal-desktop pavucontrol btop + grim + slurp + rofi-wayland + rofimoji + cliphist jq bash-language-server sqlite @@ -58,6 +88,7 @@ pwgen lua-language-server gnumake + foot minisign unzip lm_sensors @@ -94,6 +125,7 @@ radare2 p7zip qbittorrent + # vscodium nil pkg-config gtk2 @@ -115,16 +147,28 @@ localsend scrcpy syncthing - syncthingtray obsidian ]; + programs.waybar.enable = true; programs.feh.enable = true; xdg.configFile = { + rofi.source = ../rofi; + waybar.source = ../waybar; mpv.source = ../mpv; }; + programs.newsboat = { + enable = true; + extraConfig = '' + urls-source "miniflux" + miniflux-url "https://rss.cything.io/" + miniflux-login "cy" + miniflux-passwordfile /run/secrets/newsboat/miniflux + ''; + }; + programs.direnv = { enable = true; nix-direnv.enable = true; diff --git a/hosts/chunk/default.nix b/hosts/chunk/default.nix index e565100..826b128 100644 --- a/hosts/chunk/default.nix +++ b/hosts/chunk/default.nix @@ -31,6 +31,9 @@ "borg/rsyncnet" = { sopsFile = ../../secrets/borg/chunk.yaml; }; + "services/ntfy" = { + sopsFile = ../../secrets/services/ntfy.yaml; + }; "rclone/config" = { sopsFile = ../../secrets/rclone.yaml; }; diff --git a/hosts/ytnix/default.nix b/hosts/ytnix/default.nix index 296335c..c329115 100644 --- a/hosts/ytnix/default.nix +++ b/hosts/ytnix/default.nix @@ -17,9 +17,16 @@ "borg/rsyncnet" = { sopsFile = ../../secrets/borg/yt.yaml; }; + "services/ntfy" = { + sopsFile = ../../secrets/services/ntfy.yaml; + }; "rsyncnet/id_ed25519" = { sopsFile = ../../secrets/zh5061/yt.yaml; }; + "newsboat/miniflux" = { + sopsFile = ../../secrets/newsboat.yaml; + owner = "yt"; + }; "tailscale/auth" = { sopsFile = ../../secrets/services/tailscale.yaml; }; diff --git a/modules/backup.nix b/modules/backup.nix index 2715deb..52913b4 100644 --- a/modules/backup.nix +++ b/modules/backup.nix @@ -6,6 +6,7 @@ }: let cfg = config.my.backup; + hostname = config.networking.hostName; defaultPaths = [ "/root" "/home" @@ -96,6 +97,23 @@ in ]; # warnings are often not that serious failOnWarnings = false; + postHook = '' + invocationId=$(systemctl show -p InvocationID --value borgbackup-job-${cfg.jobName}.service) + title="${hostname}: backup completed with exit code: $exitStatus" + msg=$(journalctl -o cat _SYSTEMD_INVOCATION_ID=$invocationId) + + if [ "$exitStatus" -eq 0 ]; then + tag="v" + else + tag="rotating_light" + fi + + ${pkgs.curl}/bin/curl -sL -u $(cat ${config.sops.secrets."services/ntfy".path}) \ + -H "Title: $title" \ + -H "Tags: $tag" \ + -d "$msg" \ + https://ntfy.cything.io/backups > /dev/null + ''; prune.keep = { within = "2d";