Téléverser les fichiers vers "polybar"
This commit is contained in:
parent
9ea40f02b4
commit
965d33b129
4
polybar/95-usb.rules
Normal file
4
polybar/95-usb.rules
Normal file
@ -0,0 +1,4 @@
|
||||
KERNEL=="sd*", ACTION=="add", ATTR{removable}=="1", \
|
||||
RUN+="/home/user/.config/polybar/scripts/system-usb-udev.sh --update"
|
||||
KERNEL=="sd*", ACTION=="remove", \
|
||||
RUN+="/home/user/.config/polybar/scripts/system-usb-udev.sh --update"
|
||||
86
polybar/system-usb-udev.sh
Normal file
86
polybar/system-usb-udev.sh
Normal file
@ -0,0 +1,86 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Définition du chemin vers le fichier PID pour la communication avec le script
|
||||
path_pid="/tmp/polybar-system-usb-udev.pid"
|
||||
|
||||
# Fonction pour mettre à jour les processus liés
|
||||
usb_update() {
|
||||
pid=$(cat "$path_pid")
|
||||
if [ "$pid" != "" ]; then
|
||||
kill -10 "$pid"
|
||||
fi
|
||||
}
|
||||
|
||||
# Fonction pour ouvrir Caja au point de montage du premier périphérique USB monté trouvé
|
||||
open_mountpoint_in_caja() {
|
||||
devices=$(lsblk -Jplno NAME,TYPE,RM,MOUNTPOINT)
|
||||
for mount in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint != null) | .mountpoint'); do
|
||||
if [ -n "$mount" ]; then
|
||||
caja "$mount" &
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Fonction pour afficher les périphériques USB montés et non montés
|
||||
usb_print() {
|
||||
devices=$(lsblk -Jplno NAME,TYPE,RM,SIZE,MOUNTPOINT,VENDOR)
|
||||
output=""
|
||||
counter=0
|
||||
|
||||
for unmounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint == null) | .name'); do
|
||||
unmounted=$(echo "$unmounted" | tr -d "[:digit:]")
|
||||
unmounted=$(echo "$devices" | jq -r '.blockdevices[] | select(.name == "'"$unmounted"'") | .vendor')
|
||||
unmounted=$(echo "$unmounted" | tr -d ' ')
|
||||
if [ $counter -eq 0 ]; then
|
||||
space=""
|
||||
else
|
||||
space=" "
|
||||
fi
|
||||
counter=$((counter + 1))
|
||||
output="$output$space#1 $unmounted"
|
||||
done
|
||||
|
||||
for mounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint != null) | .mountpoint'); do
|
||||
label=$(basename "$mounted")
|
||||
size=$(echo "$devices" | jq -r '.blockdevices[] | select(.mountpoint == "'"$mounted"'") | .size')
|
||||
if [ $counter -eq 0 ]; then
|
||||
space=""
|
||||
else
|
||||
space=" "
|
||||
fi
|
||||
counter=$((counter + 1))
|
||||
output="$output$space$label $size"
|
||||
done
|
||||
|
||||
echo "$output"
|
||||
}
|
||||
|
||||
# Traite les arguments passés au script
|
||||
case "$1" in
|
||||
--update)
|
||||
usb_print
|
||||
;;
|
||||
--open)
|
||||
open_mountpoint_in_caja
|
||||
;;
|
||||
--unmount)
|
||||
devices=$(lsblk -Jplno NAME,TYPE,RM,MOUNTPOINT)
|
||||
for unmount in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint != null) | .name'); do
|
||||
udisksctl unmount --no-user-interaction -b "$unmount"
|
||||
udisksctl power-off --no-user-interaction -b "$unmount"
|
||||
done
|
||||
usb_update
|
||||
;;
|
||||
*)
|
||||
echo $$ > $path_pid
|
||||
trap exit INT
|
||||
trap "echo" USR1
|
||||
while true; do
|
||||
usb_print
|
||||
sleep 60 &
|
||||
wait
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user