Compare commits

...

12 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
11 changed files with 139 additions and 38 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": "#e4f4d6", "foreground": "#fccee9",
"background": "#0c1405" "background": "#18010e"
}, },
"to_alter": { "to_alter": {
"accent": "#94d45d", "accent": "#f43da7",
"secondary": "#ffb732", "secondary": "#3269ff",
"tertiary": "#75bcad", "tertiary": "#d744ed",
"special": "#9c5cd4", "special": "#3cf48a",
"weird": "#5cd4c4" "weird": "#f4c63c"
} }
}, },
"NxACE": { "NxACE": {

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"
]; ];

View File

@@ -63,7 +63,6 @@ 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; background : transparent !important;
} }
body { body {

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

@@ -6,14 +6,14 @@
monitors = { monitors = {
xps = { xps = {
# def # def
main = { name = "eDP-1"; resolution = "preferred"; position = "0x0"; scale = "1.0"; }; # main = { name = "eDP-1"; resolution = "preferred"; position = "0x0"; scale = "1.0"; };
second = { 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"; }; # 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"; };
# third = { name = ""; resolution = "preferred"; position = "auto"; scale ="1, mirror, eDP-1"; }; third = { name = ""; resolution = "preferred"; position = "auto"; scale ="1, mirror, eDP-1"; };
# Presentation # Presentation
# main = { name = "eDP-1"; resolution = "1920x1080"; position = "1920x1080"; scale = "1.0"; }; # main = { name = "eDP-1"; resolution = "1920x1080"; position = "1920x1080"; scale = "1.0"; };
@@ -56,12 +56,13 @@ in {
# package = config.programs.hyprland.package; # 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 = {
@@ -387,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"
@@ -420,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"
@@ -549,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

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

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

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