SwitchyOmega
Manage and switch between multiple proxies quickly & easily.Chromium Extension
The project is available as a Chromium Extension.You can try it on Chrome Web Store, or grab a packaged extension file for offline installation on the Releases page.
Please report issues on the issue tracker.
Development status
PAC generator
This project contains a PAC generating module calledomega-pac
, which handles
the profiles model and compile profiles into PAC scripts. This module is standalone
and can be published to npm when the documentation is ready.Options manager
The folderomega-target
contains browser-independent logic for managing the
options and applying profiles. Every public method is well documented in the comments.
Functions related to browser are not included, and shall be implemented in subclasses
of the omega-target
classes.omega-web
is a web-based configuration interface for various options and profiles.
The interface works great with omega-target
as the back-end.omega-web
alone is incomplete and requires a file named omega_target_web.js
containing an angular module omegaTarget
. The module contains browser-dependent
code to communicate with omega-target
back-end, and other code retrieving
browser-related state and information.
See the omega-target-chromium-extension/omega_target_web.coffee
file for an
example of such module.Targets
Theomega-target-*
folders should contain environment-dependent code such as
browser API calls.Each target folder should contain an extended
OmegaTarget
object, which
contains subclasses of the abstract base classes like Options
. The classes
contains implementation of the abstract methods, and can override other methods
at will.A target can copy the files in
omega-web
into its build to provide a web-based
configuration interface. If so, the target must provide the omega_target_web.js
file as described in the Options manager section.Additionally, each target can contain other files and resources required for the target, such as background pages and extension manifests.
For now, only one target has been implemented: The Chromium Extension target. This target allows the project to be used as a Chromium extension in most Chromium-based browsers.
However, the project architecture allows more targets to be added in the future. The first step would be adapting more browsers including Firefox. I don't have time for that now. Feel free to open a pull request if you want to help.
Translation
All translations are in theomega-i18n
folder. For now, only en
(English)
and zh
(简体中文) translations are done. If you notice a translation issue
such as typo or bad spelling, please open an issue or a pull request.You can also help to translate SwitchyOmega into your language. Just fork the project and copy the
en
folder to a new folder named the locale code of your
choice. Then edit the message.json
to provide translations. The file is in
Chrome Extension Locale-Specific Messages Format.
Don't forget to open a pull request when you are done translating.Building the project
SwitchyOmega has migrated to use npm and grunt for building. Please note that npm 2.x is required for this project.To build the project:
# Install node and npm first (make sure npm --version > 2.0), then:
sudo npm install -g grunt-cli bower
# In the project folder:
cd omega-build
npm run deps # This runs npm install in every module.
npm run dev # This runs npm link to aid local development.
# Note: the previous command may require sudo in some environments.
# The modules are now working. We can build now:
grunt
# After building, a folder will be generated:
cd .. # Return to project root.
ls omega-chromium-extension/build/
# The folder above can be loaded as an unpacked extension in Chromium now.
To enable grunt watch
, run grunt watch
once in the omega-build
directory.
This will effectively run grunt watch
in every module in this project.FROM https://github.com/FelisCatus/SwitchyOmega
--------------------------------
2.x 版本新功能:
如果你正在使用 GFW List ,更新完毕后请前往选项中的自动切换选项卡,在靠近页面底部点击“立即更新情景模式”来下载 GFW List。如果下载失败,请切换到全局代理模式再尝试下载。
特别提醒:由于Chrome限制,同一时间只能有一个扩展控制代理设置,一般来说Chrome会优先后安装的扩展。冲突中若 SwitchyOmega获得了优先权,则可以切换到“系统代理”模式,从而把优先权归还给其他扩展,从而解决问题。如果此扩展的配置被其他代理相关、或 者去广告相关的扩展覆盖,则问题无法解决,只能通过重装SwitchyOmega来提高优先权。
备用下载地址: https://github.com/FelisCatus/SwitchyOmega/releases
FROM https://github.com/FelisCatus/SwitchyOmega/wiki/SwitchyOmega-%E6%96%B0%E5%8A%9F%E8%83%BD
- 支持需要用户名密码验证的代理服务器。
- 配置同步
- 更灵活的代理配置:代理情景模式、多个自动切换模式以及多个规则列表。
- 新增多种切换条件类型,并改进原有的切换条件。
- PAC 脚本生成和切换的性能优化。
- 崭新的选项页面和下拉菜单,用户体验更佳。
- 可使用快捷键(Alt+Shift+O)和鼠标右键菜单
- 许多错误修复以及改进。测试更充分。
如何更新
SwitchyOmega 初次安装时会检查是否存在 SwitchySharp ,如果有的话则会自动升级设置,无须手动配置。如果您使用的是非谷歌应用商店版,或者无法自动升级,则可以手动在SwitchySharp导出设置文件 后,在SwitchyOmega导入,可兼容配置。升级到SwitchyOmega后请禁用SwitchySharp。如果你正在使用 GFW List ,更新完毕后请前往选项中的自动切换选项卡,在靠近页面底部点击“立即更新情景模式”来下载 GFW List。如果下载失败,请切换到全局代理模式再尝试下载。
特别提醒:由于Chrome限制,同一时间只能有一个扩展控制代理设置,一般来说Chrome会优先后安装的扩展。冲突中若 SwitchyOmega获得了优先权,则可以切换到“系统代理”模式,从而把优先权归还给其他扩展,从而解决问题。如果此扩展的配置被其他代理相关、或 者去广告相关的扩展覆盖,则问题无法解决,只能通过重装SwitchyOmega来提高优先权。
链接
在谷歌应用商店安装SwitchyOmega备用下载地址: https://github.com/FelisCatus/SwitchyOmega/releases
FROM https://github.com/FelisCatus/SwitchyOmega/wiki/SwitchyOmega-%E6%96%B0%E5%8A%9F%E8%83%BD
---------------------------------------------------------------------
ZeroOmega:实现代理自由切换的浏览器插件,支持谷歌/火狐/Edge
什么是ZeroOmega
ZeroOmega 是一个从 SwitchyOmega 派生的开源项目,兼容 Manifest v3,主要用于快速管理和切换多个代理。该项目作为 Chromium 扩展可在大多数基于 Chromium 的浏览器中使用,并提供实验性的 Firefox 插件。项目包含一个独立的 PAC 生成模块 omega-pac 和一个浏览器无关的选项管理器 omega-target。项目的构建依赖于 npm 和 grunt。SwitchyOmega 在 GNU 通用公共许可证第 3 版或更高版本下发布。项目不与任何代理或 VPN 提供商合作,也不包含广告。翻译工作托管在 Weblate 上。
ZeroOmega支持谷歌/火狐/Edge,原SwitchyOmega项目上次火狐版本的更新还是18年。
ZeroOmega配置使用
首先安装ZeroOmega: