Compare commits
No commits in common. "23a4ad67250b78895a95519bedaa1c8efe962a9d" and "5ccec30fae480eb833b470db38bcc487752175c3" have entirely different histories.
23a4ad6725
...
5ccec30fae
7 changed files with 41 additions and 71 deletions
|
|
@ -1,49 +1,10 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
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 = {
|
services.factorio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.my-factorio-headless;
|
package = pkgs.my-factorio-headless;
|
||||||
|
|
@ -59,6 +20,29 @@ in
|
||||||
wants = [ "network-online.target" ];
|
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" = {
|
sops.secrets."factorio/server-config.json" = {
|
||||||
mode = "777";
|
mode = "777";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -12,18 +12,10 @@ rec {
|
||||||
|
|
||||||
scripts = (import ../scripts);
|
scripts = (import ../scripts);
|
||||||
|
|
||||||
unstable =
|
unstable = final: prev: {
|
||||||
final: prev:
|
unstable = import inputs.nixpkgs-unstable { inherit (final) system config; };
|
||||||
let
|
pkgs-mesa-26 = import inputs.nixpkgs-mesa-26 { inherit (final) system config; };
|
||||||
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 = (
|
themes = (
|
||||||
final: prev: {
|
final: prev: {
|
||||||
|
|
@ -42,18 +34,14 @@ rec {
|
||||||
|
|
||||||
new-packages = (
|
new-packages = (
|
||||||
final: prev:
|
final: prev:
|
||||||
let
|
|
||||||
system = prev.stdenv.hostPlatform.system;
|
|
||||||
in
|
|
||||||
packages
|
packages
|
||||||
// {
|
// {
|
||||||
lsfg-vk = inputs.lsfg-vk-flake.packages.${system}.lsfg-vk;
|
lsfg-vk = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk;
|
||||||
lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${system}.lsfg-vk-ui;
|
lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk-ui;
|
||||||
dhist = inputs.dhist.packages.${system}.dhist;
|
dhist = inputs.dhist.packages.${prev.system}.dhist;
|
||||||
demoji = inputs.demoji.packages.${system}.default;
|
demoji = inputs.demoji.packages.${prev.system}.default;
|
||||||
tlauncher = inputs.tlauncher.packages.${system}.tlauncher;
|
tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
|
||||||
wl-crosshair = inputs.wl-crosshair.packages.${system}.default;
|
wl-crosshair = inputs.wl-crosshair.packages.${prev.system}.default;
|
||||||
dzgui = inputs.dzgui-nix.packages.${system}.default;
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
9
switch
9
switch
|
|
@ -2,26 +2,25 @@
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
nix fmt --option warn-dirty false
|
nix fmt
|
||||||
|
|
||||||
# Allow usage of untracked files in nix code
|
# Allow usage of untracked files in nix code
|
||||||
git add --intent-to-add .
|
git add --intent-to-add .
|
||||||
|
|
||||||
# I only use warn-dirty=false because of this
|
|
||||||
git --no-pager diff
|
git --no-pager diff
|
||||||
|
|
||||||
run() {
|
run() {
|
||||||
nixos-rebuild \
|
nixos-rebuild \
|
||||||
switch \
|
switch \
|
||||||
--sudo \
|
--use-remote-sudo \
|
||||||
--option warn-dirty false \
|
|
||||||
--print-build-logs \
|
--print-build-logs \
|
||||||
--flake .# \
|
--flake .# \
|
||||||
"$@"
|
"$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
if which nom >/dev/null; then
|
if which nom >/dev/null; then
|
||||||
run --log-format internal-json \
|
run --verbose \
|
||||||
|
--log-format internal-json \
|
||||||
"$@" \
|
"$@" \
|
||||||
|& nom --json
|
|& nom --json
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
protontricks
|
protontricks
|
||||||
bottles
|
bottles
|
||||||
dzgui
|
inputs.dzgui-nix.packages.${pkgs.system}.default
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.gamemode = {
|
programs.gamemode = {
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ in
|
||||||
'';
|
'';
|
||||||
greetd_main_script = pkgs.writeShellScriptBin "main" ''
|
greetd_main_script = pkgs.writeShellScriptBin "main" ''
|
||||||
export XDG_CURRENT_DESKTOP=sway GTK_THEME="${theme.gtk_theme}" XCURSOR_THEME="${theme.cursor_theme}"
|
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
|
swaymsg exit
|
||||||
'';
|
'';
|
||||||
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ in
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
settings = {
|
extraConfig = {
|
||||||
user = {
|
user = {
|
||||||
name = username;
|
name = username;
|
||||||
email = mail.personal.user;
|
email = mail.personal.user;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
config = {
|
config = {
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks = {
|
matchBlocks = {
|
||||||
monolith = {
|
monolith = {
|
||||||
user = "lelgenio";
|
user = "lelgenio";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue