From d7eb08fa9845eee6f7a05631bce8bfffdfe47e75 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sun, 17 Nov 2024 14:30:57 +0100 Subject: [PATCH] feat: reenable xorg for vr --- config/services/kanidm.nix | 2 +- users/patrick/Xorg/default.nix | 54 ++++++++- users/patrick/Xorg/i3.nix | 183 +++++++++++++++-------------- users/patrick/Xorg/rofi.nix | 4 +- users/patrick/Xorg/sway3.nix | 8 -- users/patrick/Xorg/xserver.nix | 49 -------- users/patrick/default.nix | 1 + users/patrick/wayland/hyprland.nix | 4 +- 8 files changed, 149 insertions(+), 156 deletions(-) delete mode 100644 users/patrick/Xorg/xserver.nix diff --git a/config/services/kanidm.nix b/config/services/kanidm.nix index 328b8a4..e2aa622 100644 --- a/config/services/kanidm.nix +++ b/config/services/kanidm.nix @@ -222,7 +222,7 @@ in systems.oauth2.netbird = { public = true; 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}/"; preferShortUsername = true; enableLocalhostRedirects = true; diff --git a/users/patrick/Xorg/default.nix b/users/patrick/Xorg/default.nix index 41f1c7b..2a28243 100644 --- a/users/patrick/Xorg/default.nix +++ b/users/patrick/Xorg/default.nix @@ -1,14 +1,60 @@ -{ pkgs, ... }: { - home.packages = [ + pkgs, + lib, + minimal, + config, + ... +}: +lib.optionalAttrs (!minimal) { + hm.home.packages = [ pkgs.xclip pkgs.xdragon ]; imports = [ - ../. ./rofi.nix ./i3.nix ]; #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}" + ''; } diff --git a/users/patrick/Xorg/i3.nix b/users/patrick/Xorg/i3.nix index 34dfec0..c62fb0e 100644 --- a/users/patrick/Xorg/i3.nix +++ b/users/patrick/Xorg/i3.nix @@ -1,103 +1,106 @@ { - config, pkgs, lib, ... }: { # import shared sway config - imports = [ ../sway3.nix ]; - systemd.user.services = { - flameshot.Install.WantedBy = lib.mkForce [ "i3-session.target" ]; - }; - stylix.targets.i3.enable = true; + imports = [ ./sway3.nix ]; - xsession.windowManager.i3 = { - enable = true; - enableSystemdTarget = true; - config = { - startup = [ - { - 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"; - } - ]; - menu = "rofi -show drun"; - keybindings = - let - cfg = config.xsession.windowManager.i3.config; - maim = "${pkgs.maim}/bin/maim -qs -b 1 --hidecursor"; - in - { - "Menu" = "exec ${cfg.menu}"; - "Ctrl+F9" = "exec ${config.xsession.wallpapers.script}"; - "${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" = + hm = + { config, ... }: + { + systemd.user.services = { + flameshot.Install.WantedBy = lib.mkForce [ "i3-session.target" ]; + }; + stylix.targets.i3.enable = true; + xsession.windowManager.i3 = { + enable = true; + enableSystemdTarget = true; + config = { + startup = [ + { + 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"; + } + ]; + menu = "rofi -show drun"; + keybindings = let - nsend = '' - ${pkgs.libnotify}/bin/notify-send \ - -h string:category:Screenshot\ - ''; + cfg = config.xsession.windowManager.i3.config; + maim = "${pkgs.maim}/bin/maim -qs -b 1 --hidecursor"; in - "exec " - + toString ( - pkgs.writeShellScript "clipboard-qr-screenshot" '' - set -euo pipefail - if qr=$(${maim} | ${pkgs.zbar}/bin/zbarimg -q --raw -); then - return=$? - else - return=$? - fi - case "$return" in - "0") - ${nsend} "Copied qr to clipboard" - ${pkgs.xclip}/bin/xclip -selection clipboard -f <<< ''${qr%"''${qr##*[![:space:]]}"} - exit 0 - ;; - "4") - ${nsend} "No qr found" - ;; - *) - ${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 - '' - ); + { + "Menu" = "exec ${cfg.menu}"; + "Ctrl+F9" = "exec ${config.xsession.wallpapers.script}"; + "${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 + nsend = '' + ${pkgs.libnotify}/bin/notify-send \ + -h string:category:Screenshot\ + ''; + in + "exec " + + toString ( + pkgs.writeShellScript "clipboard-qr-screenshot" '' + set -euo pipefail + if qr=$(${maim} | ${pkgs.zbar}/bin/zbarimg -q --raw -); then + return=$? + else + return=$? + fi + case "$return" in + "0") + ${nsend} "Copied qr to clipboard" + ${pkgs.xclip}/bin/xclip -selection clipboard -f <<< ''${qr%"''${qr##*[![:space:]]}"} + exit 0 + ;; + "4") + ${nsend} "No qr found" + ;; + *) + ${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 + '' + ); + }; }; + }; }; - }; } diff --git a/users/patrick/Xorg/rofi.nix b/users/patrick/Xorg/rofi.nix index abdd4fc..6cf1705 100644 --- a/users/patrick/Xorg/rofi.nix +++ b/users/patrick/Xorg/rofi.nix @@ -1,6 +1,6 @@ { - stylix.targets.rofi.enable = true; - programs.rofi = { + hm.stylix.targets.rofi.enable = true; + hm.programs.rofi = { enable = true; extraConfig = { matching = "fuzzy"; diff --git a/users/patrick/Xorg/sway3.nix b/users/patrick/Xorg/sway3.nix index 1d646b0..0ab0235 100644 --- a/users/patrick/Xorg/sway3.nix +++ b/users/patrick/Xorg/sway3.nix @@ -113,14 +113,6 @@ in "x" "p" ]; - "gojo" = output "eDP-1" [ - "1" - "2" - "3" - "4" - "5" - "6" - ]; } .${nixConfig.node.name} or [ ]; diff --git a/users/patrick/Xorg/xserver.nix b/users/patrick/Xorg/xserver.nix deleted file mode 100644 index cbacbbe..0000000 --- a/users/patrick/Xorg/xserver.nix +++ /dev/null @@ -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}" - ''; -} diff --git a/users/patrick/default.nix b/users/patrick/default.nix index 380cf77..280111d 100644 --- a/users/patrick/default.nix +++ b/users/patrick/default.nix @@ -55,6 +55,7 @@ lib.optionalAttrs (!minimal) { ./theme.nix ./wayland + ./Xorg ./programs/bottles.nix ./programs/direnv.nix diff --git a/users/patrick/wayland/hyprland.nix b/users/patrick/wayland/hyprland.nix index 3d0f82c..b1de873 100644 --- a/users/patrick/wayland/hyprland.nix +++ b/users/patrick/wayland/hyprland.nix @@ -213,13 +213,13 @@ in xwayland.force_zero_scaling = true; windowrulev2 = [ # fix these once nvidia gets their shit together - #"immediate, class:^(cs2)$" + "immediate, class:^(cs2)$" # apex legends "immediate, class:^(steam_app_1172470)$" #??? "immediate, class:^(steam_app_238960)$" #baldur - #"immediate, class:^(steam_app_1086940)$" + "immediate, class:^(steam_app_1086940)$" "float, class:^(steam)$, title:^(Friends List)" "float, class:^(steam)$, title:(Chat)"