From 33a73074b5975db4da31e43d20cb2e6394d04813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Sun, 22 Feb 2026 12:37:21 -0300 Subject: [PATCH 1/3] factorio: improve backup logic --- hosts/monolith/factorio-server.nix | 64 +++++++++++++++++++----------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/hosts/monolith/factorio-server.nix b/hosts/monolith/factorio-server.nix index 0db1e3a..d7e84f1 100644 --- a/hosts/monolith/factorio-server.nix +++ b/hosts/monolith/factorio-server.nix @@ -1,10 +1,49 @@ { config, pkgs, - lib, ... }: +let + mkBackup = time: { + systemd.services."factorio-backup-save-${time}" = { + description = "Backup factorio saves"; + script = '' + set -exuo pipefail + + FILENAME="space-age-$(date --iso=seconds | tr ':' '_').zip" + DEST_DIR=~lelgenio/Documentos/GameSaves/factorio_saves/space-age-1/${time} + + mkdir -p "$DEST_DIR" + cp /var/lib/factorio/saves/default.zip "$DEST_DIR"/$FILENAME + chown lelgenio "$DEST_DIR" "$DEST_DIR"/$FILENAME + + # list all files, from oldest to newest + # remove the last 10 from the list + # delete the rest + cd "$DEST_DIR" + ls | head -n-10 | xargs -r rm -v + ''; + serviceConfig.Type = "oneshot"; + }; + + systemd.timers."factorio-backup-save-${time}" = { + timerConfig = { + # Systemd accepts descriptive names such as "daily" + # The times are at midnight, Persistent makes sure that the backups get executed + OnCalendar = time; + Persistent = true; + Unit = "factorio-backup-save-${time}.service"; + }; + wantedBy = [ "timers.target" ]; + }; + }; +in { + imports = [ + (mkBackup "daily") + (mkBackup "monthly") + ]; + services.factorio = { enable = true; package = pkgs.my-factorio-headless; @@ -20,29 +59,6 @@ wants = [ "network-online.target" ]; }; - systemd.services.factorio-backup-save = { - description = "Backup factorio saves"; - script = '' - FILENAME="space-age-$(date --iso=seconds | tr ':' '_').zip" - ${lib.getExe pkgs.rsync} \ - -av \ - --chown=lelgenio \ - /var/lib/factorio/saves/default.zip \ - ~lelgenio/Documentos/GameSaves/factorio_saves/$FILENAME - ''; - serviceConfig.Type = "oneshot"; - wantedBy = [ "multi-user.target" ]; - }; - - systemd.timers.factorio-backup-save = { - timerConfig = { - OnCalendar = "*-*-* 18:00:00"; - Persistent = true; - Unit = "factorio-backup-save.service"; - }; - wantedBy = [ "timers.target" ]; - }; - sops.secrets."factorio/server-config.json" = { mode = "777"; }; From 2ad46d74424048595772ca848bfeaaa68e97e8bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Sun, 22 Feb 2026 13:05:48 -0300 Subject: [PATCH 2/3] flake: fix deprecations --- overlays/default.nix | 32 ++++++++++++++++++++++---------- switch | 2 +- system/gaming.nix | 2 +- system/greetd.nix | 2 +- user/git.nix | 2 +- user/ssh.nix | 1 + 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/overlays/default.nix b/overlays/default.nix index 6e00ae2..7ef585b 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -12,10 +12,18 @@ rec { scripts = (import ../scripts); - unstable = final: prev: { - unstable = import inputs.nixpkgs-unstable { inherit (final) system config; }; - pkgs-mesa-26 = import inputs.nixpkgs-mesa-26 { inherit (final) system config; }; - }; + unstable = + final: prev: + let + args = { + inherit (final) config; + system = prev.stdenv.hostPlatform.system; + }; + in + { + unstable = import inputs.nixpkgs-unstable args; + pkgs-mesa-26 = import inputs.nixpkgs-mesa-26 args; + }; themes = ( final: prev: { @@ -34,14 +42,18 @@ rec { new-packages = ( final: prev: + let + system = prev.stdenv.hostPlatform.system; + in packages // { - lsfg-vk = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk; - lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk-ui; - dhist = inputs.dhist.packages.${prev.system}.dhist; - demoji = inputs.demoji.packages.${prev.system}.default; - tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher; - wl-crosshair = inputs.wl-crosshair.packages.${prev.system}.default; + lsfg-vk = inputs.lsfg-vk-flake.packages.${system}.lsfg-vk; + lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${system}.lsfg-vk-ui; + dhist = inputs.dhist.packages.${system}.dhist; + demoji = inputs.demoji.packages.${system}.default; + tlauncher = inputs.tlauncher.packages.${system}.tlauncher; + wl-crosshair = inputs.wl-crosshair.packages.${system}.default; + dzgui = inputs.dzgui-nix.packages.${system}.default; } ); diff --git a/switch b/switch index 32bc217..bff47b1 100755 --- a/switch +++ b/switch @@ -12,7 +12,7 @@ git --no-pager diff run() { nixos-rebuild \ switch \ - --use-remote-sudo \ + --sudo \ --print-build-logs \ --flake .# \ "$@" diff --git a/system/gaming.nix b/system/gaming.nix index bc9d0c1..c2f9a1d 100644 --- a/system/gaming.nix +++ b/system/gaming.nix @@ -35,7 +35,7 @@ environment.systemPackages = with pkgs; [ protontricks bottles - inputs.dzgui-nix.packages.${pkgs.system}.default + dzgui ]; programs.gamemode = { diff --git a/system/greetd.nix b/system/greetd.nix index 94d20e1..8642968 100644 --- a/system/greetd.nix +++ b/system/greetd.nix @@ -48,7 +48,7 @@ in ''; greetd_main_script = pkgs.writeShellScriptBin "main" '' export XDG_CURRENT_DESKTOP=sway GTK_THEME="${theme.gtk_theme}" XCURSOR_THEME="${theme.cursor_theme}" - ${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c ${lib.getExe start-sway} + ${pkgs.gtkgreet}/bin/gtkgreet -l -c ${lib.getExe start-sway} swaymsg exit ''; swayConfig = pkgs.writeText "greetd-sway-config" '' diff --git a/user/git.nix b/user/git.nix index c15514f..e64a822 100644 --- a/user/git.nix +++ b/user/git.nix @@ -12,7 +12,7 @@ in programs.git = { enable = true; lfs.enable = true; - extraConfig = { + settings = { user = { name = username; email = mail.personal.user; diff --git a/user/ssh.nix b/user/ssh.nix index 4747bb4..e141477 100644 --- a/user/ssh.nix +++ b/user/ssh.nix @@ -2,6 +2,7 @@ config = { programs.ssh = { enable = true; + enableDefaultConfig = false; matchBlocks = { monolith = { user = "lelgenio"; From 23a4ad67250b78895a95519bedaa1c8efe962a9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Sun, 22 Feb 2026 13:07:32 -0300 Subject: [PATCH 3/3] switch: reduce noise --- switch | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/switch b/switch index bff47b1..e9214f1 100755 --- a/switch +++ b/switch @@ -2,25 +2,26 @@ set -euo pipefail -nix fmt +nix fmt --option warn-dirty false # Allow usage of untracked files in nix code git add --intent-to-add . +# I only use warn-dirty=false because of this git --no-pager diff run() { nixos-rebuild \ switch \ --sudo \ + --option warn-dirty false \ --print-build-logs \ --flake .# \ "$@" } if which nom >/dev/null; then - run --verbose \ - --log-format internal-json \ + run --log-format internal-json \ "$@" \ |& nom --json else