♻️ hypr: separate and organize scripts
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user