agsdotfilesdotshyprlandhyprland-configricerofirofi-configshell-scriptsswwwwallustwaybarwaybar-modulewaybar-themes
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.5 KiB
112 lines
3.5 KiB
#!/bin/bash |
|
# This script will change the cursor theme |
|
|
|
# Directory for user configurations |
|
cDIR="$HOME/.config/hypr/UserConfigs" |
|
# Directory for icons |
|
iDIR="$HOME/.config/swaync/images" |
|
|
|
# Create symlinks for all cursor themes |
|
for CURSORS in $(find /usr/share/icons -type d -name "cursors" | awk -F/ '{print $(NF-1)}'); do |
|
DIRECTORY=$HOME/.icons/$CURSORS |
|
if [ ! -d "$DIRECTORY" ]; then |
|
ln -s "/usr/share/icons/$CURSORS" "$HOME/.icons/$CURSORS" |
|
fi |
|
done |
|
|
|
# Get list of cursor themes. Select one from the list |
|
cursor=$(find /usr/share/icons $HOME/.icons -type d -name "cursors" | awk -F/ '{print $(NF-1)}' | rofi -dmenu -config ~/.config/rofi/config-long.rasi) |
|
|
|
# Exit if a cursor theme was not selected |
|
if [ -z "$cursor" ]; then |
|
exit 0 |
|
fi |
|
|
|
# Notify instructions |
|
notify-send -u low "Default cursor size is 24" |
|
notify-send -u low "Select cursor size" |
|
|
|
# 1-100. Select a size from the list |
|
size=$(seq 100 | rofi -dmenu -config ~/.config/rofi/config-long.rasi) |
|
|
|
# Exit if a size was not selected |
|
if [ -z "$size" ]; then |
|
exit 0 |
|
fi |
|
|
|
# Set the cursor theme with hyprctl |
|
hyprctl setcursor $cursor $size |
|
|
|
# Set the cursor theme with gsettings |
|
gsettings set org.gnome.desktop.interface cursor-theme $cursor >/dev/null 2>&1 & |
|
gsettings set org.gnome.desktop.interface cursor-size $size >/dev/null 2>&1 & |
|
|
|
# Set the cursor size environment variable |
|
if ! grep -q "env = XCURSOR_SIZE,*" $cDIR/ENVariables.conf; then |
|
echo " |
|
# CURSOR_SIZE - Generated by Cursors.sh |
|
env = XCURSOR_SIZE,$size" >>"$cDIR/ENVariables.conf" |
|
else |
|
sed -i "s/^env = XCURSOR_SIZE.*/env = XCURSOR_SIZE,$size/" $cDIR/ENVariables.conf |
|
fi |
|
|
|
# Create config directories if they don't exist |
|
mkdir -p $HOME/.config/gtk-3.0 $HOME/.config/xsettingsd $HOME/.config/gtk-4.0 $HOME/.icons/default |
|
|
|
# Set the gtk config files |
|
config1="$HOME/.config/gtk-3.0/settings.ini" |
|
config2="$HOME/.config/gtk-4.0/settings.ini" |
|
if grep -q ".gtkrc-2.0.mine" $HOME/.gtkrc-2.0; then |
|
config3="$HOME/.gtkrc-2.0.mine" |
|
else |
|
config3="$HOME/.gtkrc-2.0" |
|
fi |
|
configs=($config1 $config2 $config3) |
|
|
|
# Set the cursor theme in the gtk config files |
|
for config in "${configs[@]}"; do |
|
if $config != $config3; then |
|
if ! grep -q "\[Settings\]" $config; then |
|
echo "[Settings]" >>$config |
|
fi |
|
fi |
|
if grep -q "gtk-cursor-theme-name" $config; then |
|
sed -i "s/^gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor/" $config |
|
else |
|
echo "gtk-cursor-theme-name=$cursor" >>$config |
|
fi |
|
if grep -q "gtk-cursor-theme-size" $config; then |
|
sed -i "s/^gtk-cursor-theme-size=.*/gtk-cursor-theme-size=$size/" $dir |
|
else |
|
echo "gtk-cursor-theme-size=$size" >>$config |
|
fi |
|
done |
|
|
|
# This file requires double quotes around the cursor theme |
|
if grep -q "gtk-cursor-theme-name" $config3; then |
|
sed -i "s/^gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor\"/" $config3 |
|
fi |
|
|
|
# Set the cursor theme in xsettingsd |
|
if grep -q "Gtk/CursorThemeName" $HOME/.config/xsettingsd/xsettingsd.conf; then |
|
sed -i "s/^Gtk\/CursorThemeName.*/Gtk\/CursorThemeName \"$cursor\"/" $HOME/.config/xsettingsd/xsettingsd.conf |
|
else |
|
echo "Gtk/CursorThemeName \"$cursor\"" >>$HOME/.config/xsettingsd/xsettingsd.conf |
|
fi |
|
|
|
# Generate the default cursor config file |
|
echo "#Generated by Cursors.sh |
|
[Icon Theme] |
|
Name=Default |
|
Comment=Default Cursor Theme |
|
Inherits=$cursor" >$HOME/.icons/default/index.theme |
|
|
|
# Notify |
|
rofi -e "Cursor theme changed to: |
|
Theme: $cursor |
|
Size: $size |
|
|
|
Close this window then try move your cursor over waybar |
|
You may need to reload some applications to see the changes" |
|
|
|
notify-send -u low -i "$iDIR/bell.png" "Cursor theme changed"
|
|
|