mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 14:49:14 +00:00
nix: format with alejandra
This commit is contained in:
parent
d5cad148da
commit
95eb4b71e0
118 changed files with 1291 additions and 1703 deletions
|
|
@ -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"];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 @@
|
|||
"Pei’s 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;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
{
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [ "M1BDD" ];
|
||||
ensureUsers = [ { name = "M1BDD"; } ];
|
||||
ensureDatabases = ["M1BDD"];
|
||||
ensureUsers = [{name = "M1BDD";}];
|
||||
};
|
||||
|
||||
services.monetdb = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 @@
|
|||
];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
{pkgs, ...}: {
|
||||
services.xserver.windowManager.xmonad = {
|
||||
enable = true;
|
||||
enableContribAndExtras = true;
|
||||
|
|
@ -36,5 +33,4 @@
|
|||
"class_i = 'fcitx'"
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = [
|
||||
pkgs.agenix
|
||||
pkgs.deploy-rs
|
||||
|
|
@ -42,5 +39,4 @@
|
|||
}
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 = ''
|
||||
|
|
|
|||
|
|
@ -1,13 +1,9 @@
|
|||
{
|
||||
|
||||
services.pipewire = {
|
||||
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
|
||||
};
|
||||
|
||||
users.users."leana".extraGroups = [ "audio" ];
|
||||
|
||||
users.users."leana".extraGroups = ["audio"];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
systemd.sleep.extraConfig = ''
|
||||
HibernateDelaySec=1d
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -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 @@
|
|||
"Pei’s 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;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix # generated
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
{pkgs, ...}: {
|
||||
services.xserver.windowManager.xmonad = {
|
||||
enable = true;
|
||||
enableContribAndExtras = true;
|
||||
|
|
@ -36,5 +33,4 @@
|
|||
"class_i = 'fcitx'"
|
||||
];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
|
||||
programs.vim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
|
@ -35,5 +34,4 @@
|
|||
}
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
{pkgs, ...}: {
|
||||
# IPD
|
||||
programs.wireshark = {
|
||||
enable = true;
|
||||
|
|
@ -10,5 +7,4 @@
|
|||
users.users."leana".extraGroups = [
|
||||
"wireshark"
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue