mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 14:49:14 +00:00
nix: refactor modules pass 2
This commit is contained in:
parent
ec7246e524
commit
1716faf2cd
19 changed files with 11 additions and 11 deletions
9
nix/configurations/vanadium/nixos/audio.nix
Normal file
9
nix/configurations/vanadium/nixos/audio.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
users.users."leana".extraGroups = ["audio"];
|
||||
}
|
||||
11
nix/configurations/vanadium/nixos/battery.nix
Normal file
11
nix/configurations/vanadium/nixos/battery.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
systemd.sleep.extraConfig = ''
|
||||
HibernateDelaySec=1d
|
||||
'';
|
||||
|
||||
services.logind = {
|
||||
powerKey = "hibernate";
|
||||
lidSwitch = "suspend-then-hibernate";
|
||||
lidSwitchDocked = "ignore";
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
|
||||
MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
|
||||
GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
|
||||
YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
|
||||
MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
|
||||
BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
|
||||
GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||
ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
|
||||
BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
|
||||
3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
|
||||
YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
|
||||
rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
|
||||
ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
|
||||
oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
|
||||
MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
|
||||
QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
|
||||
b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
|
||||
AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
|
||||
GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
|
||||
Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
|
||||
G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
|
||||
l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
|
||||
smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFgTCCBGmgAwIBAgIQOXJEOvkit1HX02wQ3TE1lTANBgkqhkiG9w0BAQwFADB7
|
||||
MQswCQYDVQQGEwJHQjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD
|
||||
VQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UE
|
||||
AwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTE5MDMxMjAwMDAwMFoXDTI4
|
||||
MTIzMTIzNTk1OVowgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5
|
||||
MRQwEgYDVQQHEwtKZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBO
|
||||
ZXR3b3JrMS4wLAYDVQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sI
|
||||
s9CsVw127c0n00ytUINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnG
|
||||
vDoZtF+mvX2do2NCtnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQ
|
||||
Ijy8/hPwhxR79uQfjtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfb
|
||||
IWax1Jt4A8BQOujM8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0
|
||||
tyA9yn8iNK5+O2hmAUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97E
|
||||
xwzf4TKuzJM7UXiVZ4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNV
|
||||
icQNwZNUMBkTrNN9N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5
|
||||
D9kCnusSTJV882sFqV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJ
|
||||
WBp/kjbmUZIO8yZ9HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ
|
||||
5lhCLkMaTLTwJUdZ+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzG
|
||||
KAgEJTm4Diup8kyXHAc/DVL17e8vgg8CAwEAAaOB8jCB7zAfBgNVHSMEGDAWgBSg
|
||||
EQojPpbxB+zirynvgqV/0DCktDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rID
|
||||
ZsswDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAG
|
||||
BgRVHSAAMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwuY29tb2RvY2EuY29t
|
||||
L0FBQUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDQGCCsGAQUFBwEBBCgwJjAkBggr
|
||||
BgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2EuY29tMA0GCSqGSIb3DQEBDAUA
|
||||
A4IBAQAYh1HcdCE9nIrgJ7cz0C7M7PDmy14R3iJvm3WOnnL+5Nb+qh+cli3vA0p+
|
||||
rvSNb3I8QzvAP+u431yqqcau8vzY7qN7Q/aGNnwU4M309z/+3ri0ivCRlv79Q2R+
|
||||
/czSAaF9ffgZGclCKxO/WIu6pKJmBHaIkU4MiRTOok3JMrO66BQavHHxW/BBC5gA
|
||||
CiIDEOUMsfnNkjcZ7Tvx5Dq2+UUTJnWvu6rvP3t3O9LEApE9GQDTF1w52z97GA1F
|
||||
zZOFli9d31kWTz9RvdVFGD/tSo7oBmF0Ixa1DVBzJ0RHfxBdiSprhTEUxOipakyA
|
||||
vGp4z7h/jnZymQyd/teRCBaho1+V
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIG5TCCBM2gAwIBAgIRANpDvROb0li7TdYcrMTz2+AwDQYJKoZIhvcNAQEMBQAw
|
||||
gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
|
||||
ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
|
||||
VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIw
|
||||
MDIxODAwMDAwMFoXDTMzMDUwMTIzNTk1OVowRDELMAkGA1UEBhMCTkwxGTAXBgNV
|
||||
BAoTEEdFQU5UIFZlcmVuaWdpbmcxGjAYBgNVBAMTEUdFQU5UIE9WIFJTQSBDQSA0
|
||||
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApYhi1aEiPsg9ZKRMAw9Q
|
||||
r8Mthsr6R20VSfFeh7TgwtLQi6RSRLOh4or4EMG/1th8lijv7xnBMVZkTysFiPmT
|
||||
PiLOfvz+QwO1NwjvgY+Jrs7fSoVA/TQkXzcxu4Tl3WHi+qJmKLJVu/JOuHud6mOp
|
||||
LWkIbhODSzOxANJ24IGPx9h4OXDyy6/342eE6UPXCtJ8AzeumTG6Dfv5KVx24lCF
|
||||
TGUzHUB+j+g0lSKg/Sf1OzgCajJV9enmZ/84ydh48wPp6vbWf1H0O3Rd3LhpMSVn
|
||||
TqFTLKZSbQeLcx/l9DOKZfBCC9ghWxsgTqW9gQ7v3T3aIfSaVC9rnwVxO0VjmDdP
|
||||
FNbdoxnh0zYwf45nV1QQgpRwZJ93yWedhp4ch1a6Ajwqs+wv4mZzmBSjovtV0mKw
|
||||
d+CQbSToalEUP4QeJq4Udz5WNmNMI4OYP6cgrnlJ50aa0DZPlJqrKQPGL69KQQz1
|
||||
2WgxvhCuVU70y6ZWAPopBa1ykbsttpLxADZre5cH573lIuLHdjx7NjpYIXRx2+QJ
|
||||
URnX2qx37eZIxYXz8ggM+wXH6RDbU3V2o5DP67hXPHSAbA+p0orjAocpk2osxHKo
|
||||
NSE3LCjNx8WVdxnXvuQ28tKdaK69knfm3bB7xpdfsNNTPH9ElcjscWZxpeZ5Iij8
|
||||
lyrCG1z0vSWtSBsgSnUyG/sCAwEAAaOCAYswggGHMB8GA1UdIwQYMBaAFFN5v1qq
|
||||
K0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBRvHTVJEGwy+lmgnryK6B+VvnF6DDAO
|
||||
BgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggr
|
||||
BgEFBQcDAQYIKwYBBQUHAwIwOAYDVR0gBDEwLzAtBgRVHSAAMCUwIwYIKwYBBQUH
|
||||
AgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMFAGA1UdHwRJMEcwRaBDoEGGP2h0
|
||||
dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9u
|
||||
QXV0aG9yaXR5LmNybDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6
|
||||
Ly9jcnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAl
|
||||
BggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0B
|
||||
AQwFAAOCAgEAUtlC3e0xj/1BMfPhdQhUXeLjb0xp8UE28kzWE5xDzGKbfGgnrT2R
|
||||
lw5gLIx+/cNVrad//+MrpTppMlxq59AsXYZW3xRasrvkjGfNR3vt/1RAl8iI31lG
|
||||
hIg6dfIX5N4esLkrQeN8HiyHKH6khm4966IkVVtnxz5CgUPqEYn4eQ+4eeESrWBh
|
||||
AqXaiv7HRvpsdwLYekAhnrlGpioZ/CJIT2PTTxf+GHM6cuUnNqdUzfvrQgA8kt1/
|
||||
ASXx2od/M+c8nlJqrGz29lrJveJOSEMX0c/ts02WhsfMhkYa6XujUZLmvR1Eq08r
|
||||
48/EZ4l+t5L4wt0DV8VaPbsEBF1EOFpz/YS2H6mSwcFaNJbnYqqJHIvm3PLJHkFm
|
||||
EoLXRVrQXdCT+3wgBfgU6heCV5CYBz/YkrdWES7tiiT8sVUDqXmVlTsbiRNiyLs2
|
||||
bmEWWFUl76jViIJog5fongEqN3jLIGTG/mXrJT1UyymIcobnIGrbwwRVz/mpFQo0
|
||||
vBYIi1k2ThVh0Dx88BbF9YiP84dd8Fkn5wbE6FxXYJ287qfRTgmhePecPc73Yrzt
|
||||
apdRcsKVGkOpaTIJP/l+lAHRLZxk/dUtyN95G++bOSQqnOCpVPabUGl2E/OEyFrp
|
||||
Ipwgu2L/WJclvd6g+ZA/iWkLSMcpnFb+uX6QBqvD6+RNxul1FaB5iHY=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
71
nix/configurations/vanadium/nixos/connectivity.nix
Normal file
71
nix/configurations/vanadium/nixos/connectivity.nix
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
# helps calibre detect kindle
|
||||
services.gvfs.enable = true;
|
||||
|
||||
# iOS
|
||||
services.usbmuxd.enable = true;
|
||||
environment.systemPackages = [pkgs.libimobiledevice];
|
||||
|
||||
# Wireless Regulatory Domain
|
||||
# https://community.frame.work/t/framework-nixos-linux-users-self-help/31426/77
|
||||
hardware.wirelessRegulatoryDatabase = true;
|
||||
boot.extraModprobeConfig = ''
|
||||
options cfg80211 ieee80211_regdom="FR"
|
||||
'';
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = lib.mkForce false;
|
||||
|
||||
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
|
||||
ordered [
|
||||
# first in list is tried first
|
||||
{
|
||||
"HiddenParadize@Earth2077".pskRaw = "ext:HOME";
|
||||
"Pei’s Wifi".pskRaw = "ext:PEI";
|
||||
}
|
||||
{
|
||||
"_SNCF_WIFI_INOUI" = {};
|
||||
"EurostarTrainsWiFi" = {};
|
||||
}
|
||||
{
|
||||
eduroam = {
|
||||
authProtocols = ["WPA-EAP"];
|
||||
auth = ''
|
||||
pairwise=CCMP
|
||||
group=CCMP TKIP
|
||||
eap=PEAP
|
||||
ca_cert="${./certs/universite_de_rennes.pem}"
|
||||
identity="ychiang@etudiant.univ-rennes.fr"
|
||||
altsubject_match="DNS:radius.univ-rennes1.fr;DNS:radius1.univ-rennes1.fr;DNS:radius2.univ-rennes1.fr;DNS:vmradius-psf1.univ-rennes1.fr;DNS:vmradius-psf2.univ-rennes1.fr"
|
||||
phase2="auth=MSCHAPV2"
|
||||
password=ext:EDUROAM
|
||||
anonymous_identity="anonymous@univ-rennes.fr"
|
||||
'';
|
||||
};
|
||||
}
|
||||
{"iPhone de Léana 江".pskRaw = "ext:PHONE";}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
}
|
||||
70
nix/configurations/vanadium/nixos/default.nix
Normal file
70
nix/configurations/vanadium/nixos/default.nix
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix # generated
|
||||
|
||||
./battery.nix
|
||||
|
||||
./audio.nix
|
||||
./connectivity.nix
|
||||
./input.nix
|
||||
|
||||
./display.nix
|
||||
./gui.nix
|
||||
|
||||
./restic.nix
|
||||
./fs.nix
|
||||
|
||||
./packages.nix
|
||||
];
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
boot.loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
editor = false;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_6_12;
|
||||
boot.kernelParams = [
|
||||
# https://community.frame.work/t/stability-issues-random-crashes-reboots-and-boot-freezes/62675/4
|
||||
"pcie_aspm=off"
|
||||
|
||||
# for plymouth
|
||||
"quiet"
|
||||
];
|
||||
|
||||
boot.plymouth = {
|
||||
enable = true;
|
||||
themePackages = [pkgs.plymouth-blahaj-theme];
|
||||
theme = "blahaj";
|
||||
};
|
||||
|
||||
nix.gc.automatic = true;
|
||||
|
||||
age.secrets = {
|
||||
wpa_password.file = "${../../../secrets/wpa_password.age}";
|
||||
|
||||
restic_backblaze_pwd.file = "${../../../secrets/restic_backblaze_pwd.age}";
|
||||
restic_backblaze_repo.file = "${../../../secrets/restic_backblaze_repo.age}";
|
||||
restic_backblaze_env.file = "${../../../secrets/restic_backblaze_env.age}";
|
||||
|
||||
four_pwd.file = "${../../../secrets/four_pwd.age}";
|
||||
restic_four_pwd.file = "${../../../secrets/restic_four_pwd.age}";
|
||||
|
||||
sgbk_pwd.file = "${../../../secrets/sgbk_pwd.age}";
|
||||
restic_sgbk_pwd.file = "${../../../secrets/restic_sgbk_pwd.age}";
|
||||
|
||||
two_pwd.file = "${../../../secrets/two_pwd.age}";
|
||||
};
|
||||
|
||||
services.fwupd.enable = true;
|
||||
|
||||
environment.pathsToLink = [
|
||||
"/share/fish/vendor_conf.d"
|
||||
"/share/fish/vendor_completions.d"
|
||||
"/share/fish/vendor_functions.d"
|
||||
];
|
||||
}
|
||||
112
nix/configurations/vanadium/nixos/display.nix
Normal file
112
nix/configurations/vanadium/nixos/display.nix
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
{pkgs, ...}: {
|
||||
users.users."leana".extraGroups = [
|
||||
"video" # light
|
||||
# "i2c" # i2c (for ddcutil)
|
||||
];
|
||||
|
||||
# Control builtin screen brightness
|
||||
programs.light.enable = true;
|
||||
|
||||
# Control external screen brightness
|
||||
hardware.i2c.enable = false;
|
||||
# environment.systemPackages = [pkgs.ddcutil];
|
||||
|
||||
# Auto setup external screen
|
||||
services.autorandr = {
|
||||
enable = false;
|
||||
hooks.postswitch = {
|
||||
"20_xmonad" = "xmonad --restart"; # make sure feh keeps up
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
home-switch = {
|
||||
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
|
||||
Xcursor.size: 84
|
||||
Xft.dpi: 150
|
||||
''}";
|
||||
|
||||
"30_xkbcapswap" = ''
|
||||
setxkbmap -option
|
||||
'';
|
||||
};
|
||||
|
||||
laptop-switch = {
|
||||
"10_xrdb-dpi" = "xrdb -merge ${pkgs.writeText "xrdb-dpi-config" ''
|
||||
Xcursor.size: 64
|
||||
Xft.dpi: 150
|
||||
''}";
|
||||
|
||||
"30_xkbcapswap" = ''
|
||||
setxkbmap -option caps:swapescape
|
||||
'';
|
||||
};
|
||||
|
||||
mkHomeProfile = dev: {
|
||||
fingerprint = {
|
||||
${dev} = lg-monitor;
|
||||
eDP-1 = built-in;
|
||||
};
|
||||
config =
|
||||
allOff
|
||||
// {
|
||||
${dev} = {
|
||||
enable = true;
|
||||
crtc = 1;
|
||||
mode = "3840x2160";
|
||||
rate = "60.00";
|
||||
primary = true;
|
||||
};
|
||||
};
|
||||
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";
|
||||
|
||||
laptop = {
|
||||
fingerprint.eDP-1 = built-in;
|
||||
config =
|
||||
allOff
|
||||
// {
|
||||
eDP-1 = {
|
||||
enable = true;
|
||||
crtc = 0;
|
||||
mode = "2256x1504";
|
||||
primary = true;
|
||||
rate = "60.00";
|
||||
};
|
||||
};
|
||||
hooks.postswitch = laptop-switch;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
67
nix/configurations/vanadium/nixos/fs.nix
Normal file
67
nix/configurations/vanadium/nixos/fs.nix
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
systemd.tmpfiles.rules = [
|
||||
# tmux-sessionizer directories
|
||||
"d /home/leana/r 0700 leana leana - -"
|
||||
"d /home/leana/pg 0700 leana leana 4w -"
|
||||
"d /home/leana/wt 0700 leana leana - -"
|
||||
];
|
||||
|
||||
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
|
||||
*/
|
||||
|
||||
"/home/leana/mnt/tdk32" = {
|
||||
device = "/dev/disk/by-uuid/EF28-13EC";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"umask=0000"
|
||||
"noauto"
|
||||
"user"
|
||||
];
|
||||
};
|
||||
|
||||
"/home/leana/mnt/EOF_DIGITAL" = {
|
||||
device = "/dev/disk/by-uuid/0E07-0937";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"umask=0000"
|
||||
"noauto"
|
||||
"user"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."crypttab".text = ''
|
||||
four /dev/disk/by-uuid/f68b6704-670a-4050-b032-2d553070139a ${config.age.secrets.four_pwd.path} noauto
|
||||
two /dev/disk/by-uuid/552234e0-0820-44d8-b7ac-2653076149a5 ${config.age.secrets.two_pwd.path} noauto
|
||||
sgbk /dev/disk/by-uuid/21b5207e-c3cf-49da-b944-fb405ae1eee2 ${config.age.secrets.sgbk_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"];
|
||||
};
|
||||
};
|
||||
in [
|
||||
(bindToCryptDev "four")
|
||||
(bindToCryptDev "two")
|
||||
(bindToCryptDev "sgbk")
|
||||
];
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.lsof
|
||||
pkgs.smartmontools
|
||||
];
|
||||
}
|
||||
57
nix/configurations/vanadium/nixos/gui.nix
Normal file
57
nix/configurations/vanadium/nixos/gui.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{pkgs, ...}: {
|
||||
services.xserver.windowManager.xmonad = {
|
||||
enable = true;
|
||||
extraPackages = hs: [
|
||||
# https://github.com/ValveSoftware/steam-for-linux/issues/9376
|
||||
# opt into 0.18.1 specifically
|
||||
hs.xmonad-contrib_0_18_1
|
||||
];
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
autoRepeatDelay = 300;
|
||||
autoRepeatInterval = 40;
|
||||
};
|
||||
|
||||
services.xserver.displayManager.lightdm = {
|
||||
enable = true;
|
||||
background = "#000000";
|
||||
greeters.gtk.cursorTheme = {
|
||||
name = "volantes_cursors";
|
||||
package = pkgs.volantes-cursors;
|
||||
size = 64;
|
||||
};
|
||||
};
|
||||
|
||||
services.xscreensaver.enable = true;
|
||||
|
||||
services.picom = {
|
||||
enable = true;
|
||||
backend = "glx";
|
||||
vSync = true;
|
||||
fade = true;
|
||||
fadeDelta = 3;
|
||||
settings = {
|
||||
fade-exclude = [
|
||||
"name = 'Fcitx5 Input Window'"
|
||||
"class_g = 'fcitx'"
|
||||
"class_i = 'fcitx'"
|
||||
];
|
||||
blur = {
|
||||
method = "dual_kawase";
|
||||
strength = 5;
|
||||
};
|
||||
wintypes = {
|
||||
dropdown_menu = {
|
||||
opacity = 1;
|
||||
blur-background = false;
|
||||
};
|
||||
popup_menu = {
|
||||
opacity = 1;
|
||||
blur-background = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
32
nix/configurations/vanadium/nixos/hardware-configuration.nix
Normal file
32
nix/configurations/vanadium/nixos/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# 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")
|
||||
];
|
||||
|
||||
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
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.docker0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp195s0f4u1u4.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.vboxnet0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
29
nix/configurations/vanadium/nixos/input.nix
Normal file
29
nix/configurations/vanadium/nixos/input.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
hardware.keyboard.zsa.enable = true;
|
||||
|
||||
services.libinput = {
|
||||
mouse = {
|
||||
naturalScrolling = true;
|
||||
accelSpeed = "-0.5";
|
||||
};
|
||||
touchpad = {
|
||||
naturalScrolling = true;
|
||||
tapping = false;
|
||||
clickMethod = "clickfinger";
|
||||
};
|
||||
};
|
||||
|
||||
users.users.leana.extraGroups = ["scanner"];
|
||||
hardware.sane = {
|
||||
enable = true;
|
||||
brscan5.enable = true;
|
||||
};
|
||||
|
||||
services.fprintd.enable = false;
|
||||
|
||||
programs.weylus = {
|
||||
enable = true;
|
||||
users = ["leana"];
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
52
nix/configurations/vanadium/nixos/packages.nix
Normal file
52
nix/configurations/vanadium/nixos/packages.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
programs.vim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
};
|
||||
programs.git.enable = true;
|
||||
|
||||
programs.dconf.enable = true;
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
programs.seahorse.enable = true;
|
||||
|
||||
programs.steam.enable = true;
|
||||
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
virtualbox.host.enable = true;
|
||||
};
|
||||
|
||||
# https://discourse.nixos.org/t/issue-with-virtualbox-in-24-11/57607/2
|
||||
boot.kernelParams =
|
||||
lib.mkIf
|
||||
(config.boot.kernelPackages.kernel.kernelAtLeast "6.12")
|
||||
["kvm.enable_virt_at_load=0"];
|
||||
|
||||
users.users."leana".extraGroups = [
|
||||
"docker"
|
||||
"vboxusers"
|
||||
];
|
||||
|
||||
services.url-eater = {
|
||||
enable = true;
|
||||
filters = ''
|
||||
category "Spotify" {
|
||||
params "context@open.spotify.com" "si@open.spotify.com"
|
||||
}
|
||||
category "YouTube" {
|
||||
params "si@youtu.be"
|
||||
}
|
||||
category "Instagram" {
|
||||
params "utm_source@www.instagram.com"
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
services.languagetool = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
100
nix/configurations/vanadium/nixos/restic.nix
Normal file
100
nix/configurations/vanadium/nixos/restic.nix
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
{config, ...}: {
|
||||
services.restic.backups = let
|
||||
pruneOpts = [
|
||||
"--keep-daily 7"
|
||||
"--keep-weekly 4"
|
||||
"--keep-monthly 12"
|
||||
"--keep-yearly 10"
|
||||
];
|
||||
in {
|
||||
"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 = null;
|
||||
|
||||
inherit pruneOpts;
|
||||
};
|
||||
|
||||
"sgbk" = {
|
||||
paths = [
|
||||
"/home/leana/Music"
|
||||
"/home/leana/Documents"
|
||||
"/home/leana/Calibre"
|
||||
"/home/leana/Images"
|
||||
];
|
||||
|
||||
timerConfig = null;
|
||||
|
||||
repository = "/mnt/sgbk/restic";
|
||||
passwordFile = config.age.secrets.restic_sgbk_pwd.path;
|
||||
|
||||
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"];
|
||||
};
|
||||
|
||||
"restic-backups-sgbk" = {
|
||||
requires = ["mnt-sgbk.mount"];
|
||||
after = ["mnt-sgbk.mount"];
|
||||
unitConfig.PropagatesStopTo = ["mnt-sgbk.mount"];
|
||||
};
|
||||
|
||||
"restic-backups-two-to-four" = {
|
||||
requires = [
|
||||
"mnt-two.mount"
|
||||
"mnt-four.mount"
|
||||
];
|
||||
after = [
|
||||
"mnt-two.mount"
|
||||
"mnt-four.mount"
|
||||
];
|
||||
unitConfig.PropagatesStopTo = [
|
||||
"mnt-two.mount"
|
||||
"mnt-four.mount"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue