Поэкспериментировал
Начел 2 ошибки:
wlan.sh: <pixmap><input file>/usr/share/pixmaps/
inet_err.png</input></pixmap>
wifi: WLNADDR=$(/bin/grep -B 5
$MYESSID /tmp/iwlist | /bin/awk '/Address/ {print $5}')
Что бы хотелось:
1. При наличии 3 типовых источников: провода вифи модем - при наличии настроек автоматически поднимался только 1
Т.е. если провод есть - через него автоподключаемся, остальные не стартуют
2. При горячем изменении сетей (например вытащили провод) - автоповтор п.1.
3. Гуй принудительного переключения сетей
1. Удалось добавками в начало скрипта
wlan.sh : /bin/sleep 7 && [ "`/bin/ifconfig |/bin/egrep '^eth' |/bin/grep RUNNING`" ] && exit
wudial.sh: /bin/sleep 10 && [ "`/bin/ifconfig |/bin/egrep '^eth|^wlan' |/bin/grep RUNNING`" ] && exit
Тут мне очень не нравятся sleep - но без них не работает (вероятно dhcp на проводах не успевает отработать)
2. Удалось с помощью /etc/ifplugd.action
#!/bin/sh
export DISPLAY=:0
case $2 in
up)
#lan.sh $1 || net-setup.sh
ntf -i "$1 " " $2"
lan.sh $1
ifconfig wlan0 down
;;
down)
ntf -i "$1 " " $2"
dhcpcd -k $1
wlan.sh wlan0
;;
*) echo "Only up/down"
esac
Тут надо над логикой переключений еще поработать
Логика работы: висит демон ifplugd, при изменении состояния интерфейса запускает /etc/ifplugd.action имя_интерфейса up|down
3. Надо писать. Самое простое на ntf -3
Есть еще проблема , что не все сообщения выводятся
Особенно в wudial.sh