mirror of
https://github.com/xsghetti/HyprCrux.git
synced 2025-07-03 13:50:38 -04:00
45 lines
1.7 KiB
Bash
Executable file
45 lines
1.7 KiB
Bash
Executable file
#!/usr/bin/env sh
|
|
|
|
# set variables
|
|
ScrDir=`dirname "$(realpath "$0")"`
|
|
source $ScrDir/globalcontrol.sh
|
|
RofiConf="${XDG_CONFIG_HOME:-$HOME/.config}/rofi/themeselect.rasi"
|
|
|
|
ctlLine=`grep '^1|' "$ThemeCtl"`
|
|
if [ `echo $ctlLine | wc -l` -ne "1" ] ; then
|
|
echo "ERROR : $ThemeCtl Unable to fetch theme..."
|
|
exit 1
|
|
fi
|
|
|
|
fullPath=$(echo "$ctlLine" | awk -F '|' '{print $NF}' | sed "s+~+$HOME+")
|
|
wallPath=$(dirname "$fullPath")
|
|
if [ ! -d "${wallPath}" ] && [ -d "${XDG_CONFIG_HOME:-$HOME/.config}/swww/${gtkTheme}" ] && [ ! -z "${gtkTheme}" ] ; then
|
|
wallPath="${XDG_CONFIG_HOME:-$HOME/.config}/swww/${gtkTheme}"
|
|
fi
|
|
|
|
|
|
# scale for monitor x res
|
|
x_monres=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .width')
|
|
monitor_scale=$(hyprctl -j monitors | jq '.[] | select (.focused == true) | .scale' | sed 's/\.//')
|
|
x_monres=$(( x_monres * 17 / monitor_scale ))
|
|
|
|
|
|
# set rofi override
|
|
elem_border=$(( hypr_border * 3 ))
|
|
r_override="element{border-radius:${elem_border}px;} listview{columns:6;spacing:100px;} element{padding:0px;orientation:vertical;} element-icon{size:${x_monres}px;border-radius:0px;} element-text{padding:20px;}"
|
|
|
|
|
|
# launch rofi menu
|
|
currentWall=`basename $fullPath`
|
|
RofiSel=$( find "${wallPath}" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -exec basename {} \; | sort | while read rfile
|
|
do
|
|
echo -en "$rfile\x00icon\x1f${cacheDir}/${gtkTheme}/${rfile}\n"
|
|
done | rofi -dmenu -theme-str "${r_override}" -config "${RofiConf}" -select "${currentWall}")
|
|
|
|
|
|
# apply wallpaper
|
|
if [ ! -z "${RofiSel}" ] ; then
|
|
"${ScrDir}/swwwallpaper.sh" -s "${wallPath}/${RofiSel}"
|
|
dunstify "t1" -a " ${RofiSel}" -i "${cacheDir}/${gtkTheme}/${RofiSel}" -r 91190 -t 2200
|
|
fi
|
|
|