From 59c39260d1dd633f9d4f9aee89f79a304d8d16e5 Mon Sep 17 00:00:00 2001 From: Tetardtek Date: Mon, 23 Feb 2026 22:16:41 +0100 Subject: [PATCH] =?UTF-8?q?fix(waybar/network):=20d=C3=A9tecter=20l'interf?= =?UTF-8?q?ace=20active=20via=20la=20route=20par=20d=C3=A9faut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remplace la liste codée en dur d'interfaces (enp7s0, wlp8s0…) par 'ip route get 1.1.1.1' qui retourne l'interface réellement utilisée, portable sur n'importe quelle machine sans configuration. --- INSTALL/configs/waybar/scripts/network.sh | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/INSTALL/configs/waybar/scripts/network.sh b/INSTALL/configs/waybar/scripts/network.sh index a3350f5..7c4729c 100755 --- a/INSTALL/configs/waybar/scripts/network.sh +++ b/INSTALL/configs/waybar/scripts/network.sh @@ -3,19 +3,17 @@ STATE_FILE="/tmp/waybar_net_state" -# Détecter l'interface active -IFACE="" -for candidate in enp7s0 enp6s0 eth0; do - if [[ -d "/sys/class/net/$candidate" && "$(cat /sys/class/net/$candidate/operstate 2>/dev/null)" == "up" ]]; then - IFACE="$candidate"; TYPE="eth"; break +# Détecter l'interface active via la route par défaut (portable sur tous les PC) +IFACE=$(ip route get 1.1.1.1 2>/dev/null \ + | awk '/dev/{for(i=1;i<=NF;i++) if($i=="dev") print $(i+1)}' \ + | head -1) + +if [[ -n "$IFACE" ]]; then + if [[ -d "/sys/class/net/$IFACE/wireless" || -d "/sys/class/net/$IFACE/phy80211" ]]; then + TYPE="wifi" + else + TYPE="eth" fi -done -if [[ -z "$IFACE" ]]; then - for candidate in wlp8s0 wlp0s20f3 wlan0; do - if [[ -d "/sys/class/net/$candidate" && "$(cat /sys/class/net/$candidate/operstate 2>/dev/null)" == "up" ]]; then - IFACE="$candidate"; TYPE="wifi"; break - fi - done fi if [[ -z "$IFACE" ]]; then