Compare commits
27 Commits
f4ae5eae27
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
60fab5ff9a | ||
|
|
1a662d9acf | ||
|
|
6b7f4459fc | ||
|
|
7f1e43699b | ||
|
|
1acf1773d9 | ||
|
|
e97e9b62b0 | ||
|
|
5211c953a3 | ||
|
|
e054ee5be4 | ||
|
|
aefa5a48bb | ||
|
|
be40aca44b | ||
|
|
8228bd1f72 | ||
|
|
63af2c4f4e | ||
|
|
6a5863ee52 | ||
|
|
c28c40c972 | ||
|
|
e0bd80722c | ||
|
|
6157666be9 | ||
|
|
07782f60d1 | ||
|
|
2fbf06da7a | ||
|
|
47cc5c881c | ||
|
|
f757727858 | ||
|
|
bf074967e5 | ||
|
|
674c83d3ae | ||
|
|
ee46aca691 | ||
|
|
fa89fe57b0 | ||
|
|
f7306130ed | ||
|
|
dc3f30d94c | ||
|
|
f7fb8121fd |
@@ -46,11 +46,12 @@
|
|||||||
|
|
||||||
./system-modules/simple-postgres.nix
|
./system-modules/simple-postgres.nix
|
||||||
] ++ (if hyper.isServer then [
|
] ++ (if hyper.isServer then [
|
||||||
|
./system-modules/stay-up.nix
|
||||||
|
|
||||||
./system-modules/nx2site.nix
|
./system-modules/nx2site.nix
|
||||||
./system-modules/hugo.nix
|
./system-modules/hugo.nix
|
||||||
./system-modules/postgres.nix
|
./system-modules/postgres.nix
|
||||||
./system-modules/nx2site/proxy.nix
|
./system-modules/nx2site/proxy.nix
|
||||||
|
|
||||||
# ./system-modules/nx2site/smtp.nix
|
# ./system-modules/nx2site/smtp.nix
|
||||||
# ./system-modules/nx2site/imap.nix
|
# ./system-modules/nx2site/imap.nix
|
||||||
# ./system-modules/nx2site/vmail.nix
|
# ./system-modules/nx2site/vmail.nix
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"NxXPS": {
|
"NxXPS": {
|
||||||
"base": {
|
"base": {
|
||||||
"foreground": "#fecccc",
|
"foreground": "#fccee9",
|
||||||
"background": "#190000"
|
"background": "#18010e"
|
||||||
},
|
},
|
||||||
"to_alter": {
|
"to_alter": {
|
||||||
"accent": "#ff3232",
|
"accent": "#f43da7",
|
||||||
"secondary": "#6632ff",
|
"secondary": "#3269ff",
|
||||||
"tertiary": "#dd32dd",
|
"tertiary": "#d744ed",
|
||||||
"special": "#31feff",
|
"special": "#3cf48a",
|
||||||
"weird": "#baff31"
|
"weird": "#f4c63c"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"NxACE": {
|
"NxACE": {
|
||||||
|
|||||||
98
flake.lock
generated
98
flake.lock
generated
@@ -20,11 +20,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776876344,
|
"lastModified": 1778857089,
|
||||||
"narHash": "sha256-Ubqb/agkuMJK+k19gjQgHux/eOYRc1sRGoOZOho8+VY=",
|
"narHash": "sha256-TclWRW2SdFeETLaiTG4BA8C8C4m/LppQEldncqyTzAQ=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "648a13d0ee1e03a843b3e145b8ece15393058701",
|
"rev": "ab2b0af63fbc9fb779d684f19149b790978be8a8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -39,11 +39,11 @@
|
|||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777744353,
|
"lastModified": 1779740183,
|
||||||
"narHash": "sha256-8UmzMm5wkq+z0kEMEjowoECa4qY813z747o0g+G/bbE=",
|
"narHash": "sha256-WgZFCa8mutaHzVVdS9QedtDWpVKsOGtqou8LNqHwvn4=",
|
||||||
"owner": "9001",
|
"owner": "9001",
|
||||||
"repo": "copyparty",
|
"repo": "copyparty",
|
||||||
"rev": "da6e2ddca96dffc4dbe53bda25d2034428fad3d0",
|
"rev": "e32718303cd7560f60d3e0ddd473a8a69d7dfa81",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -220,11 +220,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777851538,
|
"lastModified": 1779506708,
|
||||||
"narHash": "sha256-Gp8qwTEYNoy2yvmErVGlvLOQvrtEECCAKbonW7VJef8=",
|
"narHash": "sha256-QOD/CNm196nCJRheux/URi4/HE66fthdOMqCJoPP1Y0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "cc09c0f9b7eaa95c2d9827338a5eb03d32505ca5",
|
"rev": "3ee51fbdac8c8bdfe1e7e1fcaba6520a563f394f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -330,11 +330,11 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777840661,
|
"lastModified": 1779729308,
|
||||||
"narHash": "sha256-+o8yvf8+wJe8MYtsUtY2RJnX4WDHhxYWi+cOmOMOPVk=",
|
"narHash": "sha256-tMt7oeAahwHGDgSIf5XKZoUXenOvlxjI0KBPku97tzM=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "6d4bcaf075dec8f6de003cb8403df8c788e7079e",
|
"rev": "bb3353f864be97e9236cfafca68ce71d7cf590dc",
|
||||||
"revCount": 7249,
|
"revCount": 7364,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
@@ -432,11 +432,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776426736,
|
"lastModified": 1777320127,
|
||||||
"narHash": "sha256-rl7i4aY+9p8LysJp7o8uRWahCkpFznCgGHXszlTw7b0=",
|
"narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "7833ff33b2e82d3406337b5dcf0d1cec595d83e9",
|
"rev": "090117506ddc3d7f26e650ff344d378c2ec329cc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -509,11 +509,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777492286,
|
"lastModified": 1779475241,
|
||||||
"narHash": "sha256-PwuoEJQcjSKJNP5T55qhfDwIP0tw5zxEhfu8GDfKfeg=",
|
"narHash": "sha256-Nw4DN0A5krWNcPBvuWe5Gz2yuxsUUPiDgtu6SVPJQeU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "ec5c0c709706bad5b82f667fd8758eae442577ce",
|
"rev": "3cd3972b2ee658a14d2610d8494e09259e530124",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -534,11 +534,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777148232,
|
"lastModified": 1777159683,
|
||||||
"narHash": "sha256-Uv0WZLhu89SafuSOmYDA7akrPt4wBRmsa1ucasO5aXg=",
|
"narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "fec9cf1abcc1011e46f0a0986f46bf93c6bf8b92",
|
"rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -563,11 +563,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776728575,
|
"lastModified": 1778410714,
|
||||||
"narHash": "sha256-z9eGphrArEBpl1O/GCH0wlY6z4K9vA6yWh2gAS6qytU=",
|
"narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwire",
|
"repo": "hyprwire",
|
||||||
"rev": "f3a80888783702a39691b684d099e16b83ed4702",
|
"rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -720,11 +720,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-latest": {
|
"nixpkgs-latest": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777857362,
|
"lastModified": 1779791687,
|
||||||
"narHash": "sha256-OLgJdZXYdvZoKBz4ouBt72vzmM+2ouufJBIQ5sYZlZI=",
|
"narHash": "sha256-ynEmhfOI9cWkI8AUiFimNWutJ+RNibt1Ge4azZVbTQ8=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9e128ac8784d30b1a78bafa59d7772ba9ef17809",
|
"rev": "8d10ccfc5381d4129e7730b5bfbe67709f06777e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -752,11 +752,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777578337,
|
"lastModified": 1779560665,
|
||||||
"narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=",
|
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "15f4ee454b1dce334612fa6843b3e05cf546efab",
|
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -783,11 +783,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776877367,
|
"lastModified": 1779357205,
|
||||||
"narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=",
|
"narHash": "sha256-cCO8aTqss5x9Ky8GWkpY0Hy5fyTZEbtifSUV8QjSzic=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0726a0ecb6d4e08f6adced58726b95db924cef57",
|
"rev": "f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -831,11 +831,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777673416,
|
"lastModified": 1779467186,
|
||||||
"narHash": "sha256-5c2POKPOjU40Kh0MirOdScBLG0bu9TAuPYAtPRNZMBs=",
|
"narHash": "sha256-nOesoDCiXcUftqbRBMz9tt4blI5PvljMWbm3kuCA+0s=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "26ef669cffa904b6f6832ab57b77892a37c1a671",
|
"rev": "b77b3de8775677f84492abe84635f87b0e153f0f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -924,11 +924,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776796298,
|
"lastModified": 1778507602,
|
||||||
"narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=",
|
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad",
|
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1046,11 +1046,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777338324,
|
"lastModified": 1777944972,
|
||||||
"narHash": "sha256-bc+ZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E=",
|
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "8eaee5c45428b28b8c47a83e4c09dccec5f279b5",
|
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1117,11 +1117,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777035886,
|
"lastModified": 1778265244,
|
||||||
"narHash": "sha256-m1TNuBoSXUBSKhD9UVMkU90M0wFTPTfvIOOltO8IM8A=",
|
"narHash": "sha256-8jlPtGSsv/CQY6tVVyLF4Jjd0gnS+Zbn9yk/V13A9nM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "ecfcdcc781f48821d83e1e2a0e30d7beca0eeb5e",
|
"rev": "813ea5ca9a1702a9a2d1f5836bc00172ef698968",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1137,11 +1137,11 @@
|
|||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777731325,
|
"lastModified": 1779676204,
|
||||||
"narHash": "sha256-GwkNEp/tPf2eDBTpTLpimTsKaH5enVuU4OM4AZ9ZKdc=",
|
"narHash": "sha256-/DLVKPqrU3WuY99jrHjYuIR0yGl98mGS6izK5rC1gZM=",
|
||||||
"owner": "sxyazi",
|
"owner": "sxyazi",
|
||||||
"repo": "yazi",
|
"repo": "yazi",
|
||||||
"rev": "62dd22b8daee4fa90dfcc94b1d5d39e1ead3ba0e",
|
"rev": "cf8b54179ea0de392629d93081afca9e5587225e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
Binary file not shown.
@@ -2,33 +2,34 @@
|
|||||||
let
|
let
|
||||||
channels = [
|
channels = [
|
||||||
"Caedrel"
|
"Caedrel"
|
||||||
|
"Caedrel247"
|
||||||
# "agurin"
|
# "agurin"
|
||||||
# "asmongold"
|
# "asmongold"
|
||||||
# "Caedrel"
|
# "Caedrel"
|
||||||
# "EintrachtSpandau"
|
# "EintrachtSpandau"
|
||||||
# "GamesDoneQuick"
|
# "GamesDoneQuick"
|
||||||
# "Odoamne"
|
# "Odoamne"
|
||||||
"iwdominate"
|
# "iwdominate"
|
||||||
# "imls"
|
# "imls"
|
||||||
"gdolphn"
|
# "gdolphn"
|
||||||
"GRONKH"
|
"GRONKH"
|
||||||
"handofblood"
|
# "handofblood"
|
||||||
"HisWattson"
|
# "HisWattson"
|
||||||
# "Jankos"
|
# "Jankos"
|
||||||
# "KuruHS"
|
# "KuruHS"
|
||||||
"LEC"
|
"LEC"
|
||||||
"lol_nemesis"
|
"lol_nemesis"
|
||||||
# "NASA"
|
# "NASA"
|
||||||
"nattynattlol"
|
# "nattynattlol"
|
||||||
"NoWay4u_Sir"
|
# "NoWay4u_Sir"
|
||||||
# "OfficialMikeShinoda"
|
# "OfficialMikeShinoda"
|
||||||
"Rekkles"
|
# "Rekkles"
|
||||||
"riotgames"
|
"riotgames"
|
||||||
"thebausffs"
|
# "thebausffs"
|
||||||
"ThePrimeagen"
|
# "ThePrimeagen"
|
||||||
"Tolkin"
|
# "Tolkin"
|
||||||
"imperialhal__"
|
# "imperialhal__"
|
||||||
"velja_lol"
|
# "velja_lol"
|
||||||
# "Xisuma"
|
# "Xisuma"
|
||||||
"zackrawrr"
|
"zackrawrr"
|
||||||
];
|
];
|
||||||
|
|||||||
28
home-modules/contact.nix
Normal file
28
home-modules/contact.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{ pkgs, ... }@all: with all; lib.mkIf (hyper.isPersonal) {
|
||||||
|
# sops.secrets."nx2site/nextcloud/lennart_pass".path = "nx2site/nextcloud/lennart_pass";
|
||||||
|
# accounts.contact = {
|
||||||
|
# basePath = "~/.local/share/contacts";
|
||||||
|
# accounts = let
|
||||||
|
# nc = name: { "${name}" = let
|
||||||
|
# un = "lennart";
|
||||||
|
# in {
|
||||||
|
# inherit name;
|
||||||
|
# remote = {
|
||||||
|
# url = "https://n.${hyper.domain}/remote.php/dav/addressbooks/users/${un}/${name}/";
|
||||||
|
# type = "carddav";
|
||||||
|
# username = un;
|
||||||
|
# passwordCommand = "cat /run/user/1000/secrets/nx2site/nextcloud/lennart_pass";
|
||||||
|
# thunderbird = {
|
||||||
|
# enable = builtins.trace config.programs.thunderbird.enable config.programs.thunderbird.enable;
|
||||||
|
# prifiles = [ hyper.user ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# local = {
|
||||||
|
# type = "filesystem";
|
||||||
|
# path = "${name}";
|
||||||
|
# };
|
||||||
|
# };};
|
||||||
|
# in (pkgs.lib.mergeAttrsList (builtins.map nc [ "TUDa" "CWG" "HSMW" "DICOS" "Accounts" "Familie & Freunde" "Friedrich Schiller Grundschule" "Handball" "Phönix" "Util & Miscellaneous" ]));
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
}
|
||||||
@@ -1,100 +1,12 @@
|
|||||||
{ pkgs, ... }@all: with all; lib.mkIf (hyper.isPersonal) {
|
{ pkgs, ... }@all: with all; lib.mkIf (hyper.isPersonal) {
|
||||||
home.packages = with pkgs; [
|
|
||||||
thunderbird
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.thunderbird = let
|
|
||||||
inherit (lib.generators) toJSON;
|
|
||||||
extensions = toJSON {} {
|
|
||||||
"addon@darkreader.org" = "71d6c69d-55f9-4c56-888c-abdcf6efd73d";
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
profiles = {
|
|
||||||
"${hyper.user}" = {
|
|
||||||
isDefault = true;
|
|
||||||
settings = with rice.color; {
|
|
||||||
"calendar.alarms.showmissed" = false;
|
|
||||||
"calendar.alarms.playsound" = false;
|
|
||||||
"calendar.alarms.show" = false;
|
|
||||||
"extensions.webextensions.uuids" = extensions;
|
|
||||||
"mail.startup.enabledMailCheckOnce" = true;
|
|
||||||
"mailnews.mark_message_read.delay" = true;
|
|
||||||
"mailnews.mark_message_read.delay.interval" = 3;
|
|
||||||
"mailnews.tags.$label1.color" = red.base;
|
|
||||||
"mailnews.tags.$label1.tag" = "Important";
|
|
||||||
"mailnews.tags.$label2.color" = yellow.base;
|
|
||||||
"mailnews.tags.$label2.tag" = "Work";
|
|
||||||
"mailnews.tags.$label3.color" = green.base;
|
|
||||||
"mailnews.tags.$label3.tag" = "Personal";
|
|
||||||
"mailnews.tags.$label4.color" = cyan.base;
|
|
||||||
"mailnews.tags.$label4.tag" = "To Do";
|
|
||||||
"mailnews.tags.$label5.color" = blue.base;
|
|
||||||
"mailnews.tags.$label5.tag" = "Later";
|
|
||||||
"mailnews.headers.showMessageId" = true;
|
|
||||||
"mailnews.headers.showOrganization" = true;
|
|
||||||
"mailnews.headers.showReferences" = true;
|
|
||||||
"mailnews.headers.showSender" = true;
|
|
||||||
"mailnews.headers.showUserAgent" = true;
|
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
|
||||||
};
|
|
||||||
userChrome = with rice.color; /* css */ ''
|
|
||||||
body,
|
|
||||||
#navigation-toolbox,
|
|
||||||
#calendarContent,
|
|
||||||
#calSidebar,
|
|
||||||
#tabpanelcontainer,
|
|
||||||
#spacesToolbar,
|
|
||||||
#tabs-toolbar,
|
|
||||||
#calMinimonth,
|
|
||||||
#primaryButtonSidePanel *,
|
|
||||||
.minimonth-week,
|
|
||||||
.multiday-header-corner, .day-column-heading, calendar-header-container, calendar-event-column, .multiday-hour-box,
|
|
||||||
#view-box,
|
|
||||||
#tabs-toolbar,
|
|
||||||
#status-bar,
|
|
||||||
.calview-toggle,
|
|
||||||
#calview-toggle-item,
|
|
||||||
#folderPaneHeaderBar,
|
|
||||||
#folderPane,
|
|
||||||
#threadPaneHeaderBar,
|
|
||||||
#threadTree,
|
|
||||||
#tabs-toolbar {
|
|
||||||
color: ${foreground} !important;
|
|
||||||
font-family: ${rice.font.base.name} !important;
|
|
||||||
background-color: transparent !important;
|
|
||||||
background-image: none !important;
|
|
||||||
border: none !important;
|
|
||||||
-moz-appearance: none !important;
|
|
||||||
}
|
|
||||||
.minimonth-nav-section {
|
|
||||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
|
||||||
border: ${builtins.toString rice.border-width}px solid ${border};
|
|
||||||
}
|
|
||||||
.button,
|
|
||||||
.button-primary,
|
|
||||||
.tab-content[selected] {
|
|
||||||
background-color: ${accent.base};
|
|
||||||
color: ${background};
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
html {
|
|
||||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
accounts.email.accounts = let
|
accounts.email.accounts = let
|
||||||
OAuth2Settings = id: {
|
OAuth2Settings = id: {
|
||||||
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
||||||
"mail.server.server_${id}.authMethod" = 10;
|
"mail.server.server_${id}.authMethod" = 10;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
gmail-online = {
|
gmail-online-accounts = {
|
||||||
address = secrets.email.gmail-online.mail;
|
address = secrets.email.gmail-online-accounts.mail;
|
||||||
realName = "Lennart J. Kurzweg";
|
realName = "Lennart J. Kurzweg";
|
||||||
flavor = "gmail.com";
|
flavor = "gmail.com";
|
||||||
primary = true;
|
primary = true;
|
||||||
@@ -115,8 +27,8 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
gmail-business = {
|
gmail-ljk = {
|
||||||
address = secrets.email.gmail-business.mail;
|
address = secrets.email.gmail-ljk.mail;
|
||||||
realName = "Lennart J. Kurzweg";
|
realName = "Lennart J. Kurzweg";
|
||||||
flavor = "gmail.com";
|
flavor = "gmail.com";
|
||||||
signature = {
|
signature = {
|
||||||
|
|||||||
@@ -63,8 +63,22 @@ in /* css */ ''
|
|||||||
--newtab-background-card : ${accent.dark} !important;
|
--newtab-background-card : ${accent.dark} !important;
|
||||||
--tabpanel-background-color : transparent !important;
|
--tabpanel-background-color : transparent !important;
|
||||||
|
|
||||||
background : linear-gradient(180deg,rgba(${f secondary.dark}, ${builtins.toString rice.transparency}) 0%, rgba(${f accent.dark}, ${builtins.toString rice.transparency}) 100%) !important;
|
background : transparent !important;
|
||||||
}
|
}
|
||||||
|
body {
|
||||||
|
background-color: unset !important;
|
||||||
|
background-color: transparent !important;
|
||||||
|
background-image: linear-gradient(0deg,rgba(${f accent.dark}, ${builtins.toString rice.transparency}) 0%, rgba(${f secondary.dark}, ${builtins.toString rice.transparency}) 100%) !important;
|
||||||
|
background-size: 100% 150% !important;
|
||||||
|
background-position: 0% 0% !important;
|
||||||
|
will-change: background-position;
|
||||||
|
transition: background-position 300ms !important;
|
||||||
|
&:-moz-window-inactive {
|
||||||
|
background-position: 0% 50% !important;
|
||||||
|
background-color: transparent !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.tabbrowser-tab[selected="true"], .tab-text[selected=""],
|
.tabbrowser-tab[selected="true"], .tab-text[selected=""],
|
||||||
.tab-close-button[selected=""] {
|
.tab-close-button[selected=""] {
|
||||||
color: ${background} !important;
|
color: ${background} !important;
|
||||||
|
|||||||
@@ -104,8 +104,11 @@ in /* css */ ''
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
@-moz-document domain(gemini.google.com) {
|
@-moz-document domain(gemini.google.com) {
|
||||||
input-container::before {
|
input-container, input-container::before {
|
||||||
background: none !important;
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
bard-sidenav {
|
||||||
|
background: rgba(${rice.lib.hex-to-rgb-comma-string background},0.5) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,11 @@
|
|||||||
terminal-exec = "ghostty --command=";
|
terminal-exec = "ghostty --command=";
|
||||||
monitors = {
|
monitors = {
|
||||||
xps = {
|
xps = {
|
||||||
|
# def
|
||||||
|
# main = { name = "eDP-1"; resolution = "preferred"; position = "0x0"; scale = "1.0"; };
|
||||||
|
# second = { name = "eDP-1"; resolution = "preferred"; position = "0x0"; scale = "1.0"; };
|
||||||
|
# third = { name = "eDP-1"; resolution = "preferred"; position = "0x0"; scale = "1.0"; };
|
||||||
|
|
||||||
# Home
|
# Home
|
||||||
main = { name = "eDP-1"; resolution = "1920x1200"; position = "0x1080"; scale = "1.0"; };
|
main = { name = "eDP-1"; resolution = "1920x1200"; position = "0x1080"; scale = "1.0"; };
|
||||||
second = { name = "desc:Sony SONY TV 0x01010101"; resolution = "1920x1080"; position = "0x0"; scale = "1.0"; };
|
second = { name = "desc:Sony SONY TV 0x01010101"; resolution = "1920x1080"; position = "0x0"; scale = "1.0"; };
|
||||||
@@ -46,17 +51,18 @@ in {
|
|||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = pkgs-unstable.hyprland;
|
|
||||||
# package = pkgs.hyprland;
|
# package = pkgs.hyprland;
|
||||||
package = inputs.hyprland.packages.${hyper.system}.hyprland;
|
package = inputs.hyprland.packages.${hyper.system}.hyprland;
|
||||||
|
# package = config.programs.hyprland.package;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
plugins = [
|
plugins = let s = pkgs.stdenv.hostPlatform.system; in [
|
||||||
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo
|
# inputs.hyprland-plugins.packages.${s}.hyprexpo
|
||||||
# inputs.hyprfocus.packages.${pkgs.system}.hyprfocus
|
# inputs.hyprfocus.packages.${s}.hyprfocus
|
||||||
# inputs.hycov.packages.${pkgs.system}.hycov
|
# inputs.hycov.packages.${s}.hycov
|
||||||
# pkgs.hyprlandPlugins.hyprspace
|
# inputs.hyprspace.packages.${s}.Hyprspace
|
||||||
# inputs.hyprspace.packages.${pkgs.system}.Hyprspace
|
# inputs.hyprtasking.packages.${s}.hyprtasking
|
||||||
|
# inputs.hyprland-easymotion.packages.${s}.hyprland-easymotion
|
||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
@@ -382,6 +388,8 @@ in {
|
|||||||
# "SUPER, TAB, hycov:toggleoverview"
|
# "SUPER, TAB, hycov:toggleoverview"
|
||||||
# "SUPER, TAB, overview:toggle"
|
# "SUPER, TAB, overview:toggle"
|
||||||
# "SUPER, TAB, hyprexpo:expo, toggle"
|
# "SUPER, TAB, hyprexpo:expo, toggle"
|
||||||
|
# "SUPER, TAB, hyprtasking:killhovered"
|
||||||
|
# ", Escape, hyprtasking:if_active, hyprtasking:toggle cursor"
|
||||||
"ALT, TAB, focuscurrentorlast"
|
"ALT, TAB, focuscurrentorlast"
|
||||||
# "SUPER, TAB, exec, hyprswitch --daemon"
|
# "SUPER, TAB, exec, hyprswitch --daemon"
|
||||||
"SUPER, Q, killactive"
|
"SUPER, Q, killactive"
|
||||||
@@ -415,7 +423,7 @@ in {
|
|||||||
"SUPER, D, exec, vesktop"
|
"SUPER, D, exec, vesktop"
|
||||||
# "SUPER, D, exec, discord"
|
# "SUPER, D, exec, discord"
|
||||||
"SUPER, F, fullscreen"
|
"SUPER, F, fullscreen"
|
||||||
# "SUPER, G,"
|
# "SUPER, G, action:hyprctl dispatch focuswindow address:{}"
|
||||||
"SUPER, H, movefocus, l"
|
"SUPER, H, movefocus, l"
|
||||||
"SUPER, J, movefocus, d"
|
"SUPER, J, movefocus, d"
|
||||||
"SUPER, K, movefocus, u"
|
"SUPER, K, movefocus, u"
|
||||||
@@ -544,6 +552,59 @@ in {
|
|||||||
reverseSwipe = true; # reverses the direction of swipe gesture, for macOS peeps?
|
reverseSwipe = true; # reverses the direction of swipe gesture, for macOS peeps?
|
||||||
exitKey = true;
|
exitKey = true;
|
||||||
};
|
};
|
||||||
|
hypertasking = {
|
||||||
|
layout = "grid";
|
||||||
|
gap_size = 20;
|
||||||
|
bg_color = "0xff${rice.color.background}";
|
||||||
|
border_size = 4;
|
||||||
|
exit_on_hovered = false;
|
||||||
|
warp_on_move_window = 1;
|
||||||
|
close_overview_on_reload = true;
|
||||||
|
|
||||||
|
drag_button = "0x110"; # left mouse button
|
||||||
|
select_button = "0x111"; # right mouse button
|
||||||
|
# for other mouse buttons see <linux/input-event-codes.h>
|
||||||
|
|
||||||
|
gestures = {
|
||||||
|
enabled = true;
|
||||||
|
move_fingers = 3;
|
||||||
|
move_distance = 300;
|
||||||
|
open_fingers = 4;
|
||||||
|
open_distance = 300;
|
||||||
|
open_positive = true;
|
||||||
|
};
|
||||||
|
grid = {
|
||||||
|
rows = 3;
|
||||||
|
cols = 3;
|
||||||
|
loop = false;
|
||||||
|
layers = 2;
|
||||||
|
loop_layers = true;
|
||||||
|
gaps_use_aspect_ratio = false;
|
||||||
|
};
|
||||||
|
linear ={
|
||||||
|
top = false;
|
||||||
|
height = 400;
|
||||||
|
scroll_speed = 1.0;
|
||||||
|
blur = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
easymotion = {
|
||||||
|
textsize = 15;
|
||||||
|
textcolor = "rgba(ffffffff)";
|
||||||
|
bgcolor = "rgba(000000ff)";
|
||||||
|
blur = 0;
|
||||||
|
blurA = 1.0;
|
||||||
|
xray = 0;
|
||||||
|
textfont = "Sans";
|
||||||
|
textpadding = 0;
|
||||||
|
bordersize = 0;
|
||||||
|
bordercolor = "rgba(ffffffff)";
|
||||||
|
rounding = 0;
|
||||||
|
fullscreen_action = "none";
|
||||||
|
motionkeys = "abcdefghijklmnopqrstuvwxyz1234567890";
|
||||||
|
motionlabels = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
|
||||||
|
only_special = "true";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
lynx
|
lynx
|
||||||
mediainfo
|
mediainfo
|
||||||
neofetch
|
neofetch
|
||||||
|
nmap
|
||||||
pastel
|
pastel
|
||||||
pdfgrep
|
pdfgrep
|
||||||
pdftk
|
pdftk
|
||||||
@@ -37,10 +38,10 @@
|
|||||||
systemctl-tui
|
systemctl-tui
|
||||||
tldr
|
tldr
|
||||||
unstable.gemini-cli
|
unstable.gemini-cli
|
||||||
|
unstable.gemini-cli
|
||||||
|
unstable.yt-dlp
|
||||||
unstable.yt-dlp
|
unstable.yt-dlp
|
||||||
w3m
|
w3m
|
||||||
which
|
which
|
||||||
unstable.gemini-cli
|
|
||||||
unstable.yt-dlp
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
unstable.spotify
|
unstable.spotify
|
||||||
|
unstable.spicetify-cli
|
||||||
];
|
];
|
||||||
services.librespot = {
|
services.librespot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -46,7 +47,7 @@
|
|||||||
playback_progress_bar = { fg = accent.brighter; bg = accent.dark; modifiers = ["Bold"]; };
|
playback_progress_bar = { fg = accent.brighter; bg = accent.dark; modifiers = ["Bold"]; };
|
||||||
playback_status = { fg = accent.bright; };
|
playback_status = { fg = accent.bright; };
|
||||||
playback_track = { fg = accent.bright; modifiers = ["Bold"]; };
|
playback_track = { fg = accent.bright; modifiers = ["Bold"]; };
|
||||||
secondary_row = { fg = secondary.base; };
|
secondary_row = { fg = accent.brighter; };
|
||||||
selection = { bg = accent.dark; };
|
selection = { bg = accent.dark; };
|
||||||
table_header = { fg = tertiary.bright; };
|
table_header = { fg = tertiary.bright; };
|
||||||
# playback_progress_bar_unfilled (Specific to progress_bar_type as Line) = "";
|
# playback_progress_bar_unfilled (Specific to progress_bar_type as Line) = "";
|
||||||
|
|||||||
84
home-modules/thunderbird.nix
Normal file
84
home-modules/thunderbird.nix
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
{ pkgs, ... }@all: with all; lib.mkIf (hyper.isPersonal) {
|
||||||
|
programs.thunderbird = let
|
||||||
|
inherit (lib.generators) toJSON;
|
||||||
|
extensions = toJSON {} {
|
||||||
|
"addon@darkreader.org" = "71d6c69d-55f9-4c56-888c-abdcf6efd73d";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
profiles = {
|
||||||
|
"${hyper.user}" = {
|
||||||
|
isDefault = true;
|
||||||
|
settings = with rice.color; {
|
||||||
|
"calendar.alarms.showmissed" = false;
|
||||||
|
"calendar.alarms.playsound" = false;
|
||||||
|
"calendar.alarms.show" = false;
|
||||||
|
"extensions.webextensions.uuids" = extensions;
|
||||||
|
"mail.startup.enabledMailCheckOnce" = true;
|
||||||
|
"mailnews.mark_message_read.delay" = true;
|
||||||
|
"mailnews.mark_message_read.delay.interval" = 3;
|
||||||
|
"mailnews.tags.$label1.color" = red.base;
|
||||||
|
"mailnews.tags.$label1.tag" = "Important";
|
||||||
|
"mailnews.tags.$label2.color" = yellow.base;
|
||||||
|
"mailnews.tags.$label2.tag" = "Work";
|
||||||
|
"mailnews.tags.$label3.color" = green.base;
|
||||||
|
"mailnews.tags.$label3.tag" = "Personal";
|
||||||
|
"mailnews.tags.$label4.color" = cyan.base;
|
||||||
|
"mailnews.tags.$label4.tag" = "To Do";
|
||||||
|
"mailnews.tags.$label5.color" = blue.base;
|
||||||
|
"mailnews.tags.$label5.tag" = "Later";
|
||||||
|
"mailnews.headers.showMessageId" = true;
|
||||||
|
"mailnews.headers.showOrganization" = true;
|
||||||
|
"mailnews.headers.showReferences" = true;
|
||||||
|
"mailnews.headers.showSender" = true;
|
||||||
|
"mailnews.headers.showUserAgent" = true;
|
||||||
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||||
|
};
|
||||||
|
userChrome = with rice.color; /* css */ ''
|
||||||
|
body,
|
||||||
|
#navigation-toolbox,
|
||||||
|
#calendarContent,
|
||||||
|
#calSidebar,
|
||||||
|
#tabpanelcontainer,
|
||||||
|
#spacesToolbar,
|
||||||
|
#tabs-toolbar,
|
||||||
|
#calMinimonth,
|
||||||
|
#primaryButtonSidePanel *,
|
||||||
|
.minimonth-week,
|
||||||
|
.multiday-header-corner, .day-column-heading, calendar-header-container, calendar-event-column, .multiday-hour-box,
|
||||||
|
#view-box,
|
||||||
|
#tabs-toolbar,
|
||||||
|
#status-bar,
|
||||||
|
.calview-toggle,
|
||||||
|
#calview-toggle-item,
|
||||||
|
#folderPaneHeaderBar,
|
||||||
|
#folderPane,
|
||||||
|
#threadPaneHeaderBar,
|
||||||
|
#threadTree,
|
||||||
|
#tabs-toolbar {
|
||||||
|
color: ${foreground} !important;
|
||||||
|
font-family: ${rice.font.base.name} !important;
|
||||||
|
background-color: transparent !important;
|
||||||
|
background-image: none !important;
|
||||||
|
border: none !important;
|
||||||
|
-moz-appearance: none !important;
|
||||||
|
}
|
||||||
|
.minimonth-nav-section {
|
||||||
|
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||||
|
border: ${builtins.toString rice.border-width}px solid ${border};
|
||||||
|
}
|
||||||
|
.button,
|
||||||
|
.button-primary,
|
||||||
|
.tab-content[selected] {
|
||||||
|
background-color: ${accent.base};
|
||||||
|
color: ${background};
|
||||||
|
background-image: none;
|
||||||
|
}
|
||||||
|
html {
|
||||||
|
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency}) !important;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
4
home.nix
4
home.nix
@@ -8,6 +8,7 @@
|
|||||||
./home-modules/chatterino.nix
|
./home-modules/chatterino.nix
|
||||||
./home-modules/clipboard.nix
|
./home-modules/clipboard.nix
|
||||||
./home-modules/color-pallete.nix
|
./home-modules/color-pallete.nix
|
||||||
|
./home-modules/contact.nix
|
||||||
./home-modules/direnv.nix
|
./home-modules/direnv.nix
|
||||||
./home-modules/discord.nix
|
./home-modules/discord.nix
|
||||||
./home-modules/email.nix
|
./home-modules/email.nix
|
||||||
@@ -42,7 +43,7 @@
|
|||||||
./home-modules/pkgs-list/desktop.nix
|
./home-modules/pkgs-list/desktop.nix
|
||||||
./home-modules/pkgs-list/programs.nix
|
./home-modules/pkgs-list/programs.nix
|
||||||
./home-modules/pkgs-list/shell.nix
|
./home-modules/pkgs-list/shell.nix
|
||||||
./home-modules/pnx.nix
|
# ./home-modules/pnx.nix
|
||||||
./home-modules/programming.nix
|
./home-modules/programming.nix
|
||||||
./home-modules/qt.nix
|
./home-modules/qt.nix
|
||||||
./home-modules/rclone.nix
|
./home-modules/rclone.nix
|
||||||
@@ -53,6 +54,7 @@
|
|||||||
./home-modules/spotify.nix
|
./home-modules/spotify.nix
|
||||||
./home-modules/ssh.nix
|
./home-modules/ssh.nix
|
||||||
./home-modules/starship.nix
|
./home-modules/starship.nix
|
||||||
|
./home-modules/thunderbird.nix
|
||||||
./home-modules/tts.nix
|
./home-modules/tts.nix
|
||||||
./home-modules/typst.nix
|
./home-modules/typst.nix
|
||||||
./home-modules/vale.nix
|
./home-modules/vale.nix
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ nx2site:
|
|||||||
maddy:
|
maddy:
|
||||||
nxcaldav_password: ENC[AES256_GCM,data:cpq6OJDPw2moea1LBfisVNIW9qmJeqc=,iv:h2EN4ButO+nIhx8oIATbtRFYrp6bj05vSQ2vJeqDp94=,tag:WEuC3bJ5pGp1VWfZrL7XUg==,type:str]
|
nxcaldav_password: ENC[AES256_GCM,data:cpq6OJDPw2moea1LBfisVNIW9qmJeqc=,iv:h2EN4ButO+nIhx8oIATbtRFYrp6bj05vSQ2vJeqDp94=,tag:WEuC3bJ5pGp1VWfZrL7XUg==,type:str]
|
||||||
nextcloud_password: ENC[AES256_GCM,data:dIPqnmOYStsHpra2lZ0+9YA02vLphQ==,iv:qasttDr1EfNtATSXyV9jafemx/v1C173Cxf/x+ZW0MA=,tag:mgWEqKMT5VuKa7eT5kDFNA==,type:str]
|
nextcloud_password: ENC[AES256_GCM,data:dIPqnmOYStsHpra2lZ0+9YA02vLphQ==,iv:qasttDr1EfNtATSXyV9jafemx/v1C173Cxf/x+ZW0MA=,tag:mgWEqKMT5VuKa7eT5kDFNA==,type:str]
|
||||||
nextcloud_password_bcrypt: ENC[AES256_GCM,data:peK83T6fHjy4LIM28pKa4cJzJ/+RzjwbT2VX1uRey6G52cjS0voItAtrElP8lIcVB9DO7bKd5psTQd7PKlU=,iv:ZoLa4slUlJaRepimftj/PPQZp4Ns1nLgPiW0eh9fg7s=,tag:scBrK6h453lVzir4UpZ4Hw==,type:str]
|
|
||||||
lennart_password: ENC[AES256_GCM,data:a2lTi3j24EowghFITkKd+6UMB/E=,iv:gja6miTo3bTg86nWNeaGwpMgNccX5+HJINI2tgHJBrg=,tag:ScEKrHAb3yeqg3ynLpHFkA==,type:str]
|
lennart_password: ENC[AES256_GCM,data:a2lTi3j24EowghFITkKd+6UMB/E=,iv:gja6miTo3bTg86nWNeaGwpMgNccX5+HJINI2tgHJBrg=,tag:ScEKrHAb3yeqg3ynLpHFkA==,type:str]
|
||||||
daniel_password: ENC[AES256_GCM,data:AdA+cN++Z1rAm8CbuP60k2/Gu2bJ,iv:yGMbo4s6oUkh5aWJDSiCTeey/tkjKkAbzYRDjMzEnYk=,tag:XjL01czFJ5AHqieVshlMPA==,type:str]
|
daniel_password: ENC[AES256_GCM,data:AdA+cN++Z1rAm8CbuP60k2/Gu2bJ,iv:yGMbo4s6oUkh5aWJDSiCTeey/tkjKkAbzYRDjMzEnYk=,tag:XjL01czFJ5AHqieVshlMPA==,type:str]
|
||||||
diane_password: ENC[AES256_GCM,data:Lu2mWItrAN0YIInhWLsGPjwFNhks0g==,iv:5KInpqxklKyP78qlMjF40Lt582Fv9RauTT7TmeXan/A=,tag:ZrubtryuYMaA4ewfZeq/xQ==,type:str]
|
diane_password: ENC[AES256_GCM,data:Lu2mWItrAN0YIInhWLsGPjwFNhks0g==,iv:5KInpqxklKyP78qlMjF40Lt582Fv9RauTT7TmeXan/A=,tag:ZrubtryuYMaA4ewfZeq/xQ==,type:str]
|
||||||
@@ -141,8 +140,8 @@ sops:
|
|||||||
MkZGai9DZ3ZzT0I2MmMwRzVkcFhXdlEKLbM/9kCpiXLW8Me4MDq+JFifG7FhwPZS
|
MkZGai9DZ3ZzT0I2MmMwRzVkcFhXdlEKLbM/9kCpiXLW8Me4MDq+JFifG7FhwPZS
|
||||||
5t4zNtuLttY3NUwT9KK4g4P+Yl10oNsjcCbGNYTxlIARFEU+X6zwUQ==
|
5t4zNtuLttY3NUwT9KK4g4P+Yl10oNsjcCbGNYTxlIARFEU+X6zwUQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2026-05-03T21:22:17Z"
|
lastmodified: "2026-05-10T17:36:49Z"
|
||||||
mac: ENC[AES256_GCM,data:39aHKmXCvIcuMkxIyCF6gAkls5hyt88asZNrCcPhPGWYaVDxaGRyn0AuobkvCYDk1sUEnM9vPwRQvJrdrppseZewReXXjIRruYJfuHAJpkTKqvgAsuPDa6nZPdO6OCsZgmUXDSke/0XrxY5f1WwQTvFRhtAa/TtrDcEXIAu4UfQ=,iv:sUcyHwGXEENNrJoz8gV9OEgKcwA8hArv9zOh1Wau+w4=,tag:zgC2Hufx4md50KRFGfcu+Q==,type:str]
|
mac: ENC[AES256_GCM,data:j/Isi1F9YawNzwdskMW+DK0F6CgqcqqpYwe/MNLiPed+ySqOHJvk05dS1maH+CvxmyAC6daGFCXcraN1Spq00FxDj+ZzvOcU7J+xmMZB5BDTuSI/+EaDL0bhUh5phen0yrkn3nI4M7FVbPwcyWFMUiSHZOlCoY39A2ZIprxgtqo=,iv:FlGthtns5mQ1mY5MM285rx+bKZLRbW2b4Ea+o9pIxNk=,tag:m95hmRA5iCnHtaFXyY6Rog==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2025-10-06T11:16:18Z"
|
- created_at: "2025-10-06T11:16:18Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
|
|||||||
@@ -27,7 +27,11 @@
|
|||||||
kernelPackages = pkgs.linuxPackages;
|
kernelPackages = pkgs.linuxPackages;
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||||
kernelModules = [ "v4l2loopback" ];
|
kernelModules = [ "v4l2loopback" ];
|
||||||
extraModprobeConfig = ''options v4l2loopback devices=1 video_nr=1 card_label="OBS VCam" exclusive_caps=1'';
|
extraModprobeConfig = ''
|
||||||
|
options v4l2loopback devices=1 video_nr=1 card_label="OBS VCam" exclusive_caps=1
|
||||||
|
options snd_hda_intel power_save=0
|
||||||
|
options snd_ac97_codec power_save=0
|
||||||
|
'';
|
||||||
loader = {
|
loader = {
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
grub = {
|
grub = {
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
{ config, pkgs, ... }@all: with all; {
|
{ config, pkgs, ... }@all: with all; let
|
||||||
|
users = [ "nxcaldav" "nextcloud" "lennart" "daniel" "diane" "georg" "tessa" ];
|
||||||
|
in {
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"nx2site/maddy/nxcaldav_password" = { owner = "maddy"; group = "maddy"; mode = "600"; };
|
"nx2site/maddy/nxcaldav_password" = { owner = "maddy"; group = "maddy"; mode = "600"; };
|
||||||
"nx2site/maddy/nextcloud_password" = { owner = "maddy"; group = "maddy"; mode = "600"; };
|
"nx2site/maddy/nextcloud_password" = { owner = "maddy"; group = "maddy"; mode = "600"; };
|
||||||
@@ -16,7 +18,7 @@
|
|||||||
primaryDomain = hyper.domain;
|
primaryDomain = hyper.domain;
|
||||||
user = "maddy";
|
user = "maddy";
|
||||||
group = "maddy";
|
group = "maddy";
|
||||||
hostname = "mail.${hyper.domain}";
|
hostname = "ssh.${hyper.domain}";
|
||||||
ensureAccounts = [
|
ensureAccounts = [
|
||||||
"nxcaldav@${hyper.domain}"
|
"nxcaldav@${hyper.domain}"
|
||||||
"nextcloud@${hyper.domain}"
|
"nextcloud@${hyper.domain}"
|
||||||
@@ -46,42 +48,171 @@
|
|||||||
};
|
};
|
||||||
# Enable TLS listeners. Configuring this via the module is not yet
|
# Enable TLS listeners. Configuring this via the module is not yet
|
||||||
# implemented, see https://github.com/NixOS/nixpkgs/pull/153372
|
# implemented, see https://github.com/NixOS/nixpkgs/pull/153372
|
||||||
config = (builtins.replaceStrings [
|
config = let
|
||||||
"imap tcp://0.0.0.0:143"
|
admin = "lennart@${hyper.domain}";
|
||||||
"submission tcp://0.0.0.0:587"
|
domains = hyper.domain; # could be more
|
||||||
] [
|
inherit (hyper) domain;
|
||||||
"imap tls://0.0.0.0:993 tcp://0.0.0.0:143"
|
# nix adds 3 variables, hostname, and tls info before the file (see /etc/maddy/maddy.conf)
|
||||||
"submission tls://0.0.0.0:465 tcp://0.0.0.0:587"
|
in /* ini */''
|
||||||
] options.services.maddy.config.default) + ''
|
auth.pass_table local_authdb {
|
||||||
smtp tcp://127.0.0.1:2525 {
|
table sql_table {
|
||||||
tls off
|
driver sqlite3
|
||||||
# 1. Allow local delivery (e.g., app sending to admin@nx2.site)
|
dsn credentials.db
|
||||||
destination postmaster $(local_domains) {
|
table_name passwords
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
storage.imapsql local_mailboxes {
|
||||||
|
driver sqlite3
|
||||||
|
dsn imapsql.db
|
||||||
|
}
|
||||||
|
|
||||||
|
table.chain local_rewrites {
|
||||||
|
# tagging with - or +
|
||||||
|
# alice-something@${domain} or alice+something@${domain} lands in inbox alice@${domain}
|
||||||
|
optional_step regexp "(.+)[\+-](.+)@(.+)" "$1@$3"
|
||||||
|
optional_step static {
|
||||||
|
entry postmaster ${admin}
|
||||||
|
entry admin ${admin}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
msgpipeline local_routing {
|
||||||
|
destination ${domains} {
|
||||||
|
modify {
|
||||||
|
replace_rcpt &local_rewrites
|
||||||
|
}
|
||||||
|
reroute {
|
||||||
|
destination_in &local_mailboxes {
|
||||||
|
deliver_to &local_mailboxes
|
||||||
|
}
|
||||||
|
default_destination {
|
||||||
|
modify {
|
||||||
|
replace_rcpt regexp ".*" "${admin}"
|
||||||
|
}
|
||||||
|
deliver_to &local_mailboxes
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# should never happen
|
||||||
|
default_destination {
|
||||||
|
reject 550 5.1.1 "User doesn't exist"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
smtp tcp://0.0.0.0:25 {
|
||||||
|
limits {
|
||||||
|
all rate 20 1s
|
||||||
|
all concurrency 10
|
||||||
|
}
|
||||||
|
dmarc yes
|
||||||
|
check {
|
||||||
|
require_mx_record
|
||||||
|
dkim
|
||||||
|
spf
|
||||||
|
}
|
||||||
|
source ${domains} {
|
||||||
|
reject 501 5.1.8 "Use Submission for outgoing SMTP"
|
||||||
|
}
|
||||||
|
default_source {
|
||||||
|
destination postmaster ${domains} {
|
||||||
|
deliver_to &local_routing
|
||||||
|
}
|
||||||
|
default_destination {
|
||||||
|
reject 550 5.1.1 "User doesn't exist"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
submission tls://0.0.0.0:465 tcp://0.0.0.0:587 {
|
||||||
|
limits {
|
||||||
|
all rate 50 1s
|
||||||
|
}
|
||||||
|
auth &local_authdb
|
||||||
|
source ${domains} {
|
||||||
|
check {
|
||||||
|
authorize_sender {
|
||||||
|
prepare_email &local_rewrites
|
||||||
|
user_to_email identity
|
||||||
|
}
|
||||||
|
}
|
||||||
|
destination postmaster ${domains} {
|
||||||
deliver_to &local_routing
|
deliver_to &local_routing
|
||||||
}
|
}
|
||||||
# 2. Allow remote delivery (e.g., app sending to gmail.com)
|
|
||||||
default_destination {
|
default_destination {
|
||||||
modify {
|
modify {
|
||||||
# Ensure outgoing mail is signed even if sent via 2525
|
dkim ${domain} ${domains} default
|
||||||
dkim $(primary_domain) $(local_domains) default
|
}
|
||||||
|
deliver_to &remote_queue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default_source {
|
||||||
|
reject 501 5.1.8 "Non-local sender domain"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
target.remote outbound_delivery {
|
||||||
|
limits {
|
||||||
|
destination rate 20 1s
|
||||||
|
destination concurrency 10
|
||||||
|
}
|
||||||
|
mx_auth {
|
||||||
|
dane
|
||||||
|
mtasts {
|
||||||
|
cache fs
|
||||||
|
fs_dir mtasts_cache/
|
||||||
|
}
|
||||||
|
local_policy {
|
||||||
|
min_tls_level encrypted
|
||||||
|
min_mx_level none
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
target.queue remote_queue {
|
||||||
|
target &outbound_delivery
|
||||||
|
autogenerated_msg_domain ${domain}
|
||||||
|
bounce {
|
||||||
|
destination postmaster ${domains} {
|
||||||
|
deliver_to &local_routing
|
||||||
|
}
|
||||||
|
default_destination {
|
||||||
|
reject 550 5.0.0 "Refusing to send DSNs to non-local addresses"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
imap tls://0.0.0.0:993 tcp://0.0.0.0:143 {
|
||||||
|
auth &local_authdb
|
||||||
|
storage &local_mailboxes
|
||||||
|
}
|
||||||
|
|
||||||
|
# localhost only - test purposes only (->spam!)
|
||||||
|
smtp tcp://127.0.0.1:2525 {
|
||||||
|
tls off
|
||||||
|
destination postmaster ${domains} {
|
||||||
|
deliver_to &local_routing
|
||||||
|
}
|
||||||
|
default_destination {
|
||||||
|
modify {
|
||||||
|
dkim ${domain} ${domains} default
|
||||||
}
|
}
|
||||||
deliver_to &remote_queue
|
deliver_to &remote_queue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# nx2s-email-relay backdor
|
# nx2s-email-relay backdor
|
||||||
smtp tcp://0.0.0.0:25025 {
|
smtp tcp://0.0.0.0:25025 {
|
||||||
# tls off
|
|
||||||
|
|
||||||
# 1. Allow incoming mail from the VM for your domains
|
# 1. Allow incoming mail from the VM for your domains
|
||||||
destination postmaster $(local_domains) {
|
destination postmaster ${domains} {
|
||||||
deliver_to &local_routing
|
deliver_to &local_routing
|
||||||
}
|
}
|
||||||
|
|
||||||
# 2. Prevent the world from using you as an open relay
|
# 2. Prevent the world from using you as an open relay
|
||||||
default_destination {
|
default_destination {
|
||||||
reject 521 5.0.0 "User not local"
|
reject 521 5.0.0 "User not local"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ in {
|
|||||||
appstoreEnable = false;
|
appstoreEnable = false;
|
||||||
extraAppsEnable = true;
|
extraAppsEnable = true;
|
||||||
extraApps = with config.services.nextcloud.package.packages.apps; {
|
extraApps = with config.services.nextcloud.package.packages.apps; {
|
||||||
inherit calendar contacts notes tasks;
|
inherit calendar contacts mail notes tasks;
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
overwriteProtocol = "https";
|
overwriteProtocol = "https";
|
||||||
@@ -57,6 +57,7 @@ in {
|
|||||||
"mail_smtpauth" = true;
|
"mail_smtpauth" = true;
|
||||||
"mail_smtpauthtype" = "LOGIN";
|
"mail_smtpauthtype" = "LOGIN";
|
||||||
"mail_smtpname" = "nextcloud@${hyper.domain}";
|
"mail_smtpname" = "nextcloud@${hyper.domain}";
|
||||||
|
"simpleSignUpLink.shown" = false;
|
||||||
};
|
};
|
||||||
secrets."mail_smtppassword" = config.sops.secrets."nx2site/smtp2go/nextcloud_api_key".path;
|
secrets."mail_smtppassword" = config.sops.secrets."nx2site/smtp2go/nextcloud_api_key".path;
|
||||||
# secrets.settings."mail_smtppassword" = config.sops.secrets."nx2site/maddy/nextcloud_password".path;
|
# secrets.settings."mail_smtppassword" = config.sops.secrets."nx2site/maddy/nextcloud_password".path;
|
||||||
|
|||||||
36
system-modules/stay-up.nix
Normal file
36
system-modules/stay-up.nix
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{ config, pkgs, ... }@all: with all; let
|
||||||
|
target = "1.1.1.1";
|
||||||
|
timeoutMinutes = 5;
|
||||||
|
logFile = "/var/log/stay-up.log";
|
||||||
|
in {
|
||||||
|
systemd.services.wifi-watchdog = {
|
||||||
|
description = "Wi-Fi Watchdog Service";
|
||||||
|
after = [ "network.target" "NetworkManager.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
path = with pkgs; [ iputils networkmanager coreutils ];
|
||||||
|
script = /* bash */ ''
|
||||||
|
FAIL_COUNT=0
|
||||||
|
touch "${logFile}"
|
||||||
|
while true; do
|
||||||
|
if ping -c 1 -W 5 "${target}" > /dev/null 2>&1; then
|
||||||
|
FAIL_COUNT=0
|
||||||
|
else
|
||||||
|
FAIL_COUNT=$((FAIL_COUNT + 1))
|
||||||
|
if [ "$FAIL_COUNT" -ge "${toString timeoutMinutes}" ]; then
|
||||||
|
echo "$(date -Iseconds): Network unreachable for ${toString timeoutMinutes} minutes. Restarting Wi-Fi." >> "${logFile}"
|
||||||
|
nmcli radio wifi off
|
||||||
|
sleep 5
|
||||||
|
nmcli radio wifi on
|
||||||
|
FAIL_COUNT=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
sleep 60
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = "10";
|
||||||
|
User = "root"; # Root is required to execute nmcli radio commands and write to /var/log/
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -12,17 +12,16 @@
|
|||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
openconnect
|
openconnect
|
||||||
networkmanager-openconnect
|
networkmanager-openconnect
|
||||||
|
(pkgs.writeShellScriptBin "connect_to_tuda" ''
|
||||||
|
sudo $(grep ExecStart /etc/systemd/system/openconnect-tuda.service | cut -c 11-)
|
||||||
|
'')
|
||||||
];
|
];
|
||||||
networking.openconnect = {
|
networking.openconnect = {
|
||||||
package = pkgs.openconnect;
|
package = pkgs.openconnect;
|
||||||
interfaces = {
|
interfaces = {
|
||||||
openconnect0 = {
|
tuda = {
|
||||||
autoStart = false;
|
autoStart = false;
|
||||||
certificate = "/home/nx2/tuda-rootcert.crt";
|
|
||||||
# extraOptions = { compression = "stateless"; no-dtls = true; no-http-keepalive = true; };
|
|
||||||
gateway = "vpn.hrz.tu-darmstadt.de";
|
gateway = "vpn.hrz.tu-darmstadt.de";
|
||||||
# passwordFile = "/var/lib/secrets/openconnect-passwd";
|
|
||||||
# privateKey = "/var/lib/secrets/openconnect_private_key.pem";
|
|
||||||
protocol = "anyconnect";
|
protocol = "anyconnect";
|
||||||
user = secrets.email.tuda.tuid;
|
user = secrets.email.tuda.tuid;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user