Compare commits

...

3 commits

Author SHA1 Message Date
Patrick d7eb08fa98
feat: reenable xorg for vr 2024-11-17 14:30:57 +01:00
Patrick f190614f61
chore: remove old prune script 2024-11-16 11:21:57 +01:00
Patrick 2c12cd8c74
fix: netbird new options 2024-11-16 11:21:48 +01:00
13 changed files with 158 additions and 176 deletions

View file

@ -222,7 +222,7 @@ in
systems.oauth2.netbird = { systems.oauth2.netbird = {
public = true; public = true;
displayName = "Netbird"; displayName = "Netbird";
originUrl = "https://netbird.${config.secrets.secrets.global.domains.web}/"; originUrl = "https://netbird.${config.secrets.secrets.global.domains.web}/#callback";
originLanding = "https://netbird.${config.secrets.secrets.global.domains.web}/"; originLanding = "https://netbird.${config.secrets.secrets.global.domains.web}/";
preferShortUsername = true; preferShortUsername = true;
enableLocalhostRedirects = true; enableLocalhostRedirects = true;

View file

@ -20,6 +20,11 @@
owner = "turnserver"; owner = "turnserver";
}; };
age.secrets.relaySecret = {
generator.script = "alnum";
owner = "turnserver";
};
age.secrets.dataEnc = { age.secrets.dataEnc = {
generator.script = generator.script =
{ pkgs, ... }: { pkgs, ... }:
@ -42,6 +47,8 @@
}; };
}; };
relay.authSecretFile = config.age.secrets.relaySecret.path;
coturn = { coturn = {
enable = true; enable = true;
passwordFile = config.age.secrets.coturnPassword.path; passwordFile = config.age.secrets.coturnPassword.path;

View file

@ -334,7 +334,7 @@ index 0000000000000..998ddbad212cf
+} +}
diff --git a/nixos/modules/services/networking/netbird/relay.nix b/nixos/modules/services/networking/netbird/relay.nix diff --git a/nixos/modules/services/networking/netbird/relay.nix b/nixos/modules/services/networking/netbird/relay.nix
new file mode 100644 new file mode 100644
index 0000000000000..45650d15358a0 index 0000000000000..38af7fb1b2865
--- /dev/null --- /dev/null
+++ b/nixos/modules/services/networking/netbird/relay.nix +++ b/nixos/modules/services/networking/netbird/relay.nix
@@ -0,0 +1,124 @@ @@ -0,0 +1,124 @@
@ -403,7 +403,7 @@ index 0000000000000..45650d15358a0
+ An attribute set that will be set as the environment for the process. + An attribute set that will be set as the environment for the process.
+ Used for runtime configuration. + Used for runtime configuration.
+ The exact values sadly aren't documented anywhere. + The exact values sadly aren't documented anywhere.
+ A starting point when searching for valid values is this [source file](https://github.com/netbirdio/netbird/blob/v${cfg.packag.version}/relay/cmd/root.go) + A starting point when searching for valid values is this [source file](https://github.com/netbirdio/netbird/blob/main/relay/cmd/root.go)
+ ''; + '';
+ }; + };
+ +

View file

@ -1,7 +1,6 @@
_final: prev: { _final: prev: {
scripts = { scripts = {
clone-term = prev.callPackage ./clone-term.nix { }; clone-term = prev.callPackage ./clone-term.nix { };
impermanence-o = prev.callPackage ./impermanence-orphan.nix { };
deploy = prev.writeShellApplication { deploy = prev.writeShellApplication {
name = "deploy"; name = "deploy";
runtimeInputs = [ prev.nvd ]; runtimeInputs = [ prev.nvd ];

View file

@ -1,17 +0,0 @@
{ writers }:
writers.writePython3Bin "find-orphaned" { } ''
import sys
import os
if len(sys.argv) != 2:
print("Please give a singular argument containing the folder to prune")
exit(1)
mountpoint = sys.argv[1]
if !os.path.exists(mountpoint)):
print("Argument has to exist")
exit(1)
with open("/proc/mounts", "r") as f:
mounts = [line.split() for line in f.readlines()]
toplevel =
current = [mountpoint]
print(os.listdir(mountpoint))
''

View file

@ -1,14 +1,60 @@
{ pkgs, ... }:
{ {
home.packages = [ pkgs,
lib,
minimal,
config,
...
}:
lib.optionalAttrs (!minimal) {
hm.home.packages = [
pkgs.xclip pkgs.xclip
pkgs.xdragon pkgs.xdragon
]; ];
imports = [ imports = [
../.
./rofi.nix ./rofi.nix
./i3.nix ./i3.nix
]; ];
#xsession.wallpapers.enable = true; #xsession.wallpapers.enable = true;
home.file.".xinitrc".source = ./xinitrc; hm.home.file.".xinitrc".source = ./xinitrc;
# Configure keymap in X11
services.xserver = {
enable = true;
displayManager.startx.enable = true;
autoRepeatDelay = 235;
autoRepeatInterval = 60;
videoDrivers = [ "modesetting" ];
};
services.libinput = {
enable = true;
mouse = {
accelSpeed = "0.5";
accelProfile = "flat";
middleEmulation = false;
};
touchpad = {
accelProfile = "flat";
accelSpeed = "1";
naturalScrolling = true;
disableWhileTyping = true;
};
};
services.udev.extraRules =
let
exe = pkgs.writeShellScript "set-key-repeat" ''
if [ -d "/tmp/.X11-unix" ]; then
for D in /tmp/.X11-unix/*; do
file=$(${pkgs.coreutils}/bin/basename $D)
export DISPLAY=":''${file:1}"
user=$(${pkgs.coreutils}/bin/stat -c '%U' "$D")
# sleep to give X time to access the keyboard
(sleep 0.2; ${pkgs.util-linux}/bin/runuser -u "$user" -- ${pkgs.xorg.xset}/bin/xset r rate \
${toString config.services.xserver.autoRepeatDelay} ${toString config.services.xserver.autoRepeatInterval})&
done
fi
'';
in
''
ACTION=="add", SUBSYSTEM=="input", ATTRS{bInterfaceClass}=="03", RUN+="${exe}"
'';
} }

View file

@ -1,103 +1,106 @@
{ {
config,
pkgs, pkgs,
lib, lib,
... ...
}: }:
{ {
# import shared sway config # import shared sway config
imports = [ ../sway3.nix ]; imports = [ ./sway3.nix ];
systemd.user.services = {
flameshot.Install.WantedBy = lib.mkForce [ "i3-session.target" ];
};
stylix.targets.i3.enable = true;
xsession.windowManager.i3 = { hm =
enable = true; { config, ... }:
enableSystemdTarget = true; {
config = { systemd.user.services = {
startup = [ flameshot.Install.WantedBy = lib.mkForce [ "i3-session.target" ];
{ };
command = "${pkgs.xorg.xrandr}/bin/xrandr --output DVI-D-0 --mode 1920x1080 --pos 0x0 --rate 60.00 --output DP-4 --mode 2560x1440 --pos 1920x720 --primary --rate 144 --output HDMI-0 --pos 0x1080 --rate 60.00"; stylix.targets.i3.enable = true;
} xsession.windowManager.i3 = {
]; enable = true;
menu = "rofi -show drun"; enableSystemdTarget = true;
keybindings = config = {
let startup = [
cfg = config.xsession.windowManager.i3.config; {
maim = "${pkgs.maim}/bin/maim -qs -b 1 --hidecursor"; command = "${pkgs.xorg.xrandr}/bin/xrandr --output DVI-D-0 --mode 1920x1080 --pos 0x0 --rate 60.00 --output DP-4 --mode 2560x1440 --pos 1920x720 --primary --rate 144 --output HDMI-0 --pos 0x1080 --rate 60.00";
in }
{ ];
"Menu" = "exec ${cfg.menu}"; menu = "rofi -show drun";
"Ctrl+F9" = "exec ${config.xsession.wallpapers.script}"; keybindings =
"${cfg.modifier}+F12" =
"exec "
+ toString (
pkgs.writeShellScript "clipboard-screenshot" ''
${maim} | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png
''
);
"${cfg.modifier}+F11" =
"exec "
+ toString (
pkgs.writeShellScript "clipboard-screenshot" ''
out="screenshot-$(date +"%Y-%m-%dT%H:%M:%S%:z")"
${maim} | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png
''
);
"${cfg.modifier}+F10" =
let let
nsend = '' cfg = config.xsession.windowManager.i3.config;
${pkgs.libnotify}/bin/notify-send \ maim = "${pkgs.maim}/bin/maim -qs -b 1 --hidecursor";
-h string:category:Screenshot\
'';
in in
"exec " {
+ toString ( "Menu" = "exec ${cfg.menu}";
pkgs.writeShellScript "clipboard-qr-screenshot" '' "Ctrl+F9" = "exec ${config.xsession.wallpapers.script}";
set -euo pipefail "${cfg.modifier}+F12" =
if qr=$(${maim} | ${pkgs.zbar}/bin/zbarimg -q --raw -); then "exec "
return=$? + toString (
else pkgs.writeShellScript "clipboard-screenshot" ''
return=$? ${maim} | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png
fi ''
case "$return" in );
"0") "${cfg.modifier}+F11" =
${nsend} "Copied qr to clipboard" "exec "
${pkgs.xclip}/bin/xclip -selection clipboard -f <<< ''${qr%"''${qr##*[![:space:]]}"} + toString (
exit 0 pkgs.writeShellScript "clipboard-screenshot" ''
;; out="screenshot-$(date +"%Y-%m-%dT%H:%M:%S%:z")"
"4") ${maim} | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png
${nsend} "No qr found" ''
;; );
*) "${cfg.modifier}+F10" =
${nsend} "Failure scanning qr" let
;; nsend = ''
esac ${pkgs.libnotify}/bin/notify-send \
'' -h string:category:Screenshot\
); '';
"${cfg.modifier}+F9" = in
"exec " "exec "
+ toString ( + toString (
pkgs.writeShellScript "clipboard-ocr-screenshot" '' pkgs.writeShellScript "clipboard-qr-screenshot" ''
set -euo pipefail set -euo pipefail
qr=$(${maim} | ${pkgs.zbar}/bin/zbarimg -q --raw -) || true if qr=$(${maim} | ${pkgs.zbar}/bin/zbarimg -q --raw -); then
case "$?" in return=$?
0) else
${pkgs.libnotify}/bin/notify-send -h string:category:"Screenshot" "Copied qr to clipboard" return=$?
${pkgs.xclip}/bin/xclip -selection clipboard -f <<< ''${qr%"''${qr##*[![:space:]]}"} fi
exit 0 case "$return" in
;; "0")
4) ${nsend} "Copied qr to clipboard"
${pkgs.libnotify}/bin/notify-send -h string:category:"Screenshot" "No qr found" ${pkgs.xclip}/bin/xclip -selection clipboard -f <<< ''${qr%"''${qr##*[![:space:]]}"}
;; exit 0
*) ;;
${pkgs.libnotify}/bin/notify-send -h string:category:"Screenshot" "Failure scanning qr" "4")
;; ${nsend} "No qr found"
esac ;;
'' *)
); ${nsend} "Failure scanning qr"
;;
esac
''
);
"${cfg.modifier}+F9" =
"exec "
+ toString (
pkgs.writeShellScript "clipboard-ocr-screenshot" ''
set -euo pipefail
qr=$(${maim} | ${pkgs.zbar}/bin/zbarimg -q --raw -) || true
case "$?" in
0)
${pkgs.libnotify}/bin/notify-send -h string:category:"Screenshot" "Copied qr to clipboard"
${pkgs.xclip}/bin/xclip -selection clipboard -f <<< ''${qr%"''${qr##*[![:space:]]}"}
exit 0
;;
4)
${pkgs.libnotify}/bin/notify-send -h string:category:"Screenshot" "No qr found"
;;
*)
${pkgs.libnotify}/bin/notify-send -h string:category:"Screenshot" "Failure scanning qr"
;;
esac
''
);
};
}; };
};
}; };
};
} }

View file

@ -1,6 +1,6 @@
{ {
stylix.targets.rofi.enable = true; hm.stylix.targets.rofi.enable = true;
programs.rofi = { hm.programs.rofi = {
enable = true; enable = true;
extraConfig = { extraConfig = {
matching = "fuzzy"; matching = "fuzzy";

View file

@ -113,14 +113,6 @@ in
"x" "x"
"p" "p"
]; ];
"gojo" = output "eDP-1" [
"1"
"2"
"3"
"4"
"5"
"6"
];
} }
.${nixConfig.node.name} or [ ]; .${nixConfig.node.name} or [ ];

View file

@ -1,49 +0,0 @@
{
pkgs,
lib,
minimal,
config,
...
}:
lib.optionalAttrs (!minimal) {
# Configure keymap in X11
services.xserver = {
enable = true;
displayManager.startx.enable = true;
autoRepeatDelay = 235;
autoRepeatInterval = 60;
videoDrivers = [ "modesetting" ];
};
services.libinput = {
enable = true;
mouse = {
accelSpeed = "0.5";
accelProfile = "flat";
middleEmulation = false;
};
touchpad = {
accelProfile = "flat";
accelSpeed = "1";
naturalScrolling = true;
disableWhileTyping = true;
};
};
services.udev.extraRules =
let
exe = pkgs.writeShellScript "set-key-repeat" ''
if [ -d "/tmp/.X11-unix" ]; then
for D in /tmp/.X11-unix/*; do
file=$(${pkgs.coreutils}/bin/basename $D)
export DISPLAY=":''${file:1}"
user=$(${pkgs.coreutils}/bin/stat -c '%U' "$D")
# sleep to give X time to access the keyboard
(sleep 0.2; ${pkgs.util-linux}/bin/runuser -u "$user" -- ${pkgs.xorg.xset}/bin/xset r rate \
${toString config.services.xserver.autoRepeatDelay} ${toString config.services.xserver.autoRepeatInterval})&
done
fi
'';
in
''
ACTION=="add", SUBSYSTEM=="input", ATTRS{bInterfaceClass}=="03", RUN+="${exe}"
'';
}

View file

@ -55,6 +55,7 @@ lib.optionalAttrs (!minimal) {
./theme.nix ./theme.nix
./wayland ./wayland
./Xorg
./programs/bottles.nix ./programs/bottles.nix
./programs/direnv.nix ./programs/direnv.nix

View file

@ -213,13 +213,13 @@ in
xwayland.force_zero_scaling = true; xwayland.force_zero_scaling = true;
windowrulev2 = [ windowrulev2 = [
# fix these once nvidia gets their shit together # fix these once nvidia gets their shit together
#"immediate, class:^(cs2)$" "immediate, class:^(cs2)$"
# apex legends # apex legends
"immediate, class:^(steam_app_1172470)$" "immediate, class:^(steam_app_1172470)$"
#??? #???
"immediate, class:^(steam_app_238960)$" "immediate, class:^(steam_app_238960)$"
#baldur #baldur
#"immediate, class:^(steam_app_1086940)$" "immediate, class:^(steam_app_1086940)$"
"float, class:^(steam)$, title:^(Friends List)" "float, class:^(steam)$, title:^(Friends List)"
"float, class:^(steam)$, title:(Chat)" "float, class:^(steam)$, title:(Chat)"