Compare commits

..

25 Commits

Author SHA1 Message Date
Lennart J. Kurzweg (Nx2)
60fab5ff9a Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-05-26 19:20:24 +02:00
Lennart J. Kurzweg (Nx2)
1a662d9acf xps colors 2026-05-26 19:20:23 +02:00
Lennart J. Kurzweg (Nx2)
6b7f4459fc no headphone jack static 2026-05-26 19:19:58 +02:00
Lennart J. Kurzweg (Nx2)
7f1e43699b spotifi-cli rice fix 2026-05-26 19:19:41 +02:00
Lennart J. Kurzweg (Nx2)
1acf1773d9 xps hyprland shenanigans 2026-05-26 19:19:27 +02:00
Lennart J. Kurzweg (Nx2)
e97e9b62b0 chatterino channel update 2026-05-26 19:18:40 +02:00
Lennart J. Kurzweg (Nx2)
5211c953a3 gemini rice 2026-05-26 19:18:33 +02:00
Lennart J. Kurzweg (Nx2)
e054ee5be4 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-05-26 16:22:13 +02:00
Lennart J. Kurzweg (Nx2)
aefa5a48bb chatterino token 2026-05-26 16:21:14 +02:00
Lennart J. Kurzweg (Nx2)
be40aca44b Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-05-26 14:32:30 +02:00
Lennart J. Kurzweg (Nx2)
8228bd1f72 no simple sign up nextcloud (working?) 2026-05-26 14:32:15 +02:00
Lennart J. Kurzweg (Nx2)
63af2c4f4e stay up wifi daemon 2026-05-26 14:31:55 +02:00
Lennart J. Kurzweg (Nx2)
6a5863ee52 flake bump 2026-05-26 14:31:28 +02:00
Lennart J. Kurzweg (Nx2)
c28c40c972 rename emails 2026-05-26 14:31:22 +02:00
Lennart J. Kurzweg (Nx2)
e0bd80722c Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-05-26 12:46:24 +02:00
Lennart J. Kurzweg (Nx2)
6157666be9 spicetify 2026-05-26 12:46:05 +02:00
Lennart J. Kurzweg (Nx2)
07782f60d1 Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles 2026-05-13 23:58:58 +02:00
Lennart J. Kurzweg (Nx2)
2fbf06da7a nextcloud mail 2026-05-13 23:58:51 +02:00
Lennart J. Kurzweg (Nx2)
47cc5c881c nmap 2026-05-13 23:57:45 +02:00
Lennart J. Kurzweg (Nx2)
f757727858 tuda vpn 2026-05-13 23:57:32 +02:00
Lennart J. Kurzweg (Nx2)
bf074967e5 tuda-vpn (not working?) 2026-05-13 16:08:13 +02:00
Lennart J. Kurzweg (Nx2)
674c83d3ae syntax fix 2026-05-13 16:08:02 +02:00
Lennart J. Kurzweg (Nx2)
ee46aca691 split email, contact, thunderbird 2026-05-12 18:22:42 +02:00
Lennart J. Kurzweg (Nx2)
fa89fe57b0 remove bcrypt 2026-05-10 19:37:00 +02:00
Lennart J. Kurzweg (Nx2)
f7306130ed fix firefox transparency 2026-05-04 14:57:50 +02:00
19 changed files with 333 additions and 186 deletions

View File

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

View File

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

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

View File

@@ -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
View 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" ]));
# };
# };
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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) = "";

View 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;
}
'';
};
};
};
}

View File

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

View File

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

View File

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

View File

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

View 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/
};
};
}

View File

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