Get/Set proxy settings in Gnome with GObject instrospection
With GObject introspection is very simple to set the settings of your system trough python. Fist, lets use the command line to find out our current settings:
gsettings list-recursively org.gnome.system.proxy |
The following script allows you to retrieve the http proxy settings that you are currently using:
from gi.repository import Gio def get_settings(): """Get proxy settings.""" http_settings = Gio.Settings.new('org.gnome.system.proxy.http') host = http_settings.get_string('host') port = http_settings.get_int('port') if http_settings.get_boolean('use-authentication'): username = http_settings.get_string('authentication_user') password = http_settings.get_string('authentication_password') else: username = password = None return host, port, username, password |
Setting them is as easy as getting them:
from gi.repository import Gio def set_settings(host, port, username=None, password=None): """Set proxy settings.""" http_settings = Gio.Settings.new('org.gnome.system.proxy.http') http_settings.set_string('host', host) http_settings.set_int('port', port) if username is not None: http_settings.set_boolean('use-authentication', True) http_settings.set_string('authentication_user', username) http_settings.set_string('authentication_password', password) |
This is not utterly complicated but I’m notice that there are not many examples out there, so there you go. There is no code there that can be considered hard but I’d like to point out that if you use the get_value method from the Settings object you will have to call the appropriate get_* method from the returned GVariant, that is:
host = http_settings.get_string('host') |
is equal to the following:
host = http_settings.get_value('host').get_string() |





Pingback: Manuel de la Pena Saenz: Get/Set proxy... | Python | Syngu