56 lines
1.9 KiB
Bash
Executable File
56 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ${1} : environment (see README.md)
|
|
module_names=''
|
|
echo -e "* Auto-create wired profil, autoconnect service for netctl and polybar module..."
|
|
for i in `ip -br l | awk '$1 !~ "lo|vir|br|wl" { print $1}'`; do
|
|
echo -e "~ ${i}..."
|
|
module_name="network-${i}"
|
|
module_names+=" ${module_name}"
|
|
cat <<- EOF | sudo tee /etc/netctl/${i} >/dev/null
|
|
Interface=${i}
|
|
Connection=ethernet
|
|
IP=dhcp
|
|
EOF
|
|
cat <<- EOF | tee ~/.config/polybar/config.d/${i}.${1} >/dev/null
|
|
[module/${module_name}]
|
|
type = internal/network
|
|
interface = ${i}
|
|
ping-interval = 3
|
|
label-connected = \${env:BAR_WIRED_CONNECTED}
|
|
label-disconnected =
|
|
label-disconnected-foreground = \${colors.text}
|
|
; Consider an 'UNKNOWN' interface state as up.
|
|
; Some devices like USB network adapters have
|
|
; an unknown state, even when they're running
|
|
; Default: false
|
|
unknown-as-up = true
|
|
EOF
|
|
sudo systemctl enable --now netctl-ifplugd@${i}
|
|
# In case some old config stays....
|
|
sudo systemctl restart netctl-ifplugd@${i}
|
|
|
|
done
|
|
echo -e "* Autoconnect to wireless profiles..."
|
|
for i in `ip -br l | awk '$1 ~ "wl" { print $1}'`; do
|
|
module_name="network-${i}"
|
|
module_names+=" ${module_name}"
|
|
echo -e "~ ${i}..."
|
|
cat <<- EOF | tee ~/.config/polybar/config.d/${i}.${1} >/dev/null
|
|
[module/${module_name}]
|
|
type = internal/network
|
|
interface = ${i}
|
|
ping-interval = 3
|
|
label-connected = \${env:BAR_WIFI_CONNECTED}
|
|
label-disconnected =
|
|
label-disconnected-foreground = \${colors.text}
|
|
EOF
|
|
sudo systemctl enable --now netctl-auto@${i}
|
|
done
|
|
echo -e "* Create an override polybar file to add all discovered networks..."
|
|
cat << EOF | tee ~/.config/polybar/config.d/bottom_center.${1} >/dev/null
|
|
[variables]
|
|
bottom_center = updates-arch-combined ${module_names}
|
|
EOF
|
|
# https://man.archlinux.org/man/netctl.special.7
|
|
echo -e "* Ensure connections are back when PC is resumed..."
|
|
sudo systemctl enable netctl-sleep |