ArchLabs Linux

Network Manager icon gone from polybar (i3wm)

Not sure why but the network manager icon (wifi) is gonsky from the polybar. Looked at the config files (i3 and polybar) and can’t see anything strange.
The wifi is on though.
Where do I start solving this problem?

Hi gorki, first of all post your polybar module/wifi or whatever you called it and the fonts section of polybar config file, that can help us to help you :smile:

And you can look my FontAwesome post to grab another one: copy/paste fonts , maybe it can help.

1 Like

Polybar config:

;=====================================================
;     File Includes
;=====================================================

[section/base]
include-file = /home/niko/.config/polybar/master.conf
include-file = /home/niko/.config/polybar/modules.conf


;=====================================================
;     Openbox Bars
;=====================================================

[bar/openbox-bar]
inherit = bar/master

; Use $ xrandr -q | grep " connected" | cut -d ' ' -f1
monitor =

modules-left   = jgmenu workspaces
modules-center = window_switch clock
modules-right  = ${env:POLYBAR_MODULES:coreuse temperature memory pkg network volume}


;=====================================================
;     i3 Bars
;=====================================================

[bar/i3-bar]
inherit = bar/master

; Use $ xrandr -q | grep " connected" | cut -d ' ' -f1
monitor =

modules-left   = i3 menu
modules-center = clock
modules-right  = ${env:POLYBAR_MODULES:coreuse temperature memory pkg network volume}


;=====================================================
;     Bspwm Bars
;=====================================================

[bar/bspwm-bar]
inherit = bar/master

; Use $ xrandr -q | grep " connected" | cut -d ' ' -f1
monitor =

modules-left   = bspwm menu
modules-center = clock
modules-right  = ${env:POLYBAR_MODULES:coreuse temperature memory pkg network volume}

;=====================================================
;     Openbox Bars
;=====================================================

[bar/generic-bar]
inherit = bar/master

; Use $ xrandr -q | grep " connected" | cut -d ' ' -f1
monitor =

modules-left   = workspaces menu
modules-center = clock
modules-right  = ${env:POLYBAR_MODULES:coreuse temperature memory pkg network volume}

modules.conf:

;=====================================================
;     Modules
;=====================================================

;;;;;;;;;;;;;;;
;;   Jgmenu  ;;
;;;;;;;;;;;;;;;
[module/jgmenu]
type = custom/script
label = %output%
label-padding = 2
interval = 10
exec = echo ""
click-left = "jgmenu_run >/dev/null 2>&1 &"
click-right = exo-open $HOME/.config/jgmenu/jgmenurc


;;;;;;;;;;;;;;;;;;
;; X Workspaces ;;
;;;;;;;;;;;;;;;;;;
[module/workspaces]
type = internal/xworkspaces
pin-workspaces = false
enable-click = true
enable-scroll = true
format-padding = 0
icon-0 = 1;
icon-1 = 2;
icon-2 = 3;
icon-3 = 4;
icon-4 = 5;
icon-5 = 6;
icon-6 = 7;
icon-7 = 8;
icon-8 = 9;
icon-9 = 10;
icon-default =
format = <label-state>
label-active = %icon% %name%
label-occupied = %icon% %name%
label-urgent = %icon% %name%
label-empty = %icon% %name%
label-occupied-padding = 1
label-empty-padding = 1
label-urgent-padding = 1
label-active-padding = 1
label-active-foreground = ${colors.blue}
label-active-underline = ${colors.blue}
label-occupied-underline = ${colors.moderate}
label-urgent-foreground = ${colors.urgent}
label-urgent-underline = ${colors.urgent}
label-empty-foreground = ${colors.foreground}


;;;;;;;;;;;;;;;;;;;
;; i3 Workspaces ;;
;;;;;;;;;;;;;;;;;;;
[module/i3]
type = internal/i3
pin-workspaces = true
strip-wsnumbers = true
index-sort = true
enable-click = true
fuzzy-match = true
ws-icon-default = 
format = <label-state><label-mode>
label-mode = %mode%
label-mode-padding = 2
label-focused = %index% %name%
label-focused-padding = 2
label-unfocused = %index% %name%
label-unfocused-padding = 2
label-visible = %index% %name%
label-visible-padding = 2
label-urgent = %index% %name%
label-urgent-padding = 2
label-mode-underline = ${colors.urgent}
label-focused-underline = ${colors.blue}
label-visible-underline = ${colors.purple}
label-urgent-underline = ${colors.urgent}


;;;;;;;;;;;;;;;;;;;;;;
;; Bspwm Workspaces ;;
;;;;;;;;;;;;;;;;;;;;;;
[module/bspwm]
type = internal/bspwm
pin-workspaces = true
inline-mode = false
enable-click = true
enable-scroll = false
reverse-scroll = false
fuzzy-match = false
; ws-icon-[0-9]+ = label;icon
; Note that the label needs to correspond with the bspwm workspace name
ws-icon-0 = I;
ws-icon-1 = II;
ws-icon-2 = III;
ws-icon-3 = IV;
ws-icon-4 = V;
ws-icon-5 = VI;
ws-icon-6 = VII;
ws-icon-7 = VIII;
ws-icon-8 = IX;
ws-icon-9 = X;
;ws-icon-default = ♟
format = <label-state> <label-mode>
label-monitor = %name%
label-mode-padding = 1
label-focused = %icon% %name%
label-focused-padding = 1
label-occupied = %icon% %name%
label-occupied-padding = 1
label-urgent = %icon% %name%
label-urgent-padding = 1
label-empty = %icon% %name%
label-empty-padding = 1
label-dimmed-foreground = ${colors.purple}
label-dimmed-underline = ${colors.purple}
label-dimmed-focused-background = ${colors.purple}
label-focused-foreground = ${colors.blue}
label-focused-underline = ${colors.blue}
label-occupied-underline = ${colors.purple}
label-urgent-foreground = ${colors.urgent}
label-urgent-underline = ${colors.urgent}
; The following labels will be used to indicate the layout/mode
; for the focused workspace. Requires <label-mode>
label-monocle = 
label-tiled = 
label-fullscreen = 
label-floating = 
label-pseudotiled = P
label-locked = 
label-sticky = 
label-private = 
label-sticky-foreground = ${colors.purple}
label-locked-foreground = ${colors.moderate}
label-private-foreground = ${colors.urgent}


;;;;;;;;;;;;;
;; Network ;;
;;;;;;;;;;;;;
[module/network]
type = custom/script
exec = check-network
click-left = networkmanager_dmenu &
click-right = networkmanager_dmenu &
label-padding = 1
tail = true


;;;;;;;;;;;;;;;;;;;
;; Window Switch ;;
;;;;;;;;;;;;;;;;;;;
[module/window_switch]
type = custom/script
interval = 5
label = %output%
click-left = skippy-xd
click-right = skippy-xd
exec = echo "  "
format = <label>


;;;;;;;;;
;; CPU ;;
;;;;;;;;;
[module/coreuse]
type = internal/cpu
interval = 3
format-padding = 1
format = <label> <ramp-coreload>
label =  %percentage:2%%
ramp-coreload-0 = ▂
ramp-coreload-1 = ▃
ramp-coreload-2 = ▄
ramp-coreload-3 = ▅
ramp-coreload-4 = ▆
ramp-coreload-5 = ▇
ramp-coreload-0-foreground = ${colors.blue}
ramp-coreload-1-foreground = ${colors.blue}
ramp-coreload-2-foreground = ${colors.moderate}
ramp-coreload-3-foreground = ${colors.moderate}
ramp-coreload-4-foreground = ${colors.urgent}
ramp-coreload-5-foreground = ${colors.urgent}


;;;;;;;;;
;; MEM ;;
;;;;;;;;;
[module/memory]
type = internal/memory
interval = 3
format = <label>
label-padding = 1
label =  %percentage_used%%


;;;;;;;;;
;; PKG ;;
;;;;;;;;;
[module/pkg]
type = custom/script
exec = updates.sh
exec-if = "ping -q -w 2 -c 1 176.34.135.167 > /dev/null"
label-padding = 1
label = %output%
tail = true


;;;;;;;;;;;
;; Clock ;;
;;;;;;;;;;;
[module/clock]
type = internal/date
format = <label>
interval = 5
time = %R
label = %{A1:gsimplecal & disown:} %{A3:gsimplecal & disown:} %time%%{A} %{A}


;;;;;;;;;;;;;;;;;
;; TEMPERATURE ;;
;;;;;;;;;;;;;;;;;
[module/temperature]
type = internal/temperature
interval = 3
thermal-zone = 0
warn-temperature = 70
format = <ramp> <label>
format-padding = 1
label = %temperature-c%
ramp-0 = ""
ramp-1 = ""
ramp-2 = ""
ramp-3 = ""
ramp-4 = ""
ramp-0-foreground = ${colors.blue}
ramp-1-foreground = ${colors.blue}
ramp-2-foreground = ${colors.moderate}
ramp-3-foreground = ${colors.moderate}
ramp-4-foreground = ${colors.urgent}
format-warn = <label-warn>
label-warn =  %temperature-c%
label-warn-padding = 1
label-warn-foreground = ${colors.urgent}


;;;;;;;;;;;;
;; Volume ;;
;;;;;;;;;;;;
[module/volume]
type = internal/alsa
master-mixer = Master
format-volume-padding = 1
label-volume-foreground = ${colors.foreground}
label-volume  = %{A3:pavucontrol & disown:}%percentage:2%% %{A}
format-volume = <ramp-volume> <label-volume>
label-muted   = " muted "
ramp-volume-0 = 
ramp-volume-1 = 
ramp-volume-2 = 
ramp-volume-3 = 
label-muted-foreground = #888
ramp-volume-0-foreground = ${colors.trim}
ramp-volume-1-foreground = ${colors.blue}
ramp-volume-2-foreground = ${colors.moderate}
ramp-volume-3-foreground = ${colors.urgent}


;;;;;;;;;;;;;
;; BATTERY ;;
;;;;;;;;;;;;;
[module/battery]
type = internal/battery
; Use $ ls -1 /sys/class/power_supply/
battery = ${env:LAPTOP_BATTERY:BAT1}
adapter = ${env:LAPTOP_ADAPTER:ACAD}
full-at = 99
poll-interval = 5
time-format = %H:%M

format-charging    = <animation-charging> <label-charging>
format-discharging = <ramp-capacity> <label-discharging>
format-full        = <ramp-capacity> <label-full>

label-charging = %{A1:xfce4-power-manager-settings & disown:}%percentage%% %{A}
label-discharging = %{A1:xfce4-power-manager-settings & disown:}%percentage%% %{A}
label-full = %{A1:xfce4-power-manager-settings & disown:}%percentage%% %{A}

ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
ramp-capacity-0-foreground = ${colors.urgent}
ramp-capacity-1-foreground = ${colors.moderate}
ramp-capacity-foreground   = ${colors.blue}

bar-capacity-width = 10
animation-charging-0 = " "
animation-charging-1 = " "
animation-charging-2 = " "
animation-charging-3 = " "
animation-charging-4 = " "
animation-charging-framerate = 750


;;;;;;;;;;
;; MENU ;;
;;;;;;;;;;
[module/menu]
type = custom/menu
format-spacing = 1
label-open = "    "
label-close = "    "
label-close-foreground = ${colors.urgent}
label-separator = " | "
# Top level
menu-0-0 = "  "
menu-0-0-exec = menu-open-1
menu-0-1 = "  "
menu-0-1-exec = menu-open-2
menu-0-2 = "    |"
menu-0-2-exec = menu-open-3
# 1
menu-1-0 = "  "
menu-1-0-exec = menu-open-0
menu-1-0-foreground = ${colors.urgent}
menu-1-1 = "  "
menu-1-1-exec = exo-open --launch WebBrowser
menu-1-2 = "  "
menu-1-2-exec = exo-open --launch TerminalEmulator
menu-1-3 = "    |"
menu-1-3-exec = exo-open --launch FileManager
# 2
menu-2-0 = "  "
menu-2-0-exec = menu-open-0
menu-2-0-foreground = ${colors.urgent}
menu-2-1 = "  "
menu-2-1-exec = xfce4-settings-manager &
menu-2-2 = "    |"
menu-2-2-exec = pavucontrol &
# 3
menu-3-0 = "  "
menu-3-0-exec = menu-open-0
menu-3-0-foreground = ${colors.urgent}
menu-3-1 = "   "
menu-3-1-exec = i3lock-fancy -p -f Ubuntu &
menu-3-2 = "   "
menu-3-2-exec = systemctl -i reboot
menu-3-3 = "      |"
menu-3-3-exec = systemctl -i poweroff


;;;;;;;;;;;;;;;;;;;;
;; Compton Toggle ;;
;;;;;;;;;;;;;;;;;;;;
[module/compton_toggle]
type = custom/script
tail = true
label = %output%
click-left = toggle.sh -c -t &
exec = toggle.sh -c
format = <label>


;;;;;;;;;;;;;;;
;; KEYBOARD ;;
;;;;;;;;;;;;;;;
[module/keyboard]
type           = internal/xkeyboard
blacklist-0    = scroll lock
format         = <label-layout> <label-indicator>
label-layout   =  %layout%
label-indicator = %name%
label-indicator-padding = 2
label-indicator-background = ${colors.purple}


;;;;;;;;;;;;;;
;; ETHERNET ;;
;;;;;;;;;;;;;;
[module/wired-network]
type = internal/network
interface =
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-connected =  %local_ip%
format-connected-foreground = ${colors.purple}


;;;;;;;;;;;;;;
;; REDSHIFT ;;
;;;;;;;;;;;;;;
[module/redshift]
type = custom/script
tail = true
exec = toggle.sh -r
label = %output%
click-left = toggle.sh -r -t &


;;;;;;;;;;;;;;;;
;; FILESYSTEM ;;
;;;;;;;;;;;;;;;;
[module/filesystem]
type = internal/fs
format-mounted = <label-mounted>
label-mounted = %mountpoint% : %percentage_free%%
mount-0 = /
interval = 1200
fixed-values = false
spacing = 2
label-mounted-foreground = ${colors.moderate}


;;;;;;;;;
;; MPD ;;
;;;;;;;;;
[module/mpd]
type = internal/mpd
format-online = <bar-progress>  <icon-prev> <icon-stop> <toggle> <icon-next>  <label-song>
format-offline = <label-offline>
bar-progress-format = %{+o +u}%fill%%{-o -u}%indicator%%{+o +u}%empty%%{-u -o}
label-offline = mpd is off
format-online-prefix = " "
icon-play = 
icon-pause = 
icon-stop = 
icon-prev = 
icon-next = 
icon-random = 
icon-repeat = 
toggle-on-foreground =
toggle-off-foreground = #55
bar-progress-width = 35
bar-progress-indicator = █
bar-progress-fill = █
bar-progress-empty = ▒
bar-progress-empty-font = 2
bar-progress-indicator-font = 2
bar-progress-fill-font = 2
bar-progress-fill-foreground = #bb
bar-progress-empty-foreground = #44
bar-progress-indicator-foreground = #A85659


;;;;;;;;;;
;; WIFI ;;
;;;;;;;;;;
[module/wireless-network]
type = internal/network
interface =

format-connected = <ramp-signal>  <label-connected>
format-packetloss = <animation-packetloss>
label-connected = %local_ip%
ramp-signal-0 = 
ramp-signal-1 = 
ramp-signal-2 = 
ramp-signal-3 = 
ramp-signal-4 = 
ramp-signal-5 = 
ramp-signal-0-foreground = ${colors.urgent}
ramp-signal-1-foreground = ${colors.purple}
ramp-signal-2-foreground = ${colors.moderate}
ramp-signal-3-foreground = ${colors.moderate}
ramp-signal-4-foreground = ${colors.blue}
ramp-signal-5-foreground = ${colors.blue}
animation-packetloss-0 = ⚠
animation-packetloss-1 = !
animation-packetloss-0-foreground = ${colors.moderate}
animation-packetloss-1-foreground = ${colors.urgent}
animation-packetloss-framerate = 500


;;;;;;;;;;;;;;;;
;; VOLUME BAR ;;
;;;;;;;;;;;;;;;;
[module/volume-bar]
type = internal/volume
bar-volume-font = 2
bar-volume-width = 20
format-volume = <label-volume><bar-volume>
label-volume = "  "
label-muted = "   mute"
label-volume-foreground = #B6C2E7
format-muted-foreground = #E76BB4
bar-volume-foreground-0 = #92A3F7
bar-volume-foreground-1 = #92A3F7
bar-volume-foreground-2 = #6BB3E7
bar-volume-foreground-3 = #6BB3E7
bar-volume-foreground-4 = #6BB3E7
bar-volume-foreground-5 = #6BE7D8
bar-volume-foreground-6 = #6BE7D8
bar-volume-gradient = true
bar-volume-indicator = |
bar-volume-fill = •
bar-volume-empty = ·
bar-volume-empty-foreground = #666666

try this command:
sudo pacman -Rdd network-manager-applet

Can you click on the polybar where the icon is suppose to be and still get the networkmanager_dmenu to come up?

Try running:

check-network

in a terminal and see if there is an error message.

ok in your .config/polybar/master.conf it should look like this for the fonts

font-0 = DejaVu Sans Regular:size=11;1
font-1 = FontAwesome:style=Regular:size=11;1
font-2 = Weather Icons:size=12;1

What interest us are these icons; FontAwesome. And I can see that you use “network module”

But not wifi module, so you can add it in whatever position you want in the list.
In $HOME/bin there’s a script called check-network and it also push an icon, do you see it in the bar ?

ArchWiki recommends not to do it, not sure it will help.

No error

Added wireless-network module:

modules-right  = ${env:POLYBAR_MODULES:coreuse temperature memory pkg wireless-network volume}

Nothing

You have to fill this part of the module

interface = wlp3s0 #example

Open a terminal and type

ip addr

then search something like your wlan network, restart polybar. https://github.com/polybar/polybar/wiki/Module:-network

ip link show gives:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether d4:d2:52:c7:e7:e6 brd ff:ff:ff:ff:ff:ff

Updated WIFI module:

[module/wireless-network]
type = internal/network
interface = wlo1

Nothing (restarted polybar)

There’s a bunch of confusion in here. If you just want our old custom network module then ignore the posts regarding interfaces and other modules, they aren’t necessary.

Just make sure the check-network script is on the path

which check-network

Then show me the contents of it

cat $(which check-network)
#!/usr/bin/env bash

disconnect1="/"
disconnect2="\\"
wconnected=""
econnected=""

id="$(ip link | awk '/state UP/ {print $2}')"

while true; do
    if ping -c 1 archlabslinux.com >/dev/null 2>&1 || ping -c 1 archlinux.org >/dev/null 2>&1; then
        [[ $id == e* ]] && echo "$econnected" || echo "$wconnected"
        sleep 25
    else
        echo "$disconnect1"  # /
        sleep 0.6
        echo "$disconnect2"  # \
        sleep 0.6
    fi
done

Run that command in a terminal and verify it returns the active interface.

If it doesn’t, you will need to change the search string. That command doesn’t work on my (ancient) system so I had to make some changes.

Can you post the output from polybar --config=$HOME/.config/polybar/config i3-bar, perhaps there’s some errors there that’ll help. I’m not getting any on my end and everything shows up so I’m not sure.