System-wide proxy synchronization for the modern Linux desktop.
Automatically mirror your GNOME proxy settings to APT, Terminal environments, and system services.
The Problem: GNOME’s built-in proxy settings are convenient for GUI applications like Firefox or Chrome, but they are notoriously "lazy." They often fail to apply to essential system components like apt, curl, wget, or new terminal sessions.
The Solution: SyncProxy is a lightweight, zero-dependency bash script that bridges this gap. It monitors your GNOME settings in real-time and injects them system-wide, ensuring that when you toggle your proxy on your desktop, your whole OS follows suit.
- 🛡️ System-wide Coverage: Automatically configures
apt,apt-get, and shell environment variables. - 🔄 Real-time Monitoring: A background daemon watches for GNOME setting changes and updates the system instantly.
- 🖱️ Desktop Toggle: Includes a
.desktoplauncher so you can refresh or toggle proxy status from your app grid. - 🎨 Dynamic Icons: The launcher icon changes color/style based on whether the proxy is active or inactive.
- 📦 Zero-Clutter Installation: Installs into a single directory in your home folder with an automated setup.
- 🧹 Deep Uninstall: Completely reverts all system changes and environment files with one flag.
graph TD
A[GNOME Proxy Settings] -->|GSettings Monitor| B(SyncProxy Daemon)
B --> C{Settings Changed?}
C -- Yes --> D[Update /etc/apt/apt.conf.d/]
C -- Yes --> E[Update /etc/profile.d/gnome-proxy.sh]
C -- Yes --> F[Update Desktop Icon Status]
D --> G[System-Wide Consistency]
E --> G
F --> G
style B fill:#f9f,stroke:#333,stroke-width:2px
style G fill:#bbf,stroke:#333,stroke-width:2px
SyncProxy handles its own environment setup. Just run the following commands:
# 1. Download the script
curl -o syncproxy.sh https://raw.githubusercontent.com/rezasadid753/syncproxy/main/syncproxy.sh
# 2. Make it executable
chmod +x syncproxy.sh
# 3. Run the installer
sudo ./syncproxy.shSearch for "SyncProxy" in your applications menu.
- Toggling: Clicking the icon will trigger a sync and update system variables.
- Visual Check: The icon in your launcher/dock will visually indicate the proxy state.
You can manually trigger a sync or monitor at any time:
# Manual Sync
sudo ~/syncproxy/syncproxy.sh
# Apply to current shell session immediately
source /etc/profile.d/gnome-proxy.shSyncProxy interacts with your system in four specific ways:
- GSettings: Reads
org.gnome.system.proxyvalues. - APT Config: Writes to
/etc/apt/apt.conf.d/99proxyto ensure package updates work behind the wall. - Environment Variables: Manages
/etc/profile.d/gnome-proxy.shto exporthttp_proxy,https_proxy, andftp_proxy. - Autostart: Places a monitor entry in
~/.config/autostart/to keep the sync daemon alive across reboots.
To completely remove SyncProxy and revert all configuration changes:
sudo ~/syncproxy/syncproxy.sh --uninstallSyncProxy keeps its files localized to avoid system clutter:
~/syncproxy/
├── syncproxy.sh # Main logic & daemon
├── on.svg # Active state icon
└── off.svg # Inactive state icon
Inspired by the need for a seamless experience when using tools like Hiddify on Linux distributions where system-wide proxy support is inconsistent.
Built for a more connected Linux experience. 🌐