From 7f9b09585929dba8415496a883170e7fae5ba4e9 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Wed, 22 Oct 2025 22:21:09 +1100 Subject: [PATCH] feat: Update hypr config --- .config/hypr/hyprland.conf | 1 + .config/hypr/hyprlock.conf | 22 +++++++++++----------- .config/hypr/keybinds.conf | 2 +- .config/hypr/scripts/lock.sh | 29 +++++++---------------------- .config/hypr/scripts/spots.sh | 34 +++++++++++++++++----------------- 5 files changed, 37 insertions(+), 51 deletions(-) diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index dc87b1a..0976b62 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -150,6 +150,7 @@ misc { disable_splash_rendering = 1 disable_hyprland_logo = 1 focus_on_activate = 0 # This breaks vdesks + anr_missed_pings = 10 } ecosystem { no_donation_nag = 1 diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf index e8028fb..19583bc 100644 --- a/.config/hypr/hyprlock.conf +++ b/.config/hypr/hyprlock.conf @@ -61,7 +61,7 @@ label { # Day-Month-Date label { monitor = - text = cmd[update:1000] echo -e "$(date +"%d %B, %a.")" + text = cmd[update:1000] echo -e "$(date +"%d %B")" color = rgba(255, 255, 255, 100) font_size = 22 font_family = Suisse Int'l Mono @@ -104,16 +104,16 @@ input-field { } # CURRENT SONG -# label { -# monitor = eDP-1 -# text = cmd[update:1000] echo "$(~/.config/hypr/scripts/songdetail.sh)" -# color = rgba(147, 196, 255, 1) -# font_size = 18 -# font_family = JetBrains Mono Nerd, SF Pro Display Bold -# position = 0, 20 -# halign = center -# valign = bottom -# } +label { + monitor = eDP-1 + text = cmd[update:1000] echo "$(~/.config/hypr/scripts/songdetail.sh)" + color = rgba(147, 196, 255, 1) + font_size = 18 + font_family = JetBrains Mono Nerd, SF Pro Display Bold + position = 0, 20 + halign = center + valign = bottom +} # Battery label { diff --git a/.config/hypr/keybinds.conf b/.config/hypr/keybinds.conf index 38c6580..2dc9447 100644 --- a/.config/hypr/keybinds.conf +++ b/.config/hypr/keybinds.conf @@ -105,7 +105,7 @@ bindl=, XF86AudioNext, exec, playerctl next bindl=, XF86AudioPrev, exec, playerctl previous # Other FN keys -bindl= $mainMod CTRL, XF86TouchpadToggle, exec, hyprctl notify -1 2000 -1 "TODO Touchpad Toggle" +bind= $mainMod CTRL, XF86TouchpadToggle, exec, hyprctl notify -1 2000 -1 "TODO Touchpad Toggle" bind = $mainMod, P, exec, hyprctl notify -1 2000 -1 "TODO Screen Settings" bindl = , Print, exec, hyprshot -m output -m active bind = $mainMod, Print, exec, hyprshot -m window -m active diff --git a/.config/hypr/scripts/lock.sh b/.config/hypr/scripts/lock.sh index 84328c8..3004111 100755 --- a/.config/hypr/scripts/lock.sh +++ b/.config/hypr/scripts/lock.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash +echo "Preparing hyprlock configuration..." # Path to hyprlock configuration file CONF="$HOME/.config/hypr/hyprlock.conf" - # Get the list of outputs mapfile -t outputs < <(hyprctl -j monitors | jq -r '.[].name') @@ -25,44 +25,29 @@ awk -v content="$block" ' { print } ' "$CONF" > "${CONF}.tmp" && mv "${CONF}.tmp" "$CONF" - +echo "Starting hyprlock..." /home/nathan/Git/hyprlock/build/hyprlock & +echo "Taking screenshots for lock screen..." # Take a screenshot of each output before locking (!THIS IS SLOW!) for output in "${outputs[@]}"; do # grim -o "$output" "/tmp/${output}-lockscreen.png" & $HOME/.config/hypr/scripts/spots.sh -s 8 <(grim -o "$output" -) "/tmp/${output}-lockscreen.png" & done -while pgrep -x grim >/dev/null; do - sleep 0.1 -done - - - -# Start hyprlock while we process the images - - -# Apply image effect to each screenshot -# for output in "${outputs[@]}"; do -# # Apply blur effect using spots.sh -# /home/nathan/.config/hypr/scripts/spots.sh -s 8 "/tmp/${output}-lockscreen.png" "/tmp/${output}-lockscreen.png" & -# done +echo "Waiting for screenshots to complete..." # Wait for all image processing to complete while pgrep -x spots.sh >/dev/null; do sleep 0.1 done - # Notify hyprlock to reload backgrounds echo "Reloading hyprlock backgrounds..." pkill -USR2 hyprlock -# Wait for hyprlock to exit -while pgrep -x hyprlock >/dev/null; do - echo "Waiting for hyprlock to exit..." - sleep 1 -done +echo "Waiting for hyprlock to exit..." +wait +echo "Hyprlock exited. Cleaning up..." # Cleanup: Restore hyprlock.conf to original state sed -i '/^# AUTO BACKGROUND$/,/^# AUTO BACKGROUND END$/{//!d}' "$CONF" diff --git a/.config/hypr/scripts/spots.sh b/.config/hypr/scripts/spots.sh index 8b132ce..2378bd3 100755 --- a/.config/hypr/scripts/spots.sh +++ b/.config/hypr/scripts/spots.sh @@ -291,25 +291,25 @@ else fi # test input image -convert -quiet "$infile" $bricon -clamp +repage "$tmpA1" || +magick -quiet "$infile" $bricon -clamp +repage "$tmpA1" || errMsg "--- FILE $infile DOES NOT EXIST OR IS NOT AN ORDINARY FILE, NOT READABLE OR HAS ZERO SIZE ---" # test spot file if exists if [ "$spotfile" != "" ]; then - convert -quiet "$spotfile" -alpha off +repage "$tmpA2" || + magick -quiet "$spotfile" -alpha off +repage "$tmpA2" || errMsg "--- FILE $spotfile DOES NOT EXIST OR IS NOT AN ORDINARY FILE, NOT READABLE OR HAS ZERO SIZE ---" fi # get image width, height and aspect -ww=`convert $tmpA1 -ping -format "%w" info:` -hh=`convert $tmpA1 -ping -format "%h" info:` +ww=`magick $tmpA1 -ping -format "%w" info:` +hh=`magick $tmpA1 -ping -format "%h" info:` # get size of spot and center of spot and last pixel of spot and pad size if [ "$spotfile" = "" ]; then sw=`echo $size | cut -dx -f1` sh=`echo $size | cut -dx -f2` - scx=`convert xc: -format "%[fx:($sw-1)/2]" info:` - scy=`convert xc: -format "%[fx:($sh-1)/2]" info:` + scx=`magick xc: -format "%[fx:($sw-1)/2]" info:` + scy=`magick xc: -format "%[fx:($sh-1)/2]" info:` lx=$((sw-1)) ly=$((sh-1)) @@ -318,8 +318,8 @@ if [ "$spotfile" = "" ]; then ph=$((sh+2*pad)) else - pw=`convert $tmpA2 -ping -format "%w" info:` - ph=`convert $tmpA2 -ping -format "%h" info:` + pw=`magick $tmpA2 -ping -format "%w" info:` + ph=`magick $tmpA2 -ping -format "%h" info:` fi @@ -332,19 +332,19 @@ if [ "$spotfile" = "" ]; then # create spot template if [ "$type" = "circle" ]; then - convert -size ${sw}x${sh} xc:black \ + magick -size ${sw}x${sh} xc:black \ +antialias -fill white -draw "ellipse $scx,$scy $scx,$scy 0,360" -alpha off \ $padding \ $tmpA2 elif [ "$type" = "square" ]; then - convert -size ${sw}x${sh} xc:black \ + magick -size ${sw}x${sh} xc:black \ +antialias -fill white -draw "rectangle 0,0 $lx,$ly" -alpha off \ $padding \ $tmpA2 elif [ "$type" = "diamond" ]; then - convert -size ${sw}x${sh} xc:black \ + magick -size ${sw}x${sh} xc:black \ +antialias -fill white -draw "polygon $scx,0 $lx,$scy $scx,$ly 0,$scy" -alpha off \ $padding \ $tmpA2 @@ -352,22 +352,22 @@ if [ "$spotfile" = "" ]; then fi # compute xmin and ymin and virtual canvas size -xmin=`convert xc: -format "%[fx:ceil($ww/$pw)]" info:` -ymin=`convert xc: -format "%[fx:ceil($hh/$ph)]" info:` -www=`convert xc: -format "%[fx:$xmin*$pw]" info:` -hhh=`convert xc: -format "%[fx:$ymin*$ph]" info:` +xmin=`magick xc: -format "%[fx:ceil($ww/$pw)]" info:` +ymin=`magick xc: -format "%[fx:ceil($hh/$ph)]" info:` +www=`magick xc: -format "%[fx:$xmin*$pw]" info:` +hhh=`magick xc: -format "%[fx:$ymin*$ph]" info:` # process image if [ "$edge" = "0" ]; then - convert \( $tmpA1 -define distort:viewport=${www}x${hhh}+0+0 -virtual-pixel mirror -distort SRT 0 \ + magick \( $tmpA1 -define distort:viewport=${www}x${hhh}+0+0 -virtual-pixel mirror -distort SRT 0 \ -scale ${xmin}x${ymin}! -scale ${www}x${hhh}! -crop ${ww}x${hh}+0+0 +repage \) \ \( $tmpA2 -write mpr:tile +delete -size ${ww}x${hh}! tile:mpr:tile \) \ -alpha off -compose copy_opacity -composite -compose over \ -background $bgcolor -flatten \ "$outfile" else - convert \( $tmpA1 -define distort:viewport=${www}x${hhh}+0 -virtual-pixel mirror -distort SRT 0 \ + magick \( $tmpA1 -define distort:viewport=${www}x${hhh}+0 -virtual-pixel mirror -distort SRT 0 \ -scale ${xmin}x${ymin}! -scale ${www}x${hhh}! -crop ${ww}x${hh}+0+0 +repage \) \ \( $tmpA2 -write mpr:tile +delete -size ${ww}x${hh}! tile:mpr:tile \) \ \( -clone 1 -threshold 0 -edge $edge -clamp -fill $ecolor -opaque white -transparent black \) \