diff --git a/dot_config/hypr/hyprland.d/60-rules.conf b/dot_config/hypr/hyprland.d/60-rules.conf index 5562549..ffe4d48 100644 --- a/dot_config/hypr/hyprland.d/60-rules.conf +++ b/dot_config/hypr/hyprland.d/60-rules.conf @@ -74,7 +74,7 @@ windowrule = match:class ^$, match:title ^$, match:xwayland 1, match:float 1, ma windowrule = match:xwayland 1, no_initial_focus on ## ========== Special Workspaces ========== -workspace = special:passwordmgr, on-created-empty:bitwarden-desktop +workspace = special:passwordmgr, on-created-empty:uwsm app -- bitwarden-desktop ## ========== Named Workspaces (IDs 1-5, sort before numbered) ========== workspace = 1, defaultName:comms, monitor:DP-2, layout:scrolling, layoutopt:direction:down, persistent:true @@ -82,7 +82,7 @@ workspace = 2, defaultName:element, monitor:DP-2, layout:scrolling, layoutopt:di workspace = 3, defaultName:mail, persistent:true workspace = 4, defaultName:joplin, persistent:true workspace = 5, defaultName:steam, layout:scrolling, persistent:true -workspace = 6, defaultName:spotify, monitor:DP-2, layout:monocle, persistent:true +workspace = 6, defaultName:spotify, monitor:DP-2, layout:monocle, persistent:true, on-created-empty:uwsm app -- spotify-launcher #windowrule = float, class:org.keepassxc.KeePassXC #windowrule = noscreenshare, class:org.keepassxc.KeePassXC diff --git a/dot_config/hypr/hyprland.d/70-keybinds.conf.tmpl b/dot_config/hypr/hyprland.d/70-keybinds.conf.tmpl index fbd6e9a..90d8457 100644 --- a/dot_config/hypr/hyprland.d/70-keybinds.conf.tmpl +++ b/dot_config/hypr/hyprland.d/70-keybinds.conf.tmpl @@ -62,6 +62,7 @@ bind = , s, exec, hypr-steam-toggle bind = , d, exec, hypr-comms-toggle bind = , z, exec, hypr-mail-toggle bind = , x, exec, hypr-joplin-toggle +bind = , c, exec, hypr-spotify-toggle bind = , Escape, submap, reset bind = , Return, submap, reset submap = reset @@ -117,6 +118,11 @@ bind = $mainMod SHIFT, L, movewindow, r bind = $mainMod SHIFT, K, movewindow, u bind = $mainMod SHIFT, J, movewindow, d +bind = $mainMod ALT SHIFT, H, layoutmsg, swapcol l +bind = $mainMod ALT SHIFT, J, layoutmsg, colresize -0.1 +bind = $mainMod ALT SHIFT, K, layoutmsg, colresize +0.1 +bind = $mainMod ALT SHIFT, L, layoutmsg, swapcol r + # Resize submap bind = $mainMod, R, submap, resize @@ -138,50 +144,46 @@ bind = $mainMod, Tab, workspace, m+1 bind = $mainMod SHIFT, Tab, workspace, m-1 # SWITCH WORKSPACES with mainMod + [0-9] -bind = $mainMod, 1, workspace, name:1 -bind = $mainMod, 2, workspace, name:2 -bind = $mainMod, 3, workspace, name:3 -bind = $mainMod, 4, workspace, name:4 -bind = $mainMod, 5, workspace, name:5 -bind = $mainMod, 6, workspace, name:6 -bind = $mainMod, 7, workspace, name:7 -bind = $mainMod, 8, workspace, name:8 -bind = $mainMod, 9, workspace, name:9 -bind = $mainMod, 0, workspace, name:10 +bind = $mainMod, 1, workspace, 21 +bind = $mainMod, 2, workspace, 22 +bind = $mainMod, 3, workspace, 23 +bind = $mainMod, 4, workspace, 24 +bind = $mainMod, 5, workspace, 25 +bind = $mainMod, 6, workspace, 26 +bind = $mainMod, 7, workspace, 27 +bind = $mainMod, 8, workspace, 28 +bind = $mainMod, 9, workspace, 29 +bind = $mainMod, 0, workspace, 30 # Monitor focus / workspace move -bind = $mainMod, O, focusmonitor, l -bind = $mainMod, I, focusmonitor, r +bind = $mainMod, O, focusmonitor, r +bind = $mainMod, I, focusmonitor, l bind = $mainMod SHIFT, O, movecurrentworkspacetomonitor, l bind = $mainMod SHIFT, I, movecurrentworkspacetomonitor, r -bind = $mainMod ALT SHIFT, H, movecurrentworkspacetomonitor, l -bind = $mainMod ALT SHIFT, J, movecurrentworkspacetomonitor, d -bind = $mainMod ALT SHIFT, K, movecurrentworkspacetomonitor, u -bind = $mainMod ALT SHIFT, L, movecurrentworkspacetomonitor, r # MOVE ACTIVE WINDOW TO A WORKSPACE with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, movetoworkspace, name:1 -bind = $mainMod SHIFT, 2, movetoworkspace, name:2 -bind = $mainMod SHIFT, 3, movetoworkspace, name:3 -bind = $mainMod SHIFT, 4, movetoworkspace, name:4 -bind = $mainMod SHIFT, 5, movetoworkspace, name:5 -bind = $mainMod SHIFT, 6, movetoworkspace, name:6 -bind = $mainMod SHIFT, 7, movetoworkspace, name:7 -bind = $mainMod SHIFT, 8, movetoworkspace, name:8 -bind = $mainMod SHIFT, 9, movetoworkspace, name:9 -bind = $mainMod SHIFT, 0, movetoworkspace, name:10 +bind = $mainMod SHIFT, 1, movetoworkspace, 21 +bind = $mainMod SHIFT, 2, movetoworkspace, 22 +bind = $mainMod SHIFT, 3, movetoworkspace, 23 +bind = $mainMod SHIFT, 4, movetoworkspace, 24 +bind = $mainMod SHIFT, 5, movetoworkspace, 25 +bind = $mainMod SHIFT, 6, movetoworkspace, 26 +bind = $mainMod SHIFT, 7, movetoworkspace, 27 +bind = $mainMod SHIFT, 8, movetoworkspace, 28 +bind = $mainMod SHIFT, 9, movetoworkspace, 29 +bind = $mainMod SHIFT, 0, movetoworkspace, 30 # MOVE ACTIVE WINDOW TO A WORKSPACE SILENTLY with mainMod + CTRL + SHIFT + [0-9] -bind = $mainMod CTRL SHIFT, 1, movetoworkspacesilent, name:1 -bind = $mainMod CTRL SHIFT, 2, movetoworkspacesilent, name:2 -bind = $mainMod CTRL SHIFT, 3, movetoworkspacesilent, name:3 -bind = $mainMod CTRL SHIFT, 4, movetoworkspacesilent, name:4 -bind = $mainMod CTRL SHIFT, 5, movetoworkspacesilent, name:5 -bind = $mainMod CTRL SHIFT, 6, movetoworkspacesilent, name:6 -bind = $mainMod CTRL SHIFT, 7, movetoworkspacesilent, name:7 -bind = $mainMod CTRL SHIFT, 8, movetoworkspacesilent, name:8 -bind = $mainMod CTRL SHIFT, 9, movetoworkspacesilent, name:9 -bind = $mainMod CTRL SHIFT, 0, movetoworkspacesilent, name:10 +bind = $mainMod CTRL SHIFT, 1, movetoworkspacesilent, 21 +bind = $mainMod CTRL SHIFT, 2, movetoworkspacesilent, 22 +bind = $mainMod CTRL SHIFT, 3, movetoworkspacesilent, 23 +bind = $mainMod CTRL SHIFT, 4, movetoworkspacesilent, 24 +bind = $mainMod CTRL SHIFT, 5, movetoworkspacesilent, 25 +bind = $mainMod CTRL SHIFT, 6, movetoworkspacesilent, 26 +bind = $mainMod CTRL SHIFT, 7, movetoworkspacesilent, 27 +bind = $mainMod CTRL SHIFT, 8, movetoworkspacesilent, 28 +bind = $mainMod CTRL SHIFT, 9, movetoworkspacesilent, 29 +bind = $mainMod CTRL SHIFT, 0, movetoworkspacesilent, 30 # Group tab switching bind = $mainMod, Z, changegroupactive, f diff --git a/dot_local/bin/executable_hypr-spotify-toggle b/dot_local/bin/executable_hypr-spotify-toggle new file mode 100644 index 0000000..964cb55 --- /dev/null +++ b/dot_local/bin/executable_hypr-spotify-toggle @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euo pipefail + +spotify_ws="name:spotify" +spotify_name="spotify" + +active_name="" +if json="$(hyprctl -j activeworkspace 2>/dev/null)"; then + if command -v jq >/dev/null 2>&1; then + active_name="$(printf '%s' "$json" | jq -r '.name // empty')" + else + active_name="$(printf '%s' "$json" | sed -n 's/.*"name":"\\([^"]*\\)".*/\\1/p')" + fi +fi + +if [[ -z "$active_name" ]]; then + active_name="$(hyprctl activeworkspace 2>/dev/null | sed -n 's/.*(\\(.*\\)).*/\\1/p' | head -n1)" +fi + +if [[ "$active_name" == "$spotify_name" || "$active_name" == "$spotify_ws" ]]; then + hyprctl dispatch workspace previous +else + hyprctl dispatch moveworkspacetomonitor "$spotify_ws" current + hyprctl dispatch workspace "$spotify_ws" +fi