Как вариант — добавить в /etc/NetworkManager/dispatcher.d/ скрипт
Например,
#!/bin/bash
# первый параметр скрипта - интерфейс
IF=$1
# второй параметр скрипта - состояние (up/down/pre-up/post-down)
STATUS=$2
# Если интерфейс тот, который мне нужен и он поднялся, то проверяем дальше
if [ "$IF" = "wlan0" ] && [ "$STATUS" = "up" ];
then
# Если мы подключились к своей точке (00:1E:58:FF:AF:FA)
iwconfig "wlan0" | grep "00:1E:58:FF:AF:FA" > /dev/null
if [ $? == "0" ];
then
# То выполняем запуск гуглохрома от имени юзера user
env DISPLAY=:0.0 su user -l -c google-chrome &
exit $?
fi
fi
Только вот я не до конца понял баги с переменными окружения…