feat: marking windows, then closing/moving them to current workspace
This commit is contained in:
@@ -28,8 +28,9 @@ $privateBrowser = zen-browser --private-window
|
|||||||
# Or execute your favorite apps at launch like this:
|
# Or execute your favorite apps at launch like this:
|
||||||
|
|
||||||
# Le essential hyprland crap
|
# Le essential hyprland crap
|
||||||
exec-once = hyprpaper & waybar & hypridle & hyprsunset &
|
exec-once = hyprpaper
|
||||||
exec-once = sleep 1 && ~/.config/hypr/scripts/random_wallpaper.sh
|
exec-once = waybar & hypridle & hyprsunset &
|
||||||
|
exec-once = ~/.config/hypr/scripts/random_wallpaper.sh
|
||||||
|
|
||||||
|
|
||||||
# exec-once = systemctl --user startexec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP hyprpaper.service
|
# exec-once = systemctl --user startexec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP hyprpaper.service
|
||||||
@@ -470,6 +471,18 @@ bind = $mainMod CTRL, G, exec, ~/.config/hypr/scripts/grayscale-toggle.sh
|
|||||||
# Game mode
|
# Game mode
|
||||||
bind = $mainMod SHIFT, G, exec, ~/.config/hypr/scripts/gamemode.sh
|
bind = $mainMod SHIFT, G, exec, ~/.config/hypr/scripts/gamemode.sh
|
||||||
|
|
||||||
|
# Pin window
|
||||||
|
bind = $mainMod CTRL, Y, pin, active
|
||||||
|
|
||||||
|
# Mark window
|
||||||
|
bind = $mainMod CTRL, M, tagwindow, marked
|
||||||
|
|
||||||
|
# Close marked windows
|
||||||
|
bind = $mainMod CTRL, W, exec, ~/.config/hypr/scripts/close_marked.sh
|
||||||
|
|
||||||
|
# Move marked to current workspace
|
||||||
|
bind = $mainMod, Y, exec, ~/.config/hypr/scripts/move_marked.sh
|
||||||
|
|
||||||
# Freeze window
|
# Freeze window
|
||||||
bind = $mainMod SHIFT, F, exec, hyprfreeze -a -s
|
bind = $mainMod SHIFT, F, exec, hyprfreeze -a -s
|
||||||
bind = $mainMod SHIFT, F, tagwindow, zawarudo
|
bind = $mainMod SHIFT, F, tagwindow, zawarudo
|
||||||
@@ -529,6 +542,9 @@ windowrule = move center,class:^(com.saivert.pwvucontrol)$
|
|||||||
# Frozen windows
|
# Frozen windows
|
||||||
windowrule = bordercolor rgba(ffff00ff) rgba(ffff0055),tag:zawarudo
|
windowrule = bordercolor rgba(ffff00ff) rgba(ffff0055),tag:zawarudo
|
||||||
|
|
||||||
|
# Marked windows
|
||||||
|
windowrule = bordercolor rgba(0000ffff) rgba(aa00ffa5),tag:marked
|
||||||
|
|
||||||
# Ignore maximize requests from apps. You'll probably like this.
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
windowrule = suppressevent maximize, class:.*
|
windowrule = suppressevent maximize, class:.*
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
wallpaper = eDP-1,/home/greg/Pictures/Wallpapers/current/japan_garden_hd_japanese-1920x1080.png
|
wallpaper = eDP-1,/home/greg/Pictures/Wallpapers/rain_glass_purple_blue_lights2.jpg
|
||||||
wallpaper = HDMI-A-1,/home/greg/Pictures/Wallpapers/current/japan_garden_hd_japanese-1920x1080.png
|
wallpaper = HDMI-A-1,/home/greg/Pictures/Wallpapers/rain_glass_purple_blue_lights2.jpg
|
||||||
ipc = on
|
ipc = on
|
||||||
|
|||||||
15
hypr/scripts/close_marked.sh
Executable file
15
hypr/scripts/close_marked.sh
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
count_closed = 0
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
result=$(hyprctl dispatch closewindow tag:marked)
|
||||||
|
|
||||||
|
if [ "$result" != "closeWindow: no window found" ]; then
|
||||||
|
echo "closed window because '$result'"
|
||||||
|
((count_closed++))
|
||||||
|
else
|
||||||
|
echo "exiting due to '$result'"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
17
hypr/scripts/move_marked.sh
Executable file
17
hypr/scripts/move_marked.sh
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
count_moved = 0
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
result=$(hyprctl dispatch movetoworkspace e+0,tag:marked)
|
||||||
|
|
||||||
|
if [ "$result" != "Window not found" ]; then
|
||||||
|
echo "moved window because '$result'"
|
||||||
|
result=$(hyprctl dispatch tagwindow -- -marked tag:marked)
|
||||||
|
echo "tried umarking and was told $result"
|
||||||
|
((count_closed++))
|
||||||
|
else
|
||||||
|
echo "exiting due to '$result'"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
@@ -1,8 +1,31 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
WALLPAPER_DIR="$HOME/Pictures/Wallpapers/current/"
|
WALLPAPER_DIR="$HOME/Pictures/Wallpapers/current/"
|
||||||
|
INTRO_DIR="$HOME/Pictures/Wallpapers/intro/"
|
||||||
DELAY=5m
|
DELAY=5m
|
||||||
|
|
||||||
|
intro() {
|
||||||
|
if [ -z "$(ls -A "$WALLPAPER_DIR")" ]; then
|
||||||
|
echo "Current wallpaper folder is empty, nothing to do"
|
||||||
|
sleep 1
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
WALLPAPER=$(find "$INTRO_DIR" -type l | shuf -n 1)
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
|
||||||
|
if hyprctl hyprpaper reload ,"$WALLPAPER"; then
|
||||||
|
sleep 1.5
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 0.1
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
random_wallpaper() {
|
random_wallpaper() {
|
||||||
# Check if folder is not empty
|
# Check if folder is not empty
|
||||||
if [ -z "$(ls -A "$WALLPAPER_DIR")" ]; then
|
if [ -z "$(ls -A "$WALLPAPER_DIR")" ]; then
|
||||||
@@ -23,6 +46,7 @@ random_wallpaper() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loop() {
|
loop() {
|
||||||
|
intro
|
||||||
while true; do
|
while true; do
|
||||||
random_wallpaper
|
random_wallpaper
|
||||||
sleep "$DELAY"
|
sleep "$DELAY"
|
||||||
|
|||||||
Reference in New Issue
Block a user