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をローカルに立てとけばよいかな…