diff --git a/hosts/monolith/factorio-server.nix b/hosts/monolith/factorio-server.nix index d7e84f1..0db1e3a 100644 --- a/hosts/monolith/factorio-server.nix +++ b/hosts/monolith/factorio-server.nix @@ -1,49 +1,10 @@ { 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; @@ -59,6 +20,29 @@ in 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"; }; diff --git a/overlays/default.nix b/overlays/default.nix index 7ef585b..6e00ae2 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -12,18 +12,10 @@ rec { scripts = (import ../scripts); - 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; - }; + unstable = final: prev: { + unstable = import inputs.nixpkgs-unstable { inherit (final) system config; }; + pkgs-mesa-26 = import inputs.nixpkgs-mesa-26 { inherit (final) system config; }; + }; themes = ( final: prev: { @@ -42,18 +34,14 @@ rec { new-packages = ( final: prev: - let - system = prev.stdenv.hostPlatform.system; - in packages // { - 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; + 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; } ); diff --git a/switch b/switch index e9214f1..32bc217 100755 --- a/switch +++ b/switch @@ -2,26 +2,25 @@ set -euo pipefail -nix fmt --option warn-dirty false +nix fmt # 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 \ + --use-remote-sudo \ --print-build-logs \ --flake .# \ "$@" } if which nom >/dev/null; then - run --log-format internal-json \ + run --verbose \ + --log-format internal-json \ "$@" \ |& nom --json else diff --git a/system/gaming.nix b/system/gaming.nix index c2f9a1d..bc9d0c1 100644 --- a/system/gaming.nix +++ b/system/gaming.nix @@ -35,7 +35,7 @@ environment.systemPackages = with pkgs; [ protontricks bottles - dzgui + inputs.dzgui-nix.packages.${pkgs.system}.default ]; programs.gamemode = { diff --git a/system/greetd.nix b/system/greetd.nix index 8642968..94d20e1 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.gtkgreet}/bin/gtkgreet -l -c ${lib.getExe start-sway} + ${pkgs.greetd.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 e64a822..c15514f 100644 --- a/user/git.nix +++ b/user/git.nix @@ -12,7 +12,7 @@ in programs.git = { enable = true; lfs.enable = true; - settings = { + extraConfig = { user = { name = username; email = mail.personal.user; diff --git a/user/ssh.nix b/user/ssh.nix index e141477..4747bb4 100644 --- a/user/ssh.nix +++ b/user/ssh.nix @@ -2,7 +2,6 @@ config = { programs.ssh = { enable = true; - enableDefaultConfig = false; matchBlocks = { monolith = { user = "lelgenio";