Compare commits
3 commits
5ccec30fae
...
23a4ad6725
| Author | SHA1 | Date | |
|---|---|---|---|
| 23a4ad6725 | |||
| 2ad46d7442 | |||
| 33a73074b5 |
7 changed files with 71 additions and 41 deletions
|
|
@ -1,10 +1,49 @@
|
||||||
{
|
{
|
||||||
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;
|
||||||
|
|
@ -20,29 +59,6 @@
|
||||||
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,10 +12,18 @@ rec {
|
||||||
|
|
||||||
scripts = (import ../scripts);
|
scripts = (import ../scripts);
|
||||||
|
|
||||||
unstable = final: prev: {
|
unstable =
|
||||||
unstable = import inputs.nixpkgs-unstable { inherit (final) system config; };
|
final: prev:
|
||||||
pkgs-mesa-26 = import inputs.nixpkgs-mesa-26 { inherit (final) system config; };
|
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 = (
|
themes = (
|
||||||
final: prev: {
|
final: prev: {
|
||||||
|
|
@ -34,14 +42,18 @@ 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.${prev.system}.lsfg-vk;
|
lsfg-vk = inputs.lsfg-vk-flake.packages.${system}.lsfg-vk;
|
||||||
lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${prev.system}.lsfg-vk-ui;
|
lsfg-vk-ui = inputs.lsfg-vk-flake.packages.${system}.lsfg-vk-ui;
|
||||||
dhist = inputs.dhist.packages.${prev.system}.dhist;
|
dhist = inputs.dhist.packages.${system}.dhist;
|
||||||
demoji = inputs.demoji.packages.${prev.system}.default;
|
demoji = inputs.demoji.packages.${system}.default;
|
||||||
tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher;
|
tlauncher = inputs.tlauncher.packages.${system}.tlauncher;
|
||||||
wl-crosshair = inputs.wl-crosshair.packages.${prev.system}.default;
|
wl-crosshair = inputs.wl-crosshair.packages.${system}.default;
|
||||||
|
dzgui = inputs.dzgui-nix.packages.${system}.default;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
9
switch
9
switch
|
|
@ -2,25 +2,26 @@
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
nix fmt
|
nix fmt --option warn-dirty false
|
||||||
|
|
||||||
# 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 \
|
||||||
--use-remote-sudo \
|
--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 --verbose \
|
run --log-format internal-json \
|
||||||
--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
|
||||||
inputs.dzgui-nix.packages.${pkgs.system}.default
|
dzgui
|
||||||
];
|
];
|
||||||
|
|
||||||
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.greetd.gtkgreet}/bin/gtkgreet -l -c ${lib.getExe start-sway}
|
${pkgs.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;
|
||||||
extraConfig = {
|
settings = {
|
||||||
user = {
|
user = {
|
||||||
name = username;
|
name = username;
|
||||||
email = mail.personal.user;
|
email = mail.personal.user;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
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