feat(hypr): script to move a window into their specified workspace rule

made by https://github.com/moguay, thanks!
This commit is contained in:
Sergio Laín 2024-02-12 09:48:38 +01:00
parent f72af7a38d
commit e4b1ce6a10
No known key found for this signature in database
GPG key ID: 14C9B8080681777B
2 changed files with 25 additions and 0 deletions

View file

@ -72,6 +72,7 @@ bind = SUPERSHIFT, H, movewindow, l
bind = SUPERSHIFT, L, movewindow, r
bind = SUPERSHIFT, K, movewindow, u
bind = SUPERSHIFT, J, movewindow, d
bind = SUPERSHIFT, 51, exec, ~/.config/hypr/scripts/move_by_rules
# Center and split
bind = SUPER, S, togglesplit

View file

@ -0,0 +1,24 @@
#!/usr/bin/bash
# Script created by: https://github.com/moguay
# Retrieve the active class of the window
active_class=$(hyprctl -j activewindow | jq '.class')
active_class=$(echo "$active_class" | tr -d \")
# Read the file and store lines containing 'workspace' in an array
grep 'workspace' ~/.config/hypr/themes/luna/rules.conf | while IFS= read -r line; do
workspace_value=$(echo "$line" | sed -n -e 's/^.*workspace \([0-9]*\)[ ,].*$/\1/p')
class_value=$(echo "$line" | sed -n -e 's/^.*class:\s*\(.*\)$/\1/p')
regex=$class_value
if [ -n "$workspace_value" ] && [ -n "$class_value" ]; then
# Compare the retrieved value with the active class of the window
if echo "$active_class" | grep -E "$regex"; then
#echo "The class matches the active class of the window. Workspace value to apply: $workspace_value"
hyprctl dispatch movetoworkspace "$workspace_value"
fi
fi
done
exit 1