♻️ hypr: separate and organize scripts

This commit is contained in:
retrozinndev
2025-02-12 13:41:56 -03:00
parent be2731516e
commit 58b876c6e8
9 changed files with 59 additions and 89 deletions
+2 -2
View File
@@ -20,5 +20,5 @@ exec-once = sh $HOME/.config/hypr/scripts/night-light-check.sh
exec-once = ags run --log-file $HOME/ags.log
# Apps
exec-once = /usr/bin/env vesktop --start-minimized
exec-once = /usr/bin/env steam -silent
exec-once = /bin/vesktop --start-minimized
exec-once = /bin/steam -silent
+1
View File
@@ -23,3 +23,4 @@ env = QT_QPA_PLATFORMTHEME, qt5ct
env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
env = ADW_DISABLE_PORTAL, 1
env = MOZ_ENABLE_WAYLAND, 1
#env = ELECTRON_OZONE_PLATFORM_HINT, auto
-1
View File
@@ -6,7 +6,6 @@
env = LIBVA_DRIVER_NAME, nvidia
env = __GLX_VENDOR_LIBRARY_NAME, nvidia
env = NVD_BACKEND, direct
env = ELECTRON_OZONE_PLATFORM_HINT, auto
cursor {
# Set to true if you have issues
+3 -1
View File
@@ -46,7 +46,8 @@ layerrule = animation slide right, eww-cc
layerrule = animation fade, eww-calendar
layerrule = animation fade, eww-volume
layerrule = animation fade, eww-powermenu
layerrule = animation up, control-center
layerrule = animation fade, control-center
layerrule = animation fade, center-window # Bruh i need a better name for this :skull:
# Opacity
windowrulev2 = opacity .95 .95, class:kitty
@@ -71,6 +72,7 @@ layerrule = blur, eww-powermenu
layerrule = blur, top-bar
layerrule = blur, osd
layerrule = blur, control-center
#layerrule = blur, logout-menu
layerrule = ignorealpha .6, eww-volume
layerrule = ignorealpha .55, eww-bar
layerrule = ignorealpha .5, eww-calendar
+26 -44
View File
@@ -1,90 +1,72 @@
#!/usr/bin/env bash
#!usr/bin/env bash
# Prompts the user with anyrun or wofi to choose an image file inside
# the defined $WALLPAPERS_DIR. If the user selects an entry, it automatically
# writes changes to the hyprpaper.conf file and hot-reloads wallpaper if hyprpaper
# is running.
# Prompts the user with dmenu(or dmenu-like app, see hypr/scripts/get-dmenu.sh)
# to choose an image file inside defined $WALLPAPERS_DIR. If the user selects
# an entry, it automatically writes changes to the hyprpaper.conf file and
# hot-reloads if hyprpaper is running.
# --------------
# Licensed under the MIT License
# Made by retrozinndev (João Dias)
# From https://github.com/retrozinndev/Hyprland-Dots
HYPRPAPER_FILE="$HOME/.config/hypr/hyprpaper.conf"
COLORSCHEME_STYLE="darken" # lighten / darken
style="darken" # lighten / darken
dmenu=$(sh "$XDG_CONFIG_HOME/hypr/scripts/get-dmenu.sh")
if [[ $WALLPAPERS_DIR == "" ]]; then
if [[ -z "$WALLPAPERS_DIR" ]]; then
WALLPAPERS_DIR="$HOME/wallpapers"
fi
if [[ -f /bin/anyrun ]]; then
WALLPAPER_SELECT_CMD="anyrun --plugins libstdin.so"
elif [[ -f /bin/wofi ]]; then
WALLPAPER_SELECT_CMD="wofi --dmenu"
else
if [[ -z "$dmenu" ]]; then
notify-send -u normal -a "Wallpaper" "Dmenu not found" "Couldn't find anyrun or wofi for dmenu! Try installing one of these two before selecting wallpaper!"
exit 1
fi
if [[ -z $(ls -A $WALLPAPERS_DIR) ]]
then
if [[ -z $(ls -A $WALLPAPERS_DIR) ]]; then
notify-send -u normal -a "Wallpaper" "Wallpapers not found" "Couldn't find any wallpaper inside \`~/wallpapers\`, try putting an image you like in there to choose it!"
exit 1
fi
function Write_changes() {
echo "Writing to hyprpaper config file..."
echo "[LOG] Writing to hyprpaper config file"
echo \
'$wallpaper'" = $SET_WALLPAPER_FULL
'$wallpaper'" = $wall
splash = true
preload = "'$wallpaper'"
wallpaper = , "'$wallpaper'"" | sed -e "s/^(\\[n])//g" > $HYPRPAPER_FILE
wallpaper = , "'$wallpaper'"" | sed -e "s/^(\\[n])//g" > $XDG_CONFIG_HOME/hypr/hyprpaper.conf
}
Reload_wallpaper() {
echo "Hot-reloading wallpaper..."
function Reload_wallpaper() {
echo "[LOG] Hot-reloading wallpaper"
hyprctl hyprpaper unload all
hyprctl hyprpaper preload "$SET_WALLPAPER_FULL"
hyprctl hyprpaper wallpaper ", $SET_WALLPAPER_FULL"
hyprctl hyprpaper preload $wall
hyprctl hyprpaper wallpaper ", $wall"
}
Reload_pywal() {
echo "Reloading pywal colorscheme..."
wal -q -t --cols16 $COLORSCHEME_STYLE -i "$SET_WALLPAPER_FULL"
function Reload_pywal() {
echo "[LOG] Reloading pywal colorscheme"
wal -q -t --cols16 $style -i "$wall"
}
Reload_eww() {
echo "Reloading Eww..."
eww reload
}
# Prompt wallpapers via dmenu
SET_WALLPAPER_NAME="$(ls $WALLPAPERS_DIR | $WALLPAPER_SELECT_CMD)"
SET_WALLPAPER_FULL="$WALLPAPERS_DIR/$SET_WALLPAPER_NAME"
echo "Selected wallpaper: $SET_WALLPAPER_NAME"
# Prompt wallpaper list
wall="$WALLPAPERS_DIR/$(ls $WALLPAPERS_DIR | $dmenu)"
# Check if input wallpaper is empty
if [[ $SET_WALLPAPER_NAME == "" ]] || [[ $SET_WALLPAPER_NAME == " " ]]
then
if [[ $wall == "$WALLPAPERS_DIR/" ]]; then
echo "No wallpaper has been selected by user!"
if [[ $RANDOM_WALLPAPER_WHEN_EMPTY == true ]]
then
SET_WALLPAPER_NAME=$(ls $WALLPAPERS_DIR | shuf -n 1)
echo "Selected random wallpaper from $HOME/wallpapers: $SET_WALLPAPER_NAME"
SET_WALLPAPER_FULL="$WALLPAPERS_DIR/$SET_WALLPAPER_NAME"
wall="$WALLPAPERS_DIR/$(ls $WALLPAPERS_DIR | shuf -n 1)"
echo "Selected random from $WALLPAPERS_DIR: $wall"
else
echo "Skipping hyprpaper changes and exiting."
exit 1
exit 0
fi
fi
Reload_pywal
Reload_wallpaper
Reload_eww
Write_changes
exit 0
+1 -1
View File
@@ -3,5 +3,5 @@
selection=$(cliphist list | anyrun --plugins libstdin.so | cliphist decode)
if [[ ! -z "$selection" ]]; then
echo -e $selection | sed -e 's/\n$//g' | wl-copy
printf "%s" $selection | sed -e 's/\n$//g' | wl-copy
fi
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Checks environment for dmenu or dmenu-like apps
# and prints out a command to pipe of.
# -----------
# Licensed under the MIT License
# Made by retrozinndev (João Dias)
# From: https://github.com/retrozinndev/Hyprland-Dots
DMENUS=(
"anyrun:--plugins:libstdin.so"
"rofi:-dmenu"
"wofi:--show:dmenu"
"dmenu"
)
for dmenu in ${DMENUS[@]}; do
name=$(printf "$dmenu" | awk -F: '{ print $1 }')
cmd=$(env "$name" -h > /dev/null)
code=$?
if [[ ! $code == 127 ]]; then
echo "$dmenu" | sed 's/:/ /g'
break;
fi
done
View File
@@ -1,40 +0,0 @@
#!/usr/bin/env bash
# This script runs notification-handler.sh script
# and handles any issues that happens with it.
# --------
# Licensed under the MIT License
# Made by retrozinndev (João Dias)
# From https://github.com/retrozinndev/Hyprland-Dots
logfile="$HOME/.cache/notification-handler-daemon.log"
handler_script="$HOME/.config/eww/scripts/notification-handler.sh"
function Send_log() {
echo "[$1]${@/$1}" >> $logfile
}
function Exit_daemon() {
Send_log "info" "Handler exited normally, quitting daemon."
exit 0
}
function Restart_handler() {
bash $handler_script &
pid_handler=$!
Send_log "info" "Handler started!"
Send_log "info" "Handler script PID: $pid_handler"
wait $pid_handler && Exit_daemon || \
(Send_log "error" "An error occurred and handler stopped"
Send_log "info" "Clearing history and starting handler again."
sh $HOME/.config/eww/scripts/notification-clear.sh &
Restart_handler)
}
trap "Send_log 'info' 'SIGINT received, stopping daemon and handler' ; kill \$pid_handler ; exit 1" SIGINT
trap "Send_log 'info' 'SIGTERM received, stopping daemon and handler' ; kill \$pid_handler ; exit 1" SIGTERM
echo -e '' > $logfile
Send_log "info" "Starting Daemon..."
Send_log "info" "Daemon script PID: $$"
Restart_handler