From 4c5b90b90da1710113e216345bea539ad37af7ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergio=20La=C3=ADn?= Date: Thu, 25 Apr 2024 18:20:44 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(hypr):=20change?= =?UTF-8?q?=20workspace=20number=20to=209=20for=20hyprexpo=20plugin=20to?= =?UTF-8?q?=20work?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit adapt rules as well --- .config/hypr/configs/binds.conf | 8 +- .config/hypr/configs/workspaces.conf | 13 +-- .config/hypr/hyprland.conf | 4 +- .config/hypr/plugins/hyprexpo.conf | 2 +- .config/hypr/scripts/awesome_workspaces | 2 +- .config/hypr/scripts/custom_app_launch | 33 ++---- .config/hypr/themes/luna/rules.conf | 26 ++--- .config/waybar/config.jsonc | 143 ++++++++++++------------ 8 files changed, 106 insertions(+), 125 deletions(-) diff --git a/.config/hypr/configs/binds.conf b/.config/hypr/configs/binds.conf index 150adb72..5def4eef 100644 --- a/.config/hypr/configs/binds.conf +++ b/.config/hypr/configs/binds.conf @@ -17,8 +17,9 @@ bind = SUPER, O, exec, ~/.config/hypr/scripts/custom_app_launch obsidian bind = SUPERSHIFT, O, exec, ~/.config/hypr/scripts/custom_app_launch office bind = SUPERSHIFT, E,exec, ~/.config/hypr/scripts/custom_app_launch nemo bind = SUPER, RETURN, exec, kitty -bind = SUPERALT, RETURN, exec, kitty --class=center-float-large -bind = SUPERSHIFT, RETURN, exec, ~/.config/hypr/scripts/custom_app_launch kitty +bind = SUPERSHIFT, RETURN, exec, kitty --class=center-float-large +bind = SUPERALT, RETURN, exec, kitty --class=center-float +bind = SUPERCTRL, RETURN, exec, kitty --class=center-float-mini bind = SUPER, BACKSPACE, exec, ~/.config/hypr/scripts/custom_app_launch nvim bind = SUPERSHIFT, BACKSPACE, exec, ~/.config/hypr/scripts/custom_app_launch codium @@ -93,7 +94,6 @@ bind = SUPER, 6, exec, $workspace 6 switch bind = SUPER, 7, exec, $workspace 7 switch bind = SUPER, 8, exec, $workspace 8 switch bind = SUPER, 9, exec, $workspace 9 switch -bind = SUPER, 0, exec, $workspace 10 switch # Moving windows to other workspaces bind = SUPERSHIFT, 1, exec, $workspace 1 move @@ -105,7 +105,6 @@ bind = SUPERSHIFT, 6, exec, $workspace 6 move bind = SUPERSHIFT, 7, exec, $workspace 7 move bind = SUPERSHIFT, 8, exec, $workspace 8 move bind = SUPERSHIFT, 9, exec, $workspace 9 move -bind = SUPERSHIFT, 0, exec, $workspace 10 move # Moving windows to other workspaces (silent) bind = SUPERALT, 1, exec, $workspace 1 silent @@ -117,7 +116,6 @@ bind = SUPERALT, 6, exec, $workspace 6 silent bind = SUPERALT, 7, exec, $workspace 7 silent bind = SUPERALT, 8, exec, $workspace 8 silent bind = SUPERALT, 9, exec, $workspace 9 silent -bind = SUPERALT, 0, exec, $workspace 10 silent # Moving to other workspace with mouse control bind = SUPER, mouse_down, workspace, m-1 diff --git a/.config/hypr/configs/workspaces.conf b/.config/hypr/configs/workspaces.conf index d7c346db..a83b849d 100644 --- a/.config/hypr/configs/workspaces.conf +++ b/.config/hypr/configs/workspaces.conf @@ -8,10 +8,10 @@ workspace = 6, monitor:DP-1 workspace = 7, monitor:DP-1 workspace = 8, monitor:DP-1, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false # Gaming Workspace workspace = 9, monitor:DP-1 -workspace = 10, monitor:DP-1 # Second Monitor -workspace = 11, monitor:DP-3, default:true +workspace = 10, monitor:DP-3, default:true +workspace = 11, monitor:DP-3 workspace = 12, monitor:DP-3 workspace = 13, monitor:DP-3 workspace = 14, monitor:DP-3 @@ -19,17 +19,14 @@ workspace = 15, monitor:DP-3 workspace = 16, monitor:DP-3 workspace = 17, monitor:DP-3 workspace = 18, monitor:DP-3 -workspace = 19, monitor:DP-3 -workspace = 20, monitor:DP-3 # Third Monitor -workspace = 21, monitor:HDMI-A-1, default:true +workspace = 19, monitor:HDMI-A-1, default:true +workspace = 20, monitor:HDMI-A-1 +workspace = 21, monitor:HDMI-A-1 workspace = 22, monitor:HDMI-A-1 workspace = 23, monitor:HDMI-A-1 workspace = 24, monitor:HDMI-A-1 workspace = 25, monitor:HDMI-A-1 workspace = 26, monitor:HDMI-A-1 workspace = 27, monitor:HDMI-A-1 -workspace = 28, monitor:HDMI-A-1 -workspace = 29, monitor:HDMI-A-1 -workspace = 30, monitor:HDMI-A-1 diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index a3854477..274632b6 100755 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -25,8 +25,8 @@ exec-once = hyprpm reload -n # source = ~/.config/hypr/plugins/hyprtrails.conf # Hyprexpo -# exec-once = hyprpm enable hyprexpo -# source = ~/.config/hypr/plugins/hyprexpo.conf +exec-once = hyprpm enable hyprexpo +source = ~/.config/hypr/plugins/hyprexpo.conf # Hyprbars # exec-once = hyprpm enable hyprbars diff --git a/.config/hypr/plugins/hyprexpo.conf b/.config/hypr/plugins/hyprexpo.conf index 2ca34d75..98f13880 100644 --- a/.config/hypr/plugins/hyprexpo.conf +++ b/.config/hypr/plugins/hyprexpo.conf @@ -6,7 +6,7 @@ plugin { columns = 3 gap_size = 6 bg_col = rgb($surface0Alpha) - workspace_method = center current + workspace_method = first 1 enable_gesture = true gesture_distance = 300 diff --git a/.config/hypr/scripts/awesome_workspaces b/.config/hypr/scripts/awesome_workspaces index a7a425ce..1d2937a9 100755 --- a/.config/hypr/scripts/awesome_workspaces +++ b/.config/hypr/scripts/awesome_workspaces @@ -2,7 +2,7 @@ monitors=($(hyprctl monitors -j | jq -r '.[].id')) -ws_per_monitor=10 +ws_per_monitor=9 monitor=$(hyprctl activeworkspace -j | jq -r '.monitorID') diff --git a/.config/hypr/scripts/custom_app_launch b/.config/hypr/scripts/custom_app_launch index 7287424e..ee7e412c 100755 --- a/.config/hypr/scripts/custom_app_launch +++ b/.config/hypr/scripts/custom_app_launch @@ -14,49 +14,38 @@ case $app in if [ "$FOCUSED_MONITOR" = "$MONITOR1" ]; then hyprctl dispatch exec [workspace 4] nemo & elif [ "$FOCUSED_MONITOR" = "$MONITOR2" ]; then - hyprctl dispatch exec [workspace 14] nemo & + hyprctl dispatch exec [workspace 13] nemo & else nemo & fi ;; "obsidian") if [ "$FOCUSED_MONITOR" = "$MONITOR1" ]; then - hyprctl dispatch exec [workspace 10] obsidian & + hyprctl dispatch exec [workspace 9] obsidian & elif [ "$FOCUSED_MONITOR" = "$MONITOR2" ]; then - hyprctl dispatch exec [workspace 20] obsidian & + hyprctl dispatch exec [workspace 18] obsidian & elif [ "$FOCUSED_MONITOR" = "$MONITOR3" ]; then - hyprctl dispatch exec [workspace 30] obsidian & + hyprctl dispatch exec [workspace 27] obsidian & else obsidian & fi ;; "office") if [ "$FOCUSED_MONITOR" = "$MONITOR1" ]; then - hyprctl dispatch exec [workspace 10] libreoffice & + hyprctl dispatch exec [workspace 9] libreoffice & elif [ "$FOCUSED_MONITOR" = "$MONITOR2" ]; then - hyprctl dispatch exec [workspace 20] libreoffice & + hyprctl dispatch exec [workspace 18] libreoffice & elif [ "$FOCUSED_MONITOR" = "$MONITOR3" ]; then - hyprctl dispatch exec [workspace 30] libreoffice & + hyprctl dispatch exec [workspace 27] libreoffice & else libreoffice & fi ;; -"kitty") - if [ "$FOCUSED_MONITOR" = "$MONITOR1" ]; then - hyprctl dispatch exec [workspace 3] kitty & - elif [ "$FOCUSED_MONITOR" = "$MONITOR2" ]; then - hyprctl dispatch exec [workspace 13] kitty & - elif [ "$FOCUSED_MONITOR" = "$MONITOR3" ]; then - hyprctl dispatch exec "[workspace 24] kitty --class center-float-large" & - else - kitty & - fi - ;; "nvim") if [ "$FOCUSED_MONITOR" = "$MONITOR1" ]; then hyprctl dispatch exec [workspace 2] kitty nvim & elif [ "$FOCUSED_MONITOR" = "$MONITOR2" ]; then - hyprctl dispatch exec [workspace 12] kitty nvim & + hyprctl dispatch exec [workspace 11] kitty nvim & else kitty nvim & fi @@ -65,7 +54,7 @@ case $app in if [ "$FOCUSED_MONITOR" = "$MONITOR1" ]; then hyprctl dispatch workspace 2 && codium & elif [ "$FOCUSED_MONITOR" = "$MONITOR2" ]; then - hyprctl dispatch workspace 12 && codium & + hyprctl dispatch workspace 11 && codium & else codium fi @@ -74,9 +63,9 @@ case $app in if [ "$FOCUSED_MONITOR" = "$MONITOR1" ]; then hyprctl dispatch workspace 1 && librewolf & # Had to to this because it didnt work the other way elif [ "$FOCUSED_MONITOR" = "$MONITOR2" ]; then - hyprctl dispatch workspace 11 && librewolf & + hyprctl dispatch workspace 10 && librewolf & elif [ "$FOCUSED_MONITOR" = "$MONITOR3" ]; then - hyprctl dispatch workspace 25 && librewolf & + hyprctl dispatch workspace 23 && librewolf & else librewolf & fi diff --git a/.config/hypr/themes/luna/rules.conf b/.config/hypr/themes/luna/rules.conf index b37b8729..aacdbb52 100644 --- a/.config/hypr/themes/luna/rules.conf +++ b/.config/hypr/themes/luna/rules.conf @@ -25,28 +25,28 @@ windowrule = float, xfce-polkit|wleave|title:branchdialog|nwg-look|nm-connection # Workspace Rules # System -windowrulev2 = workspace 9, class:^(.*virt-manager.*)$|(.*PikaBackup.*)$ -windowrulev2 = workspace 19, class:^(.*GParted.*)$|(.*clamtk.*)$|(.*gnome.Logs.*)$ +windowrulev2 = workspace 8, class:^(.*virt-manager.*)$|(.*PikaBackup.*)$ +windowrulev2 = workspace 17, class:^(.*GParted.*)$|(.*clamtk.*)$|(.*gnome.Logs.*)$ # Gaming windowrulev2 = workspace 8, class:^(.*steam_app.*)$|(.*gamescope.*)$|(.*atlauncher.*)$|(.*Minecraft.*)$ -windowrulev2 = workspace 18, class:^(steam)$|(.*heroic.*)$ +windowrulev2 = workspace 16, class:^(steam)$|(.*heroic.*)$ windowrulev2 = workspace 8, class:^(.*Ryujinx.*)$|(.*cemu.*)$|(.*dolphin.*)$|(.*RetroArch.*)$|(.*xemu.*)$|(.*duckstation.*)$|(.*rpcs3.*)$ # Media windowrulev2 = workspace 7, class:^(.*kdenlive.*)$ -windowrulev2 = workspace 23 silent, class:^(.*thunderbird.*)$ -windowrulev2 = workspace 24 silent, class:^(.*btop.*)$ -windowrulev2 = workspace 24 silent, class:^(.*nvtop.*)$ -windowrulev2 = workspace 21 silent, class:^(.*Spotify.*)$ -windowrulev2 = workspace 22 silent, class:^(.*discord.*)$|(.*vesktop.*)$|(.*WebCord.*)$ -windowrulev2 = workspace 17, class:^(.*obsproject.*)$ -windowrulev2 = workspace 16, class:^(.*easyeffects.*)$|^(.*qpwgraph.*)$ -windowrulev2 = workspace 6, class:^(.*vital.*)$|(.*fl64.*)$ -windowrulev2 = workspace 5, class:^(.*pinta.*)$|(.*krita.*)$|(.*blender.*)$|(.*Upscayl.*)$ +windowrulev2 = workspace 21 silent, class:^(.*thunderbird.*)$ +windowrulev2 = workspace 22 silent, class:^(.*btop.*)$ +windowrulev2 = workspace 22 silent, class:^(.*nvtop.*)$ +windowrulev2 = workspace 19 silent, class:^(.*Spotify.*)$ +windowrulev2 = workspace 20 silent, class:^(.*discord.*)$|(.*vesktop.*)$|(.*WebCord.*)$ +windowrulev2 = workspace 16, class:^(.*obsproject.*)$ +windowrulev2 = workspace 15, class:^(.*easyeffects.*)$|^(.*qpwgraph.*)$ +windowrulev2 = workspace 5, class:^(.*vital.*)$|(.*fl64.*)$ +windowrulev2 = workspace 4, class:^(.*pinta.*)$|(.*krita.*)$|(.*blender.*)$|(.*Upscayl.*)$ # Productivity/Dev -windowrulev2 = workspace 10 silent, class:^(.*obsidian.*)$ +windowrulev2 = workspace 9 silent, class:^(.*obsidian.*)$ windowrulev2 = workspace 2, class:^(.*Code.*)$|(.*codium.*)$|(.*VSCodium.*) diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc index 5598d959..ad6d6cc8 100644 --- a/.config/waybar/config.jsonc +++ b/.config/waybar/config.jsonc @@ -15,7 +15,7 @@ "custom/arch", "hyprland/workspaces", "cava", - "custom/wf-recorder" + "custom/wf-recorder", ], "modules-center": ["custom/music"], "modules-right": [ @@ -24,7 +24,7 @@ "custom/weather", "clock", "pulseaudio", - "custom/notifications" + "custom/notifications", ], "custom/wf-recorder": { "format": "{}", @@ -33,25 +33,25 @@ "tooltip": "false", "exec-if": "pgrep 'wf-recorder'", "on-click": "exec $HOME/.config/hypr/scripts/rofi/recording", - "signal": 8 + "signal": 8, }, "custom/updates": { "format": "{} {icon}", "return-type": "json", "format-icons": { "has-updates": "󱍷", - "updated": "󰂪" + "updated": "󰂪", }, "exec-if": "which waybar-module-pacman-updates", "exec": "waybar-module-pacman-updates", "on-click": "pypr toggle topgrade-system", - "on-click-right": "pypr toggle topgrade-all" + "on-click-right": "pypr toggle topgrade-all", }, "custom/arch": { "format": "  ", "tooltip": false, "on-click": "sleep 0.1 && rofi -show drun", - "on-click-right": "wleave" + "on-click-right": "wleave", }, "custom/weather": { "exec": "wttrbar --location Alicante", @@ -61,7 +61,7 @@ "return-type": "json", "on-click": "kitty --hold --class center-float wttr Alicante", "on-click-right": "kitty --hold --class center-float wttr -v2 Alicante", - "on-click-middle": "xdg-open https://wttr.in/alicante" + "on-click-middle": "xdg-open https://wttr.in/alicante", }, "custom/notifications": { "tooltip": false, @@ -74,14 +74,14 @@ "inhibited-notification": "", "inhibited-none": "", "dnd-inhibited-notification": "", - "dnd-inhibited-none": "" + "dnd-inhibited-none": "", }, "return-type": "json", "exec-if": "which swaync-client", "exec": "swaync-client -swb", "on-click": "sleep 0.1 && swaync-client -t -sw", "on-click-right": "swaync-client -d -sw", - "escape": true + "escape": true, }, "hyprland/workspaces": { "disable-scroll": true, @@ -91,25 +91,24 @@ "format-icons": { "1": "󰇧", "2": "", - "3": "🖵", - "4": "", - "5": "", - "6": "🎜", - "7": "", - "8": "", - "9": "", - "10": "" + "3": "", + "4": "", + "5": "🎜", + "6": "", + "7": "", + "8": "", + "9": "", }, "on-scroll-up": "hyprctl dispatch workspace r-1", "on-scroll-down": "hyprctl dispatch workspace r+1", "on-click": "activate", - "sort-by-number": true + "sort-by-number": true, }, "hyprland/language": { "format": "{}", "format-en": " US", "format-es": " ES", - "on-click": "hyprctl switchxkblayout evision-usb-device next" + "on-click": "hyprctl switchxkblayout evision-usb-device next", }, "clock": { "tooltip-format": "{calendar}", @@ -124,8 +123,8 @@ "days": "{}", "weeks": "W{}", "weekdays": "{}", - "today": "{}" - } + "today": "{}", + }, }, "interval": 1, "format": "{:%H:%M:%OS}  ", @@ -135,9 +134,9 @@ "on-click-forward": "tz_up", "on-click-backward": "tz_down", "on-scroll-up": "shift_up", - "on-scroll-down": "shift_down" + "on-scroll-down": "shift_down", }, - "on-click-middle": "thunderbird -calendar && hyprctl dispatch workspace 23" + "on-click-middle": "thunderbird -calendar && hyprctl dispatch workspace 23", }, "pulseaudio": { "format": "{icon} {volume}% {format_source}", @@ -153,14 +152,14 @@ "phone": " ", "portable": " ", "car": " ", - "default": [" ", " ", " "] + "default": [" ", " ", " "], }, "tooltip-format": "{desc}, {volume}%", "on-click": "swayosd-client --output-volume mute-toggle", "on-click-right": "swayosd-client --input-volume mute-toggle", "on-click-middle": "pypr toggle volume", "on-scroll-up": "swayosd-client --output-volume +1", - "on-scroll-down": "swayosd-client --output-volume -1" + "on-scroll-down": "swayosd-client --output-volume -1", }, "cava": { "autosens": 1, @@ -174,7 +173,7 @@ "", "", "", - "" + "", ], "framerate": 75, "higher_cutoff_freq": 10000, @@ -188,7 +187,7 @@ "waves": false, "on-click": "pypr toggle cava", "on-click-right": "qpwgraph", - "on-click-middle": "easyeffects" + "on-click-middle": "easyeffects", }, "custom/music": { "format": "{icon} {}", @@ -196,14 +195,14 @@ "max-length": 100, "format-icons": { "spotify": " ", - "default": " " + "default": " ", }, "escape": true, "exec": "$HOME/.config/waybar/scripts/mediaplayer.py 2> /dev/null", "on-click": "playerctl --player=spotify play-pause", "on-scroll-up": "playerctl --player=spotify next", - "on-scroll-down": "playerctl --player=spotify previous" - } + "on-scroll-down": "playerctl --player=spotify previous", + }, }, { "height": 50, @@ -225,7 +224,7 @@ "temperature#cpu", "custom/gpu-usage", "temperature#gpu", - "custom/notifications" + "custom/notifications", ], "hyprland/window": { "format": "{}", @@ -233,15 +232,15 @@ "rewrite": { "(.*) — LibreWolf": "󰇧 $1", "(.*) - Discord": "󰙯 $1", - "(.*) - fish": "> [$1]" + "(.*) - fish": "> [$1]", }, - "separate-outputs": false + "separate-outputs": false, }, "custom/arch": { "format": "  ", "tooltip": false, "on-click": "sleep 0.1 && rofi -show drun", - "on-click-right": "wleave" + "on-click-right": "wleave", }, "custom/notifications": { "tooltip": false, @@ -254,14 +253,14 @@ "inhibited-notification": "", "inhibited-none": "", "dnd-inhibited-notification": "", - "dnd-inhibited-none": "" + "dnd-inhibited-none": "", }, "return-type": "json", "exec-if": "which swaync-client", "exec": "swaync-client -swb", "on-click": "sleep 0.1 && swaync-client -t -sw", "on-click-right": "swaync-client -d -sw", - "escape": true + "escape": true, }, "hyprland/workspaces": { "disable-scroll": true, @@ -270,40 +269,39 @@ "enable-bar-scroll": true, "format": "{icon}", "format-icons": { - "11": "󰇧", - "12": "", - "13": "🖵", - "14": "", - "15": "", - "16": "🎜", - "17": "", - "18": "", - "19": "", - "20": "" + "10": "󰇧", + "11": "", + "12": "", + "13": "", + "14": "🎜", + "15": "", + "16": "", + "17": "", + "18": "", }, "on-scroll-up": "hyprctl dispatch workspace r-1", "on-scroll-down": "hyprctl dispatch workspace r+1", "on-click": "activate", - "sort-by-number": true + "sort-by-number": true, }, "cpu": { "on-click": "kitty --class center-float-large btop", "format": "CPU: {usage}%", "tooltip": false, - "interval": 2 + "interval": 2, }, "custom/gpu-usage": { "exec": "cat /sys/class/hwmon/hwmon1/device/gpu_busy_percent", "on-click": "kitty --class center-float-large nvtop", "format": "GPU: {}%", "return-type": "", - "interval": 2 + "interval": 2, }, "memory": { "format": "{}%  ", "on-click": "kitty --class center-float-large btop", "tooltip": true, - "interval": 2 + "interval": 2, }, "temperature#cpu": { "critical-threshold": 90, @@ -313,7 +311,7 @@ "format": "{icon} {temperatureC}°C", "format-icons": ["", "", ""], "tooltip": true, - "interval": 2 + "interval": 2, }, "temperature#gpu": { "critical-threshold": 80, @@ -323,8 +321,8 @@ "format": "{icon} {temperatureC}°C", "format-icons": ["", "", ""], "tooltip": true, - "interval": 2 - } + "interval": 2, + }, }, { "height": 50, @@ -345,7 +343,7 @@ "format": "  ", "tooltip": false, "on-click": "sleep 0.1 && rofi -show drun", - "on-click-right": "wleave" + "on-click-right": "wleave", }, "custom/notifications": { "tooltip": false, @@ -358,14 +356,14 @@ "inhibited-notification": "", "inhibited-none": "", "dnd-inhibited-notification": "", - "dnd-inhibited-none": "" + "dnd-inhibited-none": "", }, "return-type": "json", "exec-if": "which swaync-client", "exec": "swaync-client -swb", "on-click": "sleep 0.1 && swaync-client -t -sw", "on-click-right": "swaync-client -d -sw", - "escape": true + "escape": true, }, "hyprland/workspaces": { "disable-scroll": true, @@ -373,24 +371,23 @@ "enable-bar-scroll": true, "format": "{icon}", "format-icons": { - "21": "", - "22": "󰍨", - "23": "✉", - "24": "🖵", - "25": "󰇧", + "19": "", + "20": "󰍨", + "21": "✉", + "22": "🖵", + "23": "󰇧", + "24": "", + "25": "", "26": "", - "27": "", - "28": "", - "29": "", - "30": "" + "27": "", }, "on-scroll-up": "hyprctl dispatch workspace r-1", "on-scroll-down": "hyprctl dispatch workspace r+1", "on-click": "activate", - "sort-by-number": true + "sort-by-number": true, }, "tray": { - "spacing": 10 + "spacing": 10, }, "clock#cl2": { "tooltip-format": "{calendar}", @@ -405,8 +402,8 @@ "days": "{}", "weeks": "W{}", "weekdays": "{}", - "today": "{}" - } + "today": "{}", + }, }, "format": "{:%H:%M  - %A, %B %d, %Y  }", "actions": { @@ -414,9 +411,9 @@ "on-click-forward": "tz_up", "on-click-backward": "tz_down", "on-scroll-up": "shift_up", - "on-scroll-down": "shift_down" + "on-scroll-down": "shift_down", }, - "on-click-middle": "thunderbird -calendar && hyprctl dispatch workspace 23" - } - } + "on-click-middle": "thunderbird -calendar && hyprctl dispatch workspace 23", + }, + }, ]