├── .circleci └── config.yml ├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .tern-project ├── AUTHORS ├── COPYING ├── README.md ├── omega-build ├── Gruntfile.coffee └── package.json ├── omega-locales ├── ach │ └── LC_MESSAGES │ │ └── omega-web.po ├── cs │ └── LC_MESSAGES │ │ └── omega-web.po ├── de │ └── LC_MESSAGES │ │ └── omega-web.po ├── en_US │ └── LC_MESSAGES │ │ └── omega-web.po ├── es │ └── LC_MESSAGES │ │ └── omega-web.po ├── es_AR │ └── LC_MESSAGES │ │ └── omega-web.po ├── fa │ └── LC_MESSAGES │ │ └── omega-web.po ├── fr │ └── LC_MESSAGES │ │ └── omega-web.po ├── he_IL │ └── LC_MESSAGES │ │ └── omega-web.po ├── is │ └── LC_MESSAGES │ │ └── omega-web.po ├── it │ └── LC_MESSAGES │ │ └── omega-web.po ├── ja │ └── LC_MESSAGES │ │ └── omega-web.po ├── lzh │ └── LC_MESSAGES │ │ └── omega-web.po ├── nb_NO │ └── LC_MESSAGES │ │ └── omega-web.po ├── nl │ └── LC_MESSAGES │ │ └── omega-web.po ├── pl │ └── LC_MESSAGES │ │ └── omega-web.po ├── pt │ └── LC_MESSAGES │ │ └── omega-web.po ├── pt_BR │ └── LC_MESSAGES │ │ └── omega-web.po ├── ru │ └── LC_MESSAGES │ │ └── omega-web.po ├── si │ └── LC_MESSAGES │ │ └── omega-web.po ├── sk │ └── LC_MESSAGES │ │ └── omega-web.po ├── sl │ └── LC_MESSAGES │ │ └── omega-web.po ├── tr │ └── LC_MESSAGES │ │ └── omega-web.po ├── uk │ └── LC_MESSAGES │ │ └── omega-web.po ├── zh_CN │ └── LC_MESSAGES │ │ └── omega-web.po ├── zh_Hant │ └── LC_MESSAGES │ │ └── omega-web.po └── zh_TW │ └── LC_MESSAGES │ └── omega-web.po ├── omega-pac ├── .gitattributes ├── .gitignore ├── Gruntfile.coffee ├── grunt │ ├── aliases.coffee │ ├── browserify.coffee │ ├── coffeelint.coffee │ ├── mochaTest.coffee │ └── watch.coffee ├── index.coffee ├── package.json ├── src │ ├── conditions.coffee │ ├── pac_generator.coffee │ ├── profiles.coffee │ ├── rule_list.coffee │ ├── shexp_utils.coffee │ └── utils.coffee ├── test │ ├── conditions.coffee │ ├── pac_generator.coffee │ ├── profiles.coffee │ ├── rule_list.coffee │ ├── shexp_utils.coffee │ └── utils.coffee ├── uglifyjs-shim.js └── uglifyjs.js ├── omega-target-chromium-extension ├── .gitignore ├── Gruntfile.coffee ├── b.sh ├── bfirefox.sh ├── grunt-po2crx.coffee ├── grunt │ ├── aliases.coffee │ ├── browserify.coffee │ ├── coffee.coffee │ ├── coffeelint.coffee │ ├── compress.coffee │ ├── copy.coffee │ ├── mochaTest.coffee │ ├── po2crx.coffee │ └── watch.coffee ├── index.coffee ├── omega_target_shim.js ├── overlay │ ├── background.html │ ├── csso.js │ ├── idb-keyval.js │ ├── localstorage-polyfill.js │ ├── manifest-firefox.json │ ├── manifest.json │ └── x-background.js ├── package.json └── src │ ├── coffee │ ├── background.coffee │ ├── background_preload.coffee │ ├── omega_debug.coffee │ └── omega_target_web.coffee │ ├── js │ ├── omega_target_popup.js │ └── omega_webext_proxy_script.js │ └── module │ ├── chrome_api.coffee │ ├── chrome_port.coffee │ ├── external_api.coffee │ ├── fetch_url.coffee │ ├── index.coffee │ ├── inspect.coffee │ ├── options.coffee │ ├── proxy │ ├── index.coffee │ ├── proxy_auth.coffee │ ├── proxy_impl.coffee │ ├── proxy_impl_listener.coffee │ ├── proxy_impl_script.coffee │ └── proxy_impl_settings.coffee │ ├── storage.coffee │ ├── switchysharp.coffee │ ├── tabs.coffee │ ├── upgrade.coffee │ └── web_request_monitor.coffee ├── omega-target ├── .gitignore ├── Gruntfile.coffee ├── grunt │ ├── aliases.coffee │ ├── browserify.coffee │ ├── coffeelint.coffee │ ├── mochaTest.coffee │ └── watch.coffee ├── index.coffee ├── omega_pac_shim.js ├── package.json ├── src │ ├── browser_storage.coffee │ ├── default_options.coffee │ ├── errors.coffee │ ├── log.coffee │ ├── options.coffee │ ├── options_sync.coffee │ ├── storage.coffee │ └── utils.coffee └── test │ └── options_sync.coffee └── omega-web ├── .gitattributes ├── .gitignore ├── Gruntfile.coffee ├── bower.json ├── grunt ├── aliases.coffee ├── autoprefixer.coffee ├── bower.coffee ├── coffee.coffee ├── coffeelint.coffee ├── copy.coffee ├── jade.coffee ├── less.coffee ├── mochaTest.coffee ├── ngAnnotate.coffee └── watch.coffee ├── img └── icons │ ├── draw_omega.js │ ├── omega-128.png │ ├── omega-128.svg │ ├── omega-48.png │ ├── omega-64.png │ ├── omega-action-16.png │ ├── omega-action-19.png │ ├── omega-action-24.png │ ├── omega-action-32.png │ └── omega-action.svg ├── lib ├── jquery-ui-1.10.4.custom.min.js └── themes │ ├── base.css │ ├── default-auto.css │ ├── default-dark.css │ ├── default-light.css │ ├── others │ ├── base16-3024.css │ ├── base16-apathy.css │ ├── base16-apprentice.css │ ├── base16-atelier-cave-light.css │ ├── base16-atelier-cave.css │ ├── base16-atelier-dune-light.css │ ├── base16-atelier-dune.css │ ├── base16-atelier-estuary-light.css │ ├── base16-atelier-estuary.css │ ├── base16-atelier-forest-light.css │ ├── base16-atelier-forest.css │ ├── base16-atelier-heath-light.css │ ├── base16-atelier-heath.css │ ├── base16-atelier-lakeside-light.css │ ├── base16-atelier-lakeside.css │ ├── base16-atelier-plateau-light.css │ ├── base16-atelier-plateau.css │ ├── base16-atelier-savanna-light.css │ ├── base16-atelier-savanna.css │ ├── base16-atelier-seaside-light.css │ ├── base16-atelier-seaside.css │ ├── base16-atelier-sulphurpool-light.css │ ├── base16-atelier-sulphurpool.css │ ├── base16-atlas.css │ ├── base16-bespin.css │ ├── base16-brewer.css │ ├── base16-bright.css │ ├── base16-brush-trees-dark.css │ ├── base16-brush-trees.css │ ├── base16-chalk.css │ ├── base16-china-danqing-dark.css │ ├── base16-china-danqing-light.css │ ├── base16-china-red-screen.css │ ├── base16-china-traditional-light.css │ ├── base16-china-traditional-night.css │ ├── base16-circus.css │ ├── base16-classic-dark.css │ ├── base16-classic-light.css │ ├── base16-colors.css │ ├── base16-cupcake.css │ ├── base16-cupertino.css │ ├── base16-da-one-black.css │ ├── base16-da-one-gray.css │ ├── base16-da-one-ocean.css │ ├── base16-da-one-paper.css │ ├── base16-da-one-white.css │ ├── base16-darcula.css │ ├── base16-darkmoss.css │ ├── base16-darktooth.css │ ├── base16-decaf.css │ ├── base16-default-dark.css │ ├── base16-default-light.css │ ├── base16-eighties.css │ ├── base16-embers.css │ ├── base16-equilibrium-dark.css │ ├── base16-equilibrium-gray-dark.css │ ├── base16-equilibrium-gray-light.css │ ├── base16-equilibrium-light.css │ ├── base16-espresso.css │ ├── base16-eva-dim.css │ ├── base16-eva.css │ ├── base16-flat.css │ ├── base16-framer.css │ ├── base16-gigavolt.css │ ├── base16-github.css │ ├── base16-google-dark.css │ ├── base16-google-light.css │ ├── base16-grayscale-dark.css │ ├── base16-grayscale-light.css │ ├── base16-green-screen.css │ ├── base16-gruvbox-dark-hard.css │ ├── base16-gruvbox-dark-medium.css │ ├── base16-gruvbox-dark-pale.css │ ├── base16-gruvbox-dark-soft.css │ ├── base16-gruvbox-light-hard.css │ ├── base16-gruvbox-light-medium.css │ ├── base16-gruvbox-light-soft.css │ ├── base16-hardcore.css │ ├── base16-harmonic16-dark.css │ ├── base16-harmonic16-light.css │ ├── base16-helios.css │ ├── base16-hopscotch.css │ ├── base16-horizon-dark.css │ ├── base16-horizon-light.css │ ├── base16-humanoid-dark.css │ ├── base16-humanoid-light.css │ ├── base16-icy-dark.css │ ├── base16-ir-black.css │ ├── base16-isotope.css │ ├── base16-kimber.css │ ├── base16-macintosh.css │ ├── base16-marrakesh.css │ ├── base16-materia.css │ ├── base16-material-darker.css │ ├── base16-material-lighter.css │ ├── base16-material-palenight.css │ ├── base16-material-vivid.css │ ├── base16-material.css │ ├── base16-mexico-light.css │ ├── base16-mocha.css │ ├── base16-monokai.css │ ├── base16-nebula.css │ ├── base16-nord.css │ ├── base16-nova.css │ ├── base16-ocean.css │ ├── base16-oceanicnext.css │ ├── base16-one-light.css │ ├── base16-onedark.css │ ├── base16-outrun-dark.css │ ├── base16-paraiso.css │ ├── base16-pasque.css │ ├── base16-phd.css │ ├── base16-pinky.css │ ├── base16-pop.css │ ├── base16-porple.css │ ├── base16-primer-dark-colorblind.css │ ├── base16-primer-dark-dimmed.css │ ├── base16-primer-dark-high-contrast.css │ ├── base16-primer-dark.css │ ├── base16-primer-light-colorblind.css │ ├── base16-primer-light.css │ ├── base16-qualia.css │ ├── base16-railscasts.css │ ├── base16-rose-pine-dawn.css │ ├── base16-rose-pine-moon.css │ ├── base16-rose-pine.css │ ├── base16-sagelight.css │ ├── base16-sakura.css │ ├── base16-sandcastle.css │ ├── base16-shapeshifter.css │ ├── base16-silk-dark.css │ ├── base16-silk-light.css │ ├── base16-snazzy.css │ ├── base16-solar-flare-light.css │ ├── base16-solar-flare.css │ ├── base16-solarized-dark.css │ ├── base16-solarized-light.css │ ├── base16-spacemacs.css │ ├── base16-summercamp.css │ ├── base16-summerfruit-dark.css │ ├── base16-summerfruit-light.css │ ├── base16-synth-midnight-terminal-dark.css │ ├── base16-synth-midnight-terminal-light.css │ ├── base16-tender.css │ ├── base16-tomorrow-night-blue.css │ ├── base16-tomorrow-night-bright.css │ ├── base16-tomorrow-night-eighties.css │ ├── base16-tomorrow-night.css │ ├── base16-tomorrow.css │ ├── base16-twilight.css │ ├── base16-unikitty-dark.css │ ├── base16-unikitty-light.css │ ├── base16-vulcan.css │ ├── base16-windows-10-light.css │ ├── base16-windows-10.css │ ├── base16-windows-95-light.css │ ├── base16-windows-95.css │ ├── base16-windows-high-contrast-light.css │ ├── base16-windows-high-contrast.css │ ├── base16-windows-nt-light.css │ ├── base16-windows-nt.css │ ├── base16-woodland.css │ ├── base16-xcode-dusk.css │ └── base16-zenburn.css │ ├── themes.json │ └── variable.css ├── package.json └── src ├── coffee ├── log_error.coffee ├── omega_decoration.coffee ├── options.coffee ├── options_guide.coffee ├── popup.coffee └── switch_profile_guide.coffee ├── less ├── common.less ├── options.less └── popup.less ├── omega ├── app.coffee ├── controllers │ ├── about.coffee │ ├── fixed_profile.coffee │ ├── io.coffee │ ├── master.coffee │ ├── pac_profile.coffee │ ├── profile.coffee │ ├── quick_switch.coffee │ ├── rule_list_profile.coffee │ └── switch_profile.coffee ├── directives.coffee └── filters.coffee ├── options.jade ├── partials ├── about.jade ├── apply_options_confirm.jade ├── cannot_delete_profile.jade ├── delete_attached.jade ├── delete_profile.jade ├── fixed_auth_edit.jade ├── general.jade ├── input_group_clear.jade ├── io.jade ├── new_profile.jade ├── omega_profile_select.jade ├── options_welcome.jade ├── profile.jade ├── profile_fixed.jade ├── profile_pac.jade ├── profile_rule_list.jade ├── profile_switch.jade ├── profile_unsupported.jade ├── profile_virtual.jade ├── rename_profile.jade ├── replace_profile.jade ├── reset_options_confirm.jade ├── rule_remove_confirm.jade ├── rule_reset_confirm.jade ├── theme.jade └── ui.jade ├── popup.jade └── popup ├── css ├── dialog.css └── index.css ├── grant_permissions.html ├── index.html ├── js ├── grant_permissions.js ├── i18n.js ├── index.js ├── keyboard.js ├── keyboard_help.js ├── loader.js ├── profiles.js ├── proxy_not_controllable.js └── style.js └── proxy_not_controllable.html /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 25 | 26 | ### SwitchyOmega version / SwitchyOmega 版本 27 | 28 | 29 | ### Browser version & OS version / 浏览器名称、版本及操作系统版本 30 | 31 | 32 | ### Problem description / 问题描述 33 | 34 | (Please provide as much detail as possible. We recommend the following format.) 35 | (请尽可能多提供一些细节。我们推荐使用下面的格式。) 36 | 37 | #### Steps to reproduce issue / 重现错误所需步骤 38 | 39 | (What did you do? / 你做了什么?) 40 | 41 | 1. 42 | 2. 43 | 3. 44 | 45 | #### Expected behavior / 期望发生的情况 46 | 47 | 48 | #### Actual (or suggested) behavior / 实际发生的情况(或建议修改后的行为) 49 | 50 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### What does this PR do? 2 | - [ ] Bug fix 3 | - [ ] Improvement 4 | - [ ] New feature 5 | 6 | (Note: Translations and typo fixes should be done on https://hosted.weblate.org/projects/switchyomega/ instead of PR.) 7 | 8 | Please explain the changes in details here... 9 | 10 | #### Compatibility 11 | 12 | Is this PR compatible with old versions? Can users simply upgrade the extension? 13 | Please describe any possible breaking changes (or surprising UX differences). 14 | 15 | #### Screenshots (if applicable) 16 | 17 | --- 18 | 19 | After creating the PR: 20 | 21 | - Please make sure the CircleCI test passes. Feel free to add more commits for 22 | bug or style fixes. 23 | - Any merge conflicts should be fixed on *your* side. Prefer rebasing to merging. 24 | - Allow some time for project maintainers to review and merge the change. 25 | - New features & behavior changes are subject to discussion. Please understand 26 | that project maintainers may reject new features, or request changes. 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | bower_components 3 | package-lock.json 4 | -------------------------------------------------------------------------------- /.tern-project: -------------------------------------------------------------------------------- 1 | { 2 | "libs": [ 3 | "chai" 4 | ], 5 | "plugins": { 6 | "node": {}, 7 | "coffee": {} 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | # SwitchyOmega authors: 2 | 3 | FelisCatus 4 | 5 | # SwitchyOmega translators: 6 | 7 | Filip 8 | Michal Čihař 9 | masoud Rahmani 10 | 11 | # SwitchyOmega includes or links to (unchanged): 12 | # * jQuery UI (custom build) 13 | # => omega-web/lib/jquery-ui-*.js 14 | # => Copyright 2014 jQuery Foundation and other contributors; Licensed MIT 15 | # * Many npm packages and bower packages 16 | # => **/node_modules, **/bower_components 17 | # => Please refer to their project homepages or npm package pages for the 18 | # copyright and license information of each package. 19 | -------------------------------------------------------------------------------- /omega-build/Gruntfile.coffee: -------------------------------------------------------------------------------- 1 | module.exports = (grunt) -> 2 | submodules = ['omega-pac', 'omega-target', 'omega-web', 'omega-target-*'] 3 | hubConfig = 4 | all: 5 | options: 6 | concurrent: Infinity 7 | src: "../*/Gruntfile.*" 8 | for module in submodules 9 | hubConfig[module] = 10 | src: "../#{module}/Gruntfile.*" 11 | 12 | hubAll = (task) -> "hub:#{module}:#{task}" for module in submodules 13 | 14 | grunt.initConfig { 15 | hub: hubConfig 16 | } 17 | 18 | grunt.loadNpmTasks 'grunt-hub' 19 | 20 | grunt.registerTask 'default', hubAll('default') 21 | grunt.registerTask 'test', hubAll('test') 22 | grunt.registerTask 'watch', ['hub:all:watch'] 23 | -------------------------------------------------------------------------------- /omega-build/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "omega-build", 3 | "version": "0.0.1", 4 | "private": true, 5 | "devDependencies": { 6 | "grunt": "~0.4.1", 7 | "grunt-hub": "^0.7.0" 8 | }, 9 | "scripts": { 10 | "deps": "npm install && (cd ../omega-pac && npm install) && (cd ../omega-target && npm install) && (cd ../omega-web && npm install && bower install) && (cd ../omega-target-chromium-extension/ && npm install)", 11 | "dev": "(cd ../omega-pac && npm run dev) && (cd ../omega-target && npm run dev) && (cd ../omega-web && npm run dev) && (cd ../omega-target-chromium-extension/ && npm run dev)" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /omega-pac/.gitattributes: -------------------------------------------------------------------------------- 1 | uglifyjs.js linguist-vendored 2 | -------------------------------------------------------------------------------- /omega-pac/.gitignore: -------------------------------------------------------------------------------- 1 | /index.js 2 | /omega_pac.min.js 3 | -------------------------------------------------------------------------------- /omega-pac/Gruntfile.coffee: -------------------------------------------------------------------------------- 1 | module.exports = require('load-grunt-config') 2 | -------------------------------------------------------------------------------- /omega-pac/grunt/aliases.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | default: [ 3 | 'coffeelint' 4 | 'browserify' 5 | ] 6 | test: ['mochaTest'] 7 | -------------------------------------------------------------------------------- /omega-pac/grunt/browserify.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | index: 3 | files: 4 | 'index.js': 'index.coffee' 5 | options: 6 | transform: ['coffeeify'] 7 | exclude: ['uglify-js', 'ip-address'] 8 | browserifyOptions: 9 | extensions: '.coffee' 10 | builtins: [] 11 | standalone: 'index.coffee' 12 | debug: true 13 | browser: 14 | files: 15 | 'omega_pac.min.js': './index.coffee' 16 | options: 17 | alias: [ 18 | './index.coffee:OmegaPac' 19 | ] 20 | transform: ['coffeeify'] 21 | plugin: 22 | if process.env.BUILD == 'release' 23 | [['minifyify', {map: false}]] 24 | else 25 | [] 26 | browserifyOptions: 27 | extensions: '.coffee' 28 | standalone: 'OmegaPac' 29 | -------------------------------------------------------------------------------- /omega-pac/grunt/coffeelint.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | options: 3 | arrow_spacing: level: 'error' 4 | colon_assignment_spacing: 5 | level: 'error' 6 | spacing: 7 | left: 0 8 | right: 1 9 | missing_fat_arrows: level: 'warn' 10 | no_empty_functions: level: 'error' 11 | no_empty_param_list: level: 'error' 12 | no_interpolation_in_single_quotes: level: 'error' 13 | no_stand_alone_at: level: 'error' 14 | space_operators: level: 'error' 15 | # https://github.com/clutchski/coffeelint/issues/525 16 | indentation: level: 'ignore' 17 | 18 | gruntfile: ['Gruntfile.coffee'] 19 | tasks: ['grunt/**/*.coffee'] 20 | src: ['src/**/*.coffee', 'test/**/*.coffee'] 21 | -------------------------------------------------------------------------------- /omega-pac/grunt/mochaTest.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | test: 3 | options: 4 | reporter: 'spec' 5 | require: 'coffee-script/register' 6 | src: ['test/**/*.coffee'] 7 | -------------------------------------------------------------------------------- /omega-pac/grunt/watch.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | grunt: 3 | options: 4 | reload: true 5 | files: 6 | 'grunt/*' 7 | tasks: ['coffeelint:tasks', 'default'] 8 | src: 9 | files: ['src/**/*.coffee', 'test/**/*.coffee'] 10 | tasks: ['default'] 11 | -------------------------------------------------------------------------------- /omega-pac/index.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | Conditions: require('./src/conditions') 3 | PacGenerator: require('./src/pac_generator') 4 | Profiles: require('./src/profiles') 5 | RuleList: require('./src/rule_list') 6 | ShexpUtils: require('./src/shexp_utils') 7 | 8 | for name, value of require('./src/utils.coffee') 9 | module.exports[name] = value 10 | -------------------------------------------------------------------------------- /omega-pac/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "omega-pac", 3 | "version": "0.0.1", 4 | "private": true, 5 | "main": "./index.js", 6 | "devDependencies": { 7 | "chai": "~1.9.1", 8 | "coffee-script": "^1.7.1", 9 | "coffeeify": "^0.7.0", 10 | "coffeelint": "^1.16.0", 11 | "grunt": "^0.4.5", 12 | "grunt-browserify": "^3.0.0", 13 | "grunt-coffeelint": "^0.0.13", 14 | "grunt-contrib-coffee": "^0.11.1", 15 | "grunt-contrib-watch": "^0.6.1", 16 | "grunt-mocha-test": "~0.11.0", 17 | "load-grunt-config": "^0.13.1", 18 | "lolex": "^1.4.0", 19 | "minifyify": "^4.1.1" 20 | }, 21 | "dependencies": { 22 | "ip-address": "^4.0.0", 23 | "tldjs": "^1.5.2", 24 | "uglify-js": "^2.4.15" 25 | }, 26 | "browser": { 27 | "uglify-js": "./uglifyjs-shim.js", 28 | "uglify-js-real": "./uglifyjs.js" 29 | }, 30 | "scripts": { 31 | "dev": "npm link", 32 | "test": "TZ=Europe/London grunt test" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /omega-pac/src/shexp_utils.coffee: -------------------------------------------------------------------------------- 1 | module.exports = exports = 2 | regExpMetaChars: do -> 3 | chars = '''\\[\^$.|?*+(){}/''' 4 | set = {} 5 | for i in [0...chars.length] 6 | set[chars.charCodeAt(i)] = true 7 | set 8 | escapeSlash: (pattern) -> 9 | charCodeSlash = 47 # / 10 | charCodeBackSlash = 92 # \ 11 | escaped = false 12 | start = 0 13 | result = '' 14 | for i in [0...pattern.length] 15 | code = pattern.charCodeAt(i) 16 | if code == charCodeSlash and not escaped 17 | result += pattern.substring start, i 18 | result += '\\' 19 | start = i 20 | escaped = (code == charCodeBackSlash and not escaped) 21 | result += pattern.substr start 22 | shExp2RegExp: (pattern, options) -> 23 | trimAsterisk = options?.trimAsterisk || false 24 | start = 0 25 | end = pattern.length 26 | charCodeAsterisk = 42 # '*' 27 | charCodeQuestion = 63 # '?' 28 | if trimAsterisk 29 | while start < end && pattern.charCodeAt(start) == charCodeAsterisk 30 | start++ 31 | while start < end && pattern.charCodeAt(end - 1) == charCodeAsterisk 32 | end-- 33 | if end - start == 1 && pattern.charCodeAt(start) == charCodeAsterisk 34 | return '' 35 | regex = '' 36 | if start == 0 37 | regex += '^' 38 | for i in [start...end] 39 | code = pattern.charCodeAt(i) 40 | switch code 41 | when charCodeAsterisk then regex += '.*' 42 | when charCodeQuestion then regex += '.' 43 | else 44 | if exports.regExpMetaChars[code] >= 0 45 | regex += '\\' 46 | regex += pattern[i] 47 | 48 | if end == pattern.length 49 | regex += '$' 50 | 51 | return regex 52 | -------------------------------------------------------------------------------- /omega-pac/src/utils.coffee: -------------------------------------------------------------------------------- 1 | Revision = 2 | fromTime: (time) -> 3 | time = if time then new Date(time) else new Date() 4 | return time.getTime().toString(16) 5 | compare: (a, b) -> 6 | return 0 if not a and not b 7 | return -1 if not a 8 | return 1 if not b 9 | return 1 if a.length > b.length 10 | return -1 if a.length < b.length 11 | return 1 if a > b 12 | return -1 if a < b 13 | return 0 14 | 15 | exports.Revision = Revision 16 | 17 | class AttachedCache 18 | constructor: (opt_prop, @tag) -> 19 | @prop = opt_prop 20 | if typeof @tag == 'undefined' 21 | @tag = opt_prop 22 | @prop = '_cache' 23 | get: (obj, otherwise) -> 24 | tag = @tag(obj) 25 | cache = @_getCache(obj) 26 | if cache? and cache.tag == tag 27 | return cache.value 28 | value = if typeof otherwise == 'function' then otherwise() else otherwise 29 | @_setCache(obj, {tag: tag, value: value}) 30 | return value 31 | drop: (obj) -> 32 | if obj[@prop]? 33 | obj[@prop] = undefined 34 | _getCache: (obj) -> obj[@prop] 35 | _setCache: (obj, value) -> 36 | if not Object::hasOwnProperty.call obj, @prop 37 | Object.defineProperty obj, @prop, writable: true 38 | obj[@prop] = value 39 | 40 | exports.AttachedCache = AttachedCache 41 | 42 | tld = require('tldjs') 43 | 44 | exports.isIp = (domain) -> 45 | return true if domain.indexOf(':') > 0 # IPv6 46 | lastCharCode = domain.charCodeAt(domain.length - 1) 47 | return true if 48 <= lastCharCode <= 57 # IP address ending with number. 48 | return false 49 | 50 | exports.getBaseDomain = (domain) -> 51 | return domain if exports.isIp(domain) 52 | return tld.getDomain(domain) ? domain 53 | 54 | exports.wildcardForDomain = (domain) -> 55 | return domain if exports.isIp(domain) 56 | return '*.' + exports.getBaseDomain(domain) 57 | 58 | Url = require('url') 59 | exports.wildcardForUrl = (url) -> 60 | domain = Url.parse(url).hostname 61 | return exports.wildcardForDomain(domain) 62 | -------------------------------------------------------------------------------- /omega-pac/test/pac_generator.coffee: -------------------------------------------------------------------------------- 1 | chai = require 'chai' 2 | should = chai.should() 3 | 4 | describe 'PacGenerator', -> 5 | PacGenerator = require '../src/pac_generator.coffee' 6 | 7 | options = 8 | '+auto': 9 | name: 'auto' 10 | profileType: 'SwitchProfile' 11 | revision: 'test' 12 | defaultProfileName: 'direct' 13 | rules: [ 14 | {profileName: 'proxy', condition: 15 | conditionType: 'UrlRegexCondition' 16 | pattern: '^http://(www|www2)\\.example\\.com/' 17 | } 18 | {profileName: 'direct', condition: 19 | conditionType: 'HostLevelsCondition' 20 | minValue: 3 21 | maxValue: 8 22 | } 23 | { 24 | profileName: 'proxy' 25 | condition: {conditionType: 'KeywordCondition', pattern: 'keyword'} 26 | } 27 | {profileName: 'proxy', condition: 28 | conditionType: 'UrlWildcardCondition' 29 | pattern: 'https://ssl.example.com/*' 30 | } 31 | ] 32 | '+proxy': 33 | name: 'proxy' 34 | profileType: 'FixedProfile' 35 | revision: 'test' 36 | fallbackProxy: {scheme: 'http', host: '127.0.0.1', port: 8888} 37 | bypassList: [ 38 | {conditionType: 'BypassCondition', pattern: '127.0.0.1:8080'} 39 | {conditionType: 'BypassCondition', pattern: '127.0.0.1'} 40 | {conditionType: 'BypassCondition', pattern: ''} 41 | ] 42 | 43 | it 'should generate pac scripts from options', -> 44 | ast = PacGenerator.script(options, 'auto') 45 | pac = ast.print_to_string(beautify: true, comments: true) 46 | pac.should.not.be.empty 47 | func = eval("(function () { #{pac}\n return FindProxyForURL; })()") 48 | result = func('http://www.example.com/', 'www.example.com') 49 | result.should.equal('PROXY 127.0.0.1:8888') 50 | it 'should be able to compress pac scripts', -> 51 | ast = PacGenerator.script(options, 'auto') 52 | pac = PacGenerator.compress(ast).print_to_string() 53 | pac.should.not.be.empty 54 | func = eval("(function () { #{pac}\n return FindProxyForURL; })()") 55 | result = func('http://www.example.com/', 'www.example.com') 56 | result.should.equal('PROXY 127.0.0.1:8888') 57 | -------------------------------------------------------------------------------- /omega-pac/test/shexp_utils.coffee: -------------------------------------------------------------------------------- 1 | chai = require 'chai' 2 | should = chai.should() 3 | 4 | describe 'ShexpUtils', -> 5 | ShexpUtils = require '../src/shexp_utils' 6 | describe '#escapeSlash', -> 7 | it 'should escape all forward slashes', -> 8 | regex = ShexpUtils.escapeSlash '/test/' 9 | regex.should.equal '\\/test\\/' 10 | it 'should not escape slashes that are already escaped', -> 11 | regex = ShexpUtils.escapeSlash '\\/test\\/' 12 | regex.should.equal '\\/test\\/' 13 | it 'should know the difference between escaped and unescaped slashes', -> 14 | regex = ShexpUtils.escapeSlash '\\\\/\\/test\\/' 15 | regex.should.equal '\\\\\\/\\/test\\/' 16 | describe '#shExp2RegExp', -> 17 | it 'should escape regex meta chars and back slashes', -> 18 | regex = ShexpUtils.shExp2RegExp 'this.is|a\\test+' 19 | regex.should.equal '^this\\.is\\|a\\\\test\\+$' 20 | -------------------------------------------------------------------------------- /omega-pac/test/utils.coffee: -------------------------------------------------------------------------------- 1 | chai = require 'chai' 2 | should = chai.should() 3 | Utils = require '../src/utils' 4 | 5 | describe 'getBaseDomain', -> 6 | {getBaseDomain} = Utils 7 | it 'should return domains with zero level unchanged', -> 8 | getBaseDomain('someinternaldomain').should.equal('someinternaldomain') 9 | it 'should return domains with one level unchanged', -> 10 | getBaseDomain('example.com').should.equal('example.com') 11 | getBaseDomain('e.test').should.equal('e.test') 12 | getBaseDomain('a.b').should.equal('a.b') 13 | it 'should treat two-segment TLD as one component', -> 14 | getBaseDomain('images.google.co.uk').should.equal('google.co.uk') 15 | getBaseDomain('images.google.co.jp').should.equal('google.co.jp') 16 | getBaseDomain('example.com.cn').should.equal('example.com.cn') 17 | it 'should not mistake short domains with two-segment TLDs', -> 18 | getBaseDomain('a.bc.com').should.equal('bc.com') 19 | getBaseDomain('i.t.co').should.equal('t.co') 20 | it 'should not try to modify IP address literals', -> 21 | getBaseDomain('127.0.0.1').should.equal('127.0.0.1') 22 | getBaseDomain('[::1]').should.equal('[::1]') 23 | getBaseDomain('::f').should.equal('::f') 24 | -------------------------------------------------------------------------------- /omega-pac/uglifyjs-shim.js: -------------------------------------------------------------------------------- 1 | require('uglify-js-real'); 2 | module.exports = UglifyJS; 3 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/.gitignore: -------------------------------------------------------------------------------- 1 | /index.js 2 | /omega_target_*.min.js 3 | 4 | /tmp 5 | /build 6 | /build* 7 | /release.zip 8 | /web-ext-artifacts 9 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/Gruntfile.coffee: -------------------------------------------------------------------------------- 1 | module.exports = (grunt) -> 2 | require('load-grunt-config')(grunt) 3 | require('./grunt-po2crx')(grunt) 4 | 5 | grunt.registerTask 'chromium-manifest', -> 6 | manifest = grunt.file.readJSON('overlay/manifest.json') 7 | manifest.permissions = manifest.permissions.filter (p) -> p != 'downloads' 8 | grunt.file.write('tmp/manifest.json', JSON.stringify(manifest)) 9 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/b.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | . ~/.nvm/nvm.sh 3 | nvm use 11.9.0 4 | minify-all-js ./build -j 5 | cd build && zip -r ../release.zip ./* 6 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/bfirefox.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | . ~/.nvm/nvm.sh 3 | nvm use 11.9.0 4 | rm -f ./release.zip 5 | #minify-all-js ./build -j 6 | cd build 7 | rm -f manifest-chrome.json 8 | mv manifest.json manifest-chrome.json 9 | mv manifest-firefox.json manifest.json 10 | zip -r ../release.zip ./* 11 | mv manifest-chrome.json manifest.json 12 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt-po2crx.coffee: -------------------------------------------------------------------------------- 1 | module.exports = (grunt) -> 2 | taskDesc = 'Convert gettext PO files to Chromium Extension messages format.' 3 | # coffeelint: disable=missing_fat_arrows 4 | grunt.registerMultiTask 'po2crx', taskDesc, -> 5 | for f in this.files 6 | result = {} 7 | for src in f.src 8 | json = require('po2json').parseFileSync(src) 9 | for own key, value of json when key 10 | message = value[1] 11 | refs = [] 12 | matchCount = 0 13 | message = message.replace /\$(\d+:)?(\w+)\$/g, (_, order, ref) -> 14 | matchCount++ 15 | if order 16 | order = parseInt(order) 17 | else 18 | order = matchCount 19 | ### TODO(catus): Shall we enable this warning? 20 | if matchCount > 1 21 | grunt.log.writeln("In this message: #{key}=#{message}") 22 | grunt.log.writeln( 23 | 'Order not specified for two or more refs in same message.') 24 | ### 25 | refs[order] = ref 26 | return '$' + ref + '$' 27 | 28 | if not matchCount 29 | placeholders = undefined 30 | else 31 | placeholders = {} 32 | for i in [0...refs.length] 33 | placeholder = refs[i] ? ('_unused_' + i) 34 | placeholders[placeholder] = {content: '$' + i} 35 | if message == ' ' 36 | message = '' 37 | result[key] = 38 | message: message 39 | placeholders: placeholders 40 | 41 | grunt.file.write(f.dest, JSON.stringify(result)) 42 | grunt.log.writeln("File \"#{f.dest}\" created.") 43 | # coffeelint: enable=missing_fat_arrows 44 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/aliases.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | default: [ 3 | 'coffeelint' 4 | 'browserify' 5 | 'coffee' 6 | 'copy' 7 | 'po2crx' 8 | ] 9 | test: ['mochaTest'] 10 | release: ['default', 'chromium-manifest', 'compress'] 11 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/browserify.coffee: -------------------------------------------------------------------------------- 1 | path = require('path') 2 | module.exports = 3 | index: 4 | files: 5 | 'index.js': 'index.coffee' 6 | options: 7 | transform: ['coffeeify'] 8 | exclude: ['bluebird', 'omega-pac', 'omega-target'] 9 | browserifyOptions: 10 | extensions: '.coffee' 11 | builtins: [] 12 | standalone: 'index.coffee' 13 | debug: true 14 | browser: 15 | files: 16 | 'omega_target_chromium_extension.min.js': 'index.coffee' 17 | options: 18 | alias: [ 19 | './index.coffee:OmegaTargetChromium' 20 | ] 21 | transform: ['coffeeify'] 22 | plugin: 23 | if process.env.BUILD == 'release' 24 | [['minifyify', {map: false}]] 25 | else 26 | [] 27 | browserifyOptions: 28 | extensions: '.coffee' 29 | standalone: 'OmegaTargetChromium' 30 | omega_webext_proxy_script: 31 | files: 32 | 'build/js/omega_webext_proxy_script.min.js': 33 | 'src/js/omega_webext_proxy_script.js' 34 | options: 35 | alias: 36 | 'omega-pac': 'omega-pac/omega_pac.min.js' 37 | plugin: 38 | if process.env.BUILD == 'release' 39 | [['minifyify', {map: false}]] 40 | else 41 | [] 42 | browserifyOptions: 43 | noParse: [require.resolve('omega-pac/omega_pac.min.js')] 44 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/coffee.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | coffee: 3 | expand: true 4 | cwd: 'src/coffee' 5 | src: ['**/*.coffee'] 6 | dest: 'build/js/' 7 | ext: '.js' 8 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/coffeelint.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | options: 3 | arrow_spacing: level: 'error' 4 | colon_assignment_spacing: 5 | level: 'error' 6 | spacing: 7 | left: 0 8 | right: 1 9 | missing_fat_arrows: level: 'warn' 10 | no_empty_functions: level: 'error' 11 | no_empty_param_list: level: 'error' 12 | no_interpolation_in_single_quotes: level: 'error' 13 | no_stand_alone_at: level: 'error' 14 | space_operators: level: 'error' 15 | # https://github.com/clutchski/coffeelint/issues/525 16 | indentation: level: 'ignore' 17 | 18 | gruntfile: ['Gruntfile.coffee'] 19 | tasks: ['grunt/**/*.coffee'] 20 | src: ['*.coffee', 'src/**/*.coffee', 'test/**/*.coffee'] 21 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/compress.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | options: 3 | archive: './release.zip' 4 | mode: 'zip' 5 | build: 6 | files: [ 7 | { 8 | cwd: 'build' 9 | src: ['**', '!manifest.json'] 10 | expand: true 11 | filter: 'isFile' 12 | } 13 | { 14 | cwd: 'tmp/' 15 | src: 'manifest.json' 16 | expand: true 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/copy.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | web: 3 | expand: true 4 | cwd: '../omega-web/build' 5 | src: ['**/*'] 6 | dest: 'build/' 7 | target: 8 | files: 9 | 'build/js/omega_target.min.js': 10 | 'node_modules/omega-target/omega_target.min.js' 11 | target_self: 12 | src: 'omega_target_chromium_extension.min.js' 13 | dest: 'build/js/' 14 | target_popup: 15 | expand: true 16 | cwd: 'src/js' 17 | src: 'omega_target_popup.js' 18 | dest: 'build/js/' 19 | overlay: 20 | expand: true 21 | cwd: 'overlay' 22 | src: ['**/*'] 23 | dest: 'build/' 24 | docs: 25 | expand: true 26 | cwd: '..' 27 | src: ['COPYING', 'AUTHORS'] 28 | dest: 'build/' 29 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/mochaTest.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | test: 3 | options: 4 | reporter: 'spec' 5 | require: 'coffee-script/register' 6 | src: ['test/**/*.coffee'] 7 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/po2crx.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | locales: 3 | files: 4 | 'build/_locales/en/messages.json': 5 | '../omega-locales/en_US/LC_MESSAGES/omega-web.po' 6 | 'build/_locales/zh/messages.json': 7 | '../omega-locales/zh_CN/LC_MESSAGES/omega-web.po' 8 | 'build/_locales/cs/messages.json': 9 | '../omega-locales/cs/LC_MESSAGES/omega-web.po' 10 | 'build/_locales/fa/messages.json': 11 | '../omega-locales/fa/LC_MESSAGES/omega-web.po' 12 | 'build/_locales/zh_CN/messages.json': 13 | '../omega-locales/zh_CN/LC_MESSAGES/omega-web.po' 14 | 'build/_locales/zh_TW/messages.json': 15 | '../omega-locales/zh_TW/LC_MESSAGES/omega-web.po' 16 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/grunt/watch.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | grunt: 3 | options: 4 | reload: true 5 | files: 6 | 'grunt/*' 7 | tasks: ['coffeelint:tasks', 'default'] 8 | po2crx_locales: 9 | files: ['../omega-locales/**/*'] 10 | tasks: ['po2crx:locales'] 11 | copy_web: 12 | files: ['node_modules/omega-web/build/**/*'] 13 | tasks: ['copy:web'] 14 | copy_target: 15 | files: ['node_modules/omega-target/omega_target.min.js'] 16 | tasks: ['copy:target'] 17 | copy_overlay: 18 | files: ['overlay/**/*'] 19 | tasks: ['copy:overlay'] 20 | copy_target_popup: 21 | files: ['src/js/omega_target_popup.js'] 22 | tasks: ['copy:target_popup'] 23 | coffee: 24 | files: ['src/**/*.coffee'] 25 | tasks: ['coffeelint:src', 'browserify', 'coffee', 'copy:target_self'] 26 | browserify_omega_webext_proxy_script: 27 | files: ['src/js/omega_webext_proxy_script.js'] 28 | tasks: ['browserify:omega_webext_proxy_script'] 29 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/index.coffee: -------------------------------------------------------------------------------- 1 | module.exports = require('./src/module') 2 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/omega_target_shim.js: -------------------------------------------------------------------------------- 1 | module.exports = OmegaTarget 2 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/overlay/background.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SwitchyOmega Background 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/overlay/localstorage-polyfill.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | let valuesMap = new Map() 3 | 4 | class LocalStorage { 5 | getItem (key) { 6 | const stringKey = String(key) 7 | if (valuesMap.has(key)) { 8 | return String(valuesMap.get(stringKey)) 9 | } 10 | return null 11 | } 12 | 13 | setItem (key, val) { 14 | valuesMap.set(String(key), String(val)) 15 | } 16 | 17 | removeItem (key) { 18 | valuesMap.delete(key) 19 | } 20 | 21 | clear () { 22 | valuesMap.clear() 23 | } 24 | 25 | key (i) { 26 | if (arguments.length === 0) { 27 | throw new TypeError("Failed to execute 'key' on 'Storage': 1 argument required, but only 0 present.") // this is a TypeError implemented on Chrome, Firefox throws Not enough arguments to Storage.key. 28 | } 29 | var arr = Array.from(valuesMap.keys()) 30 | return arr[i] 31 | } 32 | 33 | get length () { 34 | return valuesMap.size 35 | } 36 | initValuesMap (_valuesMap){ 37 | valuesMap = new Map(Object.entries(_valuesMap || {})) 38 | } 39 | getValuesMap (){ 40 | return Object.fromEntries(valuesMap); 41 | } 42 | } 43 | const instance = new LocalStorage() 44 | 45 | if (!globalThis.localStorage) { 46 | globalThis.localStorage = new Proxy(instance, { 47 | set: function (obj, prop, value) { 48 | if (LocalStorage.prototype.hasOwnProperty(prop)) { 49 | instance[prop] = value 50 | } else { 51 | instance.setItem(prop, value) 52 | } 53 | return true 54 | }, 55 | get: function (target, name) { 56 | if (LocalStorage.prototype.hasOwnProperty(name)) { 57 | return instance[name] 58 | } 59 | if (valuesMap.has(name)) { 60 | return instance.getItem(name) 61 | } 62 | } 63 | }) 64 | } 65 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/overlay/manifest-firefox.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "name": "ZeroOmega--Proxy Switchy manifest v3 version", 4 | "version": "3.2.1", 5 | "description": "__MSG_manifest_app_description__", 6 | "icons": { 7 | "16": "img/icons/omega-action-16.png", 8 | "24": "img/icons/omega-action-24.png", 9 | "32": "img/icons/omega-action-32.png", 10 | "48": "img/icons/omega-48.png", 11 | "64": "img/icons/omega-64.png", 12 | "128": "img/icons/omega-128.png" 13 | }, 14 | "default_locale": "en", 15 | "action": { 16 | "default_icon": { 17 | "16": "img/icons/omega-action-16.png", 18 | "19": "img/icons/omega-action-19.png", 19 | "24": "img/icons/omega-action-24.png", 20 | "32": "img/icons/omega-action-32.png" 21 | }, 22 | "default_title": "__MSG_manifest_icon_default_title__", 23 | "default_popup": "popup/index.html" 24 | }, 25 | "background": { 26 | "scripts": ["x-background.js"], 27 | "type": "module" 28 | }, 29 | "minimum_chrome_version": "111", 30 | "options_ui": { 31 | "page": "options.html", 32 | "browser_style": false, 33 | "open_in_tab": true 34 | }, 35 | "commands": { 36 | "_execute_action": { "suggested_key": { "default": "Alt+Shift+O" } } 37 | }, 38 | "permissions": [ 39 | "proxy", 40 | "tabs", 41 | "alarms", 42 | "storage", 43 | "webRequest", 44 | "webRequestBlocking", 45 | "contextMenus" 46 | ], 47 | "host_permissions": [""], 48 | "browser_specific_settings": { 49 | "gecko": { 50 | "id": "suziwen1@gmail.com", 51 | "strict_min_version": "111.0" 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/overlay/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "name": "ZeroOmega--Proxy Switchy manifest v3 version", 4 | "version": "3.2.1", 5 | "description": "__MSG_manifest_app_description__", 6 | "icons": { 7 | "16": "img/icons/omega-action-16.png", 8 | "24": "img/icons/omega-action-24.png", 9 | "32": "img/icons/omega-action-32.png", 10 | "48": "img/icons/omega-48.png", 11 | "64": "img/icons/omega-64.png", 12 | "128": "img/icons/omega-128.png" 13 | }, 14 | "default_locale": "en", 15 | "action": { 16 | "default_icon": { 17 | "16": "img/icons/omega-action-16.png", 18 | "19": "img/icons/omega-action-19.png", 19 | "24": "img/icons/omega-action-24.png", 20 | "32": "img/icons/omega-action-32.png" 21 | }, 22 | "default_title": "__MSG_manifest_icon_default_title__", 23 | "default_popup": "popup/index.html" 24 | }, 25 | "background": { 26 | "service_worker": "x-background.js", 27 | "type": "module" 28 | }, 29 | "minimum_chrome_version": "111", 30 | "options_page": "options.html", 31 | "options_ui": { 32 | "page": "options.html", 33 | "browser_style": false, 34 | "open_in_tab": true 35 | }, 36 | "commands": { 37 | "_execute_action": { "suggested_key": { "default": "Alt+Shift+O" } } 38 | }, 39 | "permissions": [ 40 | "proxy", 41 | "tabs", 42 | "alarms", 43 | "storage", 44 | "webRequest", 45 | "webRequestAuthProvider", 46 | "contextMenus" 47 | ], 48 | "host_permissions": [""] 49 | } 50 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/overlay/x-background.js: -------------------------------------------------------------------------------- 1 | import "./js/background_preload.js" 2 | import "./idb-keyval.js" 3 | import "./localstorage-polyfill.js" 4 | import "./csso.js" 5 | import "./js/log_error.js" 6 | //import "./lib/FileSaver/FileSaver.min.js" 7 | import "./js/omega_debug.js" 8 | import "./js/omega_pac.min.js" 9 | import "./js/omega_target.min.js" 10 | import "./js/omega_target_chromium_extension.min.js" 11 | import "./img/icons/draw_omega.js" 12 | import "./js/background.js" 13 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "omega-target-chromium-extension", 3 | "version": "0.0.1", 4 | "private": true, 5 | "main": "./index", 6 | "devDependencies": { 7 | "chai": "~1.9.1", 8 | "coffee-script": "^1.7.1", 9 | "coffeeify": "^0.7.0", 10 | "coffeelint": "^1.16.0", 11 | "grunt": "^0.4.5", 12 | "grunt-browserify": "^3.0.0", 13 | "grunt-coffeelint": "^0.0.13", 14 | "grunt-contrib-coffee": "^0.11.1", 15 | "grunt-contrib-compress": "^0.12.0", 16 | "grunt-contrib-copy": "^0.5.0", 17 | "grunt-contrib-watch": "^0.6.1", 18 | "grunt-mocha-test": "~0.11.0", 19 | "load-grunt-config": "^0.13.1", 20 | "minifyify": "^4.1.1", 21 | "po2json": "^0.3.2" 22 | }, 23 | "dependencies": { 24 | "heap": "^0.2.6", 25 | "omega-target": "../omega-target", 26 | "omega-web": "../omega-web", 27 | "omega-pac": "../omega-pac", 28 | "xhr": "^1.16.0" 29 | }, 30 | "browser": { 31 | "omega-target": "./omega_target_shim.js" 32 | }, 33 | "scripts": { 34 | "dev": "npm link omega-target && npm link omega-web && npm link omega-pac" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/src/coffee/background_preload.coffee: -------------------------------------------------------------------------------- 1 | if not globalThis.window 2 | globalThis.window = globalThis 3 | globalThis.global = globalThis 4 | window.UglifyJS_NoUnsafeEval = true 5 | 6 | createContextMenu = -> 7 | chrome.contextMenus.create({ 8 | id: 'enableQuickSwitch' 9 | title: chrome.i18n.getMessage('contextMenu_enableQuickSwitch') 10 | type: 'checkbox' 11 | checked: false 12 | contexts: ["action"] 13 | }) 14 | 15 | chrome.runtime.onInstalled.addListener( -> 16 | # We don't need this API. However its presence indicates that Chrome >= 35 17 | # which provides info.checked we need in contextMenu callback. 18 | # https://developer.chrome.com/extensions/contextMenus 19 | if chrome.i18n.getUILanguage? 20 | createContextMenu() 21 | ) 22 | 23 | if browser?.proxy?.onRequest? 24 | #firefox bug fix? 25 | createContextMenu() 26 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/src/coffee/omega_debug.coffee: -------------------------------------------------------------------------------- 1 | window.OmegaDebug = 2 | getProjectVersion: -> 3 | chrome.runtime.getManifest().version 4 | getExtensionVersion: -> 5 | chrome.runtime.getManifest().version 6 | downloadLog: -> 7 | blob = new Blob [localStorage['log']], {type: "text/plain;charset=utf-8"} 8 | filename = "OmegaLog_#{Date.now()}.txt" 9 | saveAs(blob, filename) 10 | resetOptions: -> 11 | localStorage.clear() 12 | # Prevent options loading from sync storage after reload. 13 | localStorage['omega.local.syncOptions'] = '"conflict"' 14 | chrome.storage.local.clear() 15 | chrome.runtime.reload() 16 | reportIssue: -> 17 | url = 'https://github.com/FelisCatus/SwitchyOmega/issues/new?title=&body=' 18 | finalUrl = url 19 | try 20 | projectVersion = OmegaDebug.getProjectVersion() 21 | extensionVersion = OmegaDebug.getExtensionVersion() 22 | env = 23 | extensionVersion: extensionVersion 24 | projectVersion: extensionVersion 25 | userAgent: navigator.userAgent 26 | body = chrome.i18n.getMessage('popup_issueTemplate', [ 27 | env.projectVersion, env.userAgent 28 | ]) 29 | body ||= """ 30 | \n\n 31 | 32 | SwitchyOmega #{env.projectVersion} 33 | #{env.userAgent} 34 | """ 35 | finalUrl = url + encodeURIComponent(body) 36 | err = localStorage['logLastError'] 37 | if err 38 | body += "\n```\n#{err}\n```" 39 | finalUrl = (url + encodeURIComponent(body)).substr(0, 2000) 40 | 41 | chrome.tabs.create(url: finalUrl) 42 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/src/module/chrome_api.coffee: -------------------------------------------------------------------------------- 1 | OmegaTarget = require('omega-target') 2 | Promise = OmegaTarget.Promise 3 | 4 | exports.chromeApiPromisify = (target, method) -> 5 | return (args...) -> 6 | new Promise (resolve, reject) -> 7 | callback = (callbackArgs...) -> 8 | if chrome.runtime.lastError? 9 | error = new Error(chrome.runtime.lastError.message) 10 | error.original = chrome.runtime.lastError 11 | return reject(error) 12 | if callbackArgs.length <= 1 13 | resolve(callbackArgs[0]) 14 | else 15 | resolve(callbackArgs) 16 | 17 | args.push(callback) 18 | target[method].apply(target, args) 19 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/src/module/index.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | Storage: require('./storage') 3 | Options: require('./options') 4 | ChromeTabs: require('./tabs') 5 | SwitchySharp: require('./switchysharp') 6 | ExternalApi: require('./external_api') 7 | WebRequestMonitor: require('./web_request_monitor') 8 | Inspect: require('./inspect') 9 | Url: require('url') 10 | proxy: require('./proxy') 11 | 12 | for name, value of require('omega-target') 13 | module.exports[name] ?= value 14 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/src/module/proxy/index.coffee: -------------------------------------------------------------------------------- 1 | ListenerProxyImpl = require('./proxy_impl_listener') 2 | SettingsProxyImpl = require('./proxy_impl_settings') 3 | ScriptProxyImpl = require('./proxy_impl_script') 4 | 5 | exports.proxyImpls = [ListenerProxyImpl, ScriptProxyImpl, SettingsProxyImpl] 6 | exports.getProxyImpl = (log) -> 7 | for Impl in exports.proxyImpls 8 | if Impl.isSupported() 9 | return new Impl(log) 10 | throw new Error('Your browser does not support proxy settings!') 11 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/src/module/proxy/proxy_impl.coffee: -------------------------------------------------------------------------------- 1 | OmegaTarget = require('omega-target') 2 | Promise = OmegaTarget.Promise 3 | ProxyAuth = require('./proxy_auth') 4 | 5 | class ProxyImpl 6 | constructor: (log) -> 7 | @log = log 8 | @isSupported: -> false 9 | applyProfile: (profile, meta) -> Promise.reject() 10 | watchProxyChange: (callback) -> null 11 | parseExternalProfile: (details, options) -> null 12 | _profileNotFound: (name) -> 13 | @log.error("Profile #{name} not found! Things may go very, very wrong.") 14 | return OmegaPac.Profiles.create({ 15 | name: name 16 | profileType: 'VirtualProfile' 17 | defaultProfileName: 'direct' 18 | }) 19 | setProxyAuth: (profile, options) -> 20 | return Promise.try(=> 21 | @_proxyAuth ?= new ProxyAuth(@log) 22 | @_proxyAuth.listen() 23 | referenced_profiles = [] 24 | ref_set = OmegaPac.Profiles.allReferenceSet(profile, 25 | options, profileNotFound: @_profileNotFound.bind(this)) 26 | for own _, name of ref_set 27 | profile = OmegaPac.Profiles.byName(name, options) 28 | if profile 29 | referenced_profiles.push(profile) 30 | @_proxyAuth.setProxies(referenced_profiles) 31 | ) 32 | getProfilePacScript: (profile, meta, options) -> 33 | meta ?= profile 34 | ast = OmegaPac.PacGenerator.script(options, profile, 35 | profileNotFound: @_profileNotFound.bind(this)) 36 | ast = OmegaPac.PacGenerator.compress(ast) 37 | script = OmegaPac.PacGenerator.ascii(ast.print_to_string()) 38 | profileName = OmegaPac.PacGenerator.ascii(JSON.stringify(meta.name)) 39 | profileName = profileName.replace(/\*/g, '\\u002a') 40 | profileName = profileName.replace(/\\/g, '\\u002f') 41 | prefix = "/*OmegaProfile*#{profileName}*#{meta.revision}*/" 42 | return prefix + script 43 | 44 | module.exports = ProxyImpl 45 | -------------------------------------------------------------------------------- /omega-target-chromium-extension/src/module/switchysharp.coffee: -------------------------------------------------------------------------------- 1 | OmegaTarget = require('omega-target') 2 | OmegaPac = OmegaTarget.OmegaPac 3 | Promise = OmegaTarget.Promise 4 | ChromePort = require('./chrome_port') 5 | 6 | module.exports = class SwitchySharp 7 | @extId: 'dpplabbmogkhghncfbfdeeokoefdjegm' 8 | port: null 9 | 10 | monitor: (action) -> 11 | return if location.href.substr(0, 4) == 'moz-' 12 | if not port? and not @_monitorTimerId? 13 | @_monitorTimerId = setInterval @_connect.bind(this), 5000 14 | if action != 'reconnect' 15 | @_connect() 16 | 17 | getOptions: -> 18 | if not @_getOptions 19 | @_getOptions = new Promise (resolve) => 20 | @_getOptionsResolver = resolve 21 | @monitor() 22 | @_getOptions 23 | 24 | _getOptions: null 25 | _getOptionsResolver: null 26 | _monitorTimerId: null 27 | 28 | _onMessage: (msg) -> 29 | if @_monitorTimerId 30 | clearInterval @_monitorTimerId 31 | @_monitorTimerId = null 32 | switch msg?.action 33 | when 'state' 34 | # State changed. 35 | OmegaTarget.Log.log(msg) 36 | if @_getOptionsResolver 37 | @port.postMessage({action: 'getOptions'}) 38 | when 'options' 39 | @_getOptionsResolver?(msg.options) 40 | @_getOptionsResolver = null 41 | 42 | _onDisconnect: (msg) -> 43 | @port = null 44 | @_getOptions = null 45 | @_getOptionsResolver = null 46 | @monitor('reconnect') 47 | 48 | _connect: -> 49 | if not @port 50 | @port = new ChromePort(chrome.runtime.connect(SwitchySharp.extId)) 51 | @port.onDisconnect.addListener(@_onDisconnect.bind(this)) 52 | @port?.onMessage.addListener(@_onMessage.bind(this)) 53 | try 54 | @port.postMessage({action: 'disable'}) 55 | catch _ 56 | @port = null 57 | return @port? 58 | -------------------------------------------------------------------------------- /omega-target/.gitignore: -------------------------------------------------------------------------------- 1 | /index.js 2 | /omega_target.min.js 3 | -------------------------------------------------------------------------------- /omega-target/Gruntfile.coffee: -------------------------------------------------------------------------------- 1 | module.exports = require('load-grunt-config') 2 | -------------------------------------------------------------------------------- /omega-target/grunt/aliases.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | default: [ 3 | 'coffeelint' 4 | 'browserify' 5 | ] 6 | test: ['mochaTest'] 7 | -------------------------------------------------------------------------------- /omega-target/grunt/browserify.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | index: 3 | files: 4 | 'index.js': 'index.coffee' 5 | options: 6 | transform: ['coffeeify'] 7 | exclude: ['bluebird', 'jsondiffpatch', 'omega-pac'] 8 | browserifyOptions: 9 | extensions: '.coffee' 10 | builtins: [] 11 | standalone: 'index.coffee' 12 | debug: true 13 | browser: 14 | files: 15 | 'omega_target.min.js': 'index.coffee' 16 | options: 17 | alias: [ 18 | './index.coffee:OmegaTarget' 19 | ] 20 | transform: ['coffeeify'] 21 | plugin: 22 | if process.env.BUILD == 'release' 23 | [['minifyify', {map: false}]] 24 | else 25 | [] 26 | browserifyOptions: 27 | extensions: '.coffee' 28 | standalone: 'OmegaTarget' 29 | -------------------------------------------------------------------------------- /omega-target/grunt/coffeelint.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | options: 3 | arrow_spacing: level: 'error' 4 | colon_assignment_spacing: 5 | level: 'error' 6 | spacing: 7 | left: 0 8 | right: 1 9 | missing_fat_arrows: level: 'warn' 10 | no_empty_functions: level: 'error' 11 | no_empty_param_list: level: 'error' 12 | no_interpolation_in_single_quotes: level: 'error' 13 | no_stand_alone_at: level: 'error' 14 | space_operators: level: 'error' 15 | # https://github.com/clutchski/coffeelint/issues/525 16 | indentation: level: 'ignore' 17 | 18 | gruntfile: ['Gruntfile.coffee'] 19 | tasks: ['grunt/**/*.coffee'] 20 | src: ['src/**/*.coffee', 'test/**/*.coffee'] 21 | -------------------------------------------------------------------------------- /omega-target/grunt/mochaTest.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | test: 3 | options: 4 | reporter: 'spec' 5 | require: 'coffee-script/register' 6 | src: ['test/**/*.coffee'] 7 | -------------------------------------------------------------------------------- /omega-target/grunt/watch.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | grunt: 3 | options: 4 | reload: true 5 | files: 6 | 'grunt/*' 7 | tasks: ['coffeelint:tasks', 'default'] 8 | src: 9 | files: ['src/**/*.coffee', 'test/**/*.coffee'] 10 | tasks: ['default'] 11 | -------------------------------------------------------------------------------- /omega-target/index.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | Log: require('./src/log') 3 | Storage: require('./src/storage') 4 | BrowserStorage: require('./src/browser_storage') 5 | Options: require('./src/options') 6 | OptionsSync: require('./src/options_sync') 7 | OmegaPac: require('omega-pac') 8 | 9 | for name, value of require('./src/utils.coffee') 10 | module.exports[name] = value 11 | 12 | for name, value of require('./src/errors.coffee') 13 | module.exports[name] = value 14 | -------------------------------------------------------------------------------- /omega-target/omega_pac_shim.js: -------------------------------------------------------------------------------- 1 | module.exports = OmegaPac; 2 | -------------------------------------------------------------------------------- /omega-target/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "omega-target", 3 | "version": "0.0.1", 4 | "private": true, 5 | "main": "./index.js", 6 | "devDependencies": { 7 | "chai": "^1.10.0", 8 | "coffee-script": "^1.8.0", 9 | "coffeeify": "^0.7.0", 10 | "coffeelint": "^1.16.0", 11 | "grunt": "^0.4.5", 12 | "grunt-browserify": "^3.0.0", 13 | "grunt-coffeelint": "^0.0.13", 14 | "grunt-contrib-coffee": "^0.11.1", 15 | "grunt-contrib-watch": "^0.6.1", 16 | "grunt-mocha-test": "~0.11.0", 17 | "load-grunt-config": "^0.13.1", 18 | "minifyify": "^4.1.1", 19 | "sinon": "^1.12.2", 20 | "sinon-chai": "^2.6.0" 21 | }, 22 | "dependencies": { 23 | "bluebird": "^2.3.2", 24 | "jsondiffpatch": "^0.1.8", 25 | "limiter": "^1.0.5", 26 | "omega-pac": "../omega-pac" 27 | }, 28 | "browser": { 29 | "omega-pac": "./omega_pac_shim.js" 30 | }, 31 | "scripts": { 32 | "dev": "npm link omega-pac && npm link", 33 | "test": "grunt test" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /omega-target/src/default_options.coffee: -------------------------------------------------------------------------------- 1 | module.exports = -> 2 | schemaVersion: 2 3 | "-enableQuickSwitch": false 4 | "-refreshOnProfileChange": true 5 | "-startupProfileName": "" 6 | "-quickSwitchProfiles": [] 7 | "-revertProxyChanges": true 8 | "-confirmDeletion": true 9 | "-showInspectMenu": true 10 | "-addConditionsToBottom": false 11 | "-showExternalProfile": true 12 | "-downloadInterval": 1440 13 | "+proxy": 14 | bypassList: [ 15 | { 16 | pattern: "127.0.0.1" 17 | conditionType: "BypassCondition" 18 | } 19 | { 20 | pattern: "::1" 21 | conditionType: "BypassCondition" 22 | } 23 | { 24 | pattern: "localhost" 25 | conditionType: "BypassCondition" 26 | } 27 | ] 28 | profileType: "FixedProfile" 29 | name: "proxy" 30 | color: "#99ccee" 31 | fallbackProxy: 32 | port: 8080 33 | scheme: "http" 34 | host: "proxy.example.com" 35 | 36 | "+auto switch": 37 | profileType: "SwitchProfile" 38 | rules: [ 39 | { 40 | condition: 41 | pattern: "internal.example.com" 42 | conditionType: "HostWildcardCondition" 43 | 44 | profileName: "direct" 45 | } 46 | { 47 | condition: 48 | pattern: "*.example.com" 49 | conditionType: "HostWildcardCondition" 50 | 51 | profileName: "proxy" 52 | } 53 | ] 54 | name: "auto switch" 55 | color: "#99dd99" 56 | defaultProfileName: "direct" 57 | -------------------------------------------------------------------------------- /omega-target/src/errors.coffee: -------------------------------------------------------------------------------- 1 | class NetworkError extends Error 2 | constructor: (err) -> 3 | super 4 | this.cause = err 5 | this.name = 'NetworkError' 6 | 7 | class HttpError extends NetworkError 8 | constructor: -> 9 | super 10 | this.statusCode = this.cause?.statusCode 11 | this.name = 'HttpError' 12 | 13 | class HttpNotFoundError extends HttpError 14 | constructor: -> 15 | super 16 | this.name = 'HttpNotFoundError' 17 | 18 | class HttpServerError extends HttpError 19 | constructor: -> 20 | super 21 | this.name = 'HttpServerError' 22 | 23 | class ContentTypeRejectedError extends Error 24 | constructor: -> 25 | super 26 | this.name = 'ContentTypeRejectedError' 27 | 28 | module.exports = 29 | NetworkError: NetworkError 30 | HttpError: HttpError 31 | HttpNotFoundError: HttpNotFoundError 32 | HttpServerError: HttpServerError 33 | ContentTypeRejectedError: ContentTypeRejectedError 34 | -------------------------------------------------------------------------------- /omega-target/src/log.coffee: -------------------------------------------------------------------------------- 1 | ### @module omega-target/log ### 2 | Log = require './log' 3 | 4 | replacer = (key, value) -> 5 | switch key 6 | # Hide values for a few keys with privacy concerns. 7 | when "username", "password", "host", "port" 8 | return "" 9 | else 10 | value 11 | 12 | # Log is used as singleton. 13 | # coffeelint: disable=missing_fat_arrows 14 | module.exports = Log = 15 | ###* 16 | # Pretty-print an object and return the result string. 17 | # @param {{}} obj The object to format 18 | # @returns {String} the formatted object in string 19 | ### 20 | str: (obj) -> 21 | # TODO(catus): This can be improved to print things more friendly. 22 | if typeof obj == 'object' and obj != null 23 | if obj.debugStr? 24 | if typeof obj.debugStr == 'function' 25 | obj.debugStr() 26 | else 27 | obj.debugStr 28 | else if obj instanceof Error 29 | obj.stack || obj.message 30 | else 31 | JSON.stringify(obj, replacer, 4) 32 | else if typeof obj == 'function' 33 | if obj.name 34 | "" 35 | else 36 | obj.toString() 37 | else 38 | '' + obj 39 | 40 | ###* 41 | # Print something to the log. 42 | # @param {...{}} args The objects to log 43 | ### 44 | log: console.log.bind(console) 45 | 46 | ###* 47 | # Print something to the error log. 48 | # @param {...{}} args The objects to log 49 | ### 50 | error: console.error.bind(console) 51 | 52 | ###* 53 | # Log a function call with target and arguments 54 | # @param {string} name The name of the method 55 | # @param {Array} args The arguments to the method call 56 | ### 57 | func: (name, args) -> 58 | this.log(name, '(', [].slice.call(args), ')') 59 | 60 | ###* 61 | # Log a method call with target and arguments 62 | # @param {string} name The name of the method 63 | # @param {{}} self The target of the method call 64 | # @param {Array} args The arguments to the method call 65 | ### 66 | method: (name, self, args) -> 67 | this.log(this.str(self), '<<', name, [].slice.call(args)) 68 | 69 | # coffeelint: enable=missing_fat_arrows 70 | -------------------------------------------------------------------------------- /omega-target/src/utils.coffee: -------------------------------------------------------------------------------- 1 | exports.Promise = require('bluebird') 2 | -------------------------------------------------------------------------------- /omega-web/.gitattributes: -------------------------------------------------------------------------------- 1 | lib/* linguist-vendored 2 | -------------------------------------------------------------------------------- /omega-web/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /tmp 3 | -------------------------------------------------------------------------------- /omega-web/Gruntfile.coffee: -------------------------------------------------------------------------------- 1 | module.exports = require('load-grunt-config') 2 | -------------------------------------------------------------------------------- /omega-web/grunt/aliases.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | default: [ 3 | 'copy' 4 | 'jade' 5 | 'less' 6 | 'autoprefixer' 7 | 'coffeelint' 8 | 'coffee' 9 | 'bower' 10 | ] 11 | test: ['mochaTest'] 12 | -------------------------------------------------------------------------------- /omega-web/grunt/autoprefixer.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | options: 3 | map: false 4 | unprefixed: 5 | expand: true 6 | cwd: 'tmp/css' 7 | src: '**/*.css' 8 | dest: 'build/css/' 9 | -------------------------------------------------------------------------------- /omega-web/grunt/bower.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | install: 3 | options: 4 | copy: true 5 | targetDir: 'build/lib/' 6 | layout: 'byComponent' 7 | -------------------------------------------------------------------------------- /omega-web/grunt/coffee.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | web: 3 | expand: true 4 | cwd: 'src/coffee' 5 | src: ['**/*.coffee'] 6 | dest: 'build/js/' 7 | ext: '.js' 8 | web_omega: 9 | files: 10 | 'build/js/omega.js': 'src/omega/**/*.coffee' 11 | -------------------------------------------------------------------------------- /omega-web/grunt/coffeelint.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | options: 3 | arrow_spacing: level: 'error' 4 | colon_assignment_spacing: 5 | level: 'error' 6 | spacing: 7 | left: 0 8 | right: 1 9 | missing_fat_arrows: level: 'warn' 10 | no_empty_functions: level: 'error' 11 | no_empty_param_list: level: 'error' 12 | no_interpolation_in_single_quotes: level: 'error' 13 | no_stand_alone_at: level: 'error' 14 | space_operators: level: 'error' 15 | # https://github.com/clutchski/coffeelint/issues/525 16 | indentation: level: 'ignore' 17 | 18 | gruntfile: ['Gruntfile.coffee'] 19 | tasks: ['grunt/**/*.coffee'] 20 | src: ['src/**/*.coffee'] 21 | -------------------------------------------------------------------------------- /omega-web/grunt/copy.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | pac: 3 | files: 4 | 'build/js/omega_pac.min.js': 'node_modules/omega-pac/omega_pac.min.js' 5 | lib: 6 | expand: true 7 | cwd: 'lib' 8 | src: ['**/*'] 9 | dest: 'build/lib/' 10 | img: 11 | expand: true 12 | cwd: 'img' 13 | src: ['**/*'] 14 | dest: 'build/img/' 15 | popup: 16 | expand: true 17 | cwd: 'src/popup' 18 | src: ['**/*'] 19 | dest: 'build/popup/' 20 | -------------------------------------------------------------------------------- /omega-web/grunt/jade.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | options: 3 | pretty: true 4 | web: 5 | files: [ 6 | { 7 | expand: true 8 | dest: 'build/' 9 | cwd: 'src/' 10 | ext: '.html' 11 | src: '*.jade' 12 | } 13 | { 14 | expand: true 15 | dest: 'build/partials/' 16 | cwd: 'src/partials' 17 | ext: '.html' 18 | src: ['*.jade'] 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /omega-web/grunt/less.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | web_options: 3 | files: 4 | 'tmp/css/options.css': 'src/less/options.less' 5 | web_popup: 6 | files: 7 | 'tmp/css/popup.css': 'src/less/popup.less' 8 | -------------------------------------------------------------------------------- /omega-web/grunt/mochaTest.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | test: 3 | options: 4 | reporter: 'spec' 5 | require: 'coffee-script/register' 6 | src: ['test/**/*.coffee'] 7 | -------------------------------------------------------------------------------- /omega-web/grunt/ngAnnotate.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | options: 3 | singleQuotes: true 4 | app: 5 | files: 6 | 'build/js/omega.ngmin.js': 'build/js/omega.js' 7 | -------------------------------------------------------------------------------- /omega-web/grunt/watch.coffee: -------------------------------------------------------------------------------- 1 | module.exports = 2 | grunt: 3 | options: 4 | reload: true 5 | files: 6 | 'grunt/*' 7 | tasks: ['coffeelint:tasks', 'default'] 8 | copy_pac: 9 | files: 10 | 'node_modules/omega-pac/omega_pac.min.js' 11 | tasks: 'copy:pac' 12 | copy_lib: 13 | files: 14 | 'lib/**/*' 15 | tasks: 'copy:lib' 16 | copy_img: 17 | files: 18 | 'img/**/*' 19 | tasks: 'copy:img' 20 | copy_popup: 21 | files: 22 | 'src/popup/**/*' 23 | tasks: 'copy:popup' 24 | jade: 25 | files: ['src/**/*.jade'] 26 | tasks: 'jade' 27 | less: 28 | files: 29 | 'src/less/**/*.less' 30 | tasks: ['less', 'autoprefixer'] 31 | coffeelint: 32 | files: 'src/**/*.coffee' 33 | tasks: ['coffeelint'] 34 | coffee: 35 | files: [ 36 | 'src/coffee/**/*.coffee' 37 | 'src/omega/**/*.coffee' 38 | ] 39 | tasks: ['coffee'] 40 | -------------------------------------------------------------------------------- /omega-web/img/icons/draw_omega.js: -------------------------------------------------------------------------------- 1 | globalThis.drawOmega = function (ctx, outerCircleColor, innerCircleColor) { 2 | ctx.globalCompositeOperation = "source-over"; 3 | ctx.fillStyle = outerCircleColor; 4 | ctx.beginPath(); 5 | ctx.arc(0.5, 0.5, 0.5, 0, Math.PI * 2, true); 6 | ctx.closePath(); 7 | ctx.fill(); 8 | 9 | if (innerCircleColor != null) { 10 | ctx.fillStyle = innerCircleColor; 11 | } else { 12 | ctx.globalCompositeOperation = "destination-out"; 13 | } 14 | 15 | ctx.beginPath(); 16 | ctx.arc(0.5, 0.5, 0.25, 0, Math.PI * 2, true); 17 | ctx.closePath(); 18 | ctx.fill(); 19 | }; 20 | -------------------------------------------------------------------------------- /omega-web/img/icons/omega-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sn-o-w/ZeroOmega/cdaa39403d5884544dac39be91d1d03e66981d3c/omega-web/img/icons/omega-128.png -------------------------------------------------------------------------------- /omega-web/img/icons/omega-128.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /omega-web/img/icons/omega-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sn-o-w/ZeroOmega/cdaa39403d5884544dac39be91d1d03e66981d3c/omega-web/img/icons/omega-48.png -------------------------------------------------------------------------------- /omega-web/img/icons/omega-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sn-o-w/ZeroOmega/cdaa39403d5884544dac39be91d1d03e66981d3c/omega-web/img/icons/omega-64.png -------------------------------------------------------------------------------- /omega-web/img/icons/omega-action-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sn-o-w/ZeroOmega/cdaa39403d5884544dac39be91d1d03e66981d3c/omega-web/img/icons/omega-action-16.png -------------------------------------------------------------------------------- /omega-web/img/icons/omega-action-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sn-o-w/ZeroOmega/cdaa39403d5884544dac39be91d1d03e66981d3c/omega-web/img/icons/omega-action-19.png -------------------------------------------------------------------------------- /omega-web/img/icons/omega-action-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sn-o-w/ZeroOmega/cdaa39403d5884544dac39be91d1d03e66981d3c/omega-web/img/icons/omega-action-24.png -------------------------------------------------------------------------------- /omega-web/img/icons/omega-action-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sn-o-w/ZeroOmega/cdaa39403d5884544dac39be91d1d03e66981d3c/omega-web/img/icons/omega-action-32.png -------------------------------------------------------------------------------- /omega-web/img/icons/omega-action.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /omega-web/lib/themes/default-auto.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --base00: #F8F4ED; 3 | --base01: #E7E3DB; 4 | --base02: #C7D2D4; 5 | --base03: #A4ACA7; 6 | --base04: #3a403b; 7 | --base05: #2B312C; 8 | --base06: #141714; 9 | --base07: #090a09; 10 | --base08: #EE3F4D; 11 | --base09: #12AA9C; 12 | --base0A: #619AC3; 13 | --base0B: #41AE3C; 14 | --base0C: #983680; 15 | --base0D: #B78D12; 16 | --base0E: #FC7930; 17 | --base0F: #CC5595; 18 | } 19 | @media (prefers-color-scheme: dark) { 20 | :root { 21 | --base00: #2B312C; 22 | --base01: #1A2413; 23 | --base02: #474B4C; 24 | --base03: #617172; 25 | --base04: #efebe5; 26 | --base05: #E4DFD7; 27 | --base06: #f3f1ed; 28 | --base07: #f9f7f5; 29 | --base08: #EE3F4D; 30 | --base09: #619AC3; 31 | --base0A: #EEA6B7; 32 | --base0B: #96C2E4; 33 | --base0C: #C8ADC4; 34 | --base0D: #D276A3; 35 | --base0E: #FC7930; 36 | --base0F: #57C3C2; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /omega-web/lib/themes/default-dark.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --base00: #2B312C; 3 | --base01: #1A2413; 4 | --base02: #474B4C; 5 | --base03: #617172; 6 | --base04: #efebe5; 7 | --base05: #E4DFD7; 8 | --base06: #f3f1ed; 9 | --base07: #f9f7f5; 10 | --base08: #EE3F4D; 11 | --base09: #619AC3; 12 | --base0A: #EEA6B7; 13 | --base0B: #96C2E4; 14 | --base0C: #C8ADC4; 15 | --base0D: #D276A3; 16 | --base0E: #FC7930; 17 | --base0F: #57C3C2; 18 | } 19 | -------------------------------------------------------------------------------- /omega-web/lib/themes/default-light.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --base00: #F8F4ED; 3 | --base01: #E7E3DB; 4 | --base02: #C7D2D4; 5 | --base03: #A4ACA7; 6 | --base04: #3a403b; 7 | --base05: #2B312C; 8 | --base06: #141714; 9 | --base07: #090a09; 10 | --base08: #EE3F4D; 11 | --base09: #12AA9C; 12 | --base0A: #619AC3; 13 | --base0B: #41AE3C; 14 | --base0C: #983680; 15 | --base0D: #B78D12; 16 | --base0E: #FC7930; 17 | --base0F: #CC5595; 18 | } 19 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-3024.css: -------------------------------------------------------------------------------- 1 | /* 3024 by Jan T. Sott (http://github.com/idleberg) */ 2 | 3 | :root { 4 | --base00: #090300; 5 | --base01: #3a3432; 6 | --base02: #4a4543; 7 | --base03: #5c5855; 8 | --base04: #807d7c; 9 | --base05: #a5a2a2; 10 | --base06: #d6d5d4; 11 | --base07: #f7f7f7; 12 | --base08: #db2d20; 13 | --base09: #e8bbd0; 14 | --base0A: #fded02; 15 | --base0B: #01a252; 16 | --base0C: #b5e4f4; 17 | --base0D: #01a0e4; 18 | --base0E: #a16a94; 19 | --base0F: #cdab53; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-apathy.css: -------------------------------------------------------------------------------- 1 | /* Apathy by Jannik Siebert (https://github.com/janniks) */ 2 | 3 | :root { 4 | --base00: #031A16; 5 | --base01: #0B342D; 6 | --base02: #184E45; 7 | --base03: #2B685E; 8 | --base04: #5F9C92; 9 | --base05: #81B5AC; 10 | --base06: #A7CEC8; 11 | --base07: #D2E7E4; 12 | --base08: #3E9688; 13 | --base09: #3E7996; 14 | --base0A: #3E4C96; 15 | --base0B: #883E96; 16 | --base0C: #963E4C; 17 | --base0D: #96883E; 18 | --base0E: #4C963E; 19 | --base0F: #3E965B; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-apprentice.css: -------------------------------------------------------------------------------- 1 | /* Apprentice by romainl */ 2 | 3 | :root { 4 | --base00: #262626; 5 | --base01: #303030; 6 | --base02: #333333; 7 | --base03: #6C6C6C; 8 | --base04: #787878; 9 | --base05: #BCBCBC; 10 | --base06: #C9C9C9; 11 | --base07: #FFFFFF; 12 | --base08: #5F8787; 13 | --base09: #FF8700; 14 | --base0A: #5F8787; 15 | --base0B: #87AF87; 16 | --base0C: #5F875F; 17 | --base0D: #FFFFAF; 18 | --base0E: #87AFD7; 19 | --base0F: #5F87AF; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-cave-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Cave Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #efecf4; 5 | --base01: #e2dfe7; 6 | --base02: #8b8792; 7 | --base03: #7e7887; 8 | --base04: #655f6d; 9 | --base05: #585260; 10 | --base06: #26232a; 11 | --base07: #19171c; 12 | --base08: #be4678; 13 | --base09: #aa573c; 14 | --base0A: #a06e3b; 15 | --base0B: #2a9292; 16 | --base0C: #398bc6; 17 | --base0D: #576ddb; 18 | --base0E: #955ae7; 19 | --base0F: #bf40bf; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-cave.css: -------------------------------------------------------------------------------- 1 | /* Atelier Cave by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #19171c; 5 | --base01: #26232a; 6 | --base02: #585260; 7 | --base03: #655f6d; 8 | --base04: #7e7887; 9 | --base05: #8b8792; 10 | --base06: #e2dfe7; 11 | --base07: #efecf4; 12 | --base08: #be4678; 13 | --base09: #aa573c; 14 | --base0A: #a06e3b; 15 | --base0B: #2a9292; 16 | --base0C: #398bc6; 17 | --base0D: #576ddb; 18 | --base0E: #955ae7; 19 | --base0F: #bf40bf; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-dune-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Dune Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #fefbec; 5 | --base01: #e8e4cf; 6 | --base02: #a6a28c; 7 | --base03: #999580; 8 | --base04: #7d7a68; 9 | --base05: #6e6b5e; 10 | --base06: #292824; 11 | --base07: #20201d; 12 | --base08: #d73737; 13 | --base09: #b65611; 14 | --base0A: #ae9513; 15 | --base0B: #60ac39; 16 | --base0C: #1fad83; 17 | --base0D: #6684e1; 18 | --base0E: #b854d4; 19 | --base0F: #d43552; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-dune.css: -------------------------------------------------------------------------------- 1 | /* Atelier Dune by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #20201d; 5 | --base01: #292824; 6 | --base02: #6e6b5e; 7 | --base03: #7d7a68; 8 | --base04: #999580; 9 | --base05: #a6a28c; 10 | --base06: #e8e4cf; 11 | --base07: #fefbec; 12 | --base08: #d73737; 13 | --base09: #b65611; 14 | --base0A: #ae9513; 15 | --base0B: #60ac39; 16 | --base0C: #1fad83; 17 | --base0D: #6684e1; 18 | --base0E: #b854d4; 19 | --base0F: #d43552; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-estuary-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Estuary Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #f4f3ec; 5 | --base01: #e7e6df; 6 | --base02: #929181; 7 | --base03: #878573; 8 | --base04: #6c6b5a; 9 | --base05: #5f5e4e; 10 | --base06: #302f27; 11 | --base07: #22221b; 12 | --base08: #ba6236; 13 | --base09: #ae7313; 14 | --base0A: #a5980d; 15 | --base0B: #7d9726; 16 | --base0C: #5b9d48; 17 | --base0D: #36a166; 18 | --base0E: #5f9182; 19 | --base0F: #9d6c7c; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-estuary.css: -------------------------------------------------------------------------------- 1 | /* Atelier Estuary by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #22221b; 5 | --base01: #302f27; 6 | --base02: #5f5e4e; 7 | --base03: #6c6b5a; 8 | --base04: #878573; 9 | --base05: #929181; 10 | --base06: #e7e6df; 11 | --base07: #f4f3ec; 12 | --base08: #ba6236; 13 | --base09: #ae7313; 14 | --base0A: #a5980d; 15 | --base0B: #7d9726; 16 | --base0C: #5b9d48; 17 | --base0D: #36a166; 18 | --base0E: #5f9182; 19 | --base0F: #9d6c7c; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-forest-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Forest Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #f1efee; 5 | --base01: #e6e2e0; 6 | --base02: #a8a19f; 7 | --base03: #9c9491; 8 | --base04: #766e6b; 9 | --base05: #68615e; 10 | --base06: #2c2421; 11 | --base07: #1b1918; 12 | --base08: #f22c40; 13 | --base09: #df5320; 14 | --base0A: #c38418; 15 | --base0B: #7b9726; 16 | --base0C: #3d97b8; 17 | --base0D: #407ee7; 18 | --base0E: #6666ea; 19 | --base0F: #c33ff3; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-forest.css: -------------------------------------------------------------------------------- 1 | /* Atelier Forest by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #1b1918; 5 | --base01: #2c2421; 6 | --base02: #68615e; 7 | --base03: #766e6b; 8 | --base04: #9c9491; 9 | --base05: #a8a19f; 10 | --base06: #e6e2e0; 11 | --base07: #f1efee; 12 | --base08: #f22c40; 13 | --base09: #df5320; 14 | --base0A: #c38418; 15 | --base0B: #7b9726; 16 | --base0C: #3d97b8; 17 | --base0D: #407ee7; 18 | --base0E: #6666ea; 19 | --base0F: #c33ff3; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-heath-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Heath Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #f7f3f7; 5 | --base01: #d8cad8; 6 | --base02: #ab9bab; 7 | --base03: #9e8f9e; 8 | --base04: #776977; 9 | --base05: #695d69; 10 | --base06: #292329; 11 | --base07: #1b181b; 12 | --base08: #ca402b; 13 | --base09: #a65926; 14 | --base0A: #bb8a35; 15 | --base0B: #918b3b; 16 | --base0C: #159393; 17 | --base0D: #516aec; 18 | --base0E: #7b59c0; 19 | --base0F: #cc33cc; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-heath.css: -------------------------------------------------------------------------------- 1 | /* Atelier Heath by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #1b181b; 5 | --base01: #292329; 6 | --base02: #695d69; 7 | --base03: #776977; 8 | --base04: #9e8f9e; 9 | --base05: #ab9bab; 10 | --base06: #d8cad8; 11 | --base07: #f7f3f7; 12 | --base08: #ca402b; 13 | --base09: #a65926; 14 | --base0A: #bb8a35; 15 | --base0B: #918b3b; 16 | --base0C: #159393; 17 | --base0D: #516aec; 18 | --base0E: #7b59c0; 19 | --base0F: #cc33cc; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-lakeside-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Lakeside Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #ebf8ff; 5 | --base01: #c1e4f6; 6 | --base02: #7ea2b4; 7 | --base03: #7195a8; 8 | --base04: #5a7b8c; 9 | --base05: #516d7b; 10 | --base06: #1f292e; 11 | --base07: #161b1d; 12 | --base08: #d22d72; 13 | --base09: #935c25; 14 | --base0A: #8a8a0f; 15 | --base0B: #568c3b; 16 | --base0C: #2d8f6f; 17 | --base0D: #257fad; 18 | --base0E: #6b6bb8; 19 | --base0F: #b72dd2; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-lakeside.css: -------------------------------------------------------------------------------- 1 | /* Atelier Lakeside by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #161b1d; 5 | --base01: #1f292e; 6 | --base02: #516d7b; 7 | --base03: #5a7b8c; 8 | --base04: #7195a8; 9 | --base05: #7ea2b4; 10 | --base06: #c1e4f6; 11 | --base07: #ebf8ff; 12 | --base08: #d22d72; 13 | --base09: #935c25; 14 | --base0A: #8a8a0f; 15 | --base0B: #568c3b; 16 | --base0C: #2d8f6f; 17 | --base0D: #257fad; 18 | --base0E: #6b6bb8; 19 | --base0F: #b72dd2; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-plateau-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Plateau Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #f4ecec; 5 | --base01: #e7dfdf; 6 | --base02: #8a8585; 7 | --base03: #7e7777; 8 | --base04: #655d5d; 9 | --base05: #585050; 10 | --base06: #292424; 11 | --base07: #1b1818; 12 | --base08: #ca4949; 13 | --base09: #b45a3c; 14 | --base0A: #a06e3b; 15 | --base0B: #4b8b8b; 16 | --base0C: #5485b6; 17 | --base0D: #7272ca; 18 | --base0E: #8464c4; 19 | --base0F: #bd5187; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-plateau.css: -------------------------------------------------------------------------------- 1 | /* Atelier Plateau by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #1b1818; 5 | --base01: #292424; 6 | --base02: #585050; 7 | --base03: #655d5d; 8 | --base04: #7e7777; 9 | --base05: #8a8585; 10 | --base06: #e7dfdf; 11 | --base07: #f4ecec; 12 | --base08: #ca4949; 13 | --base09: #b45a3c; 14 | --base0A: #a06e3b; 15 | --base0B: #4b8b8b; 16 | --base0C: #5485b6; 17 | --base0D: #7272ca; 18 | --base0E: #8464c4; 19 | --base0F: #bd5187; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-savanna-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Savanna Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #ecf4ee; 5 | --base01: #dfe7e2; 6 | --base02: #87928a; 7 | --base03: #78877d; 8 | --base04: #5f6d64; 9 | --base05: #526057; 10 | --base06: #232a25; 11 | --base07: #171c19; 12 | --base08: #b16139; 13 | --base09: #9f713c; 14 | --base0A: #a07e3b; 15 | --base0B: #489963; 16 | --base0C: #1c9aa0; 17 | --base0D: #478c90; 18 | --base0E: #55859b; 19 | --base0F: #867469; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-savanna.css: -------------------------------------------------------------------------------- 1 | /* Atelier Savanna by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #171c19; 5 | --base01: #232a25; 6 | --base02: #526057; 7 | --base03: #5f6d64; 8 | --base04: #78877d; 9 | --base05: #87928a; 10 | --base06: #dfe7e2; 11 | --base07: #ecf4ee; 12 | --base08: #b16139; 13 | --base09: #9f713c; 14 | --base0A: #a07e3b; 15 | --base0B: #489963; 16 | --base0C: #1c9aa0; 17 | --base0D: #478c90; 18 | --base0E: #55859b; 19 | --base0F: #867469; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-seaside-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Seaside Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #f4fbf4; 5 | --base01: #cfe8cf; 6 | --base02: #8ca68c; 7 | --base03: #809980; 8 | --base04: #687d68; 9 | --base05: #5e6e5e; 10 | --base06: #242924; 11 | --base07: #131513; 12 | --base08: #e6193c; 13 | --base09: #87711d; 14 | --base0A: #98981b; 15 | --base0B: #29a329; 16 | --base0C: #1999b3; 17 | --base0D: #3d62f5; 18 | --base0E: #ad2bee; 19 | --base0F: #e619c3; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-seaside.css: -------------------------------------------------------------------------------- 1 | /* Atelier Seaside by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #131513; 5 | --base01: #242924; 6 | --base02: #5e6e5e; 7 | --base03: #687d68; 8 | --base04: #809980; 9 | --base05: #8ca68c; 10 | --base06: #cfe8cf; 11 | --base07: #f4fbf4; 12 | --base08: #e6193c; 13 | --base09: #87711d; 14 | --base0A: #98981b; 15 | --base0B: #29a329; 16 | --base0C: #1999b3; 17 | --base0D: #3d62f5; 18 | --base0E: #ad2bee; 19 | --base0F: #e619c3; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-sulphurpool-light.css: -------------------------------------------------------------------------------- 1 | /* Atelier Sulphurpool Light by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #f5f7ff; 5 | --base01: #dfe2f1; 6 | --base02: #979db4; 7 | --base03: #898ea4; 8 | --base04: #6b7394; 9 | --base05: #5e6687; 10 | --base06: #293256; 11 | --base07: #202746; 12 | --base08: #c94922; 13 | --base09: #c76b29; 14 | --base0A: #c08b30; 15 | --base0B: #ac9739; 16 | --base0C: #22a2c9; 17 | --base0D: #3d8fd1; 18 | --base0E: #6679cc; 19 | --base0F: #9c637a; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atelier-sulphurpool.css: -------------------------------------------------------------------------------- 1 | /* Atelier Sulphurpool by Bram de Haan (http://atelierbramdehaan.nl) */ 2 | 3 | :root { 4 | --base00: #202746; 5 | --base01: #293256; 6 | --base02: #5e6687; 7 | --base03: #6b7394; 8 | --base04: #898ea4; 9 | --base05: #979db4; 10 | --base06: #dfe2f1; 11 | --base07: #f5f7ff; 12 | --base08: #c94922; 13 | --base09: #c76b29; 14 | --base0A: #c08b30; 15 | --base0B: #ac9739; 16 | --base0C: #22a2c9; 17 | --base0D: #3d8fd1; 18 | --base0E: #6679cc; 19 | --base0F: #9c637a; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-atlas.css: -------------------------------------------------------------------------------- 1 | /* Atlas by Alex Lende (https://ajlende.com) */ 2 | 3 | :root { 4 | --base00: #002635; 5 | --base01: #00384d; 6 | --base02: #517F8D; 7 | --base03: #6C8B91; 8 | --base04: #869696; 9 | --base05: #a1a19a; 10 | --base06: #e6e6dc; 11 | --base07: #fafaf8; 12 | --base08: #ff5a67; 13 | --base09: #f08e48; 14 | --base0A: #ffcc1b; 15 | --base0B: #7fc06e; 16 | --base0C: #14747e; 17 | --base0D: #5dd7b9; 18 | --base0E: #9a70a4; 19 | --base0F: #c43060; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-bespin.css: -------------------------------------------------------------------------------- 1 | /* Bespin by Jan T. Sott */ 2 | 3 | :root { 4 | --base00: #28211c; 5 | --base01: #36312e; 6 | --base02: #5e5d5c; 7 | --base03: #666666; 8 | --base04: #797977; 9 | --base05: #8a8986; 10 | --base06: #9d9b97; 11 | --base07: #baae9e; 12 | --base08: #cf6a4c; 13 | --base09: #cf7d34; 14 | --base0A: #f9ee98; 15 | --base0B: #54be0d; 16 | --base0C: #afc4db; 17 | --base0D: #5ea6ea; 18 | --base0E: #9b859d; 19 | --base0F: #937121; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-brewer.css: -------------------------------------------------------------------------------- 1 | /* Brewer by Timothée Poisot (http://github.com/tpoisot) */ 2 | 3 | :root { 4 | --base00: #0c0d0e; 5 | --base01: #2e2f30; 6 | --base02: #515253; 7 | --base03: #737475; 8 | --base04: #959697; 9 | --base05: #b7b8b9; 10 | --base06: #dadbdc; 11 | --base07: #fcfdfe; 12 | --base08: #e31a1c; 13 | --base09: #e6550d; 14 | --base0A: #dca060; 15 | --base0B: #31a354; 16 | --base0C: #80b1d3; 17 | --base0D: #3182bd; 18 | --base0E: #756bb1; 19 | --base0F: #b15928; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-bright.css: -------------------------------------------------------------------------------- 1 | /* Bright by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #303030; 6 | --base02: #505050; 7 | --base03: #b0b0b0; 8 | --base04: #d0d0d0; 9 | --base05: #e0e0e0; 10 | --base06: #f5f5f5; 11 | --base07: #ffffff; 12 | --base08: #fb0120; 13 | --base09: #fc6d24; 14 | --base0A: #fda331; 15 | --base0B: #a1c659; 16 | --base0C: #76c7b7; 17 | --base0D: #6fb3d2; 18 | --base0E: #d381c3; 19 | --base0F: #be643c; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-brush-trees-dark.css: -------------------------------------------------------------------------------- 1 | /* Brush Trees Dark by Abraham White */ 2 | 3 | :root { 4 | --base00: #485867; 5 | --base01: #5A6D7A; 6 | --base02: #6D828E; 7 | --base03: #8299A1; 8 | --base04: #98AFB5; 9 | --base05: #B0C5C8; 10 | --base06: #C9DBDC; 11 | --base07: #E3EFEF; 12 | --base08: #b38686; 13 | --base09: #d8bba2; 14 | --base0A: #aab386; 15 | --base0B: #87b386; 16 | --base0C: #86b3b3; 17 | --base0D: #868cb3; 18 | --base0E: #b386b2; 19 | --base0F: #b39f9f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-brush-trees.css: -------------------------------------------------------------------------------- 1 | /* Brush Trees by Abraham White */ 2 | 3 | :root { 4 | --base00: #E3EFEF; 5 | --base01: #C9DBDC; 6 | --base02: #B0C5C8; 7 | --base03: #98AFB5; 8 | --base04: #8299A1; 9 | --base05: #6D828E; 10 | --base06: #5A6D7A; 11 | --base07: #485867; 12 | --base08: #b38686; 13 | --base09: #d8bba2; 14 | --base0A: #aab386; 15 | --base0B: #87b386; 16 | --base0C: #86b3b3; 17 | --base0D: #868cb3; 18 | --base0E: #b386b2; 19 | --base0F: #b39f9f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-chalk.css: -------------------------------------------------------------------------------- 1 | /* Chalk by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #151515; 5 | --base01: #202020; 6 | --base02: #303030; 7 | --base03: #505050; 8 | --base04: #b0b0b0; 9 | --base05: #d0d0d0; 10 | --base06: #e0e0e0; 11 | --base07: #f5f5f5; 12 | --base08: #fb9fb1; 13 | --base09: #eda987; 14 | --base0A: #ddb26f; 15 | --base0B: #acc267; 16 | --base0C: #12cfc0; 17 | --base0D: #6fc2ef; 18 | --base0E: #e1a3ee; 19 | --base0F: #deaf8f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-china-danqing-dark.css: -------------------------------------------------------------------------------- 1 | /* DanQing by Wenhan Zhu (Cosmos) (zhuwenhan950913@gmail.com) */ 2 | 3 | :root { 4 | --base00: #2d302f; 5 | --base01: #434846; 6 | --base02: #5a605d; 7 | --base03: #9da8a3; 8 | --base04: #cad8d2; 9 | --base05: #e0f0eF; 10 | --base06: #ecf6f2; 11 | --base07: #fcfefd; 12 | --base08: #F9906F; 13 | --base09: #B38A61; 14 | --base0A: #F0C239; 15 | --base0B: #8AB361; 16 | --base0C: #30DFF3; 17 | --base0D: #B0A4E3; 18 | --base0E: #CCA4E3; 19 | --base0F: #CA6924; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-china-danqing-light.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --base00: #fafafa; 3 | --base01: #f0f0f1; 4 | --base02: #e5e5e6; 5 | --base03: #a0a1a7; 6 | --base04: #696c77; 7 | --base05: #383a42; 8 | --base06: #202227; 9 | --base07: #090a0b; 10 | --base08: #9A394F; 11 | --base09: #8E615F; 12 | --base0A: #5A6940; 13 | --base0B: #306754; 14 | --base0C: #005A8D; 15 | --base0D: #395DB2; 16 | --base0E: #5F549B; 17 | --base0F: #A03C6D; 18 | } 19 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-china-red-screen.css: -------------------------------------------------------------------------------- 1 | 2 | :root { 3 | --base00: #550000; 4 | --base01: #6e0a0a; 5 | /* --base01: #aa0000; */ 6 | /*--base02: #be1e2d; */ 7 | --base02: #aa0000; 8 | /*--base03: #ff2a2a; */ 9 | --base03: #d26c31; 10 | /**--base04: #f3cfa9; */ 11 | --base04: #d26c31; 12 | --base05: #f3cfa9; 13 | --base06: #f7f7e2; 14 | --base07: #fcfcfc; 15 | --base08: #f3cfa9; 16 | --base09: #c86148; 17 | --base0A: #f3cfa9; 18 | --base0B: #d26c31; 19 | --base0C: #efd393; 20 | --base0D: #efd393; 21 | --base0E: #d26c31; 22 | --base0F: #efd393; 23 | } 24 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-china-traditional-light.css: -------------------------------------------------------------------------------- 1 | 2 | :root { 3 | --base00: #F8F4ED; 4 | --base01: #E7E3DB; 5 | --base02: #C7D2D4; 6 | --base03: #A4ACA7; 7 | --base04: #3a403b; 8 | --base05: #2B312C; 9 | --base06: #141714; 10 | --base07: #090a09; 11 | --base08: #EE3F4D; 12 | --base09: #12AA9C; 13 | --base0A: #619AC3; 14 | --base0B: #41AE3C; 15 | --base0C: #983680; 16 | --base0D: #B78D12; 17 | --base0E: #FC7930; 18 | --base0F: #CC5595; 19 | } 20 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-china-traditional-night.css: -------------------------------------------------------------------------------- 1 | 2 | :root { 3 | --base00: #2B312C; 4 | --base01: #1A2413; 5 | --base02: #474B4C; 6 | --base03: #617172; 7 | --base04: #efebe5; 8 | --base05: #E4DFD7; 9 | --base06: #f3f1ed; 10 | --base07: #f9f7f5; 11 | --base08: #EE3F4D; 12 | --base09: #619AC3; 13 | --base0A: #EEA6B7; 14 | --base0B: #96C2E4; 15 | --base0C: #C8ADC4; 16 | --base0D: #D276A3; 17 | --base0E: #FC7930; 18 | --base0F: #57C3C2; 19 | } 20 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-circus.css: -------------------------------------------------------------------------------- 1 | /* Circus by Stephan Boyer (https://github.com/stepchowfun) and Esther Wang (https://github.com/ewang12) */ 2 | 3 | :root { 4 | --base00: #191919; 5 | --base01: #202020; 6 | --base02: #303030; 7 | --base03: #5f5a60; 8 | --base04: #505050; 9 | --base05: #a7a7a7; 10 | --base06: #808080; 11 | --base07: #ffffff; 12 | --base08: #dc657d; 13 | --base09: #4bb1a7; 14 | --base0A: #c3ba63; 15 | --base0B: #84b97c; 16 | --base0C: #4bb1a7; 17 | --base0D: #639ee4; 18 | --base0E: #b888e2; 19 | --base0F: #b888e2; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-classic-dark.css: -------------------------------------------------------------------------------- 1 | /* Classic Dark by Jason Heeris (http://heeris.id.au) */ 2 | 3 | :root { 4 | --base00: #151515; 5 | --base01: #202020; 6 | --base02: #303030; 7 | --base03: #505050; 8 | --base04: #B0B0B0; 9 | --base05: #D0D0D0; 10 | --base06: #E0E0E0; 11 | --base07: #F5F5F5; 12 | --base08: #AC4142; 13 | --base09: #D28445; 14 | --base0A: #F4BF75; 15 | --base0B: #90A959; 16 | --base0C: #75B5AA; 17 | --base0D: #6A9FB5; 18 | --base0E: #AA759F; 19 | --base0F: #8F5536; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-classic-light.css: -------------------------------------------------------------------------------- 1 | /* Classic Light by Jason Heeris (http://heeris.id.au) */ 2 | 3 | :root { 4 | --base00: #F5F5F5; 5 | --base01: #E0E0E0; 6 | --base02: #D0D0D0; 7 | --base03: #B0B0B0; 8 | --base04: #505050; 9 | --base05: #303030; 10 | --base06: #202020; 11 | --base07: #151515; 12 | --base08: #AC4142; 13 | --base09: #D28445; 14 | --base0A: #F4BF75; 15 | --base0B: #90A959; 16 | --base0C: #75B5AA; 17 | --base0D: #6A9FB5; 18 | --base0E: #AA759F; 19 | --base0F: #8F5536; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-colors.css: -------------------------------------------------------------------------------- 1 | /* Colors by mrmrs (http://clrs.cc) */ 2 | 3 | :root { 4 | --base00: #111111; 5 | --base01: #333333; 6 | --base02: #555555; 7 | --base03: #777777; 8 | --base04: #999999; 9 | --base05: #bbbbbb; 10 | --base06: #dddddd; 11 | --base07: #ffffff; 12 | --base08: #ff4136; 13 | --base09: #ff851b; 14 | --base0A: #ffdc00; 15 | --base0B: #2ecc40; 16 | --base0C: #7fdbff; 17 | --base0D: #0074d9; 18 | --base0E: #b10dc9; 19 | --base0F: #85144b; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-cupcake.css: -------------------------------------------------------------------------------- 1 | /* Cupcake by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #fbf1f2; 5 | --base01: #f2f1f4; 6 | --base02: #d8d5dd; 7 | --base03: #bfb9c6; 8 | --base04: #a59daf; 9 | --base05: #8b8198; 10 | --base06: #72677E; 11 | --base07: #585062; 12 | --base08: #D57E85; 13 | --base09: #EBB790; 14 | --base0A: #DCB16C; 15 | --base0B: #A3B367; 16 | --base0C: #69A9A7; 17 | --base0D: #7297B9; 18 | --base0E: #BB99B4; 19 | --base0F: #BAA58C; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-cupertino.css: -------------------------------------------------------------------------------- 1 | /* Cupertino by Defman21 */ 2 | 3 | :root { 4 | --base00: #ffffff; 5 | --base01: #edecec; 6 | --base02: #c0c0c0; 7 | --base03: #808080; 8 | --base04: #707070; 9 | --base05: #404040; 10 | --base06: #2b2b2b; 11 | --base07: #0d0d0d; 12 | --base08: #c41a15; 13 | --base09: #eb8500; 14 | --base0A: #826b28; 15 | --base0B: #007400; 16 | --base0C: #318495; 17 | --base0D: #0000ff; 18 | --base0E: #a90d91; 19 | --base0F: #826b28; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-da-one-black.css: -------------------------------------------------------------------------------- 1 | /* Da One Black by NNB (https://github.com/NNBnh) */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #282828; 6 | --base02: #585858; 7 | --base03: #888888; 8 | --base04: #c8c8c8; 9 | --base05: #ffffff; 10 | --base06: #ffffff; 11 | --base07: #ffffff; 12 | --base08: #fa7883; 13 | --base09: #ffc387; 14 | --base0A: #ff9470; 15 | --base0B: #98c379; 16 | --base0C: #8af5ff; 17 | --base0D: #6bb8ff; 18 | --base0E: #e799ff; 19 | --base0F: #b3684f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-da-one-gray.css: -------------------------------------------------------------------------------- 1 | /* Da One Gray by NNB (https://github.com/NNBnh) */ 2 | 3 | :root { 4 | --base00: #181818; 5 | --base01: #282828; 6 | --base02: #585858; 7 | --base03: #888888; 8 | --base04: #c8c8c8; 9 | --base05: #ffffff; 10 | --base06: #ffffff; 11 | --base07: #ffffff; 12 | --base08: #fa7883; 13 | --base09: #ffc387; 14 | --base0A: #ff9470; 15 | --base0B: #98c379; 16 | --base0C: #8af5ff; 17 | --base0D: #6bb8ff; 18 | --base0E: #e799ff; 19 | --base0F: #b3684f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-da-one-ocean.css: -------------------------------------------------------------------------------- 1 | /* Da One Ocean by NNB (https://github.com/NNBnh) */ 2 | 3 | :root { 4 | --base00: #171726; 5 | --base01: #22273d; 6 | --base02: #525866; 7 | --base03: #878d96; 8 | --base04: #c8c8c8; 9 | --base05: #ffffff; 10 | --base06: #ffffff; 11 | --base07: #ffffff; 12 | --base08: #fa7883; 13 | --base09: #ffc387; 14 | --base0A: #ff9470; 15 | --base0B: #98c379; 16 | --base0C: #8af5ff; 17 | --base0D: #6bb8ff; 18 | --base0E: #e799ff; 19 | --base0F: #b3684f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-da-one-paper.css: -------------------------------------------------------------------------------- 1 | /* Da One Paper by NNB (https://github.com/NNBnh) */ 2 | 3 | :root { 4 | --base00: #faf0dc; 5 | --base01: #c8c8c8; 6 | --base02: #888888; 7 | --base03: #585858; 8 | --base04: #282828; 9 | --base05: #181818; 10 | --base06: #000000; 11 | --base07: #000000; 12 | --base08: #de5d6e; 13 | --base09: #fa5e2a; 14 | --base0A: #b3684f; 15 | --base0B: #76a85d; 16 | --base0C: #64b5a7; 17 | --base0D: #5890f8; 18 | --base0E: #c173d1; 19 | --base0F: #b3684f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-da-one-white.css: -------------------------------------------------------------------------------- 1 | /* Da One White by NNB (https://github.com/NNBnh) */ 2 | 3 | :root { 4 | --base00: #ffffff; 5 | --base01: #ececec; 6 | --base02: #d0d0d0; 7 | --base03: #888888; 8 | --base04: #585858; 9 | --base05: #282828; 10 | --base06: #181818; 11 | --base07: #000000; 12 | --base08: #de5d6e; 13 | --base09: #ff9470; 14 | --base0A: #b3684f; 15 | --base0B: #76a85d; 16 | --base0C: #64b5a7; 17 | --base0D: #5890f8; 18 | --base0E: #c173d1; 19 | --base0F: #b3684f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-darcula.css: -------------------------------------------------------------------------------- 1 | /* Darcula by jetbrains */ 2 | 3 | :root { 4 | --base00: #2b2b2b; 5 | --base01: #323232; 6 | --base02: #323232; 7 | --base03: #606366; 8 | --base04: #a4a3a3; 9 | --base05: #a9b7c6; 10 | --base06: #ffc66d; 11 | --base07: #ffffff; 12 | --base08: #4eade5; 13 | --base09: #689757; 14 | --base0A: #bbb529; 15 | --base0B: #6a8759; 16 | --base0C: #629755; 17 | --base0D: #9876aa; 18 | --base0E: #cc7832; 19 | --base0F: #808080; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-darkmoss.css: -------------------------------------------------------------------------------- 1 | /* darkmoss by Gabriel Avanzi (https://github.com/avanzzzi) */ 2 | 3 | :root { 4 | --base00: #171e1f; 5 | --base01: #252c2d; 6 | --base02: #373c3d; 7 | --base03: #555e5f; 8 | --base04: #818f80; 9 | --base05: #c7c7a5; 10 | --base06: #e3e3c8; 11 | --base07: #e1eaef; 12 | --base08: #ff4658; 13 | --base09: #e6db74; 14 | --base0A: #fdb11f; 15 | --base0B: #499180; 16 | --base0C: #66d9ef; 17 | --base0D: #498091; 18 | --base0E: #9bc0c8; 19 | --base0F: #d27b53; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-darktooth.css: -------------------------------------------------------------------------------- 1 | /* Darktooth by Jason Milkins (https://github.com/jasonm23) */ 2 | 3 | :root { 4 | --base00: #1D2021; 5 | --base01: #32302F; 6 | --base02: #504945; 7 | --base03: #665C54; 8 | --base04: #928374; 9 | --base05: #A89984; 10 | --base06: #D5C4A1; 11 | --base07: #FDF4C1; 12 | --base08: #FB543F; 13 | --base09: #FE8625; 14 | --base0A: #FAC03B; 15 | --base0B: #95C085; 16 | --base0C: #8BA59B; 17 | --base0D: #0D6678; 18 | --base0E: #8F4673; 19 | --base0F: #A87322; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-decaf.css: -------------------------------------------------------------------------------- 1 | /* Decaf by Alex Mirrington (https://github.com/alexmirrington) */ 2 | 3 | :root { 4 | --base00: #2d2d2d; 5 | --base01: #393939; 6 | --base02: #515151; 7 | --base03: #777777; 8 | --base04: #b4b7b4; 9 | --base05: #cccccc; 10 | --base06: #e0e0e0; 11 | --base07: #ffffff; 12 | --base08: #ff7f7b; 13 | --base09: #ffbf70; 14 | --base0A: #ffd67c; 15 | --base0B: #beda78; 16 | --base0C: #bed6ff; 17 | --base0D: #90bee1; 18 | --base0E: #efb3f7; 19 | --base0F: #ff93b3; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-default-dark.css: -------------------------------------------------------------------------------- 1 | /* Default Dark by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #181818; 5 | --base01: #282828; 6 | --base02: #383838; 7 | --base03: #585858; 8 | --base04: #b8b8b8; 9 | --base05: #d8d8d8; 10 | --base06: #e8e8e8; 11 | --base07: #f8f8f8; 12 | --base08: #ab4642; 13 | --base09: #dc9656; 14 | --base0A: #f7ca88; 15 | --base0B: #a1b56c; 16 | --base0C: #86c1b9; 17 | --base0D: #7cafc2; 18 | --base0E: #ba8baf; 19 | --base0F: #a16946; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-default-light.css: -------------------------------------------------------------------------------- 1 | /* Default Light by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #f8f8f8; 5 | --base01: #e8e8e8; 6 | --base02: #d8d8d8; 7 | --base03: #b8b8b8; 8 | --base04: #585858; 9 | --base05: #383838; 10 | --base06: #282828; 11 | --base07: #181818; 12 | --base08: #ab4642; 13 | --base09: #dc9656; 14 | --base0A: #f7ca88; 15 | --base0B: #a1b56c; 16 | --base0C: #86c1b9; 17 | --base0D: #7cafc2; 18 | --base0E: #ba8baf; 19 | --base0F: #a16946; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-eighties.css: -------------------------------------------------------------------------------- 1 | /* Eighties by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #2d2d2d; 5 | --base01: #393939; 6 | --base02: #515151; 7 | --base03: #747369; 8 | --base04: #a09f93; 9 | --base05: #d3d0c8; 10 | --base06: #e8e6df; 11 | --base07: #f2f0ec; 12 | --base08: #f2777a; 13 | --base09: #f99157; 14 | --base0A: #ffcc66; 15 | --base0B: #99cc99; 16 | --base0C: #66cccc; 17 | --base0D: #6699cc; 18 | --base0E: #cc99cc; 19 | --base0F: #d27b53; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-embers.css: -------------------------------------------------------------------------------- 1 | /* Embers by Jannik Siebert (https://github.com/janniks) */ 2 | 3 | :root { 4 | --base00: #16130F; 5 | --base01: #2C2620; 6 | --base02: #433B32; 7 | --base03: #5A5047; 8 | --base04: #8A8075; 9 | --base05: #A39A90; 10 | --base06: #BEB6AE; 11 | --base07: #DBD6D1; 12 | --base08: #826D57; 13 | --base09: #828257; 14 | --base0A: #6D8257; 15 | --base0B: #57826D; 16 | --base0C: #576D82; 17 | --base0D: #6D5782; 18 | --base0E: #82576D; 19 | --base0F: #825757; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-equilibrium-dark.css: -------------------------------------------------------------------------------- 1 | /* Equilibrium Dark by Carlo Abelli */ 2 | 3 | :root { 4 | --base00: #0c1118; 5 | --base01: #181c22; 6 | --base02: #22262d; 7 | --base03: #7b776e; 8 | --base04: #949088; 9 | --base05: #afaba2; 10 | --base06: #cac6bd; 11 | --base07: #e7e2d9; 12 | --base08: #f04339; 13 | --base09: #df5923; 14 | --base0A: #bb8801; 15 | --base0B: #7f8b00; 16 | --base0C: #00948b; 17 | --base0D: #008dd1; 18 | --base0E: #6a7fd2; 19 | --base0F: #e3488e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-equilibrium-gray-dark.css: -------------------------------------------------------------------------------- 1 | /* Equilibrium Gray Dark by Carlo Abelli */ 2 | 3 | :root { 4 | --base00: #111111; 5 | --base01: #1b1b1b; 6 | --base02: #262626; 7 | --base03: #777777; 8 | --base04: #919191; 9 | --base05: #ababab; 10 | --base06: #c6c6c6; 11 | --base07: #e2e2e2; 12 | --base08: #f04339; 13 | --base09: #df5923; 14 | --base0A: #bb8801; 15 | --base0B: #7f8b00; 16 | --base0C: #00948b; 17 | --base0D: #008dd1; 18 | --base0E: #6a7fd2; 19 | --base0F: #e3488e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-equilibrium-gray-light.css: -------------------------------------------------------------------------------- 1 | /* Equilibrium Gray Light by Carlo Abelli */ 2 | 3 | :root { 4 | --base00: #f1f1f1; 5 | --base01: #e2e2e2; 6 | --base02: #d4d4d4; 7 | --base03: #777777; 8 | --base04: #5e5e5e; 9 | --base05: #474747; 10 | --base06: #303030; 11 | --base07: #1b1b1b; 12 | --base08: #d02023; 13 | --base09: #bf3e05; 14 | --base0A: #9d6f00; 15 | --base0B: #637200; 16 | --base0C: #007a72; 17 | --base0D: #0073b5; 18 | --base0E: #4e66b6; 19 | --base0F: #c42775; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-equilibrium-light.css: -------------------------------------------------------------------------------- 1 | /* Equilibrium Light by Carlo Abelli */ 2 | 3 | :root { 4 | --base00: #f5f0e7; 5 | --base01: #e7e2d9; 6 | --base02: #d8d4cb; 7 | --base03: #73777f; 8 | --base04: #5a5f66; 9 | --base05: #43474e; 10 | --base06: #2c3138; 11 | --base07: #181c22; 12 | --base08: #d02023; 13 | --base09: #bf3e05; 14 | --base0A: #9d6f00; 15 | --base0B: #637200; 16 | --base0C: #007a72; 17 | --base0D: #0073b5; 18 | --base0E: #4e66b6; 19 | --base0F: #c42775; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-espresso.css: -------------------------------------------------------------------------------- 1 | /* Espresso by Unknown. Maintained by Alex Mirrington (https://github.com/alexmirrington) */ 2 | 3 | :root { 4 | --base00: #2d2d2d; 5 | --base01: #393939; 6 | --base02: #515151; 7 | --base03: #777777; 8 | --base04: #b4b7b4; 9 | --base05: #cccccc; 10 | --base06: #e0e0e0; 11 | --base07: #ffffff; 12 | --base08: #d25252; 13 | --base09: #f9a959; 14 | --base0A: #ffc66d; 15 | --base0B: #a5c261; 16 | --base0C: #bed6ff; 17 | --base0D: #6c99bb; 18 | --base0E: #d197d9; 19 | --base0F: #f97394; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-eva-dim.css: -------------------------------------------------------------------------------- 1 | /* Eva Dim by kjakapat (https://github.com/kjakapat) */ 2 | 3 | :root { 4 | --base00: #2a3b4d; 5 | --base01: #3d566f; 6 | --base02: #4b6988; 7 | --base03: #55799c; 8 | --base04: #7e90a3; 9 | --base05: #9fa2a6; 10 | --base06: #d6d7d9; 11 | --base07: #ffffff; 12 | --base08: #c4676c; 13 | --base09: #ff9966; 14 | --base0A: #cfd05d; 15 | --base0B: #5de561; 16 | --base0C: #4b8f77; 17 | --base0D: #1ae1dc; 18 | --base0E: #9c6cd3; 19 | --base0F: #bb64a9; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-eva.css: -------------------------------------------------------------------------------- 1 | /* Eva by kjakapat (https://github.com/kjakapat) */ 2 | 3 | :root { 4 | --base00: #2a3b4d; 5 | --base01: #3d566f; 6 | --base02: #4b6988; 7 | --base03: #55799c; 8 | --base04: #7e90a3; 9 | --base05: #9fa2a6; 10 | --base06: #d6d7d9; 11 | --base07: #ffffff; 12 | --base08: #c4676c; 13 | --base09: #ff9966; 14 | --base0A: #ffff66; 15 | --base0B: #66ff66; 16 | --base0C: #4b8f77; 17 | --base0D: #15f4ee; 18 | --base0E: #9c6cd3; 19 | --base0F: #bb64a9; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-flat.css: -------------------------------------------------------------------------------- 1 | /* Flat by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #2C3E50; 5 | --base01: #34495E; 6 | --base02: #7F8C8D; 7 | --base03: #95A5A6; 8 | --base04: #BDC3C7; 9 | --base05: #e0e0e0; 10 | --base06: #f5f5f5; 11 | --base07: #ECF0F1; 12 | --base08: #E74C3C; 13 | --base09: #E67E22; 14 | --base0A: #F1C40F; 15 | --base0B: #2ECC71; 16 | --base0C: #1ABC9C; 17 | --base0D: #3498DB; 18 | --base0E: #9B59B6; 19 | --base0F: #be643c; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-framer.css: -------------------------------------------------------------------------------- 1 | /* Framer by Framer (Maintained by Jesse Hoyos) */ 2 | 3 | :root { 4 | --base00: #181818; 5 | --base01: #151515; 6 | --base02: #464646; 7 | --base03: #747474; 8 | --base04: #B9B9B9; 9 | --base05: #D0D0D0; 10 | --base06: #E8E8E8; 11 | --base07: #EEEEEE; 12 | --base08: #FD886B; 13 | --base09: #FC4769; 14 | --base0A: #FECB6E; 15 | --base0B: #32CCDC; 16 | --base0C: #ACDDFD; 17 | --base0D: #20BCFC; 18 | --base0E: #BA8CFC; 19 | --base0F: #B15F4A; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-gigavolt.css: -------------------------------------------------------------------------------- 1 | /* Gigavolt by Aidan Swope (http://github.com/Whillikers) */ 2 | 3 | :root { 4 | --base00: #202126; 5 | --base01: #2d303d; 6 | --base02: #5a576e; 7 | --base03: #a1d2e6; 8 | --base04: #cad3ff; 9 | --base05: #e9e7e1; 10 | --base06: #eff0f9; 11 | --base07: #f2fbff; 12 | --base08: #ff661a; 13 | --base09: #19f988; 14 | --base0A: #ffdc2d; 15 | --base0B: #f2e6a9; 16 | --base0C: #fb6acb; 17 | --base0D: #40bfff; 18 | --base0E: #ae94f9; 19 | --base0F: #6187ff; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-github.css: -------------------------------------------------------------------------------- 1 | /* Github by Defman21 */ 2 | 3 | :root { 4 | --base00: #ffffff; 5 | --base01: #f5f5f5; 6 | --base02: #c8c8fa; 7 | --base03: #969896; 8 | --base04: #353535; 9 | --base05: #333333; 10 | --base06: #1f1f1f; 11 | --base07: #111111; 12 | --base08: #ed6a43; 13 | --base09: #0086b3; 14 | --base0A: #795da3; 15 | --base0B: #183691; 16 | --base0C: #183691; 17 | --base0D: #795da3; 18 | --base0E: #a71d5d; 19 | --base0F: #a69900; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-google-dark.css: -------------------------------------------------------------------------------- 1 | /* Google Dark by Seth Wright (http://sethawright.com) */ 2 | 3 | :root { 4 | --base00: #1d1f21; 5 | --base01: #282a2e; 6 | --base02: #373b41; 7 | --base03: #969896; 8 | --base04: #b4b7b4; 9 | --base05: #c5c8c6; 10 | --base06: #e0e0e0; 11 | --base07: #ffffff; 12 | --base08: #CC342B; 13 | --base09: #F96A38; 14 | --base0A: #FBA922; 15 | --base0B: #198844; 16 | --base0C: #3971ED; 17 | --base0D: #3971ED; 18 | --base0E: #A36AC7; 19 | --base0F: #3971ED; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-google-light.css: -------------------------------------------------------------------------------- 1 | /* Google Light by Seth Wright (http://sethawright.com) */ 2 | 3 | :root { 4 | --base00: #ffffff; 5 | --base01: #e0e0e0; 6 | --base02: #c5c8c6; 7 | --base03: #b4b7b4; 8 | --base04: #969896; 9 | --base05: #373b41; 10 | --base06: #282a2e; 11 | --base07: #1d1f21; 12 | --base08: #CC342B; 13 | --base09: #F96A38; 14 | --base0A: #FBA922; 15 | --base0B: #198844; 16 | --base0C: #3971ED; 17 | --base0D: #3971ED; 18 | --base0E: #A36AC7; 19 | --base0F: #3971ED; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-grayscale-dark.css: -------------------------------------------------------------------------------- 1 | /* Grayscale Dark by Alexandre Gavioli (https://github.com/Alexx2/) */ 2 | 3 | :root { 4 | --base00: #101010; 5 | --base01: #252525; 6 | --base02: #464646; 7 | --base03: #525252; 8 | --base04: #ababab; 9 | --base05: #b9b9b9; 10 | --base06: #e3e3e3; 11 | --base07: #f7f7f7; 12 | --base08: #7c7c7c; 13 | --base09: #999999; 14 | --base0A: #a0a0a0; 15 | --base0B: #8e8e8e; 16 | --base0C: #868686; 17 | --base0D: #686868; 18 | --base0E: #747474; 19 | --base0F: #5e5e5e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-grayscale-light.css: -------------------------------------------------------------------------------- 1 | /* Grayscale Light by Alexandre Gavioli (https://github.com/Alexx2/) */ 2 | 3 | :root { 4 | --base00: #f7f7f7; 5 | --base01: #e3e3e3; 6 | --base02: #b9b9b9; 7 | --base03: #ababab; 8 | --base04: #525252; 9 | --base05: #464646; 10 | --base06: #252525; 11 | --base07: #101010; 12 | --base08: #7c7c7c; 13 | --base09: #999999; 14 | --base0A: #a0a0a0; 15 | --base0B: #8e8e8e; 16 | --base0C: #868686; 17 | --base0D: #686868; 18 | --base0E: #747474; 19 | --base0F: #5e5e5e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-green-screen.css: -------------------------------------------------------------------------------- 1 | /* Green Screen by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #001100; 5 | --base01: #003300; 6 | --base02: #005500; 7 | --base03: #007700; 8 | --base04: #009900; 9 | --base05: #00bb00; 10 | --base06: #00dd00; 11 | --base07: #00ff00; 12 | --base08: #007700; 13 | --base09: #009900; 14 | --base0A: #007700; 15 | --base0B: #00bb00; 16 | --base0C: #005500; 17 | --base0D: #009900; 18 | --base0E: #00bb00; 19 | --base0F: #005500; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-gruvbox-dark-hard.css: -------------------------------------------------------------------------------- 1 | /* Gruvbox dark, hard by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) */ 2 | 3 | :root { 4 | --base00: #1d2021; 5 | --base01: #3c3836; 6 | --base02: #504945; 7 | --base03: #665c54; 8 | --base04: #bdae93; 9 | --base05: #d5c4a1; 10 | --base06: #ebdbb2; 11 | --base07: #fbf1c7; 12 | --base08: #fb4934; 13 | --base09: #fe8019; 14 | --base0A: #fabd2f; 15 | --base0B: #b8bb26; 16 | --base0C: #8ec07c; 17 | --base0D: #83a598; 18 | --base0E: #d3869b; 19 | --base0F: #d65d0e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-gruvbox-dark-medium.css: -------------------------------------------------------------------------------- 1 | /* Gruvbox dark, medium by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) */ 2 | 3 | :root { 4 | --base00: #282828; 5 | --base01: #3c3836; 6 | --base02: #504945; 7 | --base03: #665c54; 8 | --base04: #bdae93; 9 | --base05: #d5c4a1; 10 | --base06: #ebdbb2; 11 | --base07: #fbf1c7; 12 | --base08: #fb4934; 13 | --base09: #fe8019; 14 | --base0A: #fabd2f; 15 | --base0B: #b8bb26; 16 | --base0C: #8ec07c; 17 | --base0D: #83a598; 18 | --base0E: #d3869b; 19 | --base0F: #d65d0e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-gruvbox-dark-pale.css: -------------------------------------------------------------------------------- 1 | /* Gruvbox dark, pale by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) */ 2 | 3 | :root { 4 | --base00: #262626; 5 | --base01: #3a3a3a; 6 | --base02: #4e4e4e; 7 | --base03: #8a8a8a; 8 | --base04: #949494; 9 | --base05: #dab997; 10 | --base06: #d5c4a1; 11 | --base07: #ebdbb2; 12 | --base08: #d75f5f; 13 | --base09: #ff8700; 14 | --base0A: #ffaf00; 15 | --base0B: #afaf00; 16 | --base0C: #85ad85; 17 | --base0D: #83adad; 18 | --base0E: #d485ad; 19 | --base0F: #d65d0e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-gruvbox-dark-soft.css: -------------------------------------------------------------------------------- 1 | /* Gruvbox dark, soft by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) */ 2 | 3 | :root { 4 | --base00: #32302f; 5 | --base01: #3c3836; 6 | --base02: #504945; 7 | --base03: #665c54; 8 | --base04: #bdae93; 9 | --base05: #d5c4a1; 10 | --base06: #ebdbb2; 11 | --base07: #fbf1c7; 12 | --base08: #fb4934; 13 | --base09: #fe8019; 14 | --base0A: #fabd2f; 15 | --base0B: #b8bb26; 16 | --base0C: #8ec07c; 17 | --base0D: #83a598; 18 | --base0E: #d3869b; 19 | --base0F: #d65d0e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-gruvbox-light-hard.css: -------------------------------------------------------------------------------- 1 | /* Gruvbox light, hard by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) */ 2 | 3 | :root { 4 | --base00: #f9f5d7; 5 | --base01: #ebdbb2; 6 | --base02: #d5c4a1; 7 | --base03: #bdae93; 8 | --base04: #665c54; 9 | --base05: #504945; 10 | --base06: #3c3836; 11 | --base07: #282828; 12 | --base08: #9d0006; 13 | --base09: #af3a03; 14 | --base0A: #b57614; 15 | --base0B: #79740e; 16 | --base0C: #427b58; 17 | --base0D: #076678; 18 | --base0E: #8f3f71; 19 | --base0F: #d65d0e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-gruvbox-light-medium.css: -------------------------------------------------------------------------------- 1 | /* Gruvbox light, medium by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) */ 2 | 3 | :root { 4 | --base00: #fbf1c7; 5 | --base01: #ebdbb2; 6 | --base02: #d5c4a1; 7 | --base03: #bdae93; 8 | --base04: #665c54; 9 | --base05: #504945; 10 | --base06: #3c3836; 11 | --base07: #282828; 12 | --base08: #9d0006; 13 | --base09: #af3a03; 14 | --base0A: #b57614; 15 | --base0B: #79740e; 16 | --base0C: #427b58; 17 | --base0D: #076678; 18 | --base0E: #8f3f71; 19 | --base0F: #d65d0e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-gruvbox-light-soft.css: -------------------------------------------------------------------------------- 1 | /* Gruvbox light, soft by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) */ 2 | 3 | :root { 4 | --base00: #f2e5bc; 5 | --base01: #ebdbb2; 6 | --base02: #d5c4a1; 7 | --base03: #bdae93; 8 | --base04: #665c54; 9 | --base05: #504945; 10 | --base06: #3c3836; 11 | --base07: #282828; 12 | --base08: #9d0006; 13 | --base09: #af3a03; 14 | --base0A: #b57614; 15 | --base0B: #79740e; 16 | --base0C: #427b58; 17 | --base0D: #076678; 18 | --base0E: #8f3f71; 19 | --base0F: #d65d0e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-hardcore.css: -------------------------------------------------------------------------------- 1 | /* Hardcore by Chris Caller */ 2 | 3 | :root { 4 | --base00: #212121; 5 | --base01: #303030; 6 | --base02: #353535; 7 | --base03: #4A4A4A; 8 | --base04: #707070; 9 | --base05: #cdcdcd; 10 | --base06: #e5e5e5; 11 | --base07: #ffffff; 12 | --base08: #f92672; 13 | --base09: #fd971f; 14 | --base0A: #e6db74; 15 | --base0B: #a6e22e; 16 | --base0C: #708387; 17 | --base0D: #66d9ef; 18 | --base0E: #9e6ffe; 19 | --base0F: #e8b882; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-harmonic16-dark.css: -------------------------------------------------------------------------------- 1 | /* Harmonic16 Dark by Jannik Siebert (https://github.com/janniks) */ 2 | 3 | :root { 4 | --base00: #0b1c2c; 5 | --base01: #223b54; 6 | --base02: #405c79; 7 | --base03: #627e99; 8 | --base04: #aabcce; 9 | --base05: #cbd6e2; 10 | --base06: #e5ebf1; 11 | --base07: #f7f9fb; 12 | --base08: #bf8b56; 13 | --base09: #bfbf56; 14 | --base0A: #8bbf56; 15 | --base0B: #56bf8b; 16 | --base0C: #568bbf; 17 | --base0D: #8b56bf; 18 | --base0E: #bf568b; 19 | --base0F: #bf5656; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-harmonic16-light.css: -------------------------------------------------------------------------------- 1 | /* Harmonic16 Light by Jannik Siebert (https://github.com/janniks) */ 2 | 3 | :root { 4 | --base00: #f7f9fb; 5 | --base01: #e5ebf1; 6 | --base02: #cbd6e2; 7 | --base03: #aabcce; 8 | --base04: #627e99; 9 | --base05: #405c79; 10 | --base06: #223b54; 11 | --base07: #0b1c2c; 12 | --base08: #bf8b56; 13 | --base09: #bfbf56; 14 | --base0A: #8bbf56; 15 | --base0B: #56bf8b; 16 | --base0C: #568bbf; 17 | --base0D: #8b56bf; 18 | --base0E: #bf568b; 19 | --base0F: #bf5656; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-helios.css: -------------------------------------------------------------------------------- 1 | /* Helios by Alex Meyer (https://github.com/reyemxela) */ 2 | 3 | :root { 4 | --base00: #1d2021; 5 | --base01: #383c3e; 6 | --base02: #53585b; 7 | --base03: #6f7579; 8 | --base04: #cdcdcd; 9 | --base05: #d5d5d5; 10 | --base06: #dddddd; 11 | --base07: #e5e5e5; 12 | --base08: #d72638; 13 | --base09: #eb8413; 14 | --base0A: #f19d1a; 15 | --base0B: #88b92d; 16 | --base0C: #1ba595; 17 | --base0D: #1e8bac; 18 | --base0E: #be4264; 19 | --base0F: #c85e0d; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-hopscotch.css: -------------------------------------------------------------------------------- 1 | /* Hopscotch by Jan T. Sott */ 2 | 3 | :root { 4 | --base00: #322931; 5 | --base01: #433b42; 6 | --base02: #5c545b; 7 | --base03: #797379; 8 | --base04: #989498; 9 | --base05: #b9b5b8; 10 | --base06: #d5d3d5; 11 | --base07: #ffffff; 12 | --base08: #dd464c; 13 | --base09: #fd8b19; 14 | --base0A: #fdcc59; 15 | --base0B: #8fc13e; 16 | --base0C: #149b93; 17 | --base0D: #1290bf; 18 | --base0E: #c85e7c; 19 | --base0F: #b33508; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-horizon-dark.css: -------------------------------------------------------------------------------- 1 | /* Horizon Dark by Michaël Ball (http://github.com/michael-ball/) */ 2 | 3 | :root { 4 | --base00: #1C1E26; 5 | --base01: #232530; 6 | --base02: #2E303E; 7 | --base03: #6F6F70; 8 | --base04: #9DA0A2; 9 | --base05: #CBCED0; 10 | --base06: #DCDFE4; 11 | --base07: #E3E6EE; 12 | --base08: #E95678; 13 | --base09: #FAB795; 14 | --base0A: #FAC29A; 15 | --base0B: #29D398; 16 | --base0C: #59E1E3; 17 | --base0D: #26BBD9; 18 | --base0E: #EE64AC; 19 | --base0F: #F09383; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-horizon-light.css: -------------------------------------------------------------------------------- 1 | /* Horizon Light by Michaël Ball (http://github.com/michael-ball/) */ 2 | 3 | :root { 4 | --base00: #FDF0ED; 5 | --base01: #FADAD1; 6 | --base02: #F9CBBE; 7 | --base03: #BDB3B1; 8 | --base04: #948C8A; 9 | --base05: #403C3D; 10 | --base06: #302C2D; 11 | --base07: #201C1D; 12 | --base08: #E95678; 13 | --base09: #ff7c5a; 14 | --base0A: #f15326; 15 | --base0B: #29D398; 16 | --base0C: #59E1E3; 17 | --base0D: #26BBD9; 18 | --base0E: #EE64AC; 19 | --base0F: #ab2904; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-humanoid-dark.css: -------------------------------------------------------------------------------- 1 | /* Humanoid dark by Thomas (tasmo) Friese */ 2 | 3 | :root { 4 | --base00: #232629; 5 | --base01: #333b3d; 6 | --base02: #484e54; 7 | --base03: #60615d; 8 | --base04: #c0c0bd; 9 | --base05: #f8f8f2; 10 | --base06: #fcfcf6; 11 | --base07: #fcfcfc; 12 | --base08: #f11235; 13 | --base09: #ff9505; 14 | --base0A: #ffb627; 15 | --base0B: #02d849; 16 | --base0C: #0dd9d6; 17 | --base0D: #00a6fb; 18 | --base0E: #f15ee3; 19 | --base0F: #b27701; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-humanoid-light.css: -------------------------------------------------------------------------------- 1 | /* Humanoid light by Thomas (tasmo) Friese */ 2 | 3 | :root { 4 | --base00: #f8f8f2; 5 | --base01: #efefe9; 6 | --base02: #deded8; 7 | --base03: #c0c0bd; 8 | --base04: #60615d; 9 | --base05: #232629; 10 | --base06: #2f3337; 11 | --base07: #070708; 12 | --base08: #b0151a; 13 | --base09: #ff3d00; 14 | --base0A: #ffb627; 15 | --base0B: #388e3c; 16 | --base0C: #008e8e; 17 | --base0D: #0082c9; 18 | --base0E: #700f98; 19 | --base0F: #b27701; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-icy-dark.css: -------------------------------------------------------------------------------- 1 | /* Icy Dark by icyphox (https://icyphox.ga) */ 2 | 3 | :root { 4 | --base00: #021012; 5 | --base01: #031619; 6 | --base02: #041f23; 7 | --base03: #052e34; 8 | --base04: #064048; 9 | --base05: #095b67; 10 | --base06: #0c7c8c; 11 | --base07: #109cb0; 12 | --base08: #16c1d9; 13 | --base09: #b3ebf2; 14 | --base0A: #80deea; 15 | --base0B: #4dd0e1; 16 | --base0C: #26c6da; 17 | --base0D: #00bcd4; 18 | --base0E: #00acc1; 19 | --base0F: #0097a7; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-ir-black.css: -------------------------------------------------------------------------------- 1 | /* IR Black by Timothée Poisot (http://timotheepoisot.fr) */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #242422; 6 | --base02: #484844; 7 | --base03: #6c6c66; 8 | --base04: #918f88; 9 | --base05: #b5b3aa; 10 | --base06: #d9d7cc; 11 | --base07: #fdfbee; 12 | --base08: #ff6c60; 13 | --base09: #e9c062; 14 | --base0A: #ffffb6; 15 | --base0B: #a8ff60; 16 | --base0C: #c6c5fe; 17 | --base0D: #96cbfe; 18 | --base0E: #ff73fd; 19 | --base0F: #b18a3d; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-isotope.css: -------------------------------------------------------------------------------- 1 | /* Isotope by Jan T. Sott */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #404040; 6 | --base02: #606060; 7 | --base03: #808080; 8 | --base04: #c0c0c0; 9 | --base05: #d0d0d0; 10 | --base06: #e0e0e0; 11 | --base07: #ffffff; 12 | --base08: #ff0000; 13 | --base09: #ff9900; 14 | --base0A: #ff0099; 15 | --base0B: #33ff00; 16 | --base0C: #00ffff; 17 | --base0D: #0066ff; 18 | --base0E: #cc00ff; 19 | --base0F: #3300ff; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-kimber.css: -------------------------------------------------------------------------------- 1 | /* Kimber by Mishka Nguyen (https://github.com/akhsiM) */ 2 | 3 | :root { 4 | --base00: #222222; 5 | --base01: #313131; 6 | --base02: #555D55; 7 | --base03: #644646; 8 | --base04: #5A5A5A; 9 | --base05: #DEDEE7; 10 | --base06: #C3C3B4; 11 | --base07: #FFFFE6; 12 | --base08: #C88C8C; 13 | --base09: #476C88; 14 | --base0A: #D8B56D; 15 | --base0B: #99C899; 16 | --base0C: #78B4B4; 17 | --base0D: #537C9C; 18 | --base0E: #86CACD; 19 | --base0F: #704F4F; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-macintosh.css: -------------------------------------------------------------------------------- 1 | /* Macintosh by Rebecca Bettencourt (http://www.kreativekorp.com) */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #404040; 6 | --base02: #404040; 7 | --base03: #808080; 8 | --base04: #808080; 9 | --base05: #c0c0c0; 10 | --base06: #c0c0c0; 11 | --base07: #ffffff; 12 | --base08: #dd0907; 13 | --base09: #ff6403; 14 | --base0A: #fbf305; 15 | --base0B: #1fb714; 16 | --base0C: #02abea; 17 | --base0D: #0000d3; 18 | --base0E: #4700a5; 19 | --base0F: #90713a; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-marrakesh.css: -------------------------------------------------------------------------------- 1 | /* Marrakesh by Alexandre Gavioli (http://github.com/Alexx2/) */ 2 | 3 | :root { 4 | --base00: #201602; 5 | --base01: #302e00; 6 | --base02: #5f5b17; 7 | --base03: #6c6823; 8 | --base04: #86813b; 9 | --base05: #948e48; 10 | --base06: #ccc37a; 11 | --base07: #faf0a5; 12 | --base08: #c35359; 13 | --base09: #b36144; 14 | --base0A: #a88339; 15 | --base0B: #18974e; 16 | --base0C: #75a738; 17 | --base0D: #477ca1; 18 | --base0E: #8868b3; 19 | --base0F: #b3588e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-materia.css: -------------------------------------------------------------------------------- 1 | /* Materia by Defman21 */ 2 | 3 | :root { 4 | --base00: #263238; 5 | --base01: #2C393F; 6 | --base02: #37474F; 7 | --base03: #707880; 8 | --base04: #C9CCD3; 9 | --base05: #CDD3DE; 10 | --base06: #D5DBE5; 11 | --base07: #FFFFFF; 12 | --base08: #EC5F67; 13 | --base09: #EA9560; 14 | --base0A: #FFCC00; 15 | --base0B: #8BD649; 16 | --base0C: #80CBC4; 17 | --base0D: #89DDFF; 18 | --base0E: #82AAFF; 19 | --base0F: #EC5F67; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-material-darker.css: -------------------------------------------------------------------------------- 1 | /* Material Darker by Nate Peterson */ 2 | 3 | :root { 4 | --base00: #212121; 5 | --base01: #303030; 6 | --base02: #353535; 7 | --base03: #4A4A4A; 8 | --base04: #B2CCD6; 9 | --base05: #EEFFFF; 10 | --base06: #EEFFFF; 11 | --base07: #FFFFFF; 12 | --base08: #F07178; 13 | --base09: #F78C6C; 14 | --base0A: #FFCB6B; 15 | --base0B: #C3E88D; 16 | --base0C: #89DDFF; 17 | --base0D: #82AAFF; 18 | --base0E: #C792EA; 19 | --base0F: #FF5370; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-material-lighter.css: -------------------------------------------------------------------------------- 1 | /* Material Lighter by Nate Peterson */ 2 | 3 | :root { 4 | --base00: #f3fcfb; 5 | --base01: #dcf2f0; 6 | --base02: #94ece3; 7 | --base03: #4abcb0; 8 | --base04: #1aae9f; 9 | --base05: #129c8f; 10 | --base06: #018175; 11 | --base07: #004b44; 12 | --base08: #FF5370; 13 | --base09: #F76D47; 14 | --base0A: #FFB62C; 15 | --base0B: #91B859; 16 | --base0C: #39ADB5; 17 | --base0D: #6182B8; 18 | --base0E: #7C4DFF; 19 | --base0F: #E53935; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-material-palenight.css: -------------------------------------------------------------------------------- 1 | /* Material Palenight by Nate Peterson */ 2 | 3 | :root { 4 | --base00: #292D3E; 5 | --base01: #444267; 6 | --base02: #32374D; 7 | --base03: #676E95; 8 | --base04: #8796B0; 9 | --base05: #959DCB; 10 | --base06: #959DCB; 11 | --base07: #FFFFFF; 12 | --base08: #F07178; 13 | --base09: #F78C6C; 14 | --base0A: #FFCB6B; 15 | --base0B: #C3E88D; 16 | --base0C: #89DDFF; 17 | --base0D: #82AAFF; 18 | --base0E: #C792EA; 19 | --base0F: #FF5370; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-material-vivid.css: -------------------------------------------------------------------------------- 1 | /* Material Vivid by joshyrobot */ 2 | 3 | :root { 4 | --base00: #202124; 5 | --base01: #27292c; 6 | --base02: #323639; 7 | --base03: #44464d; 8 | --base04: #676c71; 9 | --base05: #80868b; 10 | --base06: #9e9e9e; 11 | --base07: #ffffff; 12 | --base08: #f44336; 13 | --base09: #ff9800; 14 | --base0A: #ffeb3b; 15 | --base0B: #00e676; 16 | --base0C: #00bcd4; 17 | --base0D: #2196f3; 18 | --base0E: #673ab7; 19 | --base0F: #8d6e63; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-material.css: -------------------------------------------------------------------------------- 1 | /* Material by Nate Peterson */ 2 | 3 | :root { 4 | --base00: #263238; 5 | --base01: #2E3C43; 6 | --base02: #314549; 7 | --base03: #546E7A; 8 | --base04: #B2CCD6; 9 | --base05: #EEFFFF; 10 | --base06: #EEFFFF; 11 | --base07: #FFFFFF; 12 | --base08: #F07178; 13 | --base09: #F78C6C; 14 | --base0A: #FFCB6B; 15 | --base0B: #C3E88D; 16 | --base0C: #89DDFF; 17 | --base0D: #82AAFF; 18 | --base0E: #C792EA; 19 | --base0F: #FF5370; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-mexico-light.css: -------------------------------------------------------------------------------- 1 | /* Mexico Light by Sheldon Johnson */ 2 | 3 | :root { 4 | --base00: #f8f8f8; 5 | --base01: #e8e8e8; 6 | --base02: #d8d8d8; 7 | --base03: #b8b8b8; 8 | --base04: #585858; 9 | --base05: #383838; 10 | --base06: #282828; 11 | --base07: #181818; 12 | --base08: #ab4642; 13 | --base09: #dc9656; 14 | --base0A: #f79a0e; 15 | --base0B: #538947; 16 | --base0C: #4b8093; 17 | --base0D: #7cafc2; 18 | --base0E: #96609e; 19 | --base0F: #a16946; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-mocha.css: -------------------------------------------------------------------------------- 1 | /* Mocha by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #3B3228; 5 | --base01: #534636; 6 | --base02: #645240; 7 | --base03: #7e705a; 8 | --base04: #b8afad; 9 | --base05: #d0c8c6; 10 | --base06: #e9e1dd; 11 | --base07: #f5eeeb; 12 | --base08: #cb6077; 13 | --base09: #d28b71; 14 | --base0A: #f4bc87; 15 | --base0B: #beb55b; 16 | --base0C: #7bbda4; 17 | --base0D: #8ab3b5; 18 | --base0E: #a89bb9; 19 | --base0F: #bb9584; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-monokai.css: -------------------------------------------------------------------------------- 1 | /* Monokai by Wimer Hazenberg (http://www.monokai.nl) */ 2 | 3 | :root { 4 | --base00: #272822; 5 | --base01: #383830; 6 | --base02: #49483e; 7 | --base03: #75715e; 8 | --base04: #a59f85; 9 | --base05: #f8f8f2; 10 | --base06: #f5f4f1; 11 | --base07: #f9f8f5; 12 | --base08: #f92672; 13 | --base09: #fd971f; 14 | --base0A: #f4bf75; 15 | --base0B: #a6e22e; 16 | --base0C: #a1efe4; 17 | --base0D: #66d9ef; 18 | --base0E: #ae81ff; 19 | --base0F: #cc6633; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-nebula.css: -------------------------------------------------------------------------------- 1 | /* Nebula by Gabriel Fontes (https://github.com/Misterio77) */ 2 | 3 | :root { 4 | --base00: #22273b; 5 | --base01: #414f60; 6 | --base02: #5a8380; 7 | --base03: #6e6f72; 8 | --base04: #87888b; 9 | --base05: #a4a6a9; 10 | --base06: #c7c9cd; 11 | --base07: #8dbdaa; 12 | --base08: #777abc; 13 | --base09: #94929e; 14 | --base0A: #4f9062; 15 | --base0B: #6562a8; 16 | --base0C: #226f68; 17 | --base0D: #4d6bb6; 18 | --base0E: #716cae; 19 | --base0F: #8c70a7; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-nord.css: -------------------------------------------------------------------------------- 1 | /* Nord by arcticicestudio */ 2 | 3 | :root { 4 | --base00: #2E3440; 5 | --base01: #3B4252; 6 | --base02: #434C5E; 7 | --base03: #4C566A; 8 | --base04: #D8DEE9; 9 | --base05: #E5E9F0; 10 | --base06: #ECEFF4; 11 | --base07: #8FBCBB; 12 | --base08: #88C0D0; 13 | --base09: #81A1C1; 14 | --base0A: #5E81AC; 15 | --base0B: #BF616A; 16 | --base0C: #D08770; 17 | --base0D: #EBCB8B; 18 | --base0E: #A3BE8C; 19 | --base0F: #B48EAD; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-nova.css: -------------------------------------------------------------------------------- 1 | /* Nova by George Essig (https://github.com/gessig), Trevor D. Miller (https://trevordmiller.com) */ 2 | 3 | :root { 4 | --base00: #3C4C55; 5 | --base01: #556873; 6 | --base02: #6A7D89; 7 | --base03: #899BA6; 8 | --base04: #899BA6; 9 | --base05: #C5D4DD; 10 | --base06: #899BA6; 11 | --base07: #556873; 12 | --base08: #83AFE5; 13 | --base09: #7FC1CA; 14 | --base0A: #A8CE93; 15 | --base0B: #7FC1CA; 16 | --base0C: #F2C38F; 17 | --base0D: #83AFE5; 18 | --base0E: #9A93E1; 19 | --base0F: #F2C38F; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-ocean.css: -------------------------------------------------------------------------------- 1 | /* Ocean by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #2b303b; 5 | --base01: #343d46; 6 | --base02: #4f5b66; 7 | --base03: #65737e; 8 | --base04: #a7adba; 9 | --base05: #c0c5ce; 10 | --base06: #dfe1e8; 11 | --base07: #eff1f5; 12 | --base08: #bf616a; 13 | --base09: #d08770; 14 | --base0A: #ebcb8b; 15 | --base0B: #a3be8c; 16 | --base0C: #96b5b4; 17 | --base0D: #8fa1b3; 18 | --base0E: #b48ead; 19 | --base0F: #ab7967; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-oceanicnext.css: -------------------------------------------------------------------------------- 1 | /* OceanicNext by https://github.com/voronianski/oceanic-next-color-scheme */ 2 | 3 | :root { 4 | --base00: #1B2B34; 5 | --base01: #343D46; 6 | --base02: #4F5B66; 7 | --base03: #65737E; 8 | --base04: #A7ADBA; 9 | --base05: #C0C5CE; 10 | --base06: #CDD3DE; 11 | --base07: #D8DEE9; 12 | --base08: #EC5f67; 13 | --base09: #F99157; 14 | --base0A: #FAC863; 15 | --base0B: #99C794; 16 | --base0C: #5FB3B3; 17 | --base0D: #6699CC; 18 | --base0E: #C594C5; 19 | --base0F: #AB7967; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-one-light.css: -------------------------------------------------------------------------------- 1 | /* One Light by Daniel Pfeifer (http://github.com/purpleKarrot) */ 2 | 3 | :root { 4 | --base00: #fafafa; 5 | --base01: #f0f0f1; 6 | --base02: #e5e5e6; 7 | --base03: #a0a1a7; 8 | --base04: #696c77; 9 | --base05: #383a42; 10 | --base06: #202227; 11 | --base07: #090a0b; 12 | --base08: #ca1243; 13 | --base09: #d75f00; 14 | --base0A: #c18401; 15 | --base0B: #50a14f; 16 | --base0C: #0184bc; 17 | --base0D: #4078f2; 18 | --base0E: #a626a4; 19 | --base0F: #986801; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-onedark.css: -------------------------------------------------------------------------------- 1 | /* OneDark by Lalit Magant (http://github.com/tilal6991) */ 2 | 3 | :root { 4 | --base00: #282c34; 5 | --base01: #353b45; 6 | --base02: #3e4451; 7 | --base03: #545862; 8 | --base04: #565c64; 9 | --base05: #abb2bf; 10 | --base06: #b6bdca; 11 | --base07: #c8ccd4; 12 | --base08: #e06c75; 13 | --base09: #d19a66; 14 | --base0A: #e5c07b; 15 | --base0B: #98c379; 16 | --base0C: #56b6c2; 17 | --base0D: #61afef; 18 | --base0E: #c678dd; 19 | --base0F: #be5046; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-outrun-dark.css: -------------------------------------------------------------------------------- 1 | /* Outrun Dark by Hugo Delahousse (http://github.com/hugodelahousse/) */ 2 | 3 | :root { 4 | --base00: #00002A; 5 | --base01: #20204A; 6 | --base02: #30305A; 7 | --base03: #50507A; 8 | --base04: #B0B0DA; 9 | --base05: #D0D0FA; 10 | --base06: #E0E0FF; 11 | --base07: #F5F5FF; 12 | --base08: #FF4242; 13 | --base09: #FC8D28; 14 | --base0A: #F3E877; 15 | --base0B: #59F176; 16 | --base0C: #0EF0F0; 17 | --base0D: #66B0FF; 18 | --base0E: #F10596; 19 | --base0F: #F003EF; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-paraiso.css: -------------------------------------------------------------------------------- 1 | /* Paraiso by Jan T. Sott */ 2 | 3 | :root { 4 | --base00: #2f1e2e; 5 | --base01: #41323f; 6 | --base02: #4f424c; 7 | --base03: #776e71; 8 | --base04: #8d8687; 9 | --base05: #a39e9b; 10 | --base06: #b9b6b0; 11 | --base07: #e7e9db; 12 | --base08: #ef6155; 13 | --base09: #f99b15; 14 | --base0A: #fec418; 15 | --base0B: #48b685; 16 | --base0C: #5bc4bf; 17 | --base0D: #06b6ef; 18 | --base0E: #815ba4; 19 | --base0F: #e96ba8; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-pasque.css: -------------------------------------------------------------------------------- 1 | /* Pasque by Gabriel Fontes (https://github.com/Misterio77) */ 2 | 3 | :root { 4 | --base00: #271C3A; 5 | --base01: #100323; 6 | --base02: #3E2D5C; 7 | --base03: #5D5766; 8 | --base04: #BEBCBF; 9 | --base05: #DEDCDF; 10 | --base06: #EDEAEF; 11 | --base07: #BBAADD; 12 | --base08: #A92258; 13 | --base09: #918889; 14 | --base0A: #804ead; 15 | --base0B: #C6914B; 16 | --base0C: #7263AA; 17 | --base0D: #8E7DC6; 18 | --base0E: #953B9D; 19 | --base0F: #59325C; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-phd.css: -------------------------------------------------------------------------------- 1 | /* PhD by Hennig Hasemann (http://leetless.de/vim.html) */ 2 | 3 | :root { 4 | --base00: #061229; 5 | --base01: #2a3448; 6 | --base02: #4d5666; 7 | --base03: #717885; 8 | --base04: #9a99a3; 9 | --base05: #b8bbc2; 10 | --base06: #dbdde0; 11 | --base07: #ffffff; 12 | --base08: #d07346; 13 | --base09: #f0a000; 14 | --base0A: #fbd461; 15 | --base0B: #99bf52; 16 | --base0C: #72b9bf; 17 | --base0D: #5299bf; 18 | --base0E: #9989cc; 19 | --base0F: #b08060; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-pinky.css: -------------------------------------------------------------------------------- 1 | /* pinky by Benjamin (https://github.com/b3nj5m1n) */ 2 | 3 | :root { 4 | --base00: #171517; 5 | --base01: #1b181b; 6 | --base02: #1d1b1d; 7 | --base03: #383338; 8 | --base04: #e7dbdb; 9 | --base05: #f5f5f5; 10 | --base06: #ffffff; 11 | --base07: #f7f3f7; 12 | --base08: #ffa600; 13 | --base09: #00ff66; 14 | --base0A: #20df6c; 15 | --base0B: #ff0066; 16 | --base0C: #6600ff; 17 | --base0D: #00ffff; 18 | --base0E: #007fff; 19 | --base0F: #df206c; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-pop.css: -------------------------------------------------------------------------------- 1 | /* Pop by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #202020; 6 | --base02: #303030; 7 | --base03: #505050; 8 | --base04: #b0b0b0; 9 | --base05: #d0d0d0; 10 | --base06: #e0e0e0; 11 | --base07: #ffffff; 12 | --base08: #eb008a; 13 | --base09: #f29333; 14 | --base0A: #f8ca12; 15 | --base0B: #37b349; 16 | --base0C: #00aabb; 17 | --base0D: #0e5a94; 18 | --base0E: #b31e8d; 19 | --base0F: #7a2d00; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-porple.css: -------------------------------------------------------------------------------- 1 | /* Porple by Niek den Breeje (https://github.com/AuditeMarlow) */ 2 | 3 | :root { 4 | --base00: #292c36; 5 | --base01: #333344; 6 | --base02: #474160; 7 | --base03: #65568a; 8 | --base04: #b8b8b8; 9 | --base05: #d8d8d8; 10 | --base06: #e8e8e8; 11 | --base07: #f8f8f8; 12 | --base08: #f84547; 13 | --base09: #d28e5d; 14 | --base0A: #efa16b; 15 | --base0B: #95c76f; 16 | --base0C: #64878f; 17 | --base0D: #8485ce; 18 | --base0E: #b74989; 19 | --base0F: #986841; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-primer-dark-colorblind.css: -------------------------------------------------------------------------------- 1 | /* Primer Dark Colorblind by Jimmy Lin */ 2 | 3 | :root { 4 | --base00: #010409; 5 | --base01: #21262d; 6 | --base02: #30363d; 7 | --base03: #484f58; 8 | --base04: #8b949e; 9 | --base05: #b1bac4; 10 | --base06: #c9d1d9; 11 | --base07: #f0f6fc; 12 | --base08: #d69a00; 13 | --base09: #f0883e; 14 | --base0A: #d29922; 15 | --base0B: #42a0ff; 16 | --base0C: #a5d6ff; 17 | --base0D: #58a6ff; 18 | --base0E: #f778ba; 19 | --base0F: #bd561d; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-primer-dark-dimmed.css: -------------------------------------------------------------------------------- 1 | /* Primer Dark Dimmed by Jimmy Lin */ 2 | 3 | :root { 4 | --base00: #1c2128; 5 | --base01: #373e47; 6 | --base02: #444c56; 7 | --base03: #545d68; 8 | --base04: #768390; 9 | --base05: #909dab; 10 | --base06: #adbac7; 11 | --base07: #cdd9e5; 12 | --base08: #f47067; 13 | --base09: #e0823d; 14 | --base0A: #c69026; 15 | --base0B: #57ab5a; 16 | --base0C: #96d0ff; 17 | --base0D: #539bf5; 18 | --base0E: #e275ad; 19 | --base0F: #ae5622; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-primer-dark-high-contrast.css: -------------------------------------------------------------------------------- 1 | /* Primer Dark High Contrast by Jimmy Lin */ 2 | 3 | :root { 4 | --base00: #010409; 5 | --base01: #272b33; 6 | --base02: #525964; 7 | --base03: #7a828e; 8 | --base04: #bdc4cc; 9 | --base05: #d9dee3; 10 | --base06: #f0f3f6; 11 | --base07: #ffffff; 12 | --base08: #ff9492; 13 | --base09: #fe9a2d; 14 | --base0A: #f0b72f; 15 | --base0B: #26cd4d; 16 | --base0C: #addcff; 17 | --base0D: #71b7ff; 18 | --base0E: #ff8dc7; 19 | --base0F: #e7811d; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-primer-dark.css: -------------------------------------------------------------------------------- 1 | /* Primer Dark by Jimmy Lin */ 2 | 3 | :root { 4 | --base00: #010409; 5 | --base01: #21262d; 6 | --base02: #30363d; 7 | --base03: #484f58; 8 | --base04: #8b949e; 9 | --base05: #b1bac4; 10 | --base06: #c9d1d9; 11 | --base07: #f0f6fc; 12 | --base08: #ff7b72; 13 | --base09: #f0883e; 14 | --base0A: #d29922; 15 | --base0B: #3fb950; 16 | --base0C: #a5d6ff; 17 | --base0D: #58a6ff; 18 | --base0E: #f778ba; 19 | --base0F: #bd561d; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-primer-light-colorblind.css: -------------------------------------------------------------------------------- 1 | /* Primer Light Colorblind by Jimmy Lin */ 2 | 3 | :root { 4 | --base00: #f6f8fa; 5 | --base01: #d0d7de; 6 | --base02: #afb8c1; 7 | --base03: #8c959f; 8 | --base04: #424a53; 9 | --base05: #32383f; 10 | --base06: #24292f; 11 | --base07: #1b1f24; 12 | --base08: #ac5e00; 13 | --base09: #bc4c00; 14 | --base0A: #9a6700; 15 | --base0B: #0566d5; 16 | --base0C: #54aeff; 17 | --base0D: #0969da; 18 | --base0E: #bf3989; 19 | --base0F: #762c00; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-primer-light.css: -------------------------------------------------------------------------------- 1 | /* Primer Light by Jimmy Lin */ 2 | 3 | :root { 4 | --base00: #f6f8fa; 5 | --base01: #d0d7de; 6 | --base02: #afb8c1; 7 | --base03: #8c959f; 8 | --base04: #424a53; 9 | --base05: #32383f; 10 | --base06: #24292f; 11 | --base07: #1b1f24; 12 | --base08: #cf222e; 13 | --base09: #bc4c00; 14 | --base0A: #9a6700; 15 | --base0B: #1a7f37; 16 | --base0C: #54aeff; 17 | --base0D: #0969da; 18 | --base0E: #bf3989; 19 | --base0F: #762c00; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-qualia.css: -------------------------------------------------------------------------------- 1 | /* Qualia by isaacwhanson */ 2 | 3 | :root { 4 | --base00: #101010; 5 | --base01: #454545; 6 | --base02: #454545; 7 | --base03: #454545; 8 | --base04: #808080; 9 | --base05: #C0C0C0; 10 | --base06: #C0C0C0; 11 | --base07: #454545; 12 | --base08: #EFA6A2; 13 | --base09: #A3B8EF; 14 | --base0A: #E6A3DC; 15 | --base0B: #80C990; 16 | --base0C: #C8C874; 17 | --base0D: #50CACD; 18 | --base0E: #E0AF85; 19 | --base0F: #808080; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-railscasts.css: -------------------------------------------------------------------------------- 1 | /* Railscasts by Ryan Bates (http://railscasts.com) */ 2 | 3 | :root { 4 | --base00: #2b2b2b; 5 | --base01: #272935; 6 | --base02: #3a4055; 7 | --base03: #5a647e; 8 | --base04: #d4cfc9; 9 | --base05: #e6e1dc; 10 | --base06: #f4f1ed; 11 | --base07: #f9f7f3; 12 | --base08: #da4939; 13 | --base09: #cc7833; 14 | --base0A: #ffc66d; 15 | --base0B: #a5c261; 16 | --base0C: #519f50; 17 | --base0D: #6d9cbe; 18 | --base0E: #b6b3eb; 19 | --base0F: #bc9458; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-rose-pine-dawn.css: -------------------------------------------------------------------------------- 1 | /* Rosé Pine Dawn by Emilia Dunfelt */ 2 | 3 | :root { 4 | --base00: #faf4ed; 5 | --base01: #fffaf3; 6 | --base02: #f2e9de; 7 | --base03: #9893a5; 8 | --base04: #6e6a86; 9 | --base05: #575279; 10 | --base06: #555169; 11 | --base07: #26233a; 12 | --base08: #1f1d2e; 13 | --base09: #b4637a; 14 | --base0A: #ea9d34; 15 | --base0B: #d7827e; 16 | --base0C: #286983; 17 | --base0D: #56949f; 18 | --base0E: #907aa9; 19 | --base0F: #c5c3ce; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-rose-pine-moon.css: -------------------------------------------------------------------------------- 1 | /* Rosé Pine Moon by Emilia Dunfelt */ 2 | 3 | :root { 4 | --base00: #232136; 5 | --base01: #2a273f; 6 | --base02: #393552; 7 | --base03: #59546d; 8 | --base04: #817c9c; 9 | --base05: #e0def4; 10 | --base06: #f5f5f7; 11 | --base07: #d9d7e1; 12 | --base08: #ecebf0; 13 | --base09: #eb6f92; 14 | --base0A: #f6c177; 15 | --base0B: #ea9a97; 16 | --base0C: #3e8fb0; 17 | --base0D: #9ccfd8; 18 | --base0E: #c4a7e7; 19 | --base0F: #b9b9bc; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-rose-pine.css: -------------------------------------------------------------------------------- 1 | /* Rosé Pine by Emilia Dunfelt */ 2 | 3 | :root { 4 | --base00: #191724; 5 | --base01: #1f1d2e; 6 | --base02: #26233a; 7 | --base03: #555169; 8 | --base04: #6e6a86; 9 | --base05: #e0def4; 10 | --base06: #f0f0f3; 11 | --base07: #c5c3ce; 12 | --base08: #e2e1e7; 13 | --base09: #eb6f92; 14 | --base0A: #f6c177; 15 | --base0B: #ebbcba; 16 | --base0C: #31748f; 17 | --base0D: #9ccfd8; 18 | --base0E: #c4a7e7; 19 | --base0F: #e5e5e5; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-sagelight.css: -------------------------------------------------------------------------------- 1 | /* Sagelight by Carter Veldhuizen */ 2 | 3 | :root { 4 | --base00: #f8f8f8; 5 | --base01: #e8e8e8; 6 | --base02: #d8d8d8; 7 | --base03: #b8b8b8; 8 | --base04: #585858; 9 | --base05: #383838; 10 | --base06: #282828; 11 | --base07: #181818; 12 | --base08: #fa8480; 13 | --base09: #ffaa61; 14 | --base0A: #ffdc61; 15 | --base0B: #a0d2c8; 16 | --base0C: #a2d6f5; 17 | --base0D: #a0a7d2; 18 | --base0E: #c8a0d2; 19 | --base0F: #d2b2a0; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-sakura.css: -------------------------------------------------------------------------------- 1 | /* Sakura by Misterio77 (http://github.com/Misterio77) */ 2 | 3 | :root { 4 | --base00: #feedf3; 5 | --base01: #f8e2e7; 6 | --base02: #e0ccd1; 7 | --base03: #755f64; 8 | --base04: #665055; 9 | --base05: #564448; 10 | --base06: #42383a; 11 | --base07: #33292b; 12 | --base08: #df2d52; 13 | --base09: #f6661e; 14 | --base0A: #c29461; 15 | --base0B: #2e916d; 16 | --base0C: #1d8991; 17 | --base0D: #006e93; 18 | --base0E: #5e2180; 19 | --base0F: #ba0d35; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-sandcastle.css: -------------------------------------------------------------------------------- 1 | /* Sandcastle by George Essig (https://github.com/gessig) */ 2 | 3 | :root { 4 | --base00: #282c34; 5 | --base01: #2c323b; 6 | --base02: #3e4451; 7 | --base03: #665c54; 8 | --base04: #928374; 9 | --base05: #a89984; 10 | --base06: #d5c4a1; 11 | --base07: #fdf4c1; 12 | --base08: #83a598; 13 | --base09: #a07e3b; 14 | --base0A: #a07e3b; 15 | --base0B: #528b8b; 16 | --base0C: #83a598; 17 | --base0D: #83a598; 18 | --base0E: #d75f5f; 19 | --base0F: #a87322; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-shapeshifter.css: -------------------------------------------------------------------------------- 1 | /* Shapeshifter by Tyler Benziger (http://tybenz.com) */ 2 | 3 | :root { 4 | --base00: #f9f9f9; 5 | --base01: #e0e0e0; 6 | --base02: #ababab; 7 | --base03: #555555; 8 | --base04: #343434; 9 | --base05: #102015; 10 | --base06: #040404; 11 | --base07: #000000; 12 | --base08: #e92f2f; 13 | --base09: #e09448; 14 | --base0A: #dddd13; 15 | --base0B: #0ed839; 16 | --base0C: #23edda; 17 | --base0D: #3b48e3; 18 | --base0E: #f996e2; 19 | --base0F: #69542d; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-silk-dark.css: -------------------------------------------------------------------------------- 1 | /* Silk Dark by Gabriel Fontes (https://github.com/Misterio77) */ 2 | 3 | :root { 4 | --base00: #0e3c46; 5 | --base01: #1D494E; 6 | --base02: #2A5054; 7 | --base03: #587073; 8 | --base04: #9DC8CD; 9 | --base05: #C7DBDD; 10 | --base06: #CBF2F7; 11 | --base07: #D2FAFF; 12 | --base08: #fb6953; 13 | --base09: #fcab74; 14 | --base0A: #fce380; 15 | --base0B: #73d8ad; 16 | --base0C: #3fb2b9; 17 | --base0D: #46bddd; 18 | --base0E: #756b8a; 19 | --base0F: #9b647b; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-silk-light.css: -------------------------------------------------------------------------------- 1 | /* Silk Light by Gabriel Fontes (https://github.com/Misterio77) */ 2 | 3 | :root { 4 | --base00: #E9F1EF; 5 | --base01: #CCD4D3; 6 | --base02: #90B7B6; 7 | --base03: #5C787B; 8 | --base04: #4B5B5F; 9 | --base05: #385156; 10 | --base06: #0e3c46; 11 | --base07: #D2FAFF; 12 | --base08: #CF432E; 13 | --base09: #D27F46; 14 | --base0A: #CFAD25; 15 | --base0B: #6CA38C; 16 | --base0C: #329CA2; 17 | --base0D: #39AAC9; 18 | --base0E: #6E6582; 19 | --base0F: #865369; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-snazzy.css: -------------------------------------------------------------------------------- 1 | /* Snazzy by Chawye Hsu (https://github.com/chawyehsu) based on Hyper Snazzy Theme (https://github.com/sindresorhus/hyper-snazzy) */ 2 | 3 | :root { 4 | --base00: #282a36; 5 | --base01: #34353e; 6 | --base02: #43454f; 7 | --base03: #78787e; 8 | --base04: #a5a5a9; 9 | --base05: #e2e4e5; 10 | --base06: #eff0eb; 11 | --base07: #f1f1f0; 12 | --base08: #ff5c57; 13 | --base09: #ff9f43; 14 | --base0A: #f3f99d; 15 | --base0B: #5af78e; 16 | --base0C: #9aedfe; 17 | --base0D: #57c7ff; 18 | --base0E: #ff6ac1; 19 | --base0F: #b2643c; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-solar-flare-light.css: -------------------------------------------------------------------------------- 1 | /* Solar Flare Light by Chuck Harmston (https://chuck.harmston.ch) */ 2 | 3 | :root { 4 | --base00: #F5F7FA; 5 | --base01: #E8E9ED; 6 | --base02: #A6AFB8; 7 | --base03: #85939E; 8 | --base04: #667581; 9 | --base05: #586875; 10 | --base06: #222E38; 11 | --base07: #18262F; 12 | --base08: #EF5253; 13 | --base09: #E66B2B; 14 | --base0A: #E4B51C; 15 | --base0B: #7CC844; 16 | --base0C: #52CBB0; 17 | --base0D: #33B5E1; 18 | --base0E: #A363D5; 19 | --base0F: #D73C9A; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-solar-flare.css: -------------------------------------------------------------------------------- 1 | /* Solar Flare by Chuck Harmston (https://chuck.harmston.ch) */ 2 | 3 | :root { 4 | --base00: #18262F; 5 | --base01: #222E38; 6 | --base02: #586875; 7 | --base03: #667581; 8 | --base04: #85939E; 9 | --base05: #A6AFB8; 10 | --base06: #E8E9ED; 11 | --base07: #F5F7FA; 12 | --base08: #EF5253; 13 | --base09: #E66B2B; 14 | --base0A: #E4B51C; 15 | --base0B: #7CC844; 16 | --base0C: #52CBB0; 17 | --base0D: #33B5E1; 18 | --base0E: #A363D5; 19 | --base0F: #D73C9A; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-solarized-dark.css: -------------------------------------------------------------------------------- 1 | /* Solarized Dark by Ethan Schoonover (http://ethanschoonover.com/solarized) */ 2 | 3 | :root { 4 | --base00: #002b36; 5 | --base01: #073642; 6 | --base02: #586e75; 7 | --base03: #657b83; 8 | --base04: #839496; 9 | --base05: #93a1a1; 10 | --base06: #eee8d5; 11 | --base07: #fdf6e3; 12 | --base08: #dc322f; 13 | --base09: #cb4b16; 14 | --base0A: #b58900; 15 | --base0B: #859900; 16 | --base0C: #2aa198; 17 | --base0D: #268bd2; 18 | --base0E: #6c71c4; 19 | --base0F: #d33682; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-solarized-light.css: -------------------------------------------------------------------------------- 1 | /* Solarized Light by Ethan Schoonover (http://ethanschoonover.com/solarized) */ 2 | 3 | :root { 4 | --base00: #fdf6e3; 5 | --base01: #eee8d5; 6 | --base02: #e5dab8; 7 | --base03: #839496; 8 | --base04: #657b83; 9 | --base05: #586e75; 10 | --base06: #073642; 11 | --base07: #002b36; 12 | --base08: #dc322f; 13 | --base09: #cb4b16; 14 | --base0A: #b58900; 15 | --base0B: #859900; 16 | --base0C: #2aa198; 17 | --base0D: #268bd2; 18 | --base0E: #6c71c4; 19 | --base0F: #d33682; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-spacemacs.css: -------------------------------------------------------------------------------- 1 | /* Spacemacs by Nasser Alshammari (https://github.com/nashamri/spacemacs-theme) */ 2 | 3 | :root { 4 | --base00: #1f2022; 5 | --base01: #282828; 6 | --base02: #444155; 7 | --base03: #585858; 8 | --base04: #b8b8b8; 9 | --base05: #a3a3a3; 10 | --base06: #e8e8e8; 11 | --base07: #f8f8f8; 12 | --base08: #f2241f; 13 | --base09: #ffa500; 14 | --base0A: #b1951d; 15 | --base0B: #67b11d; 16 | --base0C: #2d9574; 17 | --base0D: #4f97d7; 18 | --base0E: #a31db1; 19 | --base0F: #b03060; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-summercamp.css: -------------------------------------------------------------------------------- 1 | /* summercamp by zoe firi (zoefiri.github.io) */ 2 | 3 | :root { 4 | --base00: #1c1810; 5 | --base01: #2a261c; 6 | --base02: #3a3527; 7 | --base03: #504b38; 8 | --base04: #5f5b45; 9 | --base05: #736e55; 10 | --base06: #bab696; 11 | --base07: #f8f5de; 12 | --base08: #e35142; 13 | --base09: #fba11b; 14 | --base0A: #f2ff27; 15 | --base0B: #5ceb5a; 16 | --base0C: #5aebbc; 17 | --base0D: #489bf0; 18 | --base0E: #FF8080; 19 | --base0F: #F69BE7; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-summerfruit-dark.css: -------------------------------------------------------------------------------- 1 | /* Summerfruit Dark by Christopher Corley (http://christop.club/) */ 2 | 3 | :root { 4 | --base00: #151515; 5 | --base01: #202020; 6 | --base02: #303030; 7 | --base03: #505050; 8 | --base04: #B0B0B0; 9 | --base05: #D0D0D0; 10 | --base06: #E0E0E0; 11 | --base07: #FFFFFF; 12 | --base08: #FF0086; 13 | --base09: #FD8900; 14 | --base0A: #ABA800; 15 | --base0B: #00C918; 16 | --base0C: #1FAAAA; 17 | --base0D: #3777E6; 18 | --base0E: #AD00A1; 19 | --base0F: #CC6633; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-summerfruit-light.css: -------------------------------------------------------------------------------- 1 | /* Summerfruit Light by Christopher Corley (http://christop.club/) */ 2 | 3 | :root { 4 | --base00: #FFFFFF; 5 | --base01: #E0E0E0; 6 | --base02: #D0D0D0; 7 | --base03: #B0B0B0; 8 | --base04: #000000; 9 | --base05: #101010; 10 | --base06: #151515; 11 | --base07: #202020; 12 | --base08: #FF0086; 13 | --base09: #FD8900; 14 | --base0A: #ABA800; 15 | --base0B: #00C918; 16 | --base0C: #1FAAAA; 17 | --base0D: #3777E6; 18 | --base0E: #AD00A1; 19 | --base0F: #CC6633; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-synth-midnight-terminal-dark.css: -------------------------------------------------------------------------------- 1 | /* Synth Midnight Terminal Dark by Michaël Ball (http://github.com/michael-ball/) */ 2 | 3 | :root { 4 | --base00: #050608; 5 | --base01: #1a1b1c; 6 | --base02: #28292a; 7 | --base03: #474849; 8 | --base04: #a3a5a6; 9 | --base05: #c1c3c4; 10 | --base06: #cfd1d2; 11 | --base07: #dddfe0; 12 | --base08: #b53b50; 13 | --base09: #c56e1d; 14 | --base0A: #919940; 15 | --base0B: #12a14b; 16 | --base0C: #39bdb9; 17 | --base0D: #1479a9; 18 | --base0E: #993894; 19 | --base0F: #cd6320; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-synth-midnight-terminal-light.css: -------------------------------------------------------------------------------- 1 | /* Synth Midnight Terminal Light by Michaël Ball (http://github.com/michael-ball/) */ 2 | 3 | :root { 4 | --base00: #dddfe0; 5 | --base01: #cfd1d2; 6 | --base02: #c1c3c4; 7 | --base03: #a3a5a6; 8 | --base04: #474849; 9 | --base05: #28292a; 10 | --base06: #1a1b1c; 11 | --base07: #050608; 12 | --base08: #b53b50; 13 | --base09: #ea770d; 14 | --base0A: #5d650c; 15 | --base0B: #09833a; 16 | --base0C: #0f9b96; 17 | --base0D: #03aeff; 18 | --base0E: #a924a1; 19 | --base0F: #cd6320; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-tender.css: -------------------------------------------------------------------------------- 1 | /* tender by Jacobo Tabernero (https://github/com/jacoborus/tender.vim) */ 2 | 3 | :root { 4 | --base00: #282828; 5 | --base01: #383838; 6 | --base02: #484848; 7 | --base03: #4c4c4c; 8 | --base04: #b8b8b8; 9 | --base05: #eeeeee; 10 | --base06: #e8e8e8; 11 | --base07: #feffff; 12 | --base08: #f43753; 13 | --base09: #dc9656; 14 | --base0A: #ffc24b; 15 | --base0B: #c9d05c; 16 | --base0C: #73cef4; 17 | --base0D: #b3deef; 18 | --base0E: #d3b987; 19 | --base0F: #a16946; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-tomorrow-night-blue.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --base00: #002451; 3 | --base01: #002451; 4 | --base02: #003f8e; 5 | --base03: #00346e; 6 | --base04: #ffffff; 7 | --base05: #ffffff; 8 | --base06: #e0e0e0; 9 | --base07: #ffffff; 10 | --base08: #ff9da4 ; 11 | --base09: #ffc58f; 12 | --base0A: #ffeead; 13 | --base0B: #d1f1a9; 14 | --base0C: #99ffff; 15 | --base0D: #bbdaff; 16 | --base0E: #ebbbff; 17 | --base0F: #a3685a; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-tomorrow-night-bright.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --base00: #1d1f21; 3 | --base01: #282a2e; 4 | --base02: #373b41; 5 | --base03: #969896; 6 | --base04: #b4b7b4; 7 | --base05: #c5c8c6; 8 | --base06: #e0e0e0; 9 | --base07: #ffffff; 10 | --base08: #c82829; 11 | --base09: #f5871f; 12 | --base0A: #eab700; 13 | --base0B: #718c00; 14 | --base0C: #3e999f; 15 | --base0D: #4271ae; 16 | --base0E: #8959a8; 17 | --base0F: #a3685a; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-tomorrow-night-eighties.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --base00: #2d2d2d; 3 | --base01: #393939; 4 | --base02: #515151; 5 | --base03: #999999; 6 | --base04: #b4b7b4; 7 | --base05: #cccccc; 8 | --base06: #e0e0e0; 9 | --base07: #ffffff; 10 | --base08: #f2777a; 11 | --base09: #f99157; 12 | --base0A: #ffcc66; 13 | --base0B: #99cc99; 14 | --base0C: #66cccc; 15 | --base0D: #6699cc; 16 | --base0E: #cc99cc; 17 | --base0F: #a3685a; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-tomorrow-night.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #1d1f21; 5 | --base01: #282a2e; 6 | --base02: #373b41; 7 | --base03: #969896; 8 | --base04: #b4b7b4; 9 | --base05: #c5c8c6; 10 | --base06: #e0e0e0; 11 | --base07: #ffffff; 12 | --base08: #cc6666; 13 | --base09: #de935f; 14 | --base0A: #f0c674; 15 | --base0B: #b5bd68; 16 | --base0C: #8abeb7; 17 | --base0D: #81a2be; 18 | --base0E: #b294bb; 19 | --base0F: #a3685a; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow by Chris Kempson (http://chriskempson.com) */ 2 | 3 | :root { 4 | --base00: #ffffff; 5 | --base01: #e0e0e0; 6 | --base02: #d6d6d6; 7 | --base03: #8e908c; 8 | --base04: #969896; 9 | --base05: #4d4d4c; 10 | --base06: #282a2e; 11 | --base07: #1d1f21; 12 | --base08: #c82829; 13 | --base09: #f5871f; 14 | --base0A: #eab700; 15 | --base0B: #718c00; 16 | --base0C: #3e999f; 17 | --base0D: #4271ae; 18 | --base0E: #8959a8; 19 | --base0F: #a3685a; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-twilight.css: -------------------------------------------------------------------------------- 1 | /* Twilight by David Hart (https://github.com/hartbit) */ 2 | 3 | :root { 4 | --base00: #1e1e1e; 5 | --base01: #323537; 6 | --base02: #464b50; 7 | --base03: #5f5a60; 8 | --base04: #838184; 9 | --base05: #a7a7a7; 10 | --base06: #c3c3c3; 11 | --base07: #ffffff; 12 | --base08: #cf6a4c; 13 | --base09: #cda869; 14 | --base0A: #f9ee98; 15 | --base0B: #8f9d6a; 16 | --base0C: #afc4db; 17 | --base0D: #7587a6; 18 | --base0E: #9b859d; 19 | --base0F: #9b703f; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-unikitty-dark.css: -------------------------------------------------------------------------------- 1 | /* Unikitty Dark by Josh W Lewis (@joshwlewis) */ 2 | 3 | :root { 4 | --base00: #2e2a31; 5 | --base01: #4a464d; 6 | --base02: #666369; 7 | --base03: #838085; 8 | --base04: #9f9da2; 9 | --base05: #bcbabe; 10 | --base06: #d8d7da; 11 | --base07: #f5f4f7; 12 | --base08: #d8137f; 13 | --base09: #d65407; 14 | --base0A: #dc8a0e; 15 | --base0B: #17ad98; 16 | --base0C: #149bda; 17 | --base0D: #796af5; 18 | --base0E: #bb60ea; 19 | --base0F: #c720ca; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-unikitty-light.css: -------------------------------------------------------------------------------- 1 | /* Unikitty Light by Josh W Lewis (@joshwlewis) */ 2 | 3 | :root { 4 | --base00: #ffffff; 5 | --base01: #e1e1e2; 6 | --base02: #c4c3c5; 7 | --base03: #a7a5a8; 8 | --base04: #89878b; 9 | --base05: #6c696e; 10 | --base06: #4f4b51; 11 | --base07: #322d34; 12 | --base08: #d8137f; 13 | --base09: #d65407; 14 | --base0A: #dc8a0e; 15 | --base0B: #17ad98; 16 | --base0C: #149bda; 17 | --base0D: #775dff; 18 | --base0E: #aa17e6; 19 | --base0F: #e013d0; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-vulcan.css: -------------------------------------------------------------------------------- 1 | /* vulcan by Andrey Varfolomeev */ 2 | 3 | :root { 4 | --base00: #041523; 5 | --base01: #122339; 6 | --base02: #003552; 7 | --base03: #7a5759; 8 | --base04: #6b6977; 9 | --base05: #5b778c; 10 | --base06: #333238; 11 | --base07: #214d68; 12 | --base08: #818591; 13 | --base09: #9198a3; 14 | --base0A: #adb4b9; 15 | --base0B: #977d7c; 16 | --base0C: #977d7c; 17 | --base0D: #977d7c; 18 | --base0E: #9198a3; 19 | --base0F: #977d7c; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-windows-10-light.css: -------------------------------------------------------------------------------- 1 | /* Windows 10 Light by Fergus Collins (https://github.com/C-Fergus) */ 2 | 3 | :root { 4 | --base00: #f2f2f2; 5 | --base01: #e5e5e5; 6 | --base02: #d9d9d9; 7 | --base03: #cccccc; 8 | --base04: #ababab; 9 | --base05: #767676; 10 | --base06: #414141; 11 | --base07: #0c0c0c; 12 | --base08: #c50f1f; 13 | --base09: #f6661e; 14 | --base0A: #c19c00; 15 | --base0B: #13a10e; 16 | --base0C: #3a96dd; 17 | --base0D: #0037da; 18 | --base0E: #881798; 19 | --base0F: #16c60c; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-windows-10.css: -------------------------------------------------------------------------------- 1 | /* Windows 10 by Fergus Collins (https://github.com/C-Fergus) */ 2 | 3 | :root { 4 | --base00: #0c0c0c; 5 | --base01: #2f2f2f; 6 | --base02: #535353; 7 | --base03: #767676; 8 | --base04: #b9b9b9; 9 | --base05: #cccccc; 10 | --base06: #dfdfdf; 11 | --base07: #f2f2f2; 12 | --base08: #e74856; 13 | --base09: #c19c00; 14 | --base0A: #f9f1a5; 15 | --base0B: #16c60c; 16 | --base0C: #61d6d6; 17 | --base0D: #3b78ff; 18 | --base0E: #b4009e; 19 | --base0F: #13a10e; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-windows-95-light.css: -------------------------------------------------------------------------------- 1 | /* Windows 95 Light by Fergus Collins (https://github.com/C-Fergus) */ 2 | 3 | :root { 4 | --base00: #fcfcfc; 5 | --base01: #e0e0e0; 6 | --base02: #c4c4c4; 7 | --base03: #a8a8a8; 8 | --base04: #7e7e7e; 9 | --base05: #545454; 10 | --base06: #2a2a2a; 11 | --base07: #000000; 12 | --base08: #a80000; 13 | --base09: #f6661e; 14 | --base0A: #a85400; 15 | --base0B: #00a800; 16 | --base0C: #00a8a8; 17 | --base0D: #0000a8; 18 | --base0E: #a800a8; 19 | --base0F: #277627; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-windows-95.css: -------------------------------------------------------------------------------- 1 | /* Windows 95 by Fergus Collins (https://github.com/C-Fergus) */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #1C1C1C; 6 | --base02: #383838; 7 | --base03: #545454; 8 | --base04: #7e7e7e; 9 | --base05: #a8a8a8; 10 | --base06: #d2d2d2; 11 | --base07: #fcfcfc; 12 | --base08: #fc5454; 13 | --base09: #a85400; 14 | --base0A: #fcfc54; 15 | --base0B: #277627; 16 | --base0C: #54fcfc; 17 | --base0D: #5454fc; 18 | --base0E: #fc54fc; 19 | --base0F: #00a800; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-windows-high-contrast-light.css: -------------------------------------------------------------------------------- 1 | /* Windows High Contrast Light by Fergus Collins (https://github.com/C-Fergus) */ 2 | 3 | :root { 4 | --base00: #fcfcfc; 5 | --base01: #e8e8e8; 6 | --base02: #d4d4d4; 7 | --base03: #c0c0c0; 8 | --base04: #7e7e7e; 9 | --base05: #545454; 10 | --base06: #2a2a2a; 11 | --base07: #000000; 12 | --base08: #800000; 13 | --base09: #f6661e; 14 | --base0A: #808000; 15 | --base0B: #008000; 16 | --base0C: #008080; 17 | --base0D: #000080; 18 | --base0E: #800080; 19 | --base0F: #277627; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-windows-high-contrast.css: -------------------------------------------------------------------------------- 1 | /* Windows High Contrast by Fergus Collins (https://github.com/C-Fergus) */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #1C1C1C; 6 | --base02: #383838; 7 | --base03: #545454; 8 | --base04: #a2a2a2; 9 | --base05: #c0c0c0; 10 | --base06: #dedede; 11 | --base07: #fcfcfc; 12 | --base08: #fc5454; 13 | --base09: #808000; 14 | --base0A: #fcfc54; 15 | --base0B: #277627; 16 | --base0C: #54fcfc; 17 | --base0D: #5454fc; 18 | --base0E: #fc54fc; 19 | --base0F: #008000; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-windows-nt-light.css: -------------------------------------------------------------------------------- 1 | /* Windows NT Light by Fergus Collins (https://github.com/C-Fergus) */ 2 | 3 | :root { 4 | --base00: #ffffff; 5 | --base01: #eaeaea; 6 | --base02: #d5d5d5; 7 | --base03: #c0c0c0; 8 | --base04: #a0a0a0; 9 | --base05: #808080; 10 | --base06: #404040; 11 | --base07: #000000; 12 | --base08: #800000; 13 | --base09: #f6661e; 14 | --base0A: #808000; 15 | --base0B: #008000; 16 | --base0C: #008080; 17 | --base0D: #000080; 18 | --base0E: #800080; 19 | --base0F: #00ff00; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-windows-nt.css: -------------------------------------------------------------------------------- 1 | /* Windows NT by Fergus Collins (https://github.com/C-Fergus) */ 2 | 3 | :root { 4 | --base00: #000000; 5 | --base01: #2a2a2a; 6 | --base02: #555555; 7 | --base03: #808080; 8 | --base04: #a1a1a1; 9 | --base05: #c0c0c0; 10 | --base06: #e0e0e0; 11 | --base07: #ffffff; 12 | --base08: #ff0000; 13 | --base09: #808000; 14 | --base0A: #ffff00; 15 | --base0B: #00ff00; 16 | --base0C: #00ffff; 17 | --base0D: #0000ff; 18 | --base0E: #ff00ff; 19 | --base0F: #008000; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-woodland.css: -------------------------------------------------------------------------------- 1 | /* Woodland by Jay Cornwall (https://jcornwall.com) */ 2 | 3 | :root { 4 | --base00: #231e18; 5 | --base01: #302b25; 6 | --base02: #48413a; 7 | --base03: #9d8b70; 8 | --base04: #b4a490; 9 | --base05: #cabcb1; 10 | --base06: #d7c8bc; 11 | --base07: #e4d4c8; 12 | --base08: #d35c5c; 13 | --base09: #ca7f32; 14 | --base0A: #e0ac16; 15 | --base0B: #b7ba53; 16 | --base0C: #6eb958; 17 | --base0D: #88a4d3; 18 | --base0E: #bb90e2; 19 | --base0F: #b49368; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-xcode-dusk.css: -------------------------------------------------------------------------------- 1 | /* XCode Dusk by Elsa Gonsiorowski (https://github.com/gonsie) */ 2 | 3 | :root { 4 | --base00: #282B35; 5 | --base01: #3D4048; 6 | --base02: #53555D; 7 | --base03: #686A71; 8 | --base04: #7E8086; 9 | --base05: #939599; 10 | --base06: #A9AAAE; 11 | --base07: #BEBFC2; 12 | --base08: #B21889; 13 | --base09: #786DC5; 14 | --base0A: #438288; 15 | --base0B: #DF0002; 16 | --base0C: #00A0BE; 17 | --base0D: #790EAD; 18 | --base0E: #B21889; 19 | --base0F: #C77C48; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/others/base16-zenburn.css: -------------------------------------------------------------------------------- 1 | /* Zenburn by elnawe */ 2 | 3 | :root { 4 | --base00: #383838; 5 | --base01: #404040; 6 | --base02: #606060; 7 | --base03: #6f6f6f; 8 | --base04: #808080; 9 | --base05: #dcdccc; 10 | --base06: #c0c0c0; 11 | --base07: #ffffff; 12 | --base08: #dca3a3; 13 | --base09: #dfaf8f; 14 | --base0A: #e0cf9f; 15 | --base0B: #5f7f5f; 16 | --base0C: #93e0e3; 17 | --base0D: #7cb8bb; 18 | --base0E: #dc8cc3; 19 | --base0F: #a33737; 20 | } 21 | -------------------------------------------------------------------------------- /omega-web/lib/themes/variable.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --base00: #f8f4ed; 3 | --base01: #e7e3db; 4 | --base02: #c7d2d4; 5 | --base03: #a4aca7; 6 | --base04: #3a403b; 7 | --base05: #2b312c; 8 | --base06: #141714; 9 | --base07: #090a09; 10 | --base08: #ee3f4d; 11 | --base09: #12aa9c; 12 | --base0A: #619ac3; 13 | --base0B: #41ae3c; 14 | --base0C: #983680; 15 | --base0D: #b78d12; 16 | --base0E: #fc7930; 17 | --base0F: #cc5595; 18 | --defaultBackground: var(--base00, #f8f4ed); 19 | --lighterBackground: var(--base01, #e7e3db); 20 | --selectionBackground: var(--base02, #c7d2d4); 21 | --highlightBackground: var(--base03, #a4aca7); 22 | --darkForeground: var(--base04, #3a403b); 23 | --defaultForeground: var(--base05, #2b312c); 24 | --lightForeground: var(--base06, #141714); 25 | --lightBackground: var(--base07, #090a09); 26 | --primaryColor: var(--base09, #2185d0); 27 | --secondaryColor: var(--base0D, #2b312c); 28 | --positiveColor: var(--base0B, #21ba45); 29 | --negativeColor: var(--base08, #db2828); 30 | --infoColor: var(--base0A, #31ccec); 31 | --warningColor: var(--base0E, #f2c037); 32 | --whiteColor: #fff; 33 | } 34 | -------------------------------------------------------------------------------- /omega-web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "omega-web", 3 | "version": "0.0.1", 4 | "private": true, 5 | "devDependencies": { 6 | "chai": "~1.9.1", 7 | "coffeelint": "^1.16.0", 8 | "grunt": "^0.4.5", 9 | "grunt-autoprefixer": "^1.0.1", 10 | "grunt-bower-task": "^0.5.0", 11 | "grunt-coffeelint": "^0.0.13", 12 | "grunt-contrib-coffee": "^0.11.1", 13 | "grunt-contrib-concat": "^0.5.0", 14 | "grunt-contrib-copy": "^0.5.0", 15 | "grunt-contrib-jade": "^0.12.0", 16 | "grunt-contrib-less": "^0.11.4", 17 | "grunt-contrib-watch": "^0.6.1", 18 | "grunt-mocha-test": "~0.11.0", 19 | "grunt-ng-annotate": "^0.3.2", 20 | "load-grunt-config": "^0.13.1", 21 | "omega-pac": "../omega-pac" 22 | }, 23 | "scripts": { 24 | "dev": "npm link omega-pac && npm link" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /omega-web/src/coffee/log_error.coffee: -------------------------------------------------------------------------------- 1 | window.onerror = (message, url, line, col, err) -> 2 | log = localStorage['log'] || '' 3 | if err?.stack 4 | log += err.stack + '\n\n' 5 | else 6 | log += "#{url}:#{line}:#{col}:\t#{message}\n\n" 7 | localStorage['log'] = log 8 | return 9 | -------------------------------------------------------------------------------- /omega-web/src/coffee/options_guide.coffee: -------------------------------------------------------------------------------- 1 | $script 'lib/tether/tether.js', -> 2 | $script 'lib/shepherd.js/shepherd.min.js', -> 3 | tr = chrome.i18n.getMessage.bind(chrome.i18n) 4 | tour = new Shepherd.Tour 5 | defaults: 6 | classes: 'shepherd-theme-arrows' 7 | scrollTo: true 8 | 9 | targetAnchorClick = 10 | selector: '.shepherd-target a' 11 | event: 'click' 12 | 13 | tour.addStep('fixed-profile-step', 14 | text: tr('options_guide_fixedProfileStep') 15 | attachTo: '.nav-profile[data-profile-type="FixedProfile"] right' 16 | scrollTo: false 17 | advanceOn: targetAnchorClick 18 | buttons: [ 19 | text: tr('options_guideNext') 20 | action: tour.next 21 | ] 22 | ) 23 | 24 | tour.addStep 'fixed-servers-step', 25 | text: tr('options_guide_fixedServersStep') 26 | attachTo: '.fixed-servers top' 27 | scrollTo: false 28 | buttons: [ 29 | text: tr('options_guideNext') 30 | action: tour.next 31 | ] 32 | 33 | tour.addStep 'auto-switch-profile-step', 34 | text: tr('options_guide_autoSwitchProfileStep') 35 | attachTo: '.nav-profile[data-profile-type="SwitchProfile"] right' 36 | scrollTo: false 37 | advanceOn: targetAnchorClick 38 | buttons: [ 39 | text: tr('options_guideNext') 40 | action: tour.next 41 | ] 42 | 43 | tour.addStep 'add-more-profiles-step', 44 | text: tr('options_guide_addMoreProfilesStep') 45 | attachTo: '.nav-new-profile right' 46 | scrollTo: false 47 | advanceOn: targetAnchorClick 48 | buttons: [ 49 | text: tr('options_guideDone') 50 | action: tour.next 51 | ] 52 | 53 | tour.start() 54 | -------------------------------------------------------------------------------- /omega-web/src/less/common.less: -------------------------------------------------------------------------------- 1 | /* angular */ 2 | 3 | .ng-hide { 4 | display: none !important; 5 | } 6 | 7 | /* helpers */ 8 | 9 | .clear-padding { 10 | padding: 0 !important; 11 | } 12 | 13 | /* basic */ 14 | 15 | a[role="button"] { 16 | cursor: pointer; 17 | } 18 | 19 | .form-control.ng-invalid { 20 | border-color: #a94442; 21 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 22 | 23 | &:hover { 24 | border-color: #843534; 25 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #CE8483; 26 | } 27 | } 28 | 29 | .disabled .btn { 30 | background-color: #ddd !important; 31 | border-color: #ccc !important; 32 | cursor: not-allowed !important; 33 | pointer-events: none !important; 34 | opacity: .65 !important; 35 | box-shadow: none !important; 36 | } 37 | 38 | /* profile */ 39 | 40 | .virtual-profile-icon { 41 | border: dotted 1px; 42 | margin: -1px; 43 | } 44 | 45 | .profile-inline { 46 | background-color: #eee; 47 | color: #333; 48 | padding: 0 5px; 49 | } 50 | 51 | /* omega-profile-select */ 52 | 53 | .omega-profile-select { 54 | width: 100%; 55 | .dropdown-menu>li>a { 56 | max-width: none !important; 57 | } 58 | 59 | .btn { 60 | width: 100%; 61 | display: block; 62 | text-align: left; 63 | text-align: initial; 64 | position: relative; 65 | padding-right: 25px; 66 | 67 | .caret { 68 | position: absolute; 69 | top: 50%; 70 | right: 12px; 71 | margin-top: -2px; 72 | vertical-align: middle; 73 | } 74 | } 75 | 76 | .dropdown-menu { 77 | width: 100%; 78 | cursor: pointer; 79 | } 80 | } 81 | 82 | .monospace { 83 | font-family: Menlo,Monaco,Consolas,"Courier New",monospace !important; 84 | } 85 | -------------------------------------------------------------------------------- /omega-web/src/omega/controllers/about.coffee: -------------------------------------------------------------------------------- 1 | angular.module('omega').controller 'AboutCtrl', ($scope, $rootScope, 2 | $modal, omegaDebug) -> 3 | 4 | $scope.downloadLog = omegaDebug.downloadLog 5 | $scope.reportIssue = omegaDebug.reportIssue 6 | 7 | $scope.showResetOptionsModal = -> 8 | $modal.open(templateUrl: 'partials/reset_options_confirm.html').result 9 | .then -> omegaDebug.resetOptions() 10 | 11 | try 12 | $scope.version = omegaDebug.getProjectVersion() 13 | catch _ 14 | $scope.version = '?.?.?' 15 | -------------------------------------------------------------------------------- /omega-web/src/omega/controllers/pac_profile.coffee: -------------------------------------------------------------------------------- 1 | angular.module('omega').controller 'PacProfileCtrl', ($scope, $modal) -> 2 | # coffeelint: disable=max_line_length 3 | 4 | # https://github.com/angular/angular.js/blob/master/src/ng/directive/input.js#L13 5 | $scope.urlRegex = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/ 6 | # With the file: scheme added to the pattern: 7 | $scope.urlWithFile = /^(ftp|http|https|file):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/ 8 | 9 | # coffeelint: enable=max_line_length 10 | 11 | $scope.isFileUrl = OmegaPac.Profiles.isFileUrl 12 | $scope.pacUrlCtrl = {ctrl: null} 13 | 14 | set = OmegaPac.Profiles.referencedBySet($scope.profile, $scope.options) 15 | $scope.referenced = Object.keys(set).length > 0 16 | 17 | oldPacUrl = null 18 | oldLastUpdate = null 19 | oldPacScript = null 20 | onProfileChange = (profile, oldProfile) -> 21 | return unless profile and oldProfile 22 | if profile.pacUrl != oldProfile.pacUrl 23 | if profile.lastUpdate 24 | oldPacUrl = oldProfile.pacUrl 25 | oldLastUpdate = profile.lastUpdate 26 | oldPacScript = oldProfile.pacScript 27 | profile.lastUpdate = null 28 | else if oldPacUrl and profile.pacUrl == oldPacUrl 29 | profile.lastUpdate = oldLastUpdate 30 | profile.pacScript = oldPacScript 31 | $scope.pacUrlIsFile = $scope.isFileUrl(profile.pacUrl) 32 | $scope.$watch 'profile', onProfileChange, true 33 | 34 | $scope.editProxyAuth = (scheme) -> 35 | prop = 'all' 36 | auth = $scope.profile.auth?[prop] 37 | scope = $scope.$new('isolate') 38 | scope.auth = auth && angular.copy(auth) 39 | $modal.open( 40 | templateUrl: 'partials/fixed_auth_edit.html' 41 | scope: scope 42 | size: 'sm' 43 | ).result.then (auth) -> 44 | if not auth?.username 45 | if $scope.profile.auth 46 | $scope.profile.auth[prop] = undefined 47 | else 48 | $scope.profile.auth ?= {} 49 | $scope.profile.auth[prop] = auth 50 | -------------------------------------------------------------------------------- /omega-web/src/omega/controllers/quick_switch.coffee: -------------------------------------------------------------------------------- 1 | angular.module('omega').controller 'QuickSwitchCtrl', ($scope, $filter) -> 2 | $scope.sortableOptions = 3 | tolerance: 'pointer' 4 | axis: 'y' 5 | forceHelperSize: true 6 | forcePlaceholderSize: true 7 | connectWith: '.cycle-profile-container' 8 | containment: '#quick-switch-settings' 9 | 10 | $scope.$watchCollection 'options', (options) -> 11 | return unless options? 12 | $scope.notCycledProfiles = 13 | for profile in $filter('profiles')(options, 'all') when ( 14 | options["-quickSwitchProfiles"].indexOf(profile.name) < 0) 15 | profile.name 16 | -------------------------------------------------------------------------------- /omega-web/src/omega/controllers/rule_list_profile.coffee: -------------------------------------------------------------------------------- 1 | angular.module('omega').controller 'RuleListProfileCtrl', ($scope) -> 2 | $scope.ruleListFormats = OmegaPac.Profiles.ruleListFormats 3 | -------------------------------------------------------------------------------- /omega-web/src/omega/directives.coffee: -------------------------------------------------------------------------------- 1 | angular.module('omega').directive 'inputGroupClear', ($timeout) -> 2 | restrict: 'A' 3 | templateUrl: 'partials/input_group_clear.html' 4 | scope: 5 | 'model': '=model' 6 | 'type': '@type' 7 | 'ngPattern': '=?ngPattern' 8 | 'placeholder': '@placeholder' 9 | 'controller': '=?controller' 10 | link: (scope, element, attrs) -> 11 | scope.catchAll = new RegExp('') 12 | $timeout -> 13 | scope.controller = element.find('input').controller('ngModel') 14 | 15 | scope.oldModel = '' 16 | scope.controller = scope.input 17 | scope.modelChange = -> 18 | if scope.model 19 | scope.oldModel = '' 20 | scope.toggleClear = -> 21 | [scope.model, scope.oldModel] = [scope.oldModel, scope.model] 22 | angular.module('omega').directive 'omegaUpload', -> 23 | restrict: 'A' 24 | scope: 25 | success: '&omegaUpload' 26 | error: '&omegaError' 27 | link: (scope, element, attrs) -> 28 | input = element[0] 29 | element.on 'change', -> 30 | if input.files.length > 0 and input.files[0].name.length > 0 31 | reader = new FileReader() 32 | reader.addEventListener 'load', (e) -> 33 | scope.$apply -> 34 | scope.success({'$content': e.target.result}) 35 | reader.addEventListener 'error', (e) -> 36 | scope.$apply -> 37 | scope.error({'$error': e.target.error}) 38 | reader.readAsText(input.files[0]) 39 | input.value = '' 40 | angular.module('omega').directive 'omegaIp2str', -> 41 | restrict: 'A' 42 | priority: 2 # Run post-link after input directive (0) and ngModel (1). 43 | require: 'ngModel' 44 | link: (scope, element, attr, ngModel) -> 45 | ngModel.$parsers.push (value) -> 46 | if value 47 | OmegaPac.Conditions.fromStr('Ip: ' + value) 48 | else 49 | ({conditionType: 'IpCondition', ip: '0.0.0.0', prefixLength: 0}) 50 | ngModel.$formatters.push (value) -> 51 | if value?.ip 52 | OmegaPac.Conditions.str(value).split(' ', 2)[1] 53 | else 54 | '' 55 | -------------------------------------------------------------------------------- /omega-web/src/omega/filters.coffee: -------------------------------------------------------------------------------- 1 | angular.module('omega').filter 'profiles', (builtinProfiles, profileOrder, 2 | isProfileNameHidden, isProfileNameReserved) -> 3 | 4 | charCodePlus = '+'.charCodeAt(0) 5 | builtinProfileList = (profile for _, profile of builtinProfiles) 6 | (options, filter) -> 7 | result = [] 8 | for name, value of options when name.charCodeAt(0) == charCodePlus 9 | result.push value 10 | if (typeof filter == 'object' or ( 11 | typeof filter == 'string' and filter.charCodeAt(0) == charCodePlus)) 12 | if typeof filter == 'string' 13 | filter = filter.substr(1) 14 | result = OmegaPac.Profiles.validResultProfilesFor(filter, options) 15 | if filter == 'all' 16 | result = result.filter (profile) -> !isProfileNameHidden(profile.name) 17 | result = result.concat builtinProfileList 18 | else 19 | result = result.filter (profile) -> !isProfileNameReserved(profile.name) 20 | if filter == 'sorted' 21 | result.sort profileOrder 22 | result 23 | 24 | angular.module('omega').filter 'tr', (omegaTarget) -> omegaTarget.getMessage 25 | angular.module('omega').filter 'dispName', (omegaTarget) -> 26 | (name) -> 27 | if typeof name == 'object' 28 | name = name.name 29 | omegaTarget.getMessage('profile_' + name) || name 30 | -------------------------------------------------------------------------------- /omega-web/src/partials/about.jade: -------------------------------------------------------------------------------- 1 | .page-header 2 | h2 {{'about_title' | tr}} 3 | section.omega-experimental(ng-show='isExperimental') 4 | p.alert.alert-warning 5 | span.glyphicon.glyphicon-warning-sign 6 | = ' ' 7 | span {{'about_experimental_warning_moz' | tr}} 8 | section 9 | .media(style='margin: 1em 0') 10 | .media-left 11 | img.media-object(src='img/icons/omega-action-32.png') 12 | .media-body 13 | h4.media-heading {{'appNameShort' | tr}} 14 | p {{'about_app_description' | tr}} 15 | section 16 | p 17 | button.btn.btn-info(ng-click='reportIssue()') 18 | span.glyphicon.glyphicon-comment 19 | = ' ' 20 | | {{'popup_reportIssues' | tr}} 21 | = ' ' 22 | button.btn.btn-default(ng-click='downloadLog()') 23 | span.glyphicon.glyphicon-download 24 | = ' ' 25 | | {{'popup_errorLog' | tr}} 26 | = ' ' 27 | button.btn.btn-danger(ng-click='showResetOptionsModal()') 28 | span.glyphicon.glyphicon-alert 29 | = ' ' 30 | | {{'options_reset' | tr}} 31 | section 32 | p 33 | | {{'about_version' | tr:[version]}} 34 | p.text-warning 35 | span.glyphicon.glyphicon-info-sign 36 | = ' ' 37 | span(ng-bind-html='"about_disclaimer_networkService" | tr') 38 | p.text-success 39 | span.glyphicon.glyphicon-eye-close 40 | = ' ' 41 | span(ng-bind-html='"about_disclaimer_privacy" | tr') 42 | p.text-info 43 | span.glyphicon.glyphicon-question-sign 44 | = ' ' 45 | span(ng-bind-html='"about_help" | tr') 46 | 47 | section(style='margin-top: 7em') 48 | p 49 | | {{'appNameShort' | tr}} 50 | br 51 | span(ng-bind-html='"about_copyright" | tr') 52 | br 53 | span(ng-bind-html='"about_license" | tr') 54 | br 55 | span(ng-bind-html='"about_credits" | tr') 56 | -------------------------------------------------------------------------------- /omega-web/src/partials/apply_options_confirm.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_applyOptions' | tr}} 6 | .modal-body 7 | p {{'options_applyOptionsRequired' | tr}} 8 | p {{'options_applyOptionsConfirm' | tr}} 9 | .modal-footer 10 | button.btn.btn-default(ng-click='$dismiss()') {{'dialog_cancel' | tr}} 11 | button.btn.btn-primary(type='button' ng-click='$close("ok")') {{'options_apply' | tr}} 12 | -------------------------------------------------------------------------------- /omega-web/src/partials/cannot_delete_profile.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_cannotDeleteProfile' | tr}} 6 | .modal-body 7 | p {{'options_profileReferredBy' | tr}} 8 | .well 9 | ul.list-style-none 10 | li(ng-repeat='p in refs') 11 | span(omega-profile-inline='p' options='options' disp-name='dispNameFilter') 12 | p {{'options_modifyReferringProfiles' | tr}} 13 | .modal-footer 14 | button.btn.btn-default(ng-click='$dismiss()') {{'dialog_cancel' | tr}} 15 | -------------------------------------------------------------------------------- /omega-web/src/partials/delete_attached.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_deleteAttached' | tr}} 6 | .modal-body 7 | p {{'options_deleteAttachedConfirm' | tr}} 8 | .well 9 | span(omega-profile-icon='attached' options='options') 10 | = ' ' 11 | | {{attached.sourceUrl || ('options_ruleListLineCount' | tr:[attached.ruleList.split('\n').length])}} 12 | .modal-footer 13 | button.btn.btn-default(ng-click='$dismiss()') {{'dialog_cancel' | tr}} 14 | button.btn.btn-danger(type='button' ng-click='$close("ok")') {{'options_deleteAttached' | tr}} 15 | -------------------------------------------------------------------------------- /omega-web/src/partials/delete_profile.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_deleteProfile' | tr}} 6 | .modal-body 7 | p {{'options_deleteProfileConfirm' | tr}} 8 | .well 9 | span(omega-profile-inline='profile' options='options' disp-name='dispNameFilter') 10 | .modal-footer 11 | button.btn.btn-default(ng-click='$dismiss()') {{'dialog_cancel' | tr}} 12 | button.btn.btn-danger(type='button' ng-click='$close("ok")') {{'options_deleteProfile' | tr}} 13 | -------------------------------------------------------------------------------- /omega-web/src/partials/fixed_auth_edit.jade: -------------------------------------------------------------------------------- 1 | form(ng-submit='authForm.$valid && $close(auth)' name='authForm') 2 | .modal-header 3 | button.close(type='button' ng-click='$dismiss()') 4 | span(aria-hidden='true') × 5 | span.sr-only Close 6 | h4.modal-title {{'options_modalHeader_proxyAuth' | tr}} 7 | .modal-body(style='padding-bottom: 0;') 8 | .form-group(ng-show='!authSupported') 9 | .alert.alert-danger 10 | span.glyphicon.glyphicon-warning-sign 11 | = ' ' 12 | | {{"options_proxy_authNotSupported" | tr:[protocolDisp]}} 13 | .form-group 14 | label.sr-only {{'options_proxyAuthUsername' | tr}} 15 | div(input-group-clear type='text' model='auth.username' autofocus 16 | placeholder='{{"options_proxyAuthUsername" | tr}}') 17 | .form-group(ng-class='{"has-error": !authForm.password.$valid}') 18 | label.sr-only {{'options_proxyAuthPassword' | tr}} 19 | .input-group 20 | input.form-control(type='text' name='password' ng-model='auth.password' 21 | ng-attr-type='{{showPassword ? "text" : "password"}}' 22 | placeholder='{{"options_proxyAuthPassword" | tr}}' ng-show='!!auth.username') 23 | input.form-control(type='text' value='' placeholder='{{"options_proxyAuthNone" | tr}}' 24 | disabled ng-show='!auth.username') 25 | span.input-group-btn 26 | button.btn.btn-default(type='button' ng-click='showPassword = !showPassword' 27 | title="{{(showPassword ? 'options_proxyAuthHidePassword' : 'options_proxyAuthShowPassword') | tr}}" ng-disabled='!auth.username') 28 | span.glyphicon(ng-class='{"glyphicon-eye-close": !showPassword, "glyphicon-eye-open": !!showPassword}') 29 | .modal-footer 30 | button.btn.btn-default(type='button' ng-click='$dismiss()') {{'dialog_cancel' | tr}} 31 | button.btn.btn-primary(type='submit' ng-disabled='!authForm.$valid') {{'dialog_save' | tr}} 32 | -------------------------------------------------------------------------------- /omega-web/src/partials/general.jade: -------------------------------------------------------------------------------- 1 | .page-header 2 | h2 {{'options_tab_general' | tr}} 3 | section.settings-group 4 | h3 {{'options_group_networkRequests' | tr}} 5 | div.checkbox 6 | label 7 | input#revert-proxy-changes(type='checkbox' ng-model='options["-monitorWebRequests"]') 8 | span {{'options_monitorWebRequests' | tr}} 9 | p.help-block(omega-html="'options_monitorWebRequestsHelp' | tr") 10 | section.settings-group.width-limit 11 | h3 {{'options_downloadOptions' | tr}} 12 | p.help-block {{'options_downloadOptionsHelp' | tr}} 13 | .form-group 14 | label(for='download-interval') {{'options_downloadInterval' | tr}} 15 | select#download-interval.form-control.inline-form-control(ng-model='options["-downloadInterval"]' 16 | ng-options='interval as (downloadIntervalI18n(interval) | tr) for interval in downloadIntervals') 17 | section.settings-group.width-limit 18 | h3 {{'options_group_conflicts' | tr}} 19 | p {{'options_conflicts_introduction' | tr}} 20 | p.help-text.text-danger 21 | span(style='padding: 1px 4px; background: #da4f49; color: #fff; box-shadow: #ccc 1px 1px 1px 1px;') = 22 | = ' ' 23 | | {{'options_conflicts_lowerPriority' | tr}} 24 | p.help-text.text-info 25 | span.glyphicon.glyphicon-info-sign 26 | = ' ' 27 | span(omega-html="'options_conflicts_higherPriority' | tr:[$profile('systemProfile')]") 28 | 29 | div.checkbox 30 | label 31 | input#revert-proxy-changes(type='checkbox' ng-model='options["-showExternalProfile"]') 32 | span {{'options_showExternalProfile' | tr}} 33 | p.help-block(omega-html="'options_showExternalProfileHelp' | tr:[$profile('systemProfile'), $profile('externalProfile')]") 34 | -------------------------------------------------------------------------------- /omega-web/src/partials/input_group_clear.jade: -------------------------------------------------------------------------------- 1 | .input-group 2 | input.form-control(ng-model='model' ng-attr-type='{{type}}' ng-pattern='ngPattern || catchAll' 3 | placeholder='{{placeholder}}' ng-change='modelChange()') 4 | span.input-group-btn 5 | button.btn.btn-default.input-group-clear-btn(type='button' ng-click='toggleClear()' 6 | ng-disabled='!model && !oldModel' title="{{'inputClear_' + (oldModel ? 'restore' : 'clear') | tr}}") 7 | span.glyphicon(ng-class='{"glyphicon-remove": !oldModel, "glyphicon-repeat": !!oldModel}') 8 | -------------------------------------------------------------------------------- /omega-web/src/partials/omega_profile_select.jade: -------------------------------------------------------------------------------- 1 | .btn-group.omega-profile-select(dropdown on-toggle="toggled(open)") 2 | button.btn.btn-default.dropdown-toggle(dropdown-toggle type='button' aria-expanded='false' 3 | role='listbox' aria-haspopup='true') 4 | span(omega-profile-icon='selectedProfile' options='options' icon='selectedProfile ? undefined : "glyphicon-time"') 5 | = ' ' 6 | span(ng-show='!!profileName') {{getName(selectedProfile)}} 7 | span(ng-show='!profileName') {{defaultText}} 8 | = ' ' 9 | span.caret 10 | ul.dropdown-menu(role='listbox') 11 | li(role='option' ng-if='!!defaultText' ng-class='{active: profileName == ""}') 12 | a(ng-click='setProfileName("")') 13 | span.glyphicon.glyphicon-time 14 | = ' {{defaultText}}' 15 | li(role='option' ng-repeat='profile in dispProfiles' ng-class='{active: profileName == profile.name}') 16 | a(ng-click='setProfileName(profile.name)') 17 | span(omega-profile-icon='profile' options='options') 18 | = ' {{getName(profile)}}' 19 | -------------------------------------------------------------------------------- /omega-web/src/partials/options_welcome.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_welcome' | tr}} 6 | .modal-body 7 | p(ng-show="upgrade") {{'options_welcomeUpgrade' | tr}} 8 | p(ng-show="upgrade") {{'options_welcomeUpgradeGuide' | tr}} 9 | p(ng-show="!upgrade") {{'options_welcomeNormal' | tr}} 10 | p(ng-show="!upgrade") {{'options_welcomeNormalGuide' | tr}} 11 | .modal-footer 12 | button.btn.btn-default(ng-click='$close("skip")') {{'options_guideSkip' | tr}} 13 | button.btn.btn-primary(type='button' ng-click='$close("show")') {{'options_guideNext' | tr}} 14 | -------------------------------------------------------------------------------- /omega-web/src/partials/profile.jade: -------------------------------------------------------------------------------- 1 | .page-header 2 | .profile-actions 3 | button.btn(ng-show='exportRuleList' ng-click='exportRuleList(profile.name)' 4 | title="{{'options_profileExportRuleListHelp' | tr}}" 5 | ng-class="exportRuleListOptions.warning ? 'btn-warning' : 'btn-default'") 6 | span.glyphicon.glyphicon-list 7 | = ' ' 8 | | {{'options_profileExportRuleList' | tr}} 9 | = ' ' 10 | button.btn.btn-default(ng-show='scriptable' ng-click='exportScript(profile.name)' title="{{'options_exportPacFileHelp' | tr}}") 11 | span.glyphicon.glyphicon-download 12 | = ' ' 13 | | {{'options_profileExportPac' | tr}} 14 | = ' ' 15 | button.btn.btn-default(ng-click='renameProfile(profile.name)') 16 | span.glyphicon.glyphicon-edit 17 | = ' ' 18 | | {{'options_renameProfile' | tr}} 19 | = ' ' 20 | button.btn.btn-danger(ng-click='deleteProfile(profile.name)') 21 | span.glyphicon.glyphicon-trash 22 | = ' ' 23 | | {{'options_deleteProfile' | tr}} 24 | span.profile-color-editor 25 | .profile-color-editor-fake(ng-if='profile.profileType == "VirtualProfile"' 26 | ng-style="{'background-color': getProfileColor()}") 27 | x-spectrum-colorpicker(ng-model='profile.color' options='spectrumOptions' 28 | ng-if='profile.profileType != "VirtualProfile"') 29 | h2.profile-name {{'options_profileTabPrefix' | tr}}{{profile.name}} 30 | section.settings-group(ng-show='profile.syncOptions == "disabled"') 31 | p.alert.alert-info.width-limit(ng-show='!profile.syncError') 32 | span.glyphicon.glyphicon-info-sign 33 | = ' ' 34 | | {{'Syncing is disabled for this profile.'}} 35 | p.alert.alert-danger.width-limit(ng-show='!!profile.syncError') 36 | span.glyphicon.glyphicon-remove 37 | = ' ' 38 | | {{('options_profileSyncDisabled_' + profile.syncError.reason) | tr}} 39 | div(ng-include='profileTemplate') 40 | -------------------------------------------------------------------------------- /omega-web/src/partials/profile_rule_list.jade: -------------------------------------------------------------------------------- 1 | div(ng-controller='RuleListProfileCtrl') 2 | section.settings-group 3 | h3 {{'options_group_ruleListConfig' | tr}} 4 | .form-group 5 | label {{'options_ruleListMatchProfile' | tr}} 6 | = ' ' 7 | div(omega-profile-select='options | profiles:profile' ng-model='profile.matchProfileName' 8 | disp-name='dispNameFilter' options='options' style='display: inline-block;') 9 | .form-group 10 | label {{'options_ruleListDefaultProfile' | tr}} 11 | = ' ' 12 | div(omega-profile-select='options | profiles:profile' ng-model='profile.defaultProfileName' 13 | disp-name='dispNameFilter' options='options' style='display: inline-block;') 14 | form.form-group 15 | label {{'options_ruleListFormat' | tr}} 16 | .radio.inline-form-control.no-min-width(ng-repeat='format in ruleListFormats') 17 | label 18 | input(type='radio' name='formatInput' value='{{format}}' ng-model='profile.format') 19 | | {{'ruleListFormat_' + format | tr}} 20 | section.settings-group 21 | h3 {{'options_group_ruleListUrl' | tr}} 22 | .width-limit(input-group-clear type='url' model='profile.sourceUrl' ng-if='profile') 23 | p.help-block {{'options_ruleListUrlHelp' | tr}} 24 | section.settings-group 25 | h3 {{'options_group_ruleListText' | tr}} 26 | p 27 | button.btn.btn-default(ng-disabled='!profile.sourceUrl' ng-click='updateProfile(profile.name)' 28 | ladda='updatingProfile[profile.name]' data-spinner-color="#000000") 29 | | #[span.glyphicon.glyphicon-download-alt] {{'options_downloadProfileNow' | tr}} 30 | textarea.monospace.form-control.width-limit(ng-model='profile.ruleList' rows=20 31 | ng-readonly='!!profile.sourceUrl') 32 | 33 | -------------------------------------------------------------------------------- /omega-web/src/partials/profile_unsupported.jade: -------------------------------------------------------------------------------- 1 | .lead 2 | | {{'options_profileUnsupported' | tr:profile.profileType}} 3 | p {{'options_profileUnsupportedHelp' | tr}} 4 | -------------------------------------------------------------------------------- /omega-web/src/partials/profile_virtual.jade: -------------------------------------------------------------------------------- 1 | div 2 | section.settings-group 3 | h3 {{'options_group_virtualProfile' | tr}} 4 | p.help-block 5 | | {{'options_virtualProfileTargetHelp' | tr}} 6 | .form-group 7 | label {{'options_virtualProfileTarget' | tr}} 8 | = ' ' 9 | div(omega-profile-select='options | profiles:profile' ng-model='profile.defaultProfileName' 10 | disp-name='dispNameFilter' style='display: inline-block;' options='options') 11 | section.settings-group 12 | h3 {{'options_group_virtualProfileReplace' | tr}} 13 | p.help-block(omega-html='"options_virtualProfileReplaceHelp" | tr:[$profile("profileByName(profile.defaultProfileName)")]') 14 | .form-group 15 | button.btn.btn-default(ng-click='replaceProfile(profile.defaultProfileName, profile.name)') 16 | span.glyphicon.glyphicon-search 17 | = ' ' 18 | | {{'options_virtualProfileReplace' | tr}} 19 | -------------------------------------------------------------------------------- /omega-web/src/partials/rename_profile.jade: -------------------------------------------------------------------------------- 1 | form(ng-submit='renameProfile.$valid && $close(newName)' name='renameProfile') 2 | .modal-header 3 | button.close(type='button' ng-click='$dismiss()') 4 | span(aria-hidden='true') × 5 | span.sr-only {{'dialog_close' | tr}} 6 | h4.modal-title {{'options_modalHeader_renameProfile' | tr}} 7 | .modal-body 8 | .form-group(ng-class='{"has-error": !renameProfile.profileNewName.$valid}') 9 | label(for='profile-new-name') {{'options_renameProfileName' | tr}} 10 | input#profile-new-name.form-control(type='text' name='profileNewName' required ng-model='newName' 11 | ui-validate='validateProfileName' ng-init='newName = fromName') 12 | .help-block(ng-show='renameProfile.profileNewName.$error.required') {{'options_profileNameEmpty' | tr}} 13 | .help-block(ng-show='renameProfile.profileNewName.$error.reserved') {{'options_profileNameReserved' | tr}} 14 | .help-block(ng-show='!renameProfile.profileNewName.$error.reserved && renameProfile.profileNewName.$error.conflict') 15 | | {{'options_profileNameConflict' | tr}} 16 | .help-block(ng-show='renameProfile.profileNewName.$valid && newName && isProfileNameHidden(newName)') 17 | .text-info 18 | span.glyphicon.glyphicon-info-sign 19 | = ' ' 20 | | {{'options_profileNameHidden' | tr}} 21 | .modal-footer 22 | button.btn.btn-default(type='button' ng-click='$dismiss()') {{'dialog_cancel' | tr}} 23 | button.btn.btn-primary(type='submit' ng-disabled='!renameProfile.$valid') {{'options_renameProfile' | tr}} 24 | -------------------------------------------------------------------------------- /omega-web/src/partials/replace_profile.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_replaceProfile' | tr}} 6 | .modal-body 7 | p(omega-html='"options_replaceProfileConfirm" | tr:[profileSelect("fromName"), profileSelect("toName")]') 8 | .well 9 | span(omega-profile-inline='profileByName(fromName)' options='options' disp-name='dispNameFilter') 10 | = ' ' 11 | span.glyphicon.glyphicon-chevron-right 12 | = ' ' 13 | span(omega-profile-inline='profileByName(toName)' options='options' disp-name='dispNameFilter') 14 | .help-block(omega-html="'options_replaceProfileHelp' | tr:[$profile('profileByName(fromName)'), $profile('profileByName(toName)')]") 15 | .modal-footer 16 | button.btn.btn-default(ng-click='$dismiss()') {{'dialog_cancel' | tr}} 17 | button.btn.btn-warning(type='button' ng-click='$close({fromName: fromName, toName: toName})') {{'options_replaceProfile' | tr}} 18 | -------------------------------------------------------------------------------- /omega-web/src/partials/reset_options_confirm.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_resetOptions' | tr}} 6 | .modal-body 7 | p.text-danger {{'options_resetOptionsConfirm' | tr}} 8 | .modal-footer 9 | button.btn.btn-default(ng-click='$dismiss()') {{'dialog_cancel' | tr}} 10 | button.btn.btn-danger(type='button' ng-click='$close("ok")') {{'options_reset' | tr}} 11 | -------------------------------------------------------------------------------- /omega-web/src/partials/rule_remove_confirm.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_deleteRule' | tr}} 6 | .modal-body 7 | p {{'options_deleteRuleConfirm' | tr}} 8 | div.well 9 | span.label.label-info {{'condition_' + rule.condition.conditionType | tr}} 10 | = ' ' 11 | | {{rule.condition.pattern}} 12 | span.pull-right 13 | span(omega-profile-inline='ruleProfile' disp-name='dispNameFilter' options='options') 14 | .modal-footer 15 | button.btn.btn-default(ng-click='$dismiss()') {{'dialog_cancel' | tr}} 16 | button.btn.btn-danger(type='button' ng-click='$close("ok")') {{'options_deleteRule' | tr}} 17 | -------------------------------------------------------------------------------- /omega-web/src/partials/rule_reset_confirm.jade: -------------------------------------------------------------------------------- 1 | .modal-header 2 | button.close(type='button' ng-click='$dismiss()') 3 | span(aria-hidden='true') × 4 | span.sr-only {{'dialog_close' | tr}} 5 | h4.modal-title {{'options_modalHeader_resetRules' | tr}} 6 | .modal-body 7 | p {{'options_resetRulesConfirm' | tr}} 8 | .well 9 | span(omega-profile-inline='ruleProfile' disp-name='dispNameFilter' options='options') 10 | .modal-footer 11 | button.btn.btn-default(ng-click='$dismiss()') {{'dialog_cancel' | tr}} 12 | button.btn.btn-warning(type='button' ng-click='$close("ok")') {{'options_resetRules' | tr}} 13 | -------------------------------------------------------------------------------- /omega-web/src/partials/theme.jade: -------------------------------------------------------------------------------- 1 | .page-header 2 | h2 {{'Theme'}} 3 | section.settings-group 4 | h3 {{'Theme'}} 5 | p 6 | button.btn.btn-default(type='button' role='button' ng-click='changeTheme("default-dark")') 7 | span.glyphicon.glyphicon-heart 8 | = ' ' 9 | | {{'Dark'}} 10 | button.btn.btn-default(type='button' role='button' ng-click='changeTheme("default-light")') 11 | span.glyphicon.glyphicon-heart-empty 12 | = ' ' 13 | | {{'Light'}} 14 | button.btn.btn-default(type='button' role='button' ng-click='changeTheme("default-auto")') 15 | span.glyphicon.glyphicon-adjust 16 | = ' ' 17 | | {{'Auto'}} 18 | button.btn.btn-default(type='button' role='button' ng-click='changeTheme("")') 19 | span.glyphicon.glyphicon-remove 20 | = ' ' 21 | | {{'Clear'}} 22 | select.form-control.inline-form-control(ng-model='selectedItem.data' 23 | ng-options='item as item.displayName for item in themeItems track by item.key' ng-change="selectTheme()") 24 | p.help-block 25 | a(href='https://en.wikipedia.org/wiki/CSS' target='_blank') 26 | | {{'Cascading Style Sheets (CSS) Wiki'}} 27 | textarea.monospace.form-control.width-limit(rows='30' spellcheck='false' ng-model='options["-customCss"]') 28 | -------------------------------------------------------------------------------- /omega-web/src/popup/grant_permissions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /omega-web/src/popup/js/grant_permissions.js: -------------------------------------------------------------------------------- 1 | 2 | const btn = document.querySelector('#grant-permissions-btn') 3 | btn.onclick = async ()=>{ 4 | const permissionValue = {origins: [""]} 5 | const hasPermission = await browser.permissions.request(permissionValue); 6 | if (hasPermission) { 7 | location.href = 'index.html' 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /omega-web/src/popup/js/i18n.js: -------------------------------------------------------------------------------- 1 | $script.ready('om-page-info', function() { 2 | document.querySelector('#js-direct .om-profile-name').textContent = 3 | OmegaTargetPopup.getMessage('profile_direct'); 4 | document.querySelector('#js-system .om-profile-name').textContent = 5 | OmegaTargetPopup.getMessage('profile_system'); 6 | document.querySelector('#js-addrule-label').textContent = 7 | OmegaTargetPopup.getMessage('popup_addCondition'); 8 | document.querySelector('#js-option-label').textContent = 9 | OmegaTargetPopup.getMessage('popup_showOptions'); 10 | }); 11 | -------------------------------------------------------------------------------- /omega-web/src/popup/js/index.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | handleClick('js-option', showOptions); 3 | handleClick('js-temprule', showTempRuleDropdown); 4 | handleClick('js-direct', applyProfile.bind(this, 'direct')); 5 | handleClick('js-system', applyProfile.bind(this, 'system')); 6 | OmegaPopup.addTempRule = addTempRule; 7 | OmegaPopup.setDefaultProfile = setDefaultProfile; 8 | OmegaPopup.applyProfile = applyProfile; 9 | return; 10 | 11 | function handleClick(id, handler) { 12 | document.getElementById(id).addEventListener('click', handler, false); 13 | } 14 | 15 | function closePopup() { 16 | window.close(); 17 | // If the popup is opened as a tab, the above won't work. Let's reload then. 18 | document.body.style.opacity = 0; 19 | setTimeout(function() { history.go(0); }, 300); 20 | } 21 | 22 | function showOptions(e) { 23 | if (typeof OmegaTargetPopup !== 'undefined') { 24 | try { 25 | OmegaTargetPopup.openOptions(null, closePopup); 26 | e.preventDefault(); 27 | } catch (_) { 28 | } 29 | } 30 | } 31 | 32 | function applyProfile(profileName) { 33 | $script.ready('om-target', function() { 34 | OmegaTargetPopup.applyProfile(profileName, closePopup); 35 | }); 36 | } 37 | 38 | function setDefaultProfile(profileName, defaultProfileName) { 39 | $script.ready('om-target', function() { 40 | OmegaTargetPopup.setDefaultProfile(profileName, defaultProfileName, 41 | closePopup); 42 | }); 43 | } 44 | 45 | function addTempRule(domain, profileName) { 46 | $script.ready('om-target', function() { 47 | OmegaTargetPopup.addTempRule(domain, profileName, closePopup); 48 | }); 49 | } 50 | 51 | function showTempRuleDropdown() { 52 | $script.ready('om-dropdowns', function() { 53 | OmegaPopup.showTempRuleDropdown(); 54 | }); 55 | } 56 | })(); 57 | -------------------------------------------------------------------------------- /omega-web/src/popup/js/keyboard_help.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var keyForId = { 3 | 'js-direct': '0', 4 | 'js-system': 'S', 5 | 'js-external': 'E', 6 | 'js-addrule': 'A', 7 | 'js-temprule': 'T', 8 | 'js-option': 'O', 9 | 'js-reqinfo': 'R' 10 | } 11 | Object.keys(keyForId).forEach(function (id) { 12 | showHelp(id, keyForId[id]); 13 | }); 14 | 15 | for (var i = 1; i <= 9; i++) { 16 | showHelp('js-profile-' + i, '' + i); 17 | } 18 | 19 | return; 20 | 21 | function showHelp(id, key) { 22 | var element = document.getElementById(id); 23 | if (!element) return; 24 | if (!element.querySelector('.om-keyboard-help')) { 25 | var span = document.createElement('span'); 26 | span.classList.add('om-keyboard-help'); 27 | span.textContent = key; 28 | var reference = element.querySelector('.glyphicon'); 29 | reference.parentNode.insertBefore(span, reference.nextSibling); 30 | } 31 | } 32 | })(); 33 | -------------------------------------------------------------------------------- /omega-web/src/popup/js/loader.js: -------------------------------------------------------------------------------- 1 | window.OmegaPopup = {}; 2 | $script(['js/index.js', 'js/profiles.js', 'js/keyboard.js'], 'om-main'); 3 | $script(['js/i18n.js']); 4 | $script('../js/omega_target_popup.js', 'om-target', function() { 5 | $script('js/style.js', 'om-style') 6 | function init(){ 7 | OmegaTargetPopup.getActivePageInfo(function(err, info) { 8 | window.OmegaPopup.pageInfo = info; 9 | $script.done('om-page-info'); 10 | }); 11 | OmegaTargetPopup.getState([ 12 | 'availableProfiles', 13 | 'currentProfileName', 14 | 'validResultProfiles', 15 | 'isSystemProfile', 16 | 'currentProfileCanAddRule', 17 | 'proxyNotControllable', 18 | 'externalProfile', 19 | 'showExternalProfile', 20 | 'customCss', 21 | ], function(err, state) { 22 | window.OmegaPopup.state = state; 23 | $script.done('om-state'); 24 | }); 25 | } 26 | const permissionValue = {origins: [""]} 27 | if (globalThis.browser && browser.proxy && browser.proxy.onRequest){ 28 | chrome.permissions.contains(permissionValue).then((hasPermission)=>{ 29 | if (!hasPermission) { 30 | location.href = 'grant_permissions.html' 31 | } else { 32 | init(); 33 | } 34 | }) 35 | } else { 36 | init(); 37 | } 38 | }); 39 | -------------------------------------------------------------------------------- /omega-web/src/popup/js/proxy_not_controllable.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | function closePopup() { 3 | window.close(); 4 | // If the popup is opened as a tab, the above won't work. Let's reload then. 5 | document.body.style.opacity = 0; 6 | setTimeout(function() { history.go(0); }, 300); 7 | } 8 | var closeButton = document.getElementById('js-close'); 9 | closeButton.addEventListener('click', closePopup, false); 10 | 11 | var manageButton = document.getElementById('js-manage-ext'); 12 | manageButton.addEventListener('click', function () { 13 | OmegaTargetPopup.openManage(closePopup); 14 | }, false); 15 | 16 | var learnMoreButton = document.getElementById('js-nc-learn-more'); 17 | learnMoreButton.addEventListener('click', function () { 18 | OmegaTargetPopup.openOptions('#!/general', closePopup); 19 | }, false); 20 | 21 | closeButton.textContent = OmegaTargetPopup.getMessage('dialog_cancel'); 22 | learnMoreButton.textContent = 'Learn More' 23 | //OmegaTargetPopup.getMessage('popup_proxyNotControllableLearnMore'); 24 | manageButton.textContent = OmegaTargetPopup.getMessage( 25 | 'popup_proxyNotControllableManage'); 26 | 27 | 28 | OmegaTargetPopup.getState([ 29 | 'proxyNotControllable', 30 | ], function(err, state) { 31 | var reason = state.proxyNotControllable; 32 | var messageElement = document.getElementById('js-nc-text'); 33 | var detailsElement = document.getElementById('js-nc-details'); 34 | messageElement.textContent = OmegaTargetPopup.getMessage( 35 | 'popup_proxyNotControllable_' + reason); 36 | var detailsMessage = OmegaTargetPopup.getMessage( 37 | 'popup_proxyNotControllableDetails_' + reason); 38 | if (!detailsMessage) detailsMessage = OmegaTargetPopup.getMessage( 39 | 'popup_proxyNotControllableDetails'); 40 | 41 | detailsElement.textContent = detailsMessage; 42 | }); 43 | })(); 44 | -------------------------------------------------------------------------------- /omega-web/src/popup/js/style.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | async function updateStyle(){ 3 | OmegaTargetPopup.getState(['customCss'], function(err, state) { 4 | const { customCss } = state; 5 | document.querySelectorAll('.om-style').forEach((el)=>el.remove()) 6 | const styleEl = document.createElement('style') 7 | styleEl.classList.add('om-style') 8 | if (customCss) { 9 | document.head.append(styleEl) 10 | styleEl.innerHTML = customCss 11 | } 12 | }) 13 | } 14 | updateStyle(); 15 | })(); 16 | -------------------------------------------------------------------------------- /omega-web/src/popup/proxy_not_controllable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SwitchyOmega Popup 6 | 7 | 8 | 9 | 10 |
11 |

12 |

13 |

14 | 15 | 16 | 17 |

18 |
19 | 20 | 21 | 22 | 23 | 24 | --------------------------------------------------------------------------------