nix: format with alejandra

This commit is contained in:
Primrose 2025-02-08 12:05:12 +01:00
parent d5cad148da
commit 95eb4b71e0
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
118 changed files with 1291 additions and 1703 deletions

View file

@ -1,7 +1,5 @@
{
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
@ -16,9 +14,7 @@
};
};
};
};
users.users."leana".extraGroups = [ "audio" ];
users.users."leana".extraGroups = ["audio"];
}

View file

@ -1,26 +1,25 @@
{ config, lib, ... }:
{
config,
lib,
...
}: {
networking = {
networkmanager.enable = lib.mkForce false;
firewall.allowedTCPPorts = [ 8080 ];
firewall.allowedTCPPorts = [8080];
wireless = {
enable = true;
userControlled.enable = true;
secretsFile = config.age.secrets.wpa_password.path;
networks =
let
ordered =
nss:
lib.pipe nss [
lib.lists.reverseList
(lib.lists.imap0 (i: lib.mapAttrs (_: n: n // { priority = i; })))
lib.mergeAttrsList
];
in
networks = let
ordered = nss:
lib.pipe nss [
lib.lists.reverseList
(lib.lists.imap0 (i: lib.mapAttrs (_: n: n // {priority = i;})))
lib.mergeAttrsList
];
in
ordered [
# first in list is tried first
{
@ -28,12 +27,12 @@
"Peis Wifi".pskRaw = "ext:PEI";
}
{
"_SNCF_WIFI_INOUI" = { };
"EurostarTrainsWiFi" = { };
"_SNCF_WIFI_INOUI" = {};
"EurostarTrainsWiFi" = {};
}
{
eduroam = {
authProtocols = [ "WPA-EAP" ];
authProtocols = ["WPA-EAP"];
auth = ''
pairwise=CCMP
group=CCMP TKIP
@ -47,12 +46,11 @@
'';
};
}
{ "iPhone de Léana ".pskRaw = "ext:PHONE"; }
{"iPhone de Léana ".pskRaw = "ext:PHONE";}
];
};
};
hardware.bluetooth.enable = true;
services.blueman.enable = true;
}

View file

@ -1,13 +1,11 @@
{
services.postgresql = {
enable = true;
ensureDatabases = [ "M1BDD" ];
ensureUsers = [ { name = "M1BDD"; } ];
ensureDatabases = ["M1BDD"];
ensureUsers = [{name = "M1BDD";}];
};
services.monetdb = {
enable = true;
};
}

View file

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
users.users."leana".extraGroups = [
"video" # light
"i2c" # i2c (for ddcutil)
@ -11,7 +9,7 @@
# Control external screen brightness
hardware.i2c.enable = true;
environment.systemPackages = [ pkgs.ddcutil ];
environment.systemPackages = [pkgs.ddcutil];
# Auto setup external screen
services.autorandr = {
@ -22,61 +20,60 @@
ignoreLid = true; # clamshell support
profiles =
let
lg-monitor = "00ffffffffffff001e6d0777dd6a0100041f0104b53c22789e3e31ae5047ac270c50542108007140818081c0a9c0d1c08100010101014dd000a0f0703e803020650c58542100001a286800a0f0703e800890650c58542100001a000000fd00383d1e8738000a202020202020000000fc004c472048445220344b0a202020012102031c7144900403012309070783010000e305c000e6060501605550023a801871382d40582c450058542100001e565e00a0a0a029503020350058542100001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e";
built-in = "00ffffffffffff0030e4210500000000001a0104951f1178ea9d35945c558f291e5054000000010101010101010101010101010101012e3680a070381f403020350035ae1000001a542b80a070381f403020350035ae1000001a000000fe004c4720446973706c61790a2020000000fe004c503134305746362d535042370074";
profiles = let
lg-monitor = "00ffffffffffff001e6d0777dd6a0100041f0104b53c22789e3e31ae5047ac270c50542108007140818081c0a9c0d1c08100010101014dd000a0f0703e803020650c58542100001a286800a0f0703e800890650c58542100001a000000fd00383d1e8738000a202020202020000000fc004c472048445220344b0a202020012102031c7144900403012309070783010000e305c000e6060501605550023a801871382d40582c450058542100001e565e00a0a0a029503020350058542100001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e";
built-in = "00ffffffffffff0030e4210500000000001a0104951f1178ea9d35945c558f291e5054000000010101010101010101010101010101012e3680a070381f403020350035ae1000001a542b80a070381f403020350035ae1000001a000000fe004c4720446973706c61790a2020000000fe004c503134305746362d535042370074";
allOff = {
eDP-1.enable = false;
DP-1.enable = false;
DP-2.enable = false;
DP-2-1.enable = false;
DP-2-2.enable = false;
HDMI-1.enable = false;
HDMI-2.enable = false;
allOff = {
eDP-1.enable = false;
DP-1.enable = false;
DP-2.enable = false;
DP-2-1.enable = false;
DP-2-2.enable = false;
HDMI-1.enable = false;
HDMI-2.enable = false;
};
in {
"home-DP-2-2" = let
dev = "DP-2-2";
in {
fingerprint = {
${dev} = lg-monitor;
eDP-1 = built-in;
};
in
{
"home-DP-2-2" =
let
dev = "DP-2-2";
in
{
fingerprint = {
${dev} = lg-monitor;
eDP-1 = built-in;
};
config = allOff // {
${dev} = {
enable = true;
crtc = 1;
mode = "3840x2160";
rate = "60";
primary = true;
};
};
hooks.postswitch = {
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
Xcursor.size: 84
Xft.dpi: 163
''}";
"20_alsa" = ''
amixer set Master 10%
amixer set Master unmute
'';
"30_xkbcapswap" = ''
setxkbmap -option
'';
config =
allOff
// {
${dev} = {
enable = true;
crtc = 1;
mode = "3840x2160";
rate = "60";
primary = true;
};
};
hooks.postswitch = {
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
Xcursor.size: 84
Xft.dpi: 163
''}";
"laptop" = {
fingerprint.eDP-1 = built-in;
config = allOff // {
"20_alsa" = ''
amixer set Master 10%
amixer set Master unmute
'';
"30_xkbcapswap" = ''
setxkbmap -option
'';
};
};
"laptop" = {
fingerprint.eDP-1 = built-in;
config =
allOff
// {
eDP-1 = {
enable = true;
crtc = 0;
@ -85,24 +82,22 @@
primary = true;
};
};
hooks.postswitch = {
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
Xcursor.size: 64
Xft.dpi: 120
''}";
hooks.postswitch = {
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
Xcursor.size: 64
Xft.dpi: 120
''}";
"20_alsa" = ''
amixer set Master 10%
amixer set Master mute
'';
"20_alsa" = ''
amixer set Master 10%
amixer set Master mute
'';
"30_xkbcapswap" = ''
setxkbmap -option caps:swapescape
'';
};
"30_xkbcapswap" = ''
setxkbmap -option caps:swapescape
'';
};
};
};
};
}

View file

@ -1,5 +1,4 @@
{
systemd.tmpfiles.rules = [
"d /mnt/data 0700 leana leana - -"
"d /mnt/seagate 0700 leana leana - -"
@ -15,9 +14,9 @@
fileSystems = {
/*
WARNING:
Use "noauto" if you want to mount the drive at a later time and not all the time
Otherwise the mount would fail and cascade into the graphical session being stopped
WARNING:
Use "noauto" if you want to mount the drive at a later time and not all the time
Otherwise the mount would fail and cascade into the graphical session being stopped
*/
"/mnt/data" = {
@ -59,5 +58,4 @@
];
};
};
}

View file

@ -1,7 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services.xserver.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
@ -36,5 +33,4 @@
"class_i = 'fcitx'"
];
};
}

View file

@ -6,10 +6,8 @@
lib,
modulesPath,
...
}:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [
"xhci_pci"
@ -17,9 +15,9 @@
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,5 +1,4 @@
{
hardware.keyboard.zsa.enable = true;
services.libinput = {
@ -13,12 +12,11 @@
};
};
users.users.leana.extraGroups = [ "scanner" ];
users.users.leana.extraGroups = ["scanner"];
hardware.sane = {
enable = true;
brscan5.enable = true;
};
services.xserver.xkb.layout = "myDvorak";
}

View file

@ -1,7 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = [
pkgs.agenix
pkgs.deploy-rs
@ -42,5 +39,4 @@
}
'';
};
}

View file

@ -1,6 +1,8 @@
{ config, modulesPath, ... }:
{
config,
modulesPath,
...
}: {
imports = [
# The generator and hardware configuration
(modulesPath + "/installer/sd-card/sd-image-aarch64.nix")
@ -16,8 +18,8 @@
];
services.postgresql = {
enable = true;
ensureDatabases = [ "mockingjay" ];
ensureUsers = [ { name = "postgres"; } ];
ensureDatabases = ["mockingjay"];
ensureUsers = [{name = "postgres";}];
enableTCPIP = true;
authentication = ''

View file

@ -1,13 +1,9 @@
{
services.pipewire = {
enable = true;
pulse.enable = true;
jack.enable = true;
};
users.users."leana".extraGroups = [ "audio" ];
users.users."leana".extraGroups = ["audio"];
}

View file

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
systemd.sleep.extraConfig = ''
HibernateDelaySec=1d
'';

View file

@ -3,16 +3,13 @@
pkgs,
lib,
...
}:
{
}: {
# helps calibre detect kindle
services.gvfs.enable = true;
# iOS
services.usbmuxd.enable = true;
environment.systemPackages = [ pkgs.libimobiledevice ];
environment.systemPackages = [pkgs.libimobiledevice];
# Wireless Regulatory Domain
# https://community.frame.work/t/framework-nixos-linux-users-self-help/31426/77
@ -24,22 +21,20 @@
networking = {
networkmanager.enable = lib.mkForce false;
firewall.allowedTCPPorts = [ 8080 ];
firewall.allowedTCPPorts = [8080];
wireless = {
enable = true;
userControlled.enable = true;
secretsFile = config.age.secrets.wpa_password.path;
networks =
let
ordered =
nss:
lib.pipe nss [
lib.lists.reverseList
(lib.lists.imap0 (i: lib.mapAttrs (_: n: n // { priority = i; })))
lib.mergeAttrsList
];
in
networks = let
ordered = nss:
lib.pipe nss [
lib.lists.reverseList
(lib.lists.imap0 (i: lib.mapAttrs (_: n: n // {priority = i;})))
lib.mergeAttrsList
];
in
ordered [
# first in list is tried first
{
@ -47,12 +42,12 @@
"Peis Wifi".pskRaw = "ext:PEI";
}
{
"_SNCF_WIFI_INOUI" = { };
"EurostarTrainsWiFi" = { };
"_SNCF_WIFI_INOUI" = {};
"EurostarTrainsWiFi" = {};
}
{
eduroam = {
authProtocols = [ "WPA-EAP" ];
authProtocols = ["WPA-EAP"];
auth = ''
pairwise=CCMP
group=CCMP TKIP
@ -66,12 +61,11 @@
'';
};
}
{ "iPhone de Léana ".pskRaw = "ext:PHONE"; }
{"iPhone de Léana ".pskRaw = "ext:PHONE";}
];
};
};
hardware.bluetooth.enable = true;
services.blueman.enable = true;
}

View file

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
imports = [
./hardware-configuration.nix # generated

View file

@ -1,6 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
users.users."leana".extraGroups = [
"video" # light
"i2c" # i2c (for ddcutil)
@ -11,7 +9,7 @@
# Control external screen brightness
hardware.i2c.enable = true;
environment.systemPackages = [ pkgs.ddcutil ];
environment.systemPackages = [pkgs.ddcutil];
# Auto setup external screen
services.autorandr = {
@ -20,65 +18,66 @@
"20_xmonad" = "xmonad --restart"; # make sure feh keeps up
};
profiles =
let
lg-monitor = "00ffffffffffff001e6d0677dd6a0100041f0103803c2278ea3e31ae5047ac270c50542108007140818081c0a9c0d1c0810001010101b8ce0050f0705a8018108a0058542100001e04740030f2705a80b0588a0058542100001a000000fd00383d1e873c000a202020202020000000fc004c472048445220344b0a20202001bf02033b714d9022201f1203040161605d5e5f230907076d030c001000983c20006001020367d85dc401788001e30f0003e305c000e6060501605550023a801871382d40582c450058542100001e565e00a0a0a029503020350058542100001a000000ff003130344e544b4632513839330a0000000000000000000000000000ff";
built-in = "00ffffffffffff0009e5ca0b000000002f200104a51c137803de50a3544c99260f505400000001010101010101010101010101010101115cd01881e02d50302036001dbe1000001aa749d01881e02d50302036001dbe1000001a000000fe00424f452043510a202020202020000000fe004e4531333546424d2d4e34310a0073";
profiles = let
lg-monitor = "00ffffffffffff001e6d0677dd6a0100041f0103803c2278ea3e31ae5047ac270c50542108007140818081c0a9c0d1c0810001010101b8ce0050f0705a8018108a0058542100001e04740030f2705a80b0588a0058542100001a000000fd00383d1e873c000a202020202020000000fc004c472048445220344b0a20202001bf02033b714d9022201f1203040161605d5e5f230907076d030c001000983c20006001020367d85dc401788001e30f0003e305c000e6060501605550023a801871382d40582c450058542100001e565e00a0a0a029503020350058542100001a000000ff003130344e544b4632513839330a0000000000000000000000000000ff";
built-in = "00ffffffffffff0009e5ca0b000000002f200104a51c137803de50a3544c99260f505400000001010101010101010101010101010101115cd01881e02d50302036001dbe1000001aa749d01881e02d50302036001dbe1000001a000000fe00424f452043510a202020202020000000fe004e4531333546424d2d4e34310a0073";
allOff = {
eDP-1.enable = false;
DP-1.enable = false;
DP-2.enable = false;
DP-3.enable = false;
DP-4.enable = false;
DP-5.enable = false;
DP-6.enable = false;
DP-7.enable = false;
DP-8.enable = false;
DP-9.enable = false;
DP-10.enable = false;
DP-11.enable = false;
DP-12.enable = false;
allOff = {
eDP-1.enable = false;
DP-1.enable = false;
DP-2.enable = false;
DP-3.enable = false;
DP-4.enable = false;
DP-5.enable = false;
DP-6.enable = false;
DP-7.enable = false;
DP-8.enable = false;
DP-9.enable = false;
DP-10.enable = false;
DP-11.enable = false;
DP-12.enable = false;
};
home-switch = {
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
Xcursor.size: 84
Xft.dpi: 150
''}";
"20_alsa" = ''
amixer set Master 10%
amixer set Master unmute
'';
"30_xkbcapswap" = ''
setxkbmap -option
'';
};
laptop-switch = {
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
Xcursor.size: 64
Xft.dpi: 150
''}";
"20_alsa" = ''
amixer set Master 10%
amixer set Master mute
'';
"30_xkbcapswap" = ''
setxkbmap -option caps:swapescape
'';
};
mkHomeProfile = dev: {
fingerprint = {
${dev} = lg-monitor;
eDP-1 = built-in;
};
home-switch = {
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
Xcursor.size: 84
Xft.dpi: 150
''}";
"20_alsa" = ''
amixer set Master 10%
amixer set Master unmute
'';
"30_xkbcapswap" = ''
setxkbmap -option
'';
};
laptop-switch = {
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
Xcursor.size: 64
Xft.dpi: 150
''}";
"20_alsa" = ''
amixer set Master 10%
amixer set Master mute
'';
"30_xkbcapswap" = ''
setxkbmap -option caps:swapescape
'';
};
mkHomeProfile = dev: {
fingerprint = {
${dev} = lg-monitor;
eDP-1 = built-in;
};
config = allOff // {
config =
allOff
// {
${dev} = {
enable = true;
crtc = 1;
@ -87,27 +86,27 @@
primary = true;
};
};
hooks.postswitch = home-switch;
};
hooks.postswitch = home-switch;
};
in {
home-DP-1 = mkHomeProfile "DP-1";
home-DP-2 = mkHomeProfile "DP-2";
home-DP-3 = mkHomeProfile "DP-3";
home-DP-4 = mkHomeProfile "DP-4";
home-DP-5 = mkHomeProfile "DP-5";
home-DP-6 = mkHomeProfile "DP-6";
home-DP-7 = mkHomeProfile "DP-7";
home-DP-8 = mkHomeProfile "DP-8";
home-DP-9 = mkHomeProfile "DP-9";
home-DP-10 = mkHomeProfile "DP-10";
home-DP-11 = mkHomeProfile "DP-11";
home-DP-12 = mkHomeProfile "DP-12";
in
{
home-DP-1 = mkHomeProfile "DP-1";
home-DP-2 = mkHomeProfile "DP-2";
home-DP-3 = mkHomeProfile "DP-3";
home-DP-4 = mkHomeProfile "DP-4";
home-DP-5 = mkHomeProfile "DP-5";
home-DP-6 = mkHomeProfile "DP-6";
home-DP-7 = mkHomeProfile "DP-7";
home-DP-8 = mkHomeProfile "DP-8";
home-DP-9 = mkHomeProfile "DP-9";
home-DP-10 = mkHomeProfile "DP-10";
home-DP-11 = mkHomeProfile "DP-11";
home-DP-12 = mkHomeProfile "DP-12";
laptop = {
fingerprint.eDP-1 = built-in;
config = allOff // {
laptop = {
fingerprint.eDP-1 = built-in;
config =
allOff
// {
eDP-1 = {
enable = true;
crtc = 0;
@ -116,10 +115,8 @@
rate = "60.00";
};
};
hooks.postswitch = laptop-switch;
};
hooks.postswitch = laptop-switch;
};
};
};
}

View file

@ -1,7 +1,8 @@
{ config, pkgs, ... }:
{
config,
pkgs,
...
}: {
systemd.tmpfiles.rules = [
# tmux-sessionizer directories
"d /home/leana/r 0700 leana leana - -"
@ -11,9 +12,9 @@
fileSystems = {
/*
WARNING:
Use "noauto" if you want to mount the drive at a later time and not all the time
Otherwise the mount would fail and cascade into the graphical session being stopped
WARNING:
Use "noauto" if you want to mount the drive at a later time and not all the time
Otherwise the mount would fail and cascade into the graphical session being stopped
*/
"/home/leana/mnt/tdk32" = {
@ -42,26 +43,23 @@
two /dev/disk/by-uuid/552234e0-0820-44d8-b7ac-2653076149a5 ${config.age.secrets.two_pwd.path} noauto
'';
systemd.mounts =
let
bindToCryptDev = dev: {
what = "/dev/mapper/${dev}";
where = "/mnt/${dev}";
unitConfig = {
Requires = [ "systemd-cryptsetup@${dev}.service" ];
After = [ "systemd-cryptsetup@${dev}.service" ];
PropagatesStopTo = [ "systemd-cryptsetup@${dev}.service" ];
};
systemd.mounts = let
bindToCryptDev = dev: {
what = "/dev/mapper/${dev}";
where = "/mnt/${dev}";
unitConfig = {
Requires = ["systemd-cryptsetup@${dev}.service"];
After = ["systemd-cryptsetup@${dev}.service"];
PropagatesStopTo = ["systemd-cryptsetup@${dev}.service"];
};
in
[
(bindToCryptDev "four")
(bindToCryptDev "two")
];
};
in [
(bindToCryptDev "four")
(bindToCryptDev "two")
];
environment.systemPackages = [
pkgs.lsof
pkgs.smartmontools
];
}

View file

@ -1,7 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services.xserver.windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
@ -36,5 +33,4 @@
"class_i = 'fcitx'"
];
};
}

View file

@ -1,17 +1,21 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt"];
boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,5 +1,4 @@
{
hardware.keyboard.zsa.enable = true;
services.libinput = {
@ -13,7 +12,7 @@
};
};
users.users.leana.extraGroups = [ "scanner" ];
users.users.leana.extraGroups = ["scanner"];
hardware.sane = {
enable = true;
brscan5.enable = true;
@ -22,5 +21,4 @@
services.xserver.xkb.layout = "myDvorak";
services.fprintd.enable = false;
}

View file

@ -1,5 +1,4 @@
{
programs.vim = {
enable = true;
defaultEditor = true;
@ -35,5 +34,4 @@
}
'';
};
}

View file

@ -1,73 +1,65 @@
{ config, ... }:
{
services.restic.backups =
let
pruneOpts = [
"--keep-daily 7"
"--keep-weekly 4"
"--keep-monthly 12"
"--keep-yearly 10"
{config, ...}: {
services.restic.backups = let
pruneOpts = [
"--keep-daily 7"
"--keep-weekly 4"
"--keep-monthly 12"
"--keep-yearly 10"
];
in {
"Documents-backblaze" = {
paths = [
"/home/leana/Documents"
"/home/leana/Calibre"
];
in
{
"Documents-backblaze" = {
paths = [
"/home/leana/Documents"
"/home/leana/Calibre"
];
passwordFile = config.age.secrets.restic_backblaze_pwd.path;
repositoryFile = config.age.secrets.restic_backblaze_repo.path;
environmentFile = config.age.secrets.restic_backblaze_env.path;
inherit pruneOpts;
};
"four" = {
paths = [
"/home/leana/Music"
"/home/leana/Documents"
"/home/leana/Calibre"
"/home/leana/Images"
];
repository = "/mnt/four/restic";
passwordFile = config.age.secrets.restic_four_pwd.path;
timerConfig = {
OnCalendar = "02:00";
};
inherit pruneOpts;
};
"two-to-four" = {
paths = [ "/mnt/two" ];
timerConfig = null;
repository = "/mnt/four/restic";
passwordFile = config.age.secrets.restic_four_pwd.path;
exclude = [ "lost+found" ];
inherit pruneOpts;
};
passwordFile = config.age.secrets.restic_backblaze_pwd.path;
repositoryFile = config.age.secrets.restic_backblaze_repo.path;
environmentFile = config.age.secrets.restic_backblaze_env.path;
inherit pruneOpts;
};
systemd.services = {
"four" = {
paths = [
"/home/leana/Music"
"/home/leana/Documents"
"/home/leana/Calibre"
"/home/leana/Images"
];
repository = "/mnt/four/restic";
passwordFile = config.age.secrets.restic_four_pwd.path;
timerConfig = {
OnCalendar = "02:00";
};
inherit pruneOpts;
};
"two-to-four" = {
paths = ["/mnt/two"];
timerConfig = null;
repository = "/mnt/four/restic";
passwordFile = config.age.secrets.restic_four_pwd.path;
exclude = ["lost+found"];
inherit pruneOpts;
};
};
systemd.services = {
# TODO:
# Wait for upstream to introduce direct access to unitConfig
# c.f. https://github.com/NixOS/nixpkgs/pull/368234
"restic-backups-four" = {
requires = [ "mnt-four.mount" ];
after = [ "mnt-four.mount" ];
unitConfig.PropagatesStopTo = [ "mnt-four.mount" ];
requires = ["mnt-four.mount"];
after = ["mnt-four.mount"];
unitConfig.PropagatesStopTo = ["mnt-four.mount"];
};
"restic-backups-two-to-four" = {
@ -84,7 +76,5 @@
"mnt-four.mount"
];
};
};
}

View file

@ -1,7 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
# IPD
programs.wireshark = {
enable = true;
@ -10,5 +7,4 @@
users.users."leana".extraGroups = [
"wireshark"
];
}