259 lines
5.3 KiB
Bash
Executable File
259 lines
5.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
D_CONF="${HOME}/.config"
|
|
|
|
D_HYPRLAND_CONF="${D_CONF}/hypr"
|
|
D_WAYBAR_CONF="${D_CONF}/waybar"
|
|
D_NWGBAR_CONF="${D_CONF}/nwg-bar"
|
|
D_KITTY_CONF="${D_CONF}/kitty"
|
|
D_FUZZEL_CONF="${D_CONF}/fuzzel"
|
|
|
|
initial_checks() {
|
|
case ${1} in
|
|
0) echo "Valid index";;
|
|
1) echo "Valid index";;
|
|
2) echo "Valid index";;
|
|
3) echo "Valid index";;
|
|
4) echo "Valid index";;
|
|
*) echo "Invalid index, quitting now. Goodbye." && exit 1;;
|
|
esac
|
|
}
|
|
|
|
reload_all() {
|
|
hyprctl reload
|
|
for sock in /tmp/kitty-*; do
|
|
[ -S "$sock" ] || continue
|
|
echo "Reloading config for $sock"
|
|
kitty @ --to "unix:$sock" load-config
|
|
done
|
|
|
|
if pgrep -x "waybar" > /dev/null; then
|
|
killall waybar
|
|
sleep 0.5
|
|
nohup waybar >/dev/null 2>&1 &
|
|
else
|
|
nohup waybar >/dev/null 2>&1 &
|
|
fi
|
|
}
|
|
|
|
update_symlinks() {
|
|
echo "Updating symlinks for hyprland..."
|
|
readlink ${D_HYPRLAND_CONF}/theme.conf
|
|
F_THEMEFILE="${D_HYPRLAND_CONF}/theme.conf"
|
|
case ${1} in
|
|
0)
|
|
F_THEME="${D_HYPRLAND_CONF}/t_base16.conf"
|
|
;;
|
|
1)
|
|
F_THEME="${D_HYPRLAND_CONF}/t_everforest.conf"
|
|
;;
|
|
2)
|
|
F_THEME="${D_HYPRLAND_CONF}/t_gruvbox.conf"
|
|
;;
|
|
3)
|
|
F_THEME="${D_HYPRLAND_CONF}/t_monokai-pro.conf"
|
|
;;
|
|
4)
|
|
F_THEME="${D_HYPRLAND_CONF}/t_nord.conf"
|
|
;;
|
|
esac
|
|
ln -snvf ${F_THEME} ${F_THEMEFILE}
|
|
|
|
echo "Updating symlinks for waybar..."
|
|
readlink ${D_WAYBAR_CONF}/style.css
|
|
F_THEMEFILE="${D_WAYBAR_CONF}/style.css"
|
|
case ${1} in
|
|
0)
|
|
F_THEME="${D_WAYBAR_CONF}/t_base16.css"
|
|
;;
|
|
1)
|
|
F_THEME="${D_WAYBAR_CONF}/t_everforest.css"
|
|
;;
|
|
2)
|
|
F_THEME="${D_WAYBAR_CONF}/t_gruvbox.css"
|
|
;;
|
|
3)
|
|
F_THEME="${D_WAYBAR_CONF}/t_monokai-pro.css"
|
|
;;
|
|
4)
|
|
F_THEME="${D_WAYBAR_CONF}/t_nord.css"
|
|
;;
|
|
esac
|
|
ln -snvf ${F_THEME} ${F_THEMEFILE}
|
|
|
|
echo "Updating symlinks for nwg-bar..."
|
|
readlink ${D_NWGBAR_CONF}/style.css
|
|
F_THEMEFILE="${D_NWGBAR_CONF}/style.css"
|
|
case ${1} in
|
|
0)
|
|
F_THEME="${D_NWGBAR_CONF}/t_base16.css"
|
|
;;
|
|
1)
|
|
F_THEME="${D_NWGBAR_CONF}/t_everforest.css"
|
|
;;
|
|
2)
|
|
F_THEME="${D_NWGBAR_CONF}/t_gruvbox.css"
|
|
;;
|
|
3)
|
|
F_THEME="${D_NWGBAR_CONF}/t_monokai-pro.css"
|
|
;;
|
|
4)
|
|
F_THEME="${D_NWGBAR_CONF}/t_nord.css"
|
|
;;
|
|
esac
|
|
ln -snvf ${F_THEME} ${F_THEMEFILE}
|
|
|
|
echo "Updating symlinks for kitty..."
|
|
readlink ${D_KITTY_CONF}/current_theme.conf
|
|
F_THEMEFILE="${D_KITTY_CONF}/current_theme.conf"
|
|
case ${1} in
|
|
0)
|
|
F_THEME="${D_KITTY_CONF}/t_base16.conf"
|
|
;;
|
|
1)
|
|
F_THEME="${D_KITTY_CONF}/t_everforest.conf"
|
|
;;
|
|
2)
|
|
F_THEME="${D_KITTY_CONF}/t_gruvbox.conf"
|
|
;;
|
|
3)
|
|
F_THEME="${D_KITTY_CONF}/t_monokai-pro.conf"
|
|
;;
|
|
4)
|
|
F_THEME="${D_KITTY_CONF}/t_nord.conf"
|
|
;;
|
|
esac
|
|
ln -snvf ${F_THEME} ${F_THEMEFILE}
|
|
|
|
echo "Updating symlinks for fuzzel..."
|
|
readlink ${D_FUZZEL_CONF}/fuzzel.ini
|
|
F_THEMEFILE="${D_FUZZEL_CONF}/fuzzel.ini"
|
|
case ${1} in
|
|
0)
|
|
F_THEME="${D_FUZZEL_CONF}/t_base16.ini"
|
|
;;
|
|
1)
|
|
F_THEME="${D_FUZZEL_CONF}/t_everforest.ini"
|
|
;;
|
|
2)
|
|
F_THEME="${D_FUZZEL_CONF}/t_gruvbox.ini"
|
|
;;
|
|
3)
|
|
F_THEME="${D_FUZZEL_CONF}/t_monokai-pro.ini"
|
|
;;
|
|
4)
|
|
F_THEME="${D_FUZZEL_CONF}/t_nord.ini"
|
|
;;
|
|
esac
|
|
ln -snvf ${F_THEME} ${F_THEMEFILE}
|
|
|
|
echo "Symlinks updated successfully!"
|
|
}
|
|
|
|
update_nvim() {
|
|
case ${1} in
|
|
0)
|
|
export NVIM_THEME=base16
|
|
;;
|
|
1)
|
|
export NVIM_THEME="everforest"
|
|
;;
|
|
2)
|
|
export NVIM_THEME="gruvbox"
|
|
;;
|
|
3)
|
|
export NVIM_THEME="monokai-pro"
|
|
;;
|
|
4)
|
|
export NVIM_THEME="nord"
|
|
;;
|
|
esac
|
|
|
|
echo "neovim theme updated"
|
|
echo "These changes may not apply until neovim is restarted"
|
|
}
|
|
|
|
update_gtk() {
|
|
case ${1} in
|
|
0)
|
|
GTK_THEME="BlackAndWhite"
|
|
ICO_THEME="Slot-Blue-Dark-Icons"
|
|
;;
|
|
1)
|
|
GTK_THEME="Everforest-Dark"
|
|
ICO_THEME="Everforest-Dark"
|
|
;;
|
|
2)
|
|
GTK_THEME="Gruvbox-Dark-Medium"
|
|
ICO_THEME="Gruvbox-Plus-Dark"
|
|
;;
|
|
3)
|
|
GTK_THEME="Monokai-GTK"
|
|
ICO_THEME="Everforest-Dark"
|
|
;;
|
|
4)
|
|
GTK_THEME="Nordic"
|
|
ICO_THEME="Nordzy-dark"
|
|
;;
|
|
*)
|
|
echo "Invalid theme index"
|
|
return 1
|
|
;;
|
|
esac
|
|
|
|
echo "Applying GTK theme: ${GTK_THEME}"
|
|
gsettings set org.gnome.desktop.interface gtk-theme "${GTK_THEME}"
|
|
gsettings set org.gnome.desktop.wm.preferences theme "${GTK_THEME}"
|
|
gsettings set org.gnome.desktop.interface icon-theme "${ICO_THEME}"
|
|
|
|
echo "GTK theme applied successfully"
|
|
}
|
|
|
|
update_wallpaper() {
|
|
WALL_DIR="${HOME}/Wallpapers"
|
|
case ${1} in
|
|
0)
|
|
FOLDER="${WALL_DIR}/base16"
|
|
;;
|
|
1)
|
|
FOLDER="${WALL_DIR}/everforest"
|
|
;;
|
|
2)
|
|
FOLDER="${WALL_DIR}/gruvbox"
|
|
;;
|
|
3)
|
|
FOLDER="${WALL_DIR}/monokai-pro"
|
|
;;
|
|
4)
|
|
FOLDER="${WALL_DIR}/nord"
|
|
;;
|
|
*)
|
|
echo "Invalid theme index"
|
|
return 1
|
|
;;
|
|
esac
|
|
|
|
if [ -d "$FOLDER" ]; then
|
|
echo "Setting random wallpaper from: $FOLDER"
|
|
RANDOM_WALLPAPER=$(find "$FOLDER" -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.jpeg" -o -iname "*.webp" \) | shuf -n 1)
|
|
if [ -n "$RANDOM_WALLPAPER" ]; then
|
|
hyprctl hyprpaper unload all
|
|
hyprctl hyprpaper preload "$RANDOM_WALLPAPER"
|
|
hyprctl hyprpaper wallpaper ",$RANDOM_WALLPAPER"
|
|
echo "Wallpaper set to: $RANDOM_WALLPAPER"
|
|
else
|
|
echo "No wallpaper files found in: $FOLDER"
|
|
fi
|
|
else
|
|
echo "Wallpaper folder not found: $FOLDER"
|
|
fi
|
|
}
|
|
|
|
initial_checks "$@"
|
|
update_symlinks "$@"
|
|
update_nvim "$@"
|
|
update_gtk "$@"
|
|
update_wallpaper "$@"
|
|
reload_all
|
|
|