proxyだって?どこの田舎よ?
/etc/NetworkManager/dispatcher.d/99-proxy
#!/bin/bash
PATH=/bin:/usr/bin:/sbin
if \[ ! -f /etc/sysconfig/proxy \]; then
exit
fi
. /etc/sysconfig/proxy
if \[ x"$2" = x"down" \]; then
exit
fi
i=0
while \[ "x$(eval echo '$'PROXYTARGET$i)x" != "xx" \]; do
for t in \`echo $(eval echo '$'PROXYTARGET$i) | sed s/:/\\ /g\`; do
if \[ x"$t" = x"$CONNECTION\_ID" \]; then
PROXY=$(eval echo '$'PROXYTARGET${i}\_PROXY)
NO\_PROXY=$(eval echo '$'PROXYTARGET${i}\_NO\_PROXY)
break
fi
done
if \[ -n "$PROXY" \]; then
break
fi
let i=$i+1
done
if \[ -n "$PROXY" \]; then
PROXY=\`echo $PROXY | sed s,http://,,\`
HOST=\`echo $PROXY | cut -d: -f1\`
PORT=\`echo $PROXY | cut -d: -f2|sed s,/,,g\`
fi
for pid in \`pgrep gnome-session\`; do
uid=\`cat /proc/$pid/loginuid\`
uname=\`getent passwd $uid | cut -d: -f 1\`
bus=\`strings /proc/$pid/environ|grep DBUS\_SESSION\_BUS\_ADDRESS\`
if \[ -n "$PROXY" \]; then
su -c "$bus gsettings set org.gnome.system.proxy mode manual" $uname
su -c "$bus gsettings set org.gnome.system.proxy.http host $HOST" $uname
su -c "$bus gsettings set org.gnome.system.proxy.http port $PORT" $uname
su -c "$bus gsettings set org.gnome.system.proxy.https host $HOST" $uname
su -c "$bus gsettings set org.gnome.system.proxy.https port $PORT" $uname
else
su -c "$bus gsettings set org.gnome.system.proxy mode none" $uname
fi
done
/etc/sysconfig/proxy
PROXYTARGET0="プロファイル名:プロファイル名:プロファイル名"
PROXYTARGET0\_PROXY="http://プロキシ:ポート/"
PROXYTARGET0\_NO\_PROXY="除外,リスト,たち"
PROXYTARGET? リストに一致するプロファイルに切り換えられたとき、ログインしている人のgnomeプロキシ設定を変更する。もちろん、gnome専用。
少なくとも、chromeは追従してくれるので大変便利。
追従しない子用には、libproxyを使うニセproxyをローカルに立てとけばよいかな…