How cypher-monarch/cyphergate works
CypherGate is a Linux-first VPNGate desktop client. The documented user journey is to browse or choose a server (or auto-select the fastest), obtain and repair its VPN configuration, then connect through the privileged daemon and OpenVPN; the GUI also monitors connection status. The graph preserves the documented server/cache, themes/settings, tray, and update capabilities. Some subsystem links are documented in the README; source excerpts show IPC setup and VPN configuration handling, but do not expose the complete GUI/daemon call flow.
Main entry points: main_window.py Main window · widgets.py UI widgets · commands.py VPN lifecycle · loader.py VPNGate listings
Components 22
Desktop interface
- Main window
src/ui/main_window.py - UI widgets
src/ui/widgets.py - Tray and status
src/ui/tray.py - Icons
src/ui/icons.py - Connection spinner
src/ui/spinner.py - Update checker
src/update.py
Server and VPN
- VPNGate listings
src/vpn/loader.py - Config repair
src/vpn/connector.py - Server cache
src/vpn
Privileged backend
- IPC client
src/ipc.py - Daemon dispatcher
src/cyphergated.py - Unix socket
src/daemon/setup.py - Config validator
src/daemon/validator.py - VPN lifecycle
src/daemon/commands.py - Connection state
src/daemon/state.py
Settings and themes
- Settings manager
src/config/manager.py - Default settings
src/config/defaults.py - Theme resolution
src/config/theme.py - Config watcher
src/config/watcher.py - QSS themes
src/themes
Other components
- User
- OpenVPN
Connections 21
- User → Main window: uses
README.md - Main window → UI widgets: creates widgets
src/ui/widgets.py - UI widgets → Icons: loads icons
src/ui/widgets.py - UI widgets → Connection spinner: creates spinner
src/ui/widgets.py - Main window → VPNGate listings: browses servers
README.md - Main window → Config repair: prepares connection
README.md - VPNGate listings → Server cache: caches listings
README.md - Config repair → OpenVPN: prepares configuration
README.md - Main window → IPC client: sends commands
README.md - IPC client → Unix socket: connects
src/ipc.py - Unix socket → Daemon dispatcher: accepts requests
src/cyphergated.py - Daemon dispatcher → VPN lifecycle: dispatches actions
src/cyphergated.py - VPN lifecycle → Config validator: validates config
README.md - VPN lifecycle → OpenVPN: manages lifecycle
README.md - Main window → Tray and status: shows status
README.md - Main window → Settings manager: loads settings
README.md - Settings manager → Default settings: merges defaults
src/config/manager.py - Config watcher → Theme resolution: resolves theme
src/config/watcher.py - Main window → Config watcher: watches changes
README.md - Theme resolution → QSS themes: selects stylesheet
README.md - Main window → Update checker: checks version
README.md