Compare commits

...

3 commits

7 changed files with 71 additions and 41 deletions

View file

@ -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";
};

View file

@ -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;
}
);

9
switch
View file

@ -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 \
--use-remote-sudo \
--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

View file

@ -35,7 +35,7 @@
environment.systemPackages = with pkgs; [
protontricks
bottles
inputs.dzgui-nix.packages.${pkgs.system}.default
dzgui
];
programs.gamemode = {

View file

@ -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" ''

View file

@ -12,7 +12,7 @@ in
programs.git = {
enable = true;
lfs.enable = true;
extraConfig = {
settings = {
user = {
name = username;
email = mail.personal.user;

View file

@ -2,6 +2,7 @@
config = {
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
monolith = {
user = "lelgenio";