chore: merge remote-tracking branch 'refs/remotes/origin/master'

This commit is contained in:
Ahwx 2025-12-15 18:31:30 +01:00
commit f5854c5621
15 changed files with 185 additions and 80 deletions

View file

@ -33,6 +33,7 @@
"systemMailerPassword" = { };
"dandelionSyncthingId" = { };
"sakuraSyncthingId" = { };
"homeExternalIPv4" = { };
}
else if (host == "dandelion") then
{

View file

@ -10,6 +10,7 @@
++ [ (import ./kitty.nix) ]
++ [ (import ./kanshi.nix) ]
++ [ (import ./foot.nix) ]
++ [ (import ./nextcloud.nix) ]
++ [ (import ./nvim.nix) ]
++ [ (import ./zathura.nix) ]
++ [ (import ./packages.nix) ]

View file

@ -37,6 +37,7 @@
"foot --server &"
"hyprfloat &"
"gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' &"
"nwg-dock-hyprland &"
];
input = {
@ -58,7 +59,6 @@
border_size = 2;
"col.active_border" = "rgb(ffffff) rgb(ffffff) 45deg";
"col.inactive_border" = "0x00000000";
no_border_on_floating = false;
};
group = {
"col.border_active" = "rgb(ffffff) rgb(ffffff) 45deg";
@ -103,22 +103,20 @@
decoration = {
rounding = 0;
# active_opacity = 0.90;
# inactive_opacity = 0.90;
active_opacity = 1.00;
inactive_opacity = 0.75;
# fullscreen_opacity = 1.0;
blur = {
enabled = false;
size = 1;
passes = 1;
# size = 4;
# passes = 2;
enabled = true;
size = 7;
passes = 3;
noise = 0.08;
brightness = 1;
contrast = 1.400;
contrast = 1.5;
ignore_opacity = true;
noise = 0;
new_optimizations = true;
xray = true;
xray = false;
};
# drop_shadow = true;
@ -160,6 +158,9 @@
gesture = [
"3, horizontal, workspace"
"4, up, dispatcher, playerctl -p mpd play-pause"
"4, left, dispatcher, playerctl -p mpd next"
"4, right, dispatcher, playerctl -p mpd previous"
# "4, horizontal, move"
];
@ -287,52 +288,61 @@
];
# windowrule
windowrule = [
"float,title:^(float_kitty)$"
"center,title:^(float_kitty)$"
"size 950 600,title:^(float_kitty)$"
"float,title:^(float_foot)$"
"center,title:^(float_foot)$"
"size 950 600,title:^(float_foot)$"
"float,title:^(Volume Control)$"
"float,title:^(Librewolf Sharing Indicator)$"
"float,title:^(Export Image as PNG)$"
"move 0 0,title:^(Librewolf Sharing Indicator)$"
"size 700 450,title:^(Volume Control)$"
"move 40 55%,title:^(Volume Control)$"
"bordersize 0, floating:0, onworkspace:w[tv1]"
"rounding 0, floating:0, onworkspace:w[tv1]"
"bordersize 0, floating:0, onworkspace:f[1]"
"rounding 0, floating:0, onworkspace:f[1]"
];
# windowrule = [
# "float,title:^(float_kitty)$"
# "center,title:^(float_kitty)$"
# "size 950 600,title:^(float_kitty)$"
# "float,title:^(float_foot)$"
# "center,title:^(float_foot)$"
# "size 950 600,title:^(float_foot)$"
# "float,title:^(Volume Control)$"
# "float,title:^(Librewolf — Sharing Indicator)$"
# "float,title:^(Export Image as PNG)$"
# "move 0 0,title:^(Librewolf — Sharing Indicator)$"
# "size 700 450,title:^(Volume Control)$"
# "move 40 55%,title:^(Volume Control)$"
# "bordersize 0, floating:0, onworkspace:w[tv1]"
# "rounding 0, floating:0, onworkspace:w[tv1]"
# "bordersize 0, floating:0, onworkspace:f[1]"
# "rounding 0, floating:0, onworkspace:f[1]"
# ];
# windowrulev2
windowrulev2 = [
"noanim, class:^(bemenu)$"
"float, title:^(Picture-in-Picture)$"
"opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$"
"pin, title:^(Picture-in-Picture)$"
"opacity 1.0 override 1.0 override, title:^(.*imv.*)$"
"opacity 1.0 override 1.0 override, title:^(.*mpv.*)$"
"idleinhibit focus, class:^(mpv)$"
"idleinhibit fullscreen, class:^(librewolf)$"
"float,class:^(pavucontrol-qt)$"
"float,class:^(pavucontrol)$"
"float,class:^(SoundWireServer)$"
"float,class:^(.sameboy-wrapped)$"
"float,class:^(file_progress)$"
"float,class:^(confirm)$"
"float,class:^(dialog)$"
"float,class:^(download)$"
"float,class:^(notification)$"
"float,class:^(error)$"
"float,class:^(confirmreset)$"
"float,title:^(Open File)$"
"float,title:^(branchdialog)$"
"float,title:^(Confirm to replace files)$"
"float,title:^(File Operation Progress)$"
"float,title:^(float_foot)$"
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
## windowrulev2
windowrule = [
# "opacity 0.5 0.5, match:class nwg-dock-hyprland"
"no_blur on, match:class ungoogled-chromium"
"no_blur on, match:class librewolf"
# "noanim, class:^(bemenu)$"
# "float, title:^(Picture-in-Picture)$"
# "opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$"
# "pin, title:^(Picture-in-Picture)$"
# "opacity 1.0 override 1.0 override, title:^(.*imv.*)$"
# "opacity 1.0 override 1.0 override, title:^(.*mpv.*)$"
# "idleinhibit focus, class:^(mpv)$"
# "idleinhibit fullscreen, class:^(librewolf)$"
# "float,class:^(pavucontrol-qt)$"
# "fullscreen,class:Nsxiv"
# "fullscreen,title:^(*nsxiv*)$"
# "fullscreen,title:^(nsxiv)$"
# "fullscreen,class:swiv"
# "fullscreen,title:^(*swiv*)$"
# "fullscreen,title:^(swiv)$"
# "float,class:^(pavucontrol)$"
# "float,class:^(SoundWireServer)$"
# "float,class:^(.sameboy-wrapped)$"
# "float,class:^(file_progress)$"
# "float,class:^(confirm)$"
# "float,class:^(dialog)$"
# "float,class:^(download)$"
# "float,class:^(notification)$"
# "float,class:^(error)$"
# "float,class:^(confirmreset)$"
# "float,title:^(Open File)$"
# "float,title:^(branchdialog)$"
# "float,title:^(Confirm to replace files)$"
# "float,title:^(File Operation Progress)$"
# "float,title:^(float_foot)$"
# "nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
};

View file

@ -10,6 +10,7 @@
glib
wayland
direnv
nwg-dock-hyprland
];
# systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ];
wayland.windowManager.hyprland = {

View file

@ -66,6 +66,22 @@
];
};
home = {
outputs = [
{
criteria = "eDP-1";
position = "152,1440";
}
{
criteria = "LG Electronics LG ULTRAGEAR+ 507NTRLM0646";
scale = 1.0;
status = "enable";
position = "0,0";
# adaptiveSync = true;
mode = "2560x1440@144Hz";
}
];
};
home-alt = {
outputs = [
{
criteria = "eDP-1";

View file

@ -0,0 +1,40 @@
{
pkgs,
config,
username,
...
}:
let
nexturl = "cloud.liv.town";
in
{
home.packages = with pkgs; [
nextcloud-client
];
systemd.user = {
services.nextcloud-autosync = {
Unit = {
Description = "Auto sync Nextcloud";
After = "network-online.target";
};
Service = {
Type = "simple";
ExecStart = "${pkgs.nextcloud-client}/bin/nextcloudcmd -h -n --path /music /home/${username}/cloud/music https://${nexturl}";
TimeoutStopSec = "180";
KillMode = "process";
KillSignal = "SIGINT";
};
Install.WantedBy = [ "multi-user.target" ];
};
timers.nextcloud-autosync = {
Unit.Description = "Automatic sync files with Nextcloud when booted up after 5 minutes then rerun every 60 minutes";
Timer.OnBootSec = "5min";
Timer.OnUnitActiveSec = "30min";
Install.WantedBy = [
"multi-user.target"
"timers.target"
];
};
startServices = true;
};
}

View file

@ -29,6 +29,7 @@
gcc
gnumake
python3
nautilus
# CLI shit
bitwarden-cli
@ -36,7 +37,6 @@
foot
termpdfpy
vimv
iamb
pass
lm_sensors
neofetch

View file

@ -27,11 +27,11 @@
"position": "top",
"modules-left": [
"custom/devices",
"privacy",
"network",
"custom/music",
"custom/vpn",
"custom/devices",
"sway/mode",
"tray",
],
@ -98,12 +98,14 @@
},
"custom/vpn": {
"format": "{icon}",
"tooltip-format": "{text}",
"format-icons": [ "","" ],
"format": "<span color='#aaaaaa'>VPN:</span> {text}", // <span color='#aaaaaa'>({location})</span>",
// "format": "{text}",
// "format-icons": [ "","" ],
// "tooltip": true,
// "tooltip-format": "{node}",
"return-type": "json",
"exec": "~/.local/bin/waybar-vpn",
"interval": 30
"exec": "~/.local/bin/waybar-mullvad",
"interval": 10
},
"custom/music": {

View file

@ -1,5 +1,13 @@
{ pkgs, username, ... }:
{
pkgs,
username,
config,
...
}:
let
# homeExternalIPv4 = "${pkgs.coreutils}/bin/cat ${config.sops.secrets.homeExternalIPv4.path}";
homeExternalIPv4 = "92.118.0.69";
in
{
home.file = {
"/home/${username}/.local/bin/waybar-yubikey" = {
@ -213,6 +221,7 @@
'';
};
"/home/${username}/.local/bin/waybar-vpn" = {
# unused nowadays
executable = true;
text = ''
#!/usr/bin/env bash
@ -222,6 +231,23 @@
|| echo '{"text":"Disconnected","class":"disconnected","percentage":0}'
'';
};
"/home/${username}/.local/bin/waybar-mullvad" = {
executable = true;
text = ''
#!/usr/bin/env bash
STATUS="$(mullvad status | grep -Eio 'connected|connecting|disconnected' | tr '[:upper:]' '[:lower:]')"
NODE="$(mullvad status | grep -Ei 'relay' | awk '{print $2}' | tr '[:upper:]' '[:lower:]')"
LOCATION="$(mullvad status | grep -Ei 'location' | cut -d':' -f2 | cut -d'.' -f1 | sed 's/ //g')"
IPV4="$(mullvad status | grep 'IPv4' | cut -d':' -f3 | sed 's/ //g')"
echo "$IPV4" | grep -q "${homeExternalIPv4}" && LOCATION="home"
echo "$STATUS" | grep -Eioq 'connected|connecting' && TEXT="{\"text\":\"$STATUS ($LOCATION)\",\"location\":\"$LOCATION\",\"node\":\"$NODE\"}" # || ip address show tailscale0 | grep "global tailscale0" && TEXT="{\"text\":\"tailscale ($LOCATION)\",\"location\":\"$LOCATION\",\"node\":\"$NODE\"}"
echo "$STATUS" | grep -Eioq 'disconnected' && TEXT="{\"text\":\"$STATUS\",\"location\":\"$LOCATION\",\"node\":\"$NODE\"}"
echo "$TEXT"
'';
};
};
home.packages = with pkgs; [
wf-recorder

View file

@ -25,7 +25,7 @@ in
"https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md"
"https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md"
];
minisign_key = "sha256-LRw8acNa39MUv7XmA0GuheugECcejbN8+GJl2Ra7lpg="; # See https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/public-resolvers.md
minisign_key = "sha256-QIpM9e7dye+EDO9rvlhSbDVLtmcgw8aLtg0DncPHK2s="; # See https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/public-resolvers.md
cache_file = "/var/lib/dnscrypt/public-resolvers.md";
};

View file

@ -0,0 +1,3 @@
{
services.mullvad-vpn.enable = true;
}

View file

@ -5,5 +5,5 @@
# loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b"];
acceleration = "rocm"; # nope, 5700XT is too old for this
};
services.open-webui.enable = true;
services.open-webui.enable = false;
}