Compare commits

...

3 commits

7 changed files with 71 additions and 41 deletions

View file

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

View file

@ -12,9 +12,17 @@ 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 = (
@ -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
View file

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

View file

@ -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 = {

View file

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

View file

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

View file

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