aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/scripts
diff options
context:
space:
mode:
authorJaKooLit <jimmielovejay@gmail.com>2023-11-27 12:04:47 +0900
committerJaKooLit <jimmielovejay@gmail.com>2023-11-27 12:04:47 +0900
commit9e7b47f1b8dafbfadee3863355b3785384ffe436 (patch)
tree812b7eb42c04f392844d9bc9596ee7db08c083ef /config/hypr/scripts
parent1727b338712bcffb9400836f2b10f3571b32658c (diff)
Here are changes made
1.) Use pywal for dunst colors. However, seems backgrounds are not changing. Perhaps only on OpenSuse? 2.) Deleted preconfigured style for dunst. to align with #1 changes 3.) Rewrite some scripts to align with PywalDunst. 4.) New script created for Dunst-Pywal called PywalDunst.sh 5.) Random wallpaper auto change is not increased timing to change every 15 mins 6.) Some scripts are re-written
Diffstat (limited to 'config/hypr/scripts')
-rwxr-xr-xconfig/hypr/scripts/DarkLight.sh13
-rwxr-xr-xconfig/hypr/scripts/PywalDunst.sh24
-rwxr-xr-xconfig/hypr/scripts/PywalSwww.sh4
-rwxr-xr-xconfig/hypr/scripts/Refresh.sh6
-rwxr-xr-xconfig/hypr/scripts/Wallpaper.sh12
-rwxr-xr-xconfig/hypr/scripts/WallpaperRandom.sh7
-rwxr-xr-xconfig/hypr/scripts/WallpaperSelect.sh20
-rwxr-xr-xconfig/hypr/scripts/WaybarLayout.sh45
-rwxr-xr-xconfig/hypr/scripts/WaybarStyles.sh44
9 files changed, 116 insertions, 59 deletions
diff --git a/config/hypr/scripts/DarkLight.sh b/config/hypr/scripts/DarkLight.sh
index 53e1c7d5..b734abc3 100755
--- a/config/hypr/scripts/DarkLight.sh
+++ b/config/hypr/scripts/DarkLight.sh
@@ -4,12 +4,11 @@ set -x
wallpaper_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers"
hypr_config_path="$HOME/.config/hypr"
waybar_config="$HOME/.config/waybar"
-dunst_config="$HOME/.config/dunst"
+SCRIPTSDIR="$HOME/.config/hypr/scripts"
dark_rofi_pywal="$HOME/.cache/wal/colors-rofi-dark.rasi"
light_rofi_pywal="$HOME/.cache/wal/colors-rofi-light.rasi"
-
# Tokyo Night
light_gtk_theme="Tokyonight-Light-B"
dark_gtk_theme="Tokyonight-Dark-B"
@@ -23,7 +22,7 @@ swww query || swww init
# Set swww options
swww="swww img"
-effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2"
+effect="--transition-bezier .43,1.19,1,.4 --transition-fps 30 --transition-type random --transition-pos 0.925,0.977 --transition-duration 2"
# Define functions for notifying user and updating symlinks
notify_user() {
@@ -41,8 +40,6 @@ fi
path_param=$(echo $next_mode | sed 's/.*/\u&/')
notify_user "$next_mode"
-#ln -sf "${waybar_config}/style/style-pywal.css" "${waybar_config}/style.css"
-ln -sf "${dunst_config}/styles/dunstrc-${next_mode}" "${dunst_config}/dunstrc"
# Symlink for rofi theme
if [ "$next_mode" = "dark" ]; then
@@ -71,6 +68,8 @@ $swww "${next_wallpaper}" $effect
echo "$next_mode" > ~/.cache/.wallpaper_mode
echo "$next_wallpaper" > ~/.cache/.current_wallpaper
-exec ~/.config/hypr/scripts/PywalSwww.sh &
+${SCRIPTSDIR}/PywalSwww.sh &
sleep 2
-exec ~/.config/hypr/scripts/Refresh.sh & \ No newline at end of file
+${SCRIPTSDIR}/Refresh.sh &
+sleep 1
+${SCRIPTSDIR}/PywalDunst.sh \ No newline at end of file
diff --git a/config/hypr/scripts/PywalDunst.sh b/config/hypr/scripts/PywalDunst.sh
new file mode 100755
index 00000000..410c55b8
--- /dev/null
+++ b/config/hypr/scripts/PywalDunst.sh
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+# -lf/nf/cf color
+# Defines the foreground color for low, normal and critical notifications respectively.
+#
+# -lb/nb/cb color
+# Defines the background color for low, normal and critical notifications respectively.
+#
+# -lfr/nfr/cfr color
+# Defines the frame color for low, normal and critical notifications respectively.
+
+[ -f "$HOME/.cache/wal/colors.sh" ] && . "$HOME/.cache/wal/colors.sh"
+
+pidof dunst && pkill dunst
+
+DUNST_FILE=$HOME/.config/dunst/dunstrc
+
+# update dunst based on pywal colors.
+sed -i '/background = /s/.*/ background = "'$color0'"/' $DUNST_FILE
+sed -i '/foreground = /s/.*/ foreground = "'$color7'"/' $DUNST_FILE
+sed -i '/frame_color = /s/.*/ frame_color = "'$color2'"/' $DUNST_FILE
+
+
+dunst -conf $HOME/.config/dunst/dunstrc > /dev/null 2>&1 & \ No newline at end of file
diff --git a/config/hypr/scripts/PywalSwww.sh b/config/hypr/scripts/PywalSwww.sh
index 2a18122e..db4d706a 100755
--- a/config/hypr/scripts/PywalSwww.sh
+++ b/config/hypr/scripts/PywalSwww.sh
@@ -28,6 +28,6 @@ done
wal -i $wallpaper_path
# execute pywal skipping tty and terminal
-#wal -i $wallpaper_path -s -t
+#wal -i $wallpaper_path -s -t &
-# more info regarding Pywal https://github.com/dylanaraps/pywal/wiki/Getting-Started \ No newline at end of file
+# more info regarding Pywal https://github.com/dylanaraps/pywal/wiki/Getting-Started
diff --git a/config/hypr/scripts/Refresh.sh b/config/hypr/scripts/Refresh.sh
index 3037458b..d1b8592e 100755
--- a/config/hypr/scripts/Refresh.sh
+++ b/config/hypr/scripts/Refresh.sh
@@ -3,16 +3,16 @@
SCRIPTSDIR=$HOME/.config/hypr/scripts
# Kill already running processes
-_ps=(waybar dunst rofi)
+_ps=(waybar rofi)
for _prs in "${_ps[@]}"; do
if pidof "${_prs}" >/dev/null; then
pkill "${_prs}"
fi
done
-# relaunch apps
-dunst &
+# Relaunch waybar
waybar &
+## trying to figure out how to restart Rainbow borders
#sleep 1
#${SCRIPTSDIR}/RainbowBorders.sh & \ No newline at end of file
diff --git a/config/hypr/scripts/Wallpaper.sh b/config/hypr/scripts/Wallpaper.sh
index d5ea4645..52502642 100755
--- a/config/hypr/scripts/Wallpaper.sh
+++ b/config/hypr/scripts/Wallpaper.sh
@@ -1,12 +1,18 @@
#!/bin/bash
-DIR=$HOME/Pictures/wallpapers/
+DIR="$HOME/Pictures/wallpapers/"
+SCRIPTSDIR="$HOME/.config/hypr/scripts"
+
PICS=($(find ${DIR} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" \)))
RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]}
swww query || swww init
swww img ${RANDOMPICS} --transition-fps 30 --transition-type any --transition-duration 3
-exec $HOME/.config/hypr/scripts/PywalSwww.sh &
+
+
+${SCRIPTSDIR}/PywalSwww.sh &
+sleep 1
+${SCRIPTSDIR}/Refresh.sh &
sleep 1
-exec $HOME/.config/hypr/scripts/Refresh.sh \ No newline at end of file
+${SCRIPTSDIR}/PywalDunst.sh \ No newline at end of file
diff --git a/config/hypr/scripts/WallpaperRandom.sh b/config/hypr/scripts/WallpaperRandom.sh
index 13bc5033..35bfcf8a 100755
--- a/config/hypr/scripts/WallpaperRandom.sh
+++ b/config/hypr/scripts/WallpaperRandom.sh
@@ -2,9 +2,12 @@
# This script will randomly go through the files of a directory, setting it
# up as the wallpaper at regular intervals
+#
+# NOTE: this script uses bash (not POSIX shell) for the RANDOM variable
pywal_script=$HOME/.config/hypr/scripts/PywalSwww.sh
pywal_refresh=$HOME/.config/hypr/scripts/Refresh.sh
+pywal_dunst=$HOME/.config/hypr/scripts/PywalDunst.sh
if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then
echo "Usage:
@@ -18,7 +21,7 @@ export SWWW_TRANSITION_STEP=2
export SWWW_TRANSITION_TYPE=random
# This controls (in seconds) when to switch to the next image
-INTERVAL=300
+INTERVAL=600
while true; do
find "$1" \
@@ -27,7 +30,7 @@ while true; do
done \
| sort -n | cut -d':' -f2- \
| while read -r img; do
- swww img "$img" && $pywal_script && $pywal_refresh
+ swww img "$img" && $pywal_script && $pywal_refresh && $pywal_dunst
sleep $INTERVAL
done
diff --git a/config/hypr/scripts/WallpaperSelect.sh b/config/hypr/scripts/WallpaperSelect.sh
index d748318a..0d899a10 100755
--- a/config/hypr/scripts/WallpaperSelect.sh
+++ b/config/hypr/scripts/WallpaperSelect.sh
@@ -1,6 +1,9 @@
#!/bin/bash
+
+SCRIPTSDIR="$HOME/.config/hypr/scripts"
+
# WALLPAPERS PATH
-DIR=$HOME/Pictures/wallpapers
+DIR="$HOME/Pictures/wallpapers/"
# Transition config
FPS=30
@@ -25,13 +28,14 @@ menu() {
for i in "${!PICS[@]}"; do
# Displaying .gif to indicate animated images
if [[ -z $(echo "${PICS[$i]}" | grep .gif$) ]]; then
- printf "$i. $(echo "${PICS[$i]}" | cut -d. -f1)\n"
+ filename=$(basename "${PICS[$i]}" | sed 's/\.[^.]*$//') # Remove file extension
+ printf "%s\n" "${filename//[[:digit:]]/}" # Remove leading numbers
else
- printf "$i. ${PICS[$i]}\n"
+ printf "%s\n" "${PICS[$i]}"
fi
done
- printf "$RANDOM_PIC_NAME"
+ printf "%s\n" "$RANDOM_PIC_NAME"
}
swww query || swww init
@@ -50,7 +54,7 @@ main() {
exit 0
fi
- pic_index=$(echo "$choice" | cut -d. -f1)
+ pic_index=$(printf '%s\n' "${!PICS[@]}" | grep -E "\b${choice}\b") # Get index based on choice
swww img "${DIR}/${PICS[$pic_index]}" $SWWW_PARAMS
}
@@ -62,5 +66,7 @@ fi
main
-$HOME/.config/hypr/scripts/PywalSwww.sh &
-$HOME/.config/hypr/scripts/Refresh.sh
+${SCRIPTSDIR}/PywalSwww.sh &
+${SCRIPTSDIR}/Refresh.sh &
+sleep 1
+${SCRIPTSDIR}/PywalDunst.sh
diff --git a/config/hypr/scripts/WaybarLayout.sh b/config/hypr/scripts/WaybarLayout.sh
index dd5fc387..dbe0ee7f 100755
--- a/config/hypr/scripts/WaybarLayout.sh
+++ b/config/hypr/scripts/WaybarLayout.sh
@@ -1,26 +1,42 @@
#!/bin/bash
-CONFIG="$HOME/.config/waybar/configs"
-WCONFIG="$HOME/.config/waybar/config"
+set -euo pipefail
+IFS=$'\n\t'
+# Define directories
+config_dir="$HOME/.config/waybar/configs"
+waybar_config="$HOME/.config/waybar/config"
+scripts_dir="$HOME/.config/hypr/scripts"
+rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi"
+
+# Function to display menu options
menu() {
- # List only files (excluding directories) in the directory and sort alphabetically
options=()
while IFS= read -r file; do
- if [ -f "$CONFIG/$file" ]; then
- options+=("$file")
- fi
- done < <(find "$CONFIG" -maxdepth 1 -type f -exec basename {} \; | sort)
-
+ options+=("$(basename "$file")")
+ done < <(find "$config_dir" -maxdepth 1 -type f -exec basename {} \; | sort)
+
printf '%s\n' "${options[@]}"
}
+# Apply selected configuration
apply_config() {
- ln -sf "$CONFIG/$1" "$WCONFIG"
+ ln -sf "$config_dir/$1" "$waybar_config"
+ restart_waybar_if_needed
+}
+
+# Restart Waybar
+restart_waybar_if_needed() {
+ if pgrep -x "waybar" >/dev/null; then
+ pkill waybar
+ sleep 0.1 # Delay for Waybar to completely terminate
+ fi
+ "${scripts_dir}/Refresh.sh" &
}
+# Main function
main() {
- choice=$(menu | rofi -dmenu -config ~/.config/rofi/config-waybar-layout.rasi)
+ choice=$(menu | rofi -dmenu -config "$rofi_config")
if [[ -z "$choice" ]]; then
echo "No option selected. Exiting."
@@ -29,10 +45,7 @@ main() {
case $choice in
"no panel")
- if pgrep -x "waybar" >/dev/null; then
- pkill waybar
- fi
- exit 0
+ pgrep -x "waybar" && pkill waybar || true
;;
*)
apply_config "$choice"
@@ -40,12 +53,10 @@ main() {
esac
}
-# Check if rofi is already running
+# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
pkill rofi
exit 0
fi
main
-
-~/.config/hypr/scripts/Refresh.sh &
diff --git a/config/hypr/scripts/WaybarStyles.sh b/config/hypr/scripts/WaybarStyles.sh
index 8a420f55..9395c528 100755
--- a/config/hypr/scripts/WaybarStyles.sh
+++ b/config/hypr/scripts/WaybarStyles.sh
@@ -1,26 +1,44 @@
#!/bin/bash
-CONFIG="$HOME/.config/waybar/style"
-WCONFIG="$HOME/.config/waybar/style.css"
+set -euo pipefail
+IFS=$'\n\t'
+# Define directories
+config_dir="$HOME/.config/waybar/style"
+waybar_config="$HOME/.config/waybar/style.css"
+scripts_dir="$HOME/.config/hypr/scripts"
+rofi_config="$HOME/.config/rofi/config-waybar-style.rasi"
+
+# Function to display menu options
menu() {
- # List only files (excluding directories) in the directory and sort alphabetically
options=()
while IFS= read -r file; do
- if [ -f "$CONFIG/$file" ]; then
+ if [ -f "$config_dir/$file" ]; then
options+=("$(basename "$file" .css)")
fi
- done < <(find "$CONFIG" -maxdepth 1 -type f -name '*.css' -exec basename {} \; | sort)
+ done < <(find "$config_dir" -maxdepth 1 -type f -name '*.css' -exec basename {} \; | sort)
printf '%s\n' "${options[@]}"
}
+# Apply selected style
apply_style() {
- ln -sf "$CONFIG/$1.css" "$WCONFIG"
+ ln -sf "$config_dir/$1.css" "$waybar_config"
+ restart_waybar_if_needed
+}
+
+# Restart Waybar if it's running
+restart_waybar_if_needed() {
+ if pgrep -x "waybar" >/dev/null; then
+ pkill waybar
+ sleep 0.1 # Delay for Waybar to completely terminate
+ fi
+ "${scripts_dir}/Refresh.sh" &
}
+# Main function
main() {
- choice=$(menu | rofi -dmenu -config ~/.config/rofi/config-waybar-style.rasi)
+ choice=$(menu | rofi -dmenu -config "$rofi_config")
if [[ -z "$choice" ]]; then
echo "No option selected. Exiting."
@@ -28,19 +46,9 @@ main() {
fi
apply_style "$choice"
-
- # Restart relevant processes
- for process in waybar dunst; do
- if pgrep -x "$process" >/dev/null; then
- pkill "$process"
- fi
- done
-
- # Launch Refresh.sh in the background
- ~/.config/hypr/scripts/Refresh.sh &
}
-# Check if rofi is already running
+# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
pkill rofi
exit 0
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage