From 62ea5555e7f3fa53b1cb31fe881c888fc4a27828 Mon Sep 17 00:00:00 2001 From: Joursoir Date: Tue, 14 Nov 2023 19:37:00 +0300 Subject: ditconfig/polybar: use dynamic network interface detection As result, provide name of the network interface to polybar instead of interface type. --- dotconfig/polybar/launch.sh | 4 ++-- dotconfig/polybar/modules | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/dotconfig/polybar/launch.sh b/dotconfig/polybar/launch.sh index f607575..6a70ea0 100755 --- a/dotconfig/polybar/launch.sh +++ b/dotconfig/polybar/launch.sh @@ -7,11 +7,11 @@ killall -9 polybar while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done # Set variables -NETWORK_TYPE="wired" # or `wireless` +NETWORK_INTERFACE=$(ip route | grep '^default' | awk '{print $5}' | head -n1) # Launch the bar echo "---" | tee -a /tmp/mypolybar.log for m in $(polybar --list-monitors | cut -d":" -f1); do - MONITOR=$m NETWORK_TYPE=$NETWORK_TYPE polybar main >> /tmp/mypolybar.log 2>&1 & disown + MONITOR=$m NETWORK_INTERFACE=$NETWORK_INTERFACE polybar main >> /tmp/mypolybar.log 2>&1 & disown done echo "Bar launched..." diff --git a/dotconfig/polybar/modules b/dotconfig/polybar/modules index 049e5f3..2cb39a3 100644 --- a/dotconfig/polybar/modules +++ b/dotconfig/polybar/modules @@ -237,12 +237,17 @@ [module/network] type = internal/network + ; Name of the network interface to display. You can get the names of the + ; interfaces on your machine with `ip link` + ; Wireless interfaces often start with `wl` and ethernet interface with `eno` or `eth` + interface = ${env:NETWORK_INTERFACE:eno1} + ; If no interface is specified, polybar can detect an interface of the given type. ; If multiple are found, it will prefer running interfaces and otherwise just ; use the first one found. ; Either 'wired' or 'wireless' ; New in version 3.6.0 - interface-type = ${env:NETWORK_TYPE:wired} + ; interface-type = ${env:NETWORK_TYPE:wired} ; Seconds to sleep between updates interval = 1.0 -- cgit v1.2.3-18-g5258