integrated monitors.sh into kanshi
This commit is contained in:
parent
59b1b362e2
commit
93598400a3
1 changed files with 28 additions and 65 deletions
|
@ -1,76 +1,39 @@
|
|||
#!/bin/bash
|
||||
|
||||
|
||||
delay() {
|
||||
|
||||
timeout 2 socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | while read -r line; do
|
||||
if [[ ${line%>>*} == "monitor"* ]]; then
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
generate
|
||||
|
||||
}
|
||||
|
||||
generate() {
|
||||
|
||||
unset id name horizontal vertical scale activeWorkspace
|
||||
unset id name horizontal vertical scale activeWorkspace
|
||||
|
||||
i=0
|
||||
i=0
|
||||
|
||||
while read -r k n h v s a t; do
|
||||
id[$i]="$k"
|
||||
name[$i]="$n"
|
||||
horizontal[$i]="$h"
|
||||
vertical[$i]="$v"
|
||||
scale[$i]="$s"
|
||||
activeWorkspace[$i]="$a"
|
||||
if [[ $(($t%2)) == 1 ]]; then
|
||||
temp=${vertical[$i]}
|
||||
vertical[$i]=${horizontal[$i]}
|
||||
horizontal[$i]=$temp
|
||||
fi
|
||||
((i=i+1))
|
||||
done < <(hyprctl monitors -j | jq -r '.[]|"\(.id) \(.name) \(.width) \(.height) \(.scale) \(.activeWorkspace.id) \(.transform)"')
|
||||
while read -r k n h v s t; do
|
||||
id[i]="$k"
|
||||
name[i]="$n"
|
||||
horizontal[i]="$h"
|
||||
vertical[i]="$v"
|
||||
scale[i]="$s"
|
||||
if [[ $((t%2)) == 1 ]]; then
|
||||
temp=${vertical[$i]}
|
||||
vertical[i]=${horizontal[$i]}
|
||||
horizontal[i]=$temp
|
||||
fi
|
||||
((i=i+1))
|
||||
done < <(hyprctl monitors -j | jq -r '.[]|"\(.id) \(.name) \(.width) \(.height) \(.scale) \(.transform)"')
|
||||
|
||||
# if [[ $i > 1 ]]; then
|
||||
# displayMonitorID=true
|
||||
# else
|
||||
# displayMonitorID=false
|
||||
# fi
|
||||
echo -n "" > "$XDG_CONFIG_HOME"/eww/bar.yuck
|
||||
|
||||
echo -n "" > $XDG_CONFIG_HOME/eww/bar.yuck
|
||||
eww close-all
|
||||
|
||||
eww close-all
|
||||
sleep 2
|
||||
|
||||
for ((i = 0; i < ${#id[@]}; i++)); do
|
||||
scale_value=$(echo "${scale[$i]}" | bc -l)
|
||||
|
||||
new_width_float=$(echo "(${horizontal[$i]} / ${scale_value}) -10" | bc)
|
||||
|
||||
new_width=$(echo "$new_width_float / 1" | bc)
|
||||
|
||||
monitorID=$(xrandr --listactivemonitors | grep +"${name[$i]}" | awk '{sub(/.$/,"",$1); print $1}')
|
||||
|
||||
eww open bar --id bar"${monitorID}" --arg monitor="${monitorID}" --arg width="${new_width}" --arg height=25
|
||||
sleep 2
|
||||
|
||||
for ((i = 0; i < ${#id[@]}; i++)); do
|
||||
scale_value=$(echo "${scale[$i]}" | bc -l)
|
||||
|
||||
new_width_float=$(echo "(${horizontal[$i]} / ${scale_value}) -10" | bc)
|
||||
new_height_float=$(echo "${vertical[$i]} / ${scale_value} * 0.03" | bc)
|
||||
|
||||
new_width=$(echo "$new_width_float / 1" | bc)
|
||||
new_height=$(echo "$new_height_float / 1" | bc)
|
||||
|
||||
monitorID=$(xrandr --listactivemonitors | grep +${name[$i]} | awk '{sub(/.$/,"",$1); print $1}')
|
||||
|
||||
eww open bar --id bar${monitorID} --arg monitor=${monitorID} --arg width=${new_width} --arg height=25
|
||||
sleep 2
|
||||
|
||||
done
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
generate
|
||||
|
||||
socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | while read -r line; do
|
||||
if [[ ${line%>>*} == "monitor"* ]]; then
|
||||
delay &
|
||||
fi
|
||||
done
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue