How feliscatus/switchyomega works
SwitchyOmega is a proxy-profile manager and switcher delivered as a browser extension. The user selects or configures a profile in the popup or options UI; the browser target bridges those actions to shared options/profile logic and applies proxy behavior. The README documents PAC generation and the separation between browser-independent management and target-specific APIs. Several background and profile subsystems are represented by their exact enclosing directories because their source was not excerpted; links to them are dashed where implementation-level calls could not be verified.
Main entry points: options.coffee Options manager · profiles.coffee PAC profiles · background.coffee Extension background · omega_webext_proxy_script.js Proxy script
Components 18
User interfaces
- Profile popup
omega-web/src/popup/js/profiles.js - Options interface
omega-web/src/omega/controllers - Profile controllers
omega-web/src/omega/controllers
Profile and options core
- Options manager
omega-target/src/options.coffee - Options storage
omega-target/src/storage.coffee - PAC profiles
omega-pac/src/profiles.coffee - PAC generator
omega-pac/src/pac_generator.coffee - Request conditions
omega-pac/src/conditions.coffee - Rule lists
omega-pac/src/rule_list.coffee - JavaScript minifier
omega-pac/uglifyjs.js
Browser target
- Popup bridge
omega-target-chromium-extension/src/js/omega_target_popup.js - Web target adapter
omega-target-chromium-extension/src/coffee/omega_target_web.coffee - Extension background
omega-target-chromium-extension/src/coffee/background.coffee - Browser storage
omega-target/src/browser_storage.coffee
Proxy runtime
- Proxy application
omega-target-chromium-extension/src/module/proxy - Proxy script
omega-target-chromium-extension/src/js/omega_webext_proxy_script.js
Other components
- Extension user
- Browser proxy API
Connections 18
- Extension user → Profile popup: selects profile
README.md - Profile popup → Popup bridge: requests profile change
omega-web/src/popup/js/profiles.js - Extension user → Options interface: configures profiles
README.md - Options interface → Web target adapter: uses browser adapter
README.md - Web target adapter → Options manager: bridges to core
README.md - Popup bridge → Extension background: sends runtime messages
omega-target-chromium-extension/src/js/omega_target_popup.js - Extension background → Options manager: applies profile state
- Options manager → Options storage: persists options
- Options manager → Browser storage: uses target storage
README.md - Options manager → PAC profiles: manages profiles
README.md - PAC profiles → Request conditions: matches requests
- PAC profiles → Rule lists: evaluates rule lists
- PAC profiles → PAC generator: compiles PAC scripts
README.md - PAC generator → JavaScript minifier: minifies script
- Extension background → Proxy application: configures proxy
- Proxy application → Browser proxy API: sets proxy behavior
- Proxy script → PAC profiles: matches active profile
omega-target-chromium-extension/src/js/omega_webext_proxy_script.js - Proxy script → Browser proxy API: returns proxy result
omega-target-chromium-extension/src/js/omega_webext_proxy_script.js