Lightweight proxy manager with GNOME-compatible live switching.
Supported environments
- X11
- Wayland: experimental support
- XFCE, LXDE and LXQt >= 2.1 — officially supported
- Optional WM support — IceWM, Openbox, i3 (requires
DesktopNamessetting)
Mageia
- gsettings-desktop-schemas dconf dconf-editor lib64proxy-gnome gtk2
Fedora
- gsettings-desktop-schemas dconf dconf-editor libproxy gtk2
Ubuntu / XUbuntu
- gsettings-desktop-schemas dconf-cli libproxy1v5 libproxy1-plugin-gsettings libgtk2.0-0
Note:
Packages for Mageia 9/10 are built using the Portable RPM approach with RPMCreator.
For Fedora you can build your own package by loading the project file into RPMCreator.
dconf-editor is a convenient tool for inspecting the actual proxy settings and may be useful for further development.
XDE-Proxy-GUI is a simple graphical tool for managing system-wide proxy settings in XFCE, LXDE and LXQt.
It allows changing proxy settings:
- immediately for GUI applications (browsers, etc.)
- for CLI applications after opening a new terminal (wget, curl, etc.)
The tool uses libproxy together with dconf / gsettings, providing GNOME/MATE-like system-wide proxy behavior on XFCE, LXDE and LXQt.
- To implement the system proxy function, you need to click the "Apply" button at least once.
- After installing or removing the package, you must log out and log in again (or reboot). Once this is done, the tool works continuously.
- The "Revert" function allows you to remove changes made by
XDE-Proxy-GUIto the user's environment before removing the package from the system, i.e., it returns the system settings to their original state.
/etc/profile.d/proxy-sync.sh
The key idea is exporting a fake desktop identifier:
export XDG_CURRENT_DESKTOP="GNOME:${XDG_CURRENT_DESKTOP}"
This enables full interaction with libproxy via gsettings, allowing GUI
applications (for example, web browsers) to react to proxy changes immediately.
Additionally, the script exports environment variables:
http_proxy / https_proxy / ftp_proxy / all_proxy / no_proxy
HTTP_PROXY / HTTPS_PROXY / FTP_PROXY / ALL_PROXY / NO_PROXY
These variables are used by CLI applications. Because environment variables cannot be updated in already running shells, a new terminal must be opened after changing proxy settings.
During operation, XDE-Proxy-GUI adds the following lines to ~/.bashrc:
[ -r /etc/profile.d/proxy-sync.sh ] && source /etc/profile.d/proxy-sync.sh
[ -r /etc/profile.d/xde-proxy-env.sh ] && source /etc/profile.d/xde-proxy-env.sh
An additional section is created for LXDE in ~/.config/lxsession/LXDE/desktop.conf:
[Environment_variable]
XDG_CURRENT_DESKTOP=GNOME:LXDE
An additional section is created for LXQt in ~/.config/lxqt/session.conf:
[Environment]
XDG_CURRENT_DESKTOP=GNOME:LXQt
Layered diagram:
GUI
│
├── gsettings/libproxy
│ ↑
│ proxy-sync.sh
│
└── CLI environment
↑
xde-proxy-env.sh
↑
proxy-env.sh
- Mageia 9/10 (XFCE, LXDE, LXQt, Chromium, Firefox, wget, etc)
- Fedora 43 (XFCE, LXDE, LXQt, Brave-browser, Firefox, wget, etc)
- XUbuntu 25.04 (XFCE, LXDE, LXQt, Brave-browser, Firefox (not snap-pkg), wget, etc)
When GNOME compatibility is enabled (XDG_CURRENT_DESKTOP=GNOME:LXQt),
LXQt may show Orca Screen Reader in its autostart settings.
If Orca is enabled unexpectedly, open:
Preferences → LXQt Settings → Session Settings → Autostart and uncheck Orca Screen Reader.
This is a side effect of GNOME compatibility and is not required by XDE-Proxy-GUI.
Starting with xde-proxy-gui v0.3, the application also works with the IceWM, Openbox and i3 window managers, provided that the session correctly declares DesktopNames.
In IceWM, the DesktopNames parameter is usually already set.
Check the file: /usr/share/xsessions/icewm-session.desktop
It should contain, for example: DesktopNames=ICEWM
For Openbox, the DesktopNames parameter may be missing and must be specified manually.
Session file: /usr/share/xsessions/openbox.desktop
Add the following line: DesktopNames=Openbox
In i3, the DesktopNames parameter is usually already set (i3.desktop).
Check the files: /usr/share/xsessions/{i3.desktop,i3-with-shmlog.desktop}
It should contain, for example: DesktopNames=i3
This project was created to address the long-standing absence of a convenient system-wide proxy solution in lightweight desktop environments such as XFCE, LXDE and LXQt.
The software is provided "as is", without any warranties. The author assumes no responsibility for any consequences arising from improper configuration or usage.
