From 624606d853b30923944abc7e28a58fcca614a55b Mon Sep 17 00:00:00 2001 From: kenji Date: Wed, 20 Aug 2025 13:52:02 -0500 Subject: [PATCH] mass migration --- modules/desktop/desktop.nix | 62 ++-- modules/desktop/hyprland/default.nix | 3 +- modules/desktop/hyprland/hypr/env.nix | 34 +- modules/desktop/hyprland/hypr/general.nix | 274 ++++++++--------- modules/desktop/hyprland/hypr/keybinds.nix | 342 ++++++++++----------- modules/desktop/hyprland/hypr/rules.nix | 272 ++++++++-------- 6 files changed, 492 insertions(+), 495 deletions(-) diff --git a/modules/desktop/desktop.nix b/modules/desktop/desktop.nix index 3fd0f1f42..5032d474c 100644 --- a/modules/desktop/desktop.nix +++ b/modules/desktop/desktop.nix @@ -9,41 +9,51 @@ in { imports = [ ../options.nix - ./hyprland/default.nix ]; - # ++ lib.optionals (cfg.enable && cfg.settings.hyprland.useNixForConf) [ - # ./hyprland/default.nix - # ]; config = lib.mkIf cfg.enable { wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; systemd.enable = true; + + settings = lib.mkMerge [ + (import ./hyprland/hypr/keybinds.nix {inherit config pkgs;}) + (import ./hyprland/hypr/execs.nix {inherit config pkgs;}) + (import ./hyprland/hypr/rules.nix {inherit config pkgs;}) + (import ./hyprland/hypr/env.nix {inherit config pkgs;}) + (import ./hyprland/hypr/colours.nix {inherit config pkgs;}) + ]; }; - # imports = lib.optionals cfg.settings.hyprland.useNixForConf [ - # ./hyprland/hypr/keybinds.nix - # ./hyprland/hypr/execs.nix - # ./hyprland/hypr/rules.nix - # ./hyprland/hypr/env.nix - # ./hyprland/hypr/colours.nix - # ]; - home.file = { - ".config/quickshell".source = builtins.path {path = ../../.config/quickshell;}; - - # dont forget hypridle and hyprlock!!! - ".config/kitty".source = builtins.path {path = ../../.config/kitty;}; - ".config/foot".source = builtins.path {path = ../../.config/foot;}; - ".config/matugen".source = builtins.path {path = ../../.config/matugen;}; - - # wont modify these in nix format, coz im lazy - ".config/qt5ct".source = builtins.path {path = ../../.config/qt5ct;}; - ".config/qt6ct".source = builtins.path {path = ../../.config/qt6ct;}; - ".config/wlogout".source = builtins.path {path = ../../.config/wlogout;}; - ".config/Kvantum".source = builtins.path {path = ../../.config/Kvantum;}; - ".config/xdg-desktop-portal".source = builtins.path {path = ../../.config/xdg-desktop-portal;}; - }; + home.file = lib.mkMerge [ + (lib.mkIf cfg.settings.hyprland.useNixForConf { + ".config/hypr/scripts" = { + source = builtins.path { + path = ../../.config/hypr/hyprland/scripts; + executable = true; + }; + }; + }) + (lib.mkIf (!cfg.settings.hyprland.useNixForConf) { + ".config/hypr" = { + source = builtins.path { + path = ../../.config/hypr; + }; + }; + }) + { + ".config/quickshell".source = builtins.path {path = ../../.config/quickshell;}; + ".config/kitty".source = builtins.path {path = ../../.config/kitty;}; + ".config/foot".source = builtins.path {path = ../../.config/foot;}; + ".config/matugen".source = builtins.path {path = ../../.config/matugen;}; + ".config/qt5ct".source = builtins.path {path = ../../.config/qt5ct;}; + ".config/qt6ct".source = builtins.path {path = ../../.config/qt6ct;}; + ".config/wlogout".source = builtins.path {path = ../../.config/wlogout;}; + ".config/Kvantum".source = builtins.path {path = ../../.config/Kvantum;}; + ".config/xdg-desktop-portal".source = builtins.path {path = ../../.config/xdg-desktop-portal;}; + } + ]; home.packages = import ../packages.nix {inherit pkgs;} diff --git a/modules/desktop/hyprland/default.nix b/modules/desktop/hyprland/default.nix index 9215f0118..29de017f9 100644 --- a/modules/desktop/hyprland/default.nix +++ b/modules/desktop/hyprland/default.nix @@ -6,8 +6,7 @@ }: let cfg = config.programs.illogical-impulse; in { - - imports = lib.optionals cfg.settings.hyprland.useNixForConf [ + imports = [ ./hypr/keybinds.nix ./hypr/execs.nix ./hypr/rules.nix diff --git a/modules/desktop/hyprland/hypr/env.nix b/modules/desktop/hyprland/hypr/env.nix index 4d95076cc..2abc57bd5 100644 --- a/modules/desktop/hyprland/hypr/env.nix +++ b/modules/desktop/hyprland/hypr/env.nix @@ -3,28 +3,22 @@ pkgs, ... }: { - wayland.windowManager.hyprland.settings = { - env = [ - # Input method - "QT_IM_MODULE, fcitx" - "XMODIFIERS, @im=fcitx" - "SDL_IM_MODULE, fcitx" - "GLFW_IM_MODULE, ibus" - "INPUT_METHOD, fcitx" + # This file only defines the `env` attribute, which is a part of the settings. + env = [ + "QT_IM_MODULE, fcitx" + "XMODIFIERS, @im=fcitx" + "SDL_IM_MODULE, fcitx" + "GLFW_IM_MODULE, ibus" + "INPUT_METHOD, fcitx" - # Wayland - "ELECTRON_OZONE_PLATFORM_HINT, auto" + "ELECTRON_OZONE_PLATFORM_HINT, auto" - # Themes - "QT_QPA_PLATFORM, wayland" - "QT_QPA_PLATFORMTHEME, kde" - "XDG_MENU_PREFIX, plasma-" + "QT_QPA_PLATFORM, wayland" + "QT_QPA_PLATFORMTHEME, kde" + "XDG_MENU_PREFIX, plasma-" - # Virtual environment - "ILLOGICAL_IMPULSE_VIRTUAL_ENV, ~/.local/state/quickshell/.venv" + "ILLOGICAL_IMPULSE_VIRTUAL_ENV, ~/.local/state/quickshell/.venv" - # Terminal application - "TERMINAL, kitty -1" - ]; - }; + "TERMINAL, kitty -1" + ]; } diff --git a/modules/desktop/hyprland/hypr/general.nix b/modules/desktop/hyprland/hypr/general.nix index 3c8958623..78d3349d1 100644 --- a/modules/desktop/hyprland/hypr/general.nix +++ b/modules/desktop/hyprland/hypr/general.nix @@ -3,153 +3,151 @@ pkgs, ... }: { - wayland.windowManager.hyprland.settings = { - monitor = [ - ",preferred,auto,1,transform, 0" - # "HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1" - # ",addreserved, 0, 0, 0, 0" - ]; + monitor = [ + ",preferred,auto,1,transform, 0" + # "HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1" + # ",addreserved, 0, 0, 0, 0" + ]; - gestures = { - workspace_swipe = true; - workspace_swipe_distance = 700; - workspace_swipe_fingers = 3; - workspace_swipe_min_fingers = true; - workspace_swipe_cancel_ratio = 0.2; - workspace_swipe_min_speed_to_force = 5; - workspace_swipe_direction_lock = true; - workspace_swipe_direction_lock_threshold = 10; - workspace_swipe_create_new = true; - }; + gestures = { + workspace_swipe = true; + workspace_swipe_distance = 700; + workspace_swipe_fingers = 3; + workspace_swipe_min_fingers = true; + workspace_swipe_cancel_ratio = 0.2; + workspace_swipe_min_speed_to_force = 5; + workspace_swipe_direction_lock = true; + workspace_swipe_direction_lock_threshold = 10; + workspace_swipe_create_new = true; + }; - general = { - gaps_in = 4; - gaps_out = 5; - gaps_workspaces = 50; - border_size = 1; - "col.active_border" = "rgba(0DB7D4FF)"; - "col.inactive_border" = "rgba(31313600)"; - resize_on_border = true; - no_focus_fallback = true; - allow_tearing = true; - snap.enabled = true; - }; + general = { + gaps_in = 4; + gaps_out = 5; + gaps_workspaces = 50; + border_size = 1; + "col.active_border" = "rgba(0DB7D4FF)"; + "col.inactive_border" = "rgba(31313600)"; + resize_on_border = true; + no_focus_fallback = true; + allow_tearing = true; + snap.enabled = true; + }; - dwindle = { - preserve_split = true; - smart_split = false; - smart_resizing = false; - # precise_mouse_move = true; - }; + dwindle = { + preserve_split = true; + smart_split = false; + smart_resizing = false; + # precise_mouse_move = true; + }; - decoration = { - rounding = 18; - blur = { - enabled = true; - xray = true; - special = false; - new_optimizations = true; - size = 14; - passes = 3; - brightness = 1; - noise = 0.01; - contrast = 1; - popups = true; - popups_ignorealpha = 0.6; - input_methods = true; - input_methods_ignorealpha = 0.8; - }; - shadow = { - enabled = true; - ignore_window = true; - range = 30; - offset = "0 2"; - render_power = 4; - color = "rgba(00000010)"; - }; - dim_inactive = true; - dim_strength = 0.025; - dim_special = 0.07; - }; - - animations = { + decoration = { + rounding = 18; + blur = { enabled = true; - bezier = [ - "expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90" - "expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98" - "expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00" - "emphasizedDecel, 0.05, 0.7, 0.1, 1" - "emphasizedAccel, 0.3, 0, 0.8, 0.15" - "standardDecel, 0, 0, 0, 1" - "menu_decel, 0.1, 1, 0, 1" - "menu_accel, 0.52, 0.03, 0.72, 0.08" - ]; - animation = [ - "windowsIn, 1, 3, emphasizedDecel, popin 80%" - "windowsOut, 1, 2, emphasizedDecel, popin 90%" - "windowsMove, 1, 3, emphasizedDecel, slide" - "border, 1, 10, emphasizedDecel" - "layersIn, 1, 2.7, emphasizedDecel, popin 93%" - "layersOut, 1, 2.4, menu_accel, popin 94%" - "fadeLayersIn, 1, 0.5, menu_decel" - "fadeLayersOut, 1, 2.7, menu_accel" - "workspaces, 1, 7, menu_decel, slide" - "specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert" - "specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert" - ]; + xray = true; + special = false; + new_optimizations = true; + size = 14; + passes = 3; + brightness = 1; + noise = 0.01; + contrast = 1; + popups = true; + popups_ignorealpha = 0.6; + input_methods = true; + input_methods_ignorealpha = 0.8; }; - - input = { - kb_layout = "us"; - numlock_by_default = true; - repeat_delay = 250; - repeat_rate = 35; - follow_mouse = 1; - off_window_axis_events = 2; - touchpad = { - natural_scroll = true; - disable_while_typing = true; - clickfinger_behavior = true; - scroll_factor = 0.5; - }; + shadow = { + enabled = true; + ignore_window = true; + range = 30; + offset = "0 2"; + render_power = 4; + color = "rgba(00000010)"; }; + dim_inactive = true; + dim_strength = 0.025; + dim_special = 0.07; + }; - misc = { - disable_hyprland_logo = true; - disable_splash_rendering = true; - vfr = 1; - vrr = 1; - mouse_move_enables_dpms = true; - key_press_enables_dpms = true; - animate_manual_resizes = false; - animate_mouse_windowdragging = false; - enable_swallow = false; - swallow_regex = "(foot|kitty|allacritty|Alacritty)"; - new_window_takes_over_fullscreen = 2; - allow_session_lock_restore = true; - # session_lock_xray = true; - initial_workspace_tracking = false; - focus_on_activate = true; - }; + animations = { + enabled = true; + bezier = [ + "expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90" + "expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98" + "expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00" + "emphasizedDecel, 0.05, 0.7, 0.1, 1" + "emphasizedAccel, 0.3, 0, 0.8, 0.15" + "standardDecel, 0, 0, 0, 1" + "menu_decel, 0.1, 1, 0, 1" + "menu_accel, 0.52, 0.03, 0.72, 0.08" + ]; + animation = [ + "windowsIn, 1, 3, emphasizedDecel, popin 80%" + "windowsOut, 1, 2, emphasizedDecel, popin 90%" + "windowsMove, 1, 3, emphasizedDecel, slide" + "border, 1, 10, emphasizedDecel" + "layersIn, 1, 2.7, emphasizedDecel, popin 93%" + "layersOut, 1, 2.4, menu_accel, popin 94%" + "fadeLayersIn, 1, 0.5, menu_decel" + "fadeLayersOut, 1, 2.7, menu_accel" + "workspaces, 1, 7, menu_decel, slide" + "specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert" + "specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert" + ]; + }; - binds = { - scroll_event_delay = 0; - hide_special_on_workspace_change = true; - }; - - cursor = { - zoom_factor = 1; - zoom_rigid = false; - }; - - plugin.hyprexpo = { - columns = 3; - gap_size = 5; - bg_col = "rgb(000000)"; - workspace_method = "first 1"; - enable_gesture = false; - gesture_distance = 300; - gesture_positive = false; + input = { + kb_layout = "us"; + numlock_by_default = true; + repeat_delay = 250; + repeat_rate = 35; + follow_mouse = 1; + off_window_axis_events = 2; + touchpad = { + natural_scroll = true; + disable_while_typing = true; + clickfinger_behavior = true; + scroll_factor = 0.5; }; }; + + misc = { + disable_hyprland_logo = true; + disable_splash_rendering = true; + vfr = 1; + vrr = 1; + mouse_move_enables_dpms = true; + key_press_enables_dpms = true; + animate_manual_resizes = false; + animate_mouse_windowdragging = false; + enable_swallow = false; + swallow_regex = "(foot|kitty|allacritty|Alacritty)"; + new_window_takes_over_fullscreen = 2; + allow_session_lock_restore = true; + # session_lock_xray = true; + initial_workspace_tracking = false; + focus_on_activate = true; + }; + + binds = { + scroll_event_delay = 0; + hide_special_on_workspace_change = true; + }; + + cursor = { + zoom_factor = 1; + zoom_rigid = false; + }; + + plugin.hyprexpo = { + columns = 3; + gap_size = 5; + bg_col = "rgb(000000)"; + workspace_method = "first 1"; + enable_gesture = false; + gesture_distance = 300; + gesture_positive = false; + }; } diff --git a/modules/desktop/hyprland/hypr/keybinds.nix b/modules/desktop/hyprland/hypr/keybinds.nix index 2e2e9ac2d..f7150993b 100644 --- a/modules/desktop/hyprland/hypr/keybinds.nix +++ b/modules/desktop/hyprland/hypr/keybinds.nix @@ -3,187 +3,185 @@ pkgs, ... }: { - wayland.windowManager.hyprland.settings = { - # Shell keybinds - bindi = [ - "Super, Super_L, Toggle overview, global, quickshell:overviewToggleRelease" - ]; - binditn = [ - "Super, catchall, global, quickshell:overviewToggleReleaseInterrupt" - "Ctrl, Super_L, global, quickshell:overviewToggleReleaseInterrupt" - "Super, mouse:272, global, quickshell:overviewToggleReleaseInterrupt" - "Super, mouse:273, global, quickshell:overviewToggleReleaseInterrupt" - "Super, mouse:274, global, quickshell:overviewToggleReleaseInterrupt" - "Super, mouse:275, global, quickshell:overviewToggleReleaseInterrupt" - "Super, mouse:276, global, quickshell:overviewToggleReleaseInterrupt" - "Super, mouse:277, global, quickshell:overviewToggleReleaseInterrupt" - "Super, mouse_up, global, quickshell:overviewToggleReleaseInterrupt" - "Super, mouse_down, global, quickshell:overviewToggleReleaseInterrupt" - ]; - bindit = [ - ", Super_L, global, quickshell:workspaceNumber" - ]; - bindd = [ - # The Nix module for Hyprland doesn't use `bindd` as a separate type, - # but it's used in the config file to handle cheatsheet descriptions. - # We'll put these into the main `bind` list and resolve the duplicates. - # The `bindd` lines here were already duplicates of the `bind` lines - # in your previous example, so they were the source of the conflict. - # I am merging them into a single, comprehensive `bind` list below. - ]; + # Shell keybinds + bindi = [ + "Super, Super_L, Toggle overview, global, quickshell:overviewToggleRelease" + ]; + binditn = [ + "Super, catchall, global, quickshell:overviewToggleReleaseInterrupt" + "Ctrl, Super_L, global, quickshell:overviewToggleReleaseInterrupt" + "Super, mouse:272, global, quickshell:overviewToggleReleaseInterrupt" + "Super, mouse:273, global, quickshell:overviewToggleReleaseInterrupt" + "Super, mouse:274, global, quickshell:overviewToggleReleaseInterrupt" + "Super, mouse:275, global, quickshell:overviewToggleReleaseInterrupt" + "Super, mouse:276, global, quickshell:overviewToggleReleaseInterrupt" + "Super, mouse:277, global, quickshell:overviewToggleReleaseInterrupt" + "Super, mouse_up, global, quickshell:overviewToggleReleaseInterrupt" + "Super, mouse_down, global, quickshell:overviewToggleReleaseInterrupt" + ]; + bindit = [ + ", Super_L, global, quickshell:workspaceNumber" + ]; + bindd = [ + # The Nix module for Hyprland doesn't use `bindd` as a separate type, + # but it's used in the config file to handle cheatsheet descriptions. + # We'll put these into the main `bind` list and resolve the duplicates. + # The `bindd` lines here were already duplicates of the `bind` lines + # in your previous example, so they were the source of the conflict. + # I am merging them into a single, comprehensive `bind` list below. + ]; - # All unique keybindings are listed here. - bind = - [ - # Shell and QuickShell keybinds - "Super, V, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy" - "Super, Period, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy" - "Super, Tab, global, quickshell:overviewToggle" - "Super, A, global, quickshell:sidebarLeftToggle" - "Super+Alt, A, global, quickshell:sidebarLeftToggleDetach" - "Super, B, global, quickshell:sidebarLeftToggle" - "Super, O, global, quickshell:sidebarLeftToggle" - "Super, N, global, quickshell:sidebarRightToggle" - "Super, Slash, global, quickshell:ch+CtrleatsheetToggle" - "Super, M, global, quickshell:mediaControlsToggle" - "Ctrl+Alt, Delete, global, quickshell:sessionToggle" - "Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell" - "Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml" + # All unique keybindings are listed here. + bind = + [ + # Shell and QuickShell keybinds + "Super, V, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy" + "Super, Period, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy" + "Super, Tab, global, quickshell:overviewToggle" + "Super, A, global, quickshell:sidebarLeftToggle" + "Super+Alt, A, global, quickshell:sidebarLeftToggleDetach" + "Super, B, global, quickshell:sidebarLeftToggle" + "Super, O, global, quickshell:sidebarLeftToggle" + "Super, N, global, quickshell:sidebarRightToggle" + "Super, Slash, global, quickshell:ch+CtrleatsheetToggle" + "Super, M, global, quickshell:mediaControlsToggle" + "Ctrl+Alt, Delete, global, quickshell:sessionToggle" + "Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell" + "Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml" - # Utilities keybinds - "Super+Shift, S, exec, qs -p ~/.config/quickshell/$qsConfig/screenshot.qml || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent" - "Super+Shift, T, exec, grim -g \"$(slurp $SLURP_ARGS)\" \"tmp.png\" && tesseract \"tmp.png\" - | wl-copy && rm \"tmp.png\"" - "Super+Shift, C, exec, hyprpicker -a" - "Super+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh" - "Ctrl+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh --fullscreen" - "Super+Shift+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh --fullscreen-sound" - "Super+Shift+Alt, mouse:273, exec, ~/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh" - "Ctrl+Super, T, exec, ~/.config/hypr/hyprland/scripts/colors/switchwall.sh" - "Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool qs quickshell; qs -c $qsConfig &" - "Ctrl+Super, Backslash, resizeactive, exact 640 480" - "Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i \"nipple\" | grep -v -i \"pussy\" | shuf -n 1); ACTION=$(notify-send \"Test notification with body image\" \"This notification should contain your user account image and Discord icon. Oh and here is a random image in your Pictures folder: \\\"Testing\" -a \"Hyprland keybind\" -p -h \"string:image-path:/var/lib/AccountsService/icons/$USER\" -t 6000 -i \"discord\" -A \"openImage=Open profile image\" -A \"action2=Open the random image\" -A \"action3=Useless button\"); [[ $ACTION == *openImage ]] && xdg-open \"/var/lib/AccountsService/icons/$USER\"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"'" - "Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i \"nipple\" | grep -v -i \"pussy\" | shuf -n 1); ACTION=$(notify-send \"Test notification\" \"This notification should contain a random image in your Pictures folder and Discord icon.\\nFlick right to dismiss!\" -a \"Discord (fake)\" -p -h \"string:image-path:$RANDOM_IMAGE\" -t 6000 -i \"discord\" -A \"openImage=Open profile image\" -A \"action2=Useless button\" -A \"action3=Cry more\"); [[ $ACTION == *openImage ]] && xdg-open \"/var/lib/AccountsService/icons/$USER\"'" - "Super+Alt, Equal, exec, notify-send \"Urgent notification\" \"Ah hell no\" -u critical -a 'Hyprland keybind'" + # Utilities keybinds + "Super+Shift, S, exec, qs -p ~/.config/quickshell/$qsConfig/screenshot.qml || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent" + "Super+Shift, T, exec, grim -g \"$(slurp $SLURP_ARGS)\" \"tmp.png\" && tesseract \"tmp.png\" - | wl-copy && rm \"tmp.png\"" + "Super+Shift, C, exec, hyprpicker -a" + "Super+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh" + "Ctrl+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh --fullscreen" + "Super+Shift+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh --fullscreen-sound" + "Super+Shift+Alt, mouse:273, exec, ~/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh" + "Ctrl+Super, T, exec, ~/.config/hypr/hyprland/scripts/colors/switchwall.sh" + "Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool qs quickshell; qs -c $qsConfig &" + "Ctrl+Super, Backslash, resizeactive, exact 640 480" + "Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i \"nipple\" | grep -v -i \"pussy\" | shuf -n 1); ACTION=$(notify-send \"Test notification with body image\" \"This notification should contain your user account image and Discord icon. Oh and here is a random image in your Pictures folder: \\\"Testing\" -a \"Hyprland keybind\" -p -h \"string:image-path:/var/lib/AccountsService/icons/$USER\" -t 6000 -i \"discord\" -A \"openImage=Open profile image\" -A \"action2=Open the random image\" -A \"action3=Useless button\"); [[ $ACTION == *openImage ]] && xdg-open \"/var/lib/AccountsService/icons/$USER\"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"'" + "Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i \"nipple\" | grep -v -i \"pussy\" | shuf -n 1); ACTION=$(notify-send \"Test notification\" \"This notification should contain a random image in your Pictures folder and Discord icon.\\nFlick right to dismiss!\" -a \"Discord (fake)\" -p -h \"string:image-path:$RANDOM_IMAGE\" -t 6000 -i \"discord\" -A \"openImage=Open profile image\" -A \"action2=Useless button\" -A \"action3=Cry more\"); [[ $ACTION == *openImage ]] && xdg-open \"/var/lib/AccountsService/icons/$USER\"'" + "Super+Alt, Equal, exec, notify-send \"Urgent notification\" \"Ah hell no\" -u critical -a 'Hyprland keybind'" - # Window management - "Super, Q, killactive" - "Super+Shift+Alt, Q, exec, hyprctl kill" - "Super+Alt, Space, togglefloating" - "Super, D, fullscreen, 1" - "Super, F, fullscreen, 0" - "Super+Alt, F, fullscreenstate, 0 3" - "Super, P, pin" - "Super, S, togglespecialworkspace" - "Super+Alt, S, movetoworkspacesilent, special" - "Alt, Tab, cyclenext" - "Alt, Tab, bringactivetotop" - "Super, mouse:275, togglespecialworkspace" + # Window management + "Super, Q, killactive" + "Super+Shift+Alt, Q, exec, hyprctl kill" + "Super+Alt, Space, togglefloating" + "Super, D, fullscreen, 1" + "Super, F, fullscreen, 0" + "Super+Alt, F, fullscreenstate, 0 3" + "Super, P, pin" + "Super, S, togglespecialworkspace" + "Super+Alt, S, movetoworkspacesilent, special" + "Alt, Tab, cyclenext" + "Alt, Tab, bringactivetotop" + "Super, mouse:275, togglespecialworkspace" - # Media - "Super+Shift, N, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`" - "Super+Shift, B, exec, playerctl previous" - "Super+Shift, P, exec, playerctl play-pause" - "Super+Shift+Alt, mouse:275, exec, playerctl previous" - "Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`" + # Media + "Super+Shift, N, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`" + "Super+Shift, B, exec, playerctl previous" + "Super+Shift, P, exec, playerctl play-pause" + "Super+Shift+Alt, mouse:275, exec, playerctl previous" + "Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`" - # Session - "Ctrl+Shift+Alt+Super, Delete, exec, systemctl poweroff || loginctl poweroff" + # Session + "Ctrl+Shift+Alt+Super, Delete, exec, systemctl poweroff || loginctl poweroff" - # Apps - "Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\"" - "Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\"" - "Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\"" - "Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"dolphin\" \"nautilus\" \"nemo\" \"thunar\" \"$TERMINAL\" \"kitty -1 fish -c yazi\"" - "Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"google-chrome-stable\" \"zen-browser\" \"firefox\" \"brave\" \"chromium\" \"microsoft-edge-stable\" \"opera\" \"librewolf\"" - "Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"code\" \"codium\" \"cursor\" \"zed\" \"zedit\" \"zeditor\" \"kate\" \"gnome-text-editor\" \"emacs\" \"command -v nvim && kitty -1 nvim\"" - "Super+Shift, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"wps\" \"onlyoffice-desktopeditors\"" - "Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"kate\" \"gnome-text-editor\" \"emacs\"" - "Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"pavucontrol-qt\" \"pavucontrol\"" - "Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"qs -p ~/.config/quickshell/$qsConfig/settings.qml\" \"systemsettings\" \"gnome-control-center\" \"better-control\"" - "Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"gnome-system-monitor\" \"plasma-systemmonitor --page-name Processes\" \"command -v btop && kitty -1 fish -c btop\"" + # Apps + "Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\"" + "Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\"" + "Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\"" + "Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"dolphin\" \"nautilus\" \"nemo\" \"thunar\" \"$TERMINAL\" \"kitty -1 fish -c yazi\"" + "Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"google-chrome-stable\" \"zen-browser\" \"firefox\" \"brave\" \"chromium\" \"microsoft-edge-stable\" \"opera\" \"librewolf\"" + "Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"code\" \"codium\" \"cursor\" \"zed\" \"zedit\" \"zeditor\" \"kate\" \"gnome-text-editor\" \"emacs\" \"command -v nvim && kitty -1 nvim\"" + "Super+Shift, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"wps\" \"onlyoffice-desktopeditors\"" + "Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"kate\" \"gnome-text-editor\" \"emacs\"" + "Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"pavucontrol-qt\" \"pavucontrol\"" + "Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"qs -p ~/.config/quickshell/$qsConfig/settings.qml\" \"systemsettings\" \"gnome-control-center\" \"better-control\"" + "Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"gnome-system-monitor\" \"plasma-systemmonitor --page-name Processes\" \"command -v btop && kitty -1 fish -c btop\"" - # Window movement and focus - "Super, Left, movefocus, l" - "Super, Right, movefocus, r" - "Super, Up, movefocus, u" - "Super, Down, movefocus, d" - "Super, BracketLeft, movefocus, l" - "Super, BracketRight, movefocus, r" - "Super+Shift, Left, movewindow, l" - "Super+Shift, Right, movewindow, r" - "Super+Shift, Up, movewindow, u" - "Super+Shift, Down, movewindow, d" - "Alt, F4, killactive" - "Super+Shift, mouse_down, movetoworkspace, r-1" - "Super+Shift, mouse_up, movetoworkspace, r+1" - "Super+Alt, mouse_down, movetoworkspace, -1" - "Super+Alt, mouse_up, movetoworkspace, +1" - "Super+Shift, Page_Down, movetoworkspace, r+1" - "Super+Shift, Page_Up, movetoworkspace, r-1" - "Ctrl+Super+Shift, Right, movetoworkspace, r+1" - "Ctrl+Super+Shift, Left, movetoworkspace, r-1" - "Ctrl+Super, Right, workspace, r+1" - "Ctrl+Super, Left, workspace, r-1" - "Ctrl+Super+Alt, Right, workspace, m+1" - "Ctrl+Super+Alt, Left, workspace, m-1" - "Super, Page_Down, workspace, +1" - "Super, Page_Up, workspace, -1" - "Ctrl+Super, Page_Down, workspace, r+1" - "Ctrl+Super, Page_Up, workspace, r-1" - "Super, mouse_up, workspace, +1" - "Super, mouse_down, workspace, -1" - "Ctrl+Super, mouse_up, workspace, r+1" - "Ctrl+Super, mouse_down, workspace, r-1" + # Window movement and focus + "Super, Left, movefocus, l" + "Super, Right, movefocus, r" + "Super, Up, movefocus, u" + "Super, Down, movefocus, d" + "Super, BracketLeft, movefocus, l" + "Super, BracketRight, movefocus, r" + "Super+Shift, Left, movewindow, l" + "Super+Shift, Right, movewindow, r" + "Super+Shift, Up, movewindow, u" + "Super+Shift, Down, movewindow, d" + "Alt, F4, killactive" + "Super+Shift, mouse_down, movetoworkspace, r-1" + "Super+Shift, mouse_up, movetoworkspace, r+1" + "Super+Alt, mouse_down, movetoworkspace, -1" + "Super+Alt, mouse_up, movetoworkspace, +1" + "Super+Shift, Page_Down, movetoworkspace, r+1" + "Super+Shift, Page_Up, movetoworkspace, r-1" + "Ctrl+Super+Shift, Right, movetoworkspace, r+1" + "Ctrl+Super+Shift, Left, movetoworkspace, r-1" + "Ctrl+Super, Right, workspace, r+1" + "Ctrl+Super, Left, workspace, r-1" + "Ctrl+Super+Alt, Right, workspace, m+1" + "Ctrl+Super+Alt, Left, workspace, m-1" + "Super, Page_Down, workspace, +1" + "Super, Page_Up, workspace, -1" + "Ctrl+Super, Page_Down, workspace, r+1" + "Ctrl+Super, Page_Up, workspace, r-1" + "Super, mouse_up, workspace, +1" + "Super, mouse_down, workspace, -1" + "Ctrl+Super, mouse_up, workspace, r+1" + "Ctrl+Super, mouse_down, workspace, r-1" - "Super+Alt, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 0" - "Super, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 0" - ] - ++ ( - builtins.concatLists (builtins.genList ( - i: let - ws = i + 1; - in [ - "Super+Alt, ${toString ws}, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent ${toString ws}" - "Super, ${toString ws}, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace ${toString ws}" - ] - ) - 9) - ); + "Super+Alt, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 0" + "Super, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 0" + ] + ++ ( + builtins.concatLists (builtins.genList ( + i: let + ws = i + 1; + in [ + "Super+Alt, ${toString ws}, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent ${toString ws}" + "Super, ${toString ws}, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace ${toString ws}" + ] + ) + 9) + ); - # The `bindm` list is used for mouse modifiers. - bindm = [ - "Super, mouse:272, movewindow" - "Super, mouse:274, movewindow" - "Super, mouse:273, resizewindow" - ]; + # The `bindm` list is used for mouse modifiers. + bindm = [ + "Super, mouse:272, movewindow" + "Super, mouse:274, movewindow" + "Super, mouse:273, resizewindow" + ]; - # The `bindl` list is for key release events. - bindl = [ - ", XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+" - ", XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%-" - ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-" - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle" - "Super+Shift, M, exec, wpctl set-mute @DEFAULT_SINK@ toggle" - "Alt, XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" - ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" - "Super+Alt, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" - ", Print, exec, grim - | wl-copy" - "Ctrl, Print, exec, mkdir -p $(xdg-user-dir PICTURES)/Screenshots && grim $(xdg-user-dir PICTURES)/Screenshots/Screenshot_\"$(date '+%Y-%m-%d_%H.%M.%S')\".png" - ", XF86AudioNext, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`" - ", XF86AudioPrev, exec, playerctl previous" - ", XF86AudioPlay, exec, playerctl play-pause" - ", XF86AudioPause, exec, playerctl play-pause" - ]; + # The `bindl` list is for key release events. + bindl = [ + ", XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+" + ", XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%-" + ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+" + ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-" + ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle" + "Super+Shift, M, exec, wpctl set-mute @DEFAULT_SINK@ toggle" + "Alt, XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" + ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" + "Super+Alt, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" + ", Print, exec, grim - | wl-copy" + "Ctrl, Print, exec, mkdir -p $(xdg-user-dir PICTURES)/Screenshots && grim $(xdg-user-dir PICTURES)/Screenshots/Screenshot_\"$(date '+%Y-%m-%d_%H.%M.%S')\".png" + ", XF86AudioNext, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`" + ", XF86AudioPrev, exec, playerctl previous" + ", XF86AudioPlay, exec, playerctl play-pause" + ", XF86AudioPause, exec, playerctl play-pause" + ]; - # The `binde` list is for continuous events. - binde = [ - "Super, Semicolon, splitratio, -0.1" - "Super, Apostrophe, splitratio, +0.1" - "Super, Minus, exec, qs -c $qsConfig ipc call zoom zoomOut" - "Super, Equal, exec, qs -c $qsConfig ipc call zoom zoomIn" - "Super, Minus, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.1" - "Super, Equal, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.1" - ]; - }; + # The `binde` list is for continuous events. + binde = [ + "Super, Semicolon, splitratio, -0.1" + "Super, Apostrophe, splitratio, +0.1" + "Super, Minus, exec, qs -c $qsConfig ipc call zoom zoomOut" + "Super, Equal, exec, qs -c $qsConfig ipc call zoom zoomIn" + "Super, Minus, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.1" + "Super, Equal, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.1" + ]; } diff --git a/modules/desktop/hyprland/hypr/rules.nix b/modules/desktop/hyprland/hypr/rules.nix index a707f5bbf..8c908ca43 100644 --- a/modules/desktop/hyprland/hypr/rules.nix +++ b/modules/desktop/hyprland/hypr/rules.nix @@ -3,151 +3,149 @@ pkgs, ... }: { - wayland.windowManager.hyprland.settings = { - windowrulev2 = [ - # Uncomment to apply global transparency to all windows: - # "opacity 0.89 override 0.89 override, class:.*" + windowrulev2 = [ + # Uncomment to apply global transparency to all windows: + # "opacity 0.89 override 0.89 override, class:.*" - # Disable blur for xwayland context menus - "noblur, class:^()$,title:^()$" - "noblur, xwayland:1" + # Disable blur for xwayland context menus + "noblur, class:^()$,title:^()$" + "noblur, xwayland:1" - # Floating - "float, class:^(blueberry\\.py)$" - "float, class:^(guifetch)$" - "float, class:^(pavucontrol)$" - "size 45%, class:^(pavucontrol)$" - "center, class:^(pavucontrol)$" - "float, class:^(org\\.pulseaudio\\.pavucontrol)$" - "size 45%, class:^(org\\.pulseaudio\\.pavucontrol)$" - "center, class:^(org\\.pulseaudio\\.pavucontrol)$" - "float, class:^(nm-connection-editor)$" - "size 45%, class:^(nm-connection-editor)$" - "center, class:^(nm-connection-editor)$" - "float, class:.*plasmawindowed.*" - "float, class:kcm_.*" - "float, class:.*bluedevilwizard" - "float, title:.*Welcome" - "float, title:^(illogical-impulse Settings)$" - "float, class:org.freedesktop.impl.portal.desktop.kde" - "float, class:^(Zotero)$" - "size 45%, class:^(Zotero)$" + # Floating + "float, class:^(blueberry\\.py)$" + "float, class:^(guifetch)$" + "float, class:^(pavucontrol)$" + "size 45%, class:^(pavucontrol)$" + "center, class:^(pavucontrol)$" + "float, class:^(org\\.pulseaudio\\.pavucontrol)$" + "size 45%, class:^(org\\.pulseaudio\\.pavucontrol)$" + "center, class:^(org\\.pulseaudio\\.pavucontrol)$" + "float, class:^(nm-connection-editor)$" + "size 45%, class:^(nm-connection-editor)$" + "center, class:^(nm-connection-editor)$" + "float, class:.*plasmawindowed.*" + "float, class:kcm_.*" + "float, class:.*bluedevilwizard" + "float, title:.*Welcome" + "float, title:^(illogical-impulse Settings)$" + "float, class:org.freedesktop.impl.portal.desktop.kde" + "float, class:^(Zotero)$" + "size 45%, class:^(Zotero)$" - # Move - "float, class:^(plasma-changeicons)$" - "noinitialfocus, class:^(plasma-changeicons)$" - "move 999999 999999, class:^(plasma-changeicons)$" - "move 40 80, title:^(Copying — Dolphin)$" + # Move + "float, class:^(plasma-changeicons)$" + "noinitialfocus, class:^(plasma-changeicons)$" + "move 999999 999999, class:^(plasma-changeicons)$" + "move 40 80, title:^(Copying — Dolphin)$" - # Tiling - "tile, class:^dev\\.warp\\.Warp$" + # Tiling + "tile, class:^dev\\.warp\\.Warp$" - # Picture-in-Picture - "float, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" - "keepaspectratio, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" - "move 73% 72%, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" - "size 25%, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" - "pin, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" - "float, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" + # Picture-in-Picture + "float, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" + "keepaspectratio, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" + "move 73% 72%, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" + "size 25%, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" + "pin, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" + "float, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$" - # Dialog windows - "center, title:^(Open File)(.*)$" - "center, title:^(Select a File)(.*)$" - "center, title:^(Choose wallpaper)(.*)$" - "center, title:^(Open Folder)(.*)$" - "center, title:^(Save As)(.*)$" - "center, title:^(Library)(.*)$" - "center, title:^(File Upload)(.*)$" - "center, title:^(.*)(wants to save)$" - "center, title:^(.*)(wants to open)$" - "float, title:^(Open File)(.*)$" - "float, title:^(Select a File)(.*)$" - "float, title:^(Choose wallpaper)(.*)$" - "float, title:^(Open Folder)(.*)$" - "float, title:^(Save As)(.*)$" - "float, title:^(Library)(.*)$" - "float, title:^(File Upload)(.*)$" - "float, title:^(.*)(wants to save)$" - "float, title:^(.*)(wants to open)$" + # Dialog windows + "center, title:^(Open File)(.*)$" + "center, title:^(Select a File)(.*)$" + "center, title:^(Choose wallpaper)(.*)$" + "center, title:^(Open Folder)(.*)$" + "center, title:^(Save As)(.*)$" + "center, title:^(Library)(.*)$" + "center, title:^(File Upload)(.*)$" + "center, title:^(.*)(wants to save)$" + "center, title:^(.*)(wants to open)$" + "float, title:^(Open File)(.*)$" + "float, title:^(Select a File)(.*)$" + "float, title:^(Choose wallpaper)(.*)$" + "float, title:^(Open Folder)(.*)$" + "float, title:^(Save As)(.*)$" + "float, title:^(Library)(.*)$" + "float, title:^(File Upload)(.*)$" + "float, title:^(.*)(wants to save)$" + "float, title:^(.*)(wants to open)$" - # Tearing - "immediate, title:.*\\.exe" - "immediate, title:.*minecraft.*" - "immediate, class:^(steam_app).*" + # Tearing + "immediate, title:.*\\.exe" + "immediate, title:.*minecraft.*" + "immediate, class:^(steam_app).*" - # No shadow for tiled windows - "noshadow, floating:0" - ]; + # No shadow for tiled windows + "noshadow, floating:0" + ]; - workspace = [ - "special:special, gapsout:30" - ]; + workspace = [ + "special:special, gapsout:30" + ]; - layerrule = [ - "xray 1, .*" - # "noanim, .*" - "noanim, walker" - "noanim, selection" - "noanim, overview" - "noanim, anyrun" - "noanim, indicator.*" - "noanim, osk" - "noanim, hyprpicker" - "noanim, noanim" - "blur, gtk-layer-shell" - "ignorezero, gtk-layer-shell" - "blur, launcher" - "ignorealpha 0.5, launcher" - "blur, notifications" - "ignorealpha 0.69, notifications" - "blur, logout_dialog" - "animation slide left, sideleft.*" - "animation slide right, sideright.*" - "blur, session[0-9]*" - "blur, bar[0-9]*" - "ignorealpha 0.6, bar[0-9]*" - "blur, barcorner.*" - "ignorealpha 0.6, barcorner.*" - "blur, dock[0-9]*" - "ignorealpha 0.6, dock[0-9]*" - "blur, indicator.*" - "ignorealpha 0.6, indicator.*" - "blur, overview[0-9]*" - "ignorealpha 0.6, overview[0-9]*" - "blur, cheatsheet[0-9]*" - "ignorealpha 0.6, cheatsheet[0-9]*" - "blur, sideright[0-9]*" - "ignorealpha 0.6, sideright[0-9]*" - "blur, sideleft[0-9]*" - "ignorealpha 0.6, sideleft[0-9]*" - "blur, indicator.*" - "ignorealpha 0.6, indicator.*" - "blur, osk[0-9]*" - "ignorealpha 0.6, osk[0-9]*" - "blurpopups, quickshell:.*" - "blur, quickshell:.*" - "ignorealpha 0.79, quickshell:.*" - "animation slide top, quickshell:bar" - "animation fade, quickshell:screenCorners" - "animation slide right, quickshell:sidebarRight" - "animation slide left, quickshell:sidebarLeft" - "animation slide bottom, quickshell:osk" - "animation slide bottom, quickshell:dock" - "blur, quickshell:session" - "noanim, quickshell:session" - "ignorealpha 0, quickshell:session" - "animation fade, quickshell:notificationPopup" - "blur, quickshell:backgroundWidgets" - "ignorealpha 0.05, quickshell:backgroundWidgets" - "noanim, quickshell:screenshot" - "animation popin 120%, quickshell:screenCorners" - "noanim, quickshell:lockWindowPusher" - "noanim, quickshell:overview" - "noanim, gtk4-layer-shell" - "blur, shell:bar" - "ignorezero, shell:bar" - "blur, shell:notifications" - "ignorealpha 0.1, shell:notifications" - ]; - }; + layerrule = [ + "xray 1, .*" + # "noanim, .*" + "noanim, walker" + "noanim, selection" + "noanim, overview" + "noanim, anyrun" + "noanim, indicator.*" + "noanim, osk" + "noanim, hyprpicker" + "noanim, noanim" + "blur, gtk-layer-shell" + "ignorezero, gtk-layer-shell" + "blur, launcher" + "ignorealpha 0.5, launcher" + "blur, notifications" + "ignorealpha 0.69, notifications" + "blur, logout_dialog" + "animation slide left, sideleft.*" + "animation slide right, sideright.*" + "blur, session[0-9]*" + "blur, bar[0-9]*" + "ignorealpha 0.6, bar[0-9]*" + "blur, barcorner.*" + "ignorealpha 0.6, barcorner.*" + "blur, dock[0-9]*" + "ignorealpha 0.6, dock[0-9]*" + "blur, indicator.*" + "ignorealpha 0.6, indicator.*" + "blur, overview[0-9]*" + "ignorealpha 0.6, overview[0-9]*" + "blur, cheatsheet[0-9]*" + "ignorealpha 0.6, cheatsheet[0-9]*" + "blur, sideright[0-9]*" + "ignorealpha 0.6, sideright[0-9]*" + "blur, sideleft[0-9]*" + "ignorealpha 0.6, sideleft[0-9]*" + "blur, indicator.*" + "ignorealpha 0.6, indicator.*" + "blur, osk[0-9]*" + "ignorealpha 0.6, osk[0-9]*" + "blurpopups, quickshell:.*" + "blur, quickshell:.*" + "ignorealpha 0.79, quickshell:.*" + "animation slide top, quickshell:bar" + "animation fade, quickshell:screenCorners" + "animation slide right, quickshell:sidebarRight" + "animation slide left, quickshell:sidebarLeft" + "animation slide bottom, quickshell:osk" + "animation slide bottom, quickshell:dock" + "blur, quickshell:session" + "noanim, quickshell:session" + "ignorealpha 0, quickshell:session" + "animation fade, quickshell:notificationPopup" + "blur, quickshell:backgroundWidgets" + "ignorealpha 0.05, quickshell:backgroundWidgets" + "noanim, quickshell:screenshot" + "animation popin 120%, quickshell:screenCorners" + "noanim, quickshell:lockWindowPusher" + "noanim, quickshell:overview" + "noanim, gtk4-layer-shell" + "blur, shell:bar" + "ignorezero, shell:bar" + "blur, shell:notifications" + "ignorealpha 0.1, shell:notifications" + ]; }