45 lines
1.3 KiB
Bash
Executable file
45 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
source "$HOME/.local/lib/sp-functions"
|
|
|
|
get_profile_list
|
|
|
|
case $1 in
|
|
next|prev)
|
|
current_profile=$(cat "${cache_dir}/active_profile")
|
|
echo ${current_profile}
|
|
;;&
|
|
next)
|
|
new_profile=$(( ${current_profile}+1 ))
|
|
[[ "$new_profile" -eq "${p_count}" ]] && new_profile=0
|
|
;;&
|
|
prev)
|
|
new_profile=$(( ${current_profile}-1 ))
|
|
[[ "$new_profile" -eq "-1" ]] && new_profile=3
|
|
;;&
|
|
prev|next)
|
|
op=$(printf "%01d\n" ${new_profile})
|
|
;;
|
|
*)
|
|
for (( p="0"; p<${p_count}; p++ ));do
|
|
[[ $p -eq $(( ${p_count} - 1 )) ]] && nl="" || nl="\n"
|
|
wofilist="${wofilist}${p_icons[$p]} ${p_names[$p]}${nl}"
|
|
done
|
|
[[ -z $1 ]] && op=$( echo -e "${wofilist}" | wofi -i --dmenu --width 250 --height 320 -k /dev/null | awk '{print $2}' ) || op="${1}"
|
|
op=$(echo ${p_names[@]/$op//} | cut -d/ -f1 | wc -w | tr -d ' ')
|
|
;;
|
|
esac
|
|
|
|
[[ "$op" -gt "$(( $p_count - 1 ))" ]] && exit
|
|
[[ $op -eq "0" ]] && p_num="" || p_num="$op"
|
|
p_icon="${p_icons[$op]}"
|
|
|
|
for i in {1..10};do
|
|
[[ "$i" -eq "10" ]] && k="0" || k=$i
|
|
swaymsg 'bindsym $mod+'"$k"' workspace number "'"${p_num}${i}:${p_icon}"'"'
|
|
swaymsg 'bindsym $mod+Shift+'"$k"' move container to workspace number "'"${p_num}${i}:${p_icon}"'"'
|
|
done
|
|
|
|
moveto="${p_num}1:${p_icon}"
|
|
swaymsg 'workspace number "'"${p_num}"'"1:"'"${p_icon}"'"'
|
|
echo "${op}" > "${cache_dir}/active_profile"
|