diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..0a8ffdd
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1 @@
+src/convenience.js
diff --git a/.eslintrc.yml b/.eslintrc.yml
new file mode 100644
index 0000000..74050d3
--- /dev/null
+++ b/.eslintrc.yml
@@ -0,0 +1,4 @@
+extends:
+ - ./lint/eslintrc-gjs.yml
+ - ./lint/eslintrc-shell.yml
+ - ./lint/eslintrc-extension.yml
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e4c0c3d..4e04a56 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,11 +4,31 @@ You're welcome to contribute to the [code](#contributing-to-the-code) or to the
## Contributing to the code
-Create a new branch describing what your're working on, for example `feature/{name-of-the-feature}` or `theme/{name-of-the-theme}`. When you're done, commit all your changes and create a new merge request. Choose the appropriate merge request template.
+You'll need `make` and [NPM](https://www.npmjs.com/) to install the development dependencies:
+
+```bash
+make deps-install
+```
+
+Create a new branch describing what your're working on, for example `feature/{name-of-the-feature}` or `theme/{name-of-the-theme}`.
+
+To make sure your code passes basic checks, run:
+
+```bash
+make test
+```
+
+When you're done, commit all your changes and create a new merge request. Choose the appropriate merge request template.
### Coding style
-Please follow the coding style of each file.
+We follow the [GNOME Shell coding style](https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/master/HACKING.md) and we use [ESLint](https://eslint.org/) to enforce it.
+
+To make sure your code follows it:
+
+```bash
+make test-lint
+```
### Copyright notice
@@ -16,18 +36,12 @@ If you make changes to a file, please add your copyright notice at the top of th
### Themes and unit tests
-If you add support for a theme, please write a unit test for each of its variants, in the `tests` directory, with the theme name as filename. Unit tests are written for [AVA](https://github.com/avajs/ava) and run with node and npm.
-
-To install the tests dependencies:
-
-```bash
-npm install
-```
+If you add support for a theme, please write a unit test for each of its variants, in the `tests` directory, with the theme name as filename. Unit tests are written for [AVA](https://github.com/avajs/ava).
To run the tests:
```bash
-make test
+make test-variants
```
## Contributing to the translations
diff --git a/Makefile b/Makefile
index a9e0996..af78546 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,14 @@ uninstall:
clean: build-clean deps-clean
.PHONY: test
-test:
+test: test-lint test-variants
+
+.PHONY: test-lint
+test-lint:
+ npx eslint .
+
+.PHONY: test-variants
+test-variants:
cat ./src/modules/GtkVariants.js ./tests/gtk_themes/_variants.js.template > ./tests/gtk_themes/_variants.js
cat ./src/modules/ShellVariants.js ./tests/shell_themes/_variants.js.template > ./tests/shell_themes/_variants.js
npm run test
diff --git a/lint/eslintrc-extension.yml b/lint/eslintrc-extension.yml
new file mode 100644
index 0000000..ecaec89
--- /dev/null
+++ b/lint/eslintrc-extension.yml
@@ -0,0 +1,6 @@
+rules:
+ no-unused-vars:
+ - error
+ - vars: 'local'
+ varsIgnorePattern: (^unused|_$)
+ argsIgnorePattern: ^(unused|_)
diff --git a/lint/eslintrc-gjs.yml b/lint/eslintrc-gjs.yml
new file mode 100644
index 0000000..df148de
--- /dev/null
+++ b/lint/eslintrc-gjs.yml
@@ -0,0 +1,232 @@
+---
+# From https://gitlab.gnome.org/GNOME/gjs/
+env:
+ es6: true
+extends: 'eslint:recommended'
+rules:
+ array-bracket-newline:
+ - error
+ - consistent
+ array-bracket-spacing:
+ - error
+ - never
+ array-callback-return: error
+ arrow-parens:
+ - error
+ - as-needed
+ arrow-spacing: error
+ block-scoped-var: error
+ block-spacing: error
+ brace-style: error
+ # Waiting for this to have matured a bit in eslint
+ # camelcase:
+ # - error
+ # - properties: never
+ # allow: [^vfunc_, ^on_, _instance_init]
+ comma-dangle:
+ - error
+ - arrays: always-multiline
+ objects: always-multiline
+ functions: never
+ comma-spacing:
+ - error
+ - before: false
+ after: true
+ comma-style:
+ - error
+ - last
+ computed-property-spacing: error
+ curly:
+ - error
+ - multi-or-nest
+ - consistent
+ dot-location:
+ - error
+ - property
+ eol-last: error
+ eqeqeq: error
+ func-call-spacing: error
+ func-name-matching: error
+ func-style:
+ - error
+ - declaration
+ - allowArrowFunctions: true
+ indent:
+ - error
+ - 4
+ - ignoredNodes:
+ # Allow not indenting the body of GObject.registerClass, since in the
+ # future it's intended to be a decorator
+ - 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child'
+ # Allow dedenting chained member expressions
+ MemberExpression: 'off'
+ key-spacing:
+ - error
+ - beforeColon: false
+ afterColon: true
+ keyword-spacing:
+ - error
+ - before: true
+ after: true
+ linebreak-style:
+ - error
+ - unix
+ lines-between-class-members: error
+ max-nested-callbacks: error
+ max-statements-per-line: error
+ new-parens: error
+ no-array-constructor: error
+ no-await-in-loop: error
+ no-caller: error
+ no-constant-condition:
+ - error
+ - checkLoops: false
+ no-div-regex: error
+ no-empty:
+ - error
+ - allowEmptyCatch: true
+ no-extra-bind: error
+ no-extra-parens:
+ - error
+ - all
+ - conditionalAssign: false
+ nestedBinaryExpressions: false
+ returnAssign: false
+ no-implicit-coercion:
+ - error
+ - allow:
+ - '!!'
+ no-invalid-this: error
+ no-iterator: error
+ no-label-var: error
+ no-lonely-if: error
+ no-loop-func: error
+ no-nested-ternary: error
+ no-new-object: error
+ no-new-wrappers: error
+ no-octal-escape: error
+ no-proto: error
+ no-prototype-builtins: 'off'
+ no-restricted-properties:
+ - error
+ - object: Lang
+ property: bind
+ message: Use arrow notation or Function.prototype.bind()
+ - object: Lang
+ property: Class
+ message: Use ES6 classes
+ - object: imports
+ property: mainloop
+ message: Use GLib main loops and timeouts
+ no-restricted-syntax:
+ - error
+ - selector: >-
+ MethodDefinition[key.name="_init"] >
+ FunctionExpression[params.length=1] >
+ BlockStatement[body.length=1]
+ CallExpression[arguments.length=1][callee.object.type="Super"][callee.property.name="_init"] >
+ Identifier:first-child
+ message: _init() that only calls super._init() is unnecessary
+ - selector: >-
+ MethodDefinition[key.name="_init"] >
+ FunctionExpression[params.length=0] >
+ BlockStatement[body.length=1]
+ CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
+ message: _init() that only calls super._init() is unnecessary
+ no-return-assign: error
+ no-return-await: error
+ no-self-compare: error
+ no-shadow: error
+ no-shadow-restricted-names: error
+ no-spaced-func: error
+ no-tabs: error
+ no-template-curly-in-string: error
+ no-throw-literal: error
+ no-trailing-spaces: error
+ no-undef-init: error
+ no-unneeded-ternary: error
+ no-unused-expressions: error
+ no-unused-vars:
+ - error
+ # Vars use a suffix _ instead of a prefix because of file-scope private vars
+ - varsIgnorePattern: (^unused|_$)
+ argsIgnorePattern: ^(unused|_)
+ no-useless-call: error
+ no-useless-computed-key: error
+ no-useless-concat: error
+ no-useless-constructor: error
+ no-useless-rename: error
+ no-useless-return: error
+ no-whitespace-before-property: error
+ no-with: error
+ nonblock-statement-body-position:
+ - error
+ - below
+ object-curly-newline:
+ - error
+ - consistent: true
+ object-curly-spacing: error
+ object-shorthand: error
+ operator-assignment: error
+ operator-linebreak: error
+ # These may be a bit controversial, we can try them out and enable them later
+ # prefer-const: error
+ # prefer-destructuring: error
+ prefer-numeric-literals: error
+ prefer-promise-reject-errors: error
+ prefer-rest-params: error
+ prefer-spread: error
+ prefer-template: error
+ quotes:
+ - error
+ - single
+ - avoidEscape: true
+ require-await: error
+ rest-spread-spacing: error
+ semi:
+ - error
+ - always
+ semi-spacing:
+ - error
+ - before: false
+ after: true
+ semi-style: error
+ space-before-blocks: error
+ space-before-function-paren:
+ - error
+ - named: never
+ # for `function ()` and `async () =>`, preserve space around keywords
+ anonymous: always
+ asyncArrow: always
+ space-in-parens: error
+ space-infix-ops:
+ - error
+ - int32Hint: false
+ space-unary-ops: error
+ spaced-comment: error
+ switch-colon-spacing: error
+ symbol-description: error
+ template-curly-spacing: error
+ template-tag-spacing: error
+ unicode-bom: error
+ valid-jsdoc:
+ - error
+ - requireReturn: false
+ wrap-iife:
+ - error
+ - inside
+ yield-star-spacing: error
+ yoda: error
+globals:
+ ARGV: readonly
+ Debugger: readonly
+ GIRepositoryGType: readonly
+ globalThis: readonly
+ imports: readonly
+ Intl: readonly
+ log: readonly
+ logError: readonly
+ print: readonly
+ printerr: readonly
+parserOptions:
+ ecmaVersion: 2019
diff --git a/lint/eslintrc-shell.yml b/lint/eslintrc-shell.yml
new file mode 100644
index 0000000..0ca7c63
--- /dev/null
+++ b/lint/eslintrc-shell.yml
@@ -0,0 +1,16 @@
+# From https://gitlab.gnome.org/GNOME/gnome-shell/
+rules:
+ camelcase:
+ - error
+ - properties: never
+ allow: [^vfunc_, ^on_]
+ consistent-return: error
+ key-spacing:
+ - error
+ - mode: minimum
+ beforeColon: false
+ afterColon: true
+ object-curly-spacing:
+ - error
+ - always
+ prefer-arrow-callback: error
diff --git a/package-lock.json b/package-lock.json
index a1c94d8..8330a01 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -185,6 +185,12 @@
"integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==",
"dev": true
},
+ "acorn-jsx": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
+ "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
+ "dev": true
+ },
"acorn-walk": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz",
@@ -201,6 +207,18 @@
"indent-string": "^4.0.0"
}
},
+ "ajv": {
+ "version": "6.12.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+ "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
"ansi-align": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
@@ -250,6 +268,12 @@
}
}
},
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "dev": true
+ },
"ansi-regex": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
@@ -707,6 +731,17 @@
"integrity": "sha1-fj5Iu+bZl7FBfdyihoIEtNPYVxU=",
"dev": true
},
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
"crypto-random-string": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
@@ -761,6 +796,12 @@
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true
},
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
"defaults": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
@@ -828,6 +869,15 @@
"path-type": "^4.0.0"
}
},
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
"dot-prop": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
@@ -864,6 +914,15 @@
"once": "^1.4.0"
}
},
+ "enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "dev": true,
+ "requires": {
+ "ansi-colors": "^4.1.1"
+ }
+ },
"equal-length": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz",
@@ -891,18 +950,170 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
+ "eslint": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.5.0.tgz",
+ "integrity": "sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "eslint-scope": "^5.1.0",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^1.3.0",
+ "espree": "^7.2.0",
+ "esquery": "^1.2.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash": "^4.17.19",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true
+ },
+ "lodash": {
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+ "dev": true
+ },
+ "semver": {
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
+ "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.2.0.tgz",
+ "integrity": "sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.3.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
+ "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==",
+ "dev": true
+ }
+ }
+ },
"esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
+ "esquery": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
+ "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz",
+ "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true
},
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
"fast-diff": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
@@ -923,6 +1134,18 @@
"picomatch": "^2.2.1"
}
},
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
"fastq": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz",
@@ -941,6 +1164,15 @@
"escape-string-regexp": "^1.0.5"
}
},
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -960,6 +1192,34 @@
"path-exists": "^4.0.0"
}
},
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -973,6 +1233,12 @@
"dev": true,
"optional": true
},
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -1020,6 +1286,23 @@
"ini": "^1.3.5"
}
},
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
+ }
+ },
"globby": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz",
@@ -1095,6 +1378,24 @@
"integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
"dev": true
},
+ "import-fresh": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+ "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ }
+ }
+ },
"import-lazy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
@@ -1275,6 +1576,12 @@
"integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
"dev": true
},
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
"isobject": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz",
@@ -1315,6 +1622,18 @@
"integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
"dev": true
},
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
"keyv": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
@@ -1333,6 +1652,16 @@
"package-json": "^6.3.0"
}
},
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
"lines-and-columns": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
@@ -1577,6 +1906,15 @@
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -1589,6 +1927,12 @@
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"dev": true
},
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
"normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@@ -1631,6 +1975,20 @@
"mimic-fn": "^2.1.0"
}
},
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
"ora": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz",
@@ -1724,6 +2082,15 @@
}
}
},
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
"parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -1752,6 +2119,12 @@
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
@@ -1840,6 +2213,12 @@
"irregular-plurals": "^3.2.0"
}
},
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
"prepend-http": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
@@ -1855,6 +2234,12 @@
"parse-ms": "^2.1.0"
}
},
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -1865,6 +2250,12 @@
"once": "^1.3.1"
}
},
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
"pupa": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz",
@@ -1927,6 +2318,12 @@
"picomatch": "^2.2.1"
}
},
+ "regexpp": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",
+ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==",
+ "dev": true
+ },
"registry-auth-token": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz",
@@ -2062,6 +2459,21 @@
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true
},
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
"signal-exit": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
@@ -2239,6 +2651,99 @@
"has-flag": "^4.0.0"
}
},
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ }
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ }
+ }
+ },
"temp-dir": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
@@ -2251,6 +2756,12 @@
"integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==",
"dev": true
},
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
"time-zone": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz",
@@ -2278,6 +2789,15 @@
"integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=",
"dev": true
},
+ "type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
"type-fest": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
@@ -2335,6 +2855,15 @@
}
}
},
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
"url-parse-lax": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
@@ -2344,6 +2873,12 @@
"prepend-http": "^2.0.0"
}
},
+ "v8-compile-cache": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz",
+ "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==",
+ "dev": true
+ },
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
@@ -2369,6 +2904,15 @@
"integrity": "sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==",
"dev": true
},
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
@@ -2384,6 +2928,12 @@
"string-width": "^4.0.0"
}
},
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
"wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
@@ -2401,6 +2951,15 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
"write-file-atomic": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
diff --git a/package.json b/package.json
index 0a5c979..31a76ae 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
"test": "ava"
},
"devDependencies": {
- "ava": "^3.8.2"
+ "ava": "^3.8.2",
+ "eslint": "^7.5.0"
}
}
diff --git a/src/compat.js b/src/compat.js
index 1704bae..6f1a0fc 100644
--- a/src/compat.js
+++ b/src/compat.js
@@ -19,41 +19,53 @@ this program. If not, see .
const { extensionUtils } = imports.misc;
const Me = extensionUtils.getCurrentExtension();
-const shell_minor_version = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[1]);
+const shellMinorVersion = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[1]);
-function init_translations(domain) {
- if ( shell_minor_version <= 30 ) return Me.imports.convenience.initTranslations(domain);
- else return extensionUtils.initTranslations(domain);
+function initTranslations(domain) {
+ if (shellMinorVersion <= 30)
+ return Me.imports.convenience.initTranslations(domain);
+ else
+ return extensionUtils.initTranslations(domain);
}
-function extension_manager_initialized() {
- if ( shell_minor_version > 32 ) return imports.ui.main.extensionManager._initialized;
- else return imports.ui.extensionSystem.initted;
+function extensionManagerInitialized() {
+ if (shellMinorVersion > 32)
+ return imports.ui.main.extensionManager._initialized;
+ else
+ return imports.ui.extensionSystem.initted;
}
-function extension_manager_lookup(uuid) {
- if ( shell_minor_version > 32 ) return imports.ui.main.extensionManager.lookup(uuid);
- else return extensionUtils.extensions[uuid] || null;
+function extensionManagerLookup(uuid) {
+ if (shellMinorVersion > 32)
+ return imports.ui.main.extensionManager.lookup(uuid);
+ else
+ return extensionUtils.extensions[uuid] || null;
}
-function get_extension_settings() {
- if ( shell_minor_version <= 30 ) return Me.imports.convenience.getSettings();
- else return extensionUtils.getSettings();
+function getExtensionSettings() {
+ if (shellMinorVersion <= 30)
+ return Me.imports.convenience.getSettings();
+ else
+ return extensionUtils.getSettings();
}
-function key_binding_auto_repeat() {
- // if version is less then 3.30 the keybinding flags are NONE
- if (shell_minor_version < 30) return imports.gi.Meta.KeyBindingFlags.NONE;
- else return imports.gi.Meta.KeyBindingFlags.IGNORE_AUTOREPEAT;
-};
+function keyBindingAutoRepeat() {
+ // if version is less then 3.30 the keybinding flags are NONE
+ if (shellMinorVersion < 30)
+ return imports.gi.Meta.KeyBindingFlags.NONE;
+ else
+ return imports.gi.Meta.KeyBindingFlags.IGNORE_AUTOREPEAT;
+}
-function get_actor(subject) {
- if (shell_minor_version > 34) return subject;
- else return subject.actor;
-};
+function getActor(subject) {
+ if (shellMinorVersion > 34)
+ return subject;
+ else
+ return subject.actor;
+}
diff --git a/src/extension.js b/src/extension.js
index d2b0e8a..8cccff4 100644
--- a/src/extension.js
+++ b/src/extension.js
@@ -19,12 +19,11 @@ this program. If not, see .
'use strict';
const { extensionUtils } = imports.misc;
-const { main } = imports.ui;
const Me = extensionUtils.getCurrentExtension();
const compat = Me.imports.compat;
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
const { SettingsManager } = Me.imports.modules.SettingsManager;
const { Timer } = Me.imports.modules.Timer;
const { GtkThemer } = Me.imports.modules.GtkThemer;
@@ -47,65 +46,63 @@ var commander = null;
function init() {
- log_debug('Initializing extension...');
- compat.init_translations(Me.metadata.uuid);
- log_debug('Extension initialized.');
+ logDebug('Initializing extension...');
+ compat.initTranslations(Me.metadata.uuid);
+ logDebug('Extension initialized.');
}
function enable() {
- this._await_extensionManager_init().then(() => {
- log_debug('Enabling extension...');
- settingsManager = new SettingsManager();
- timer = new Timer();
- gtkThemer = new GtkThemer();
- shellThemer = new ShellThemer();
- iconThemer = new IconThemer();
- cursorThemer = new CursorThemer();
- backgrounder = new Backgrounder();
- commander = new Commander();
+ _awaitExtensionManagerInit().then(() => {
+ logDebug('Enabling extension...');
+ settingsManager = new SettingsManager();
+ timer = new Timer();
+ gtkThemer = new GtkThemer();
+ shellThemer = new ShellThemer();
+ iconThemer = new IconThemer();
+ cursorThemer = new CursorThemer();
+ backgrounder = new Backgrounder();
+ commander = new Commander();
- settingsManager.enable();
- gtkThemer.enable();
- shellThemer.enable();
- iconThemer.enable();
- cursorThemer.enable();
- backgrounder.enable();
- commander.enable();
- timer.enable();
+ settingsManager.enable();
+ gtkThemer.enable();
+ shellThemer.enable();
+ iconThemer.enable();
+ cursorThemer.enable();
+ backgrounder.enable();
+ commander.enable();
+ timer.enable();
- enabled = true;
- log_debug('Extension enabled.');
- });
+ enabled = true;
+ logDebug('Extension enabled.');
+ });
}
function disable() {
- log_debug('Disabling extension...');
- enabled = false;
+ logDebug('Disabling extension...');
+ enabled = false;
- gtkThemer.disable();
- shellThemer.disable();
- iconThemer.disable();
- cursorThemer.disable();
- backgrounder.disable();
- commander.disable();
- timer.disable();
- settingsManager.disable();
+ gtkThemer.disable();
+ shellThemer.disable();
+ iconThemer.disable();
+ cursorThemer.disable();
+ backgrounder.disable();
+ commander.disable();
+ timer.disable();
+ settingsManager.disable();
- settingsManager = null;
- timer = null;
- gtkThemer = null;
- shellThemer = null;
- iconThemer = null;
- cursorThemer = null;
- backgrounder = null;
- commander = null;
- log_debug('Extension disabled.');
+ settingsManager = null;
+ timer = null;
+ gtkThemer = null;
+ shellThemer = null;
+ iconThemer = null;
+ cursorThemer = null;
+ backgrounder = null;
+ commander = null;
+ logDebug('Extension disabled.');
}
-async function _await_extensionManager_init() {
- log_debug('Waiting for the Extension Manager to be initialized...');
- while ( true ) {
- if ( compat.extension_manager_initialized() ) return;
- await null;
- }
+async function _awaitExtensionManagerInit() {
+ logDebug('Waiting for the Extension Manager to be initialized...');
+ while (!compat.extensionManagerInitialized())
+ await undefined; // eslint-disable-line no-await-in-loop
}
diff --git a/src/modules/Backgrounder.js b/src/modules/Backgrounder.js
index 70371b8..c9d1679 100644
--- a/src/modules/Backgrounder.js
+++ b/src/modules/Backgrounder.js
@@ -16,13 +16,12 @@ You should have received a copy of the GNU General Public License along with
this program. If not, see .
*/
-const { GLib } = imports.gi;
const { extensionUtils } = imports.misc;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
/**
* The Backgrounder is responsible for changing the desktop background
@@ -33,98 +32,104 @@ const { log_debug } = Me.imports.utils;
*/
var Backgrounder = class {
- enable() {
- log_debug('Enabling Backgrounder...');
- this._watch_status();
- if ( e.settingsManager.backgrounds_enabled ) {
- this._connect_settings();
- this._connect_timer();
- }
- log_debug('Backgrounder enabled.');
- }
+ constructor() {
+ this._backgroundsStatusChangedConnect = null;
+ this._backgroundTimeChangedConnect = null;
+ this._backgroundChangedConnect = null;
+ this._timeChangedConnect = null;
+ }
- disable() {
- log_debug('Disabling Backgrounder...');
- this._disconnect_timer();
- this._disconnect_settings();
- this._unwatch_status();
- log_debug('Backgrounder disabled.');
- }
+ enable() {
+ logDebug('Enabling Backgrounder...');
+ this._watchStatus();
+ if (e.settingsManager.backgroundsEnabled) {
+ this._connectSettings();
+ this._connectTimer();
+ }
+ logDebug('Backgrounder enabled.');
+ }
+
+ disable() {
+ logDebug('Disabling Backgrounder...');
+ this._disconnectTimer();
+ this._disconnectSettings();
+ this._unwatchStatus();
+ logDebug('Backgrounder disabled.');
+ }
- _watch_status() {
- log_debug('Watching backgrounds status...');
- this._backgrounds_status_changed_connect = e.settingsManager.connect('backgrounds-status-changed', this._on_backgrounds_status_changed.bind(this));
- }
+ _watchStatus() {
+ logDebug('Watching backgrounds status...');
+ this._backgroundsStatusChangedConnect = e.settingsManager.connect('backgrounds-status-changed', this._onBackgroundsStatusChanged.bind(this));
+ }
- _unwatch_status() {
- if ( this._backgrounds_status_changed_connect ) {
- e.settingsManager.disconnect(this._backgrounds_status_changed_connect);
- this._backgrounds_status_changed_connect = null;
- }
- log_debug('Stopped watching backgrounds status.');
- }
+ _unwatchStatus() {
+ if (this._backgroundsStatusChangedConnect) {
+ e.settingsManager.disconnect(this._backgroundsStatusChangedConnect);
+ this._backgroundsStatusChangedConnect = null;
+ }
+ logDebug('Stopped watching backgrounds status.');
+ }
- _connect_settings() {
- log_debug('Connecting Backgrounder to settings...');
- this._background_time_changed_connect = e.settingsManager.connect('background-time-changed', this._on_background_time_changed.bind(this));
- this._background_changed_connect = e.settingsManager.connect('background-changed', this._on_background_changed.bind(this));
- }
+ _connectSettings() {
+ logDebug('Connecting Backgrounder to settings...');
+ this._backgroundTimeChangedConnect = e.settingsManager.connect('background-time-changed', this._onBackgroundTimeChanged.bind(this));
+ this._backgroundChangedConnect = e.settingsManager.connect('background-changed', this._onBackgroundChanged.bind(this));
+ }
- _disconnect_settings() {
- if ( this._background_time_changed_connect ) {
- e.settingsManager.disconnect(this._background_time_changed_connect);
- this._background_time_changed_connect = null;
- }
- if ( this._background_changed_connect ) {
- e.settingsManager.disconnect(this._background_changed_connect);
- this._background_changed_connect = null;
- }
- log_debug('Disconnected Backgrounder from settings.');
- }
+ _disconnectSettings() {
+ if (this._backgroundTimeChangedConnect) {
+ e.settingsManager.disconnect(this._backgroundTimeChangedConnect);
+ this._backgroundTimeChangedConnect = null;
+ }
+ if (this._backgroundChangedConnect) {
+ e.settingsManager.disconnect(this._backgroundChangedConnect);
+ this._backgroundChangedConnect = null;
+ }
+ logDebug('Disconnected Backgrounder from settings.');
+ }
- _connect_timer() {
- log_debug('Connecting Backgrounder to Timer...');
- this._time_changed_connect = e.timer.connect('time-changed', this._on_time_changed.bind(this));
- }
+ _connectTimer() {
+ logDebug('Connecting Backgrounder to Timer...');
+ this._timeChangedConnect = e.timer.connect('time-changed', this._onTimeChanged.bind(this));
+ }
- _disconnect_timer() {
- if ( this._time_changed_connect ) {
- e.timer.disconnect(this._time_changed_connect);
- this._time_changed_connect = null;
- }
- log_debug('Disconnected Backgrounder from Timer.');
- }
+ _disconnectTimer() {
+ if (this._timeChangedConnect) {
+ e.timer.disconnect(this._timeChangedConnect);
+ this._timeChangedConnect = null;
+ }
+ logDebug('Disconnected Backgrounder from Timer.');
+ }
- _on_backgrounds_status_changed(settings, enabled) {
- this.disable();
- this.enable();
- }
+ _onBackgroundsStatusChanged(_settings, _enabled) {
+ this.disable();
+ this.enable();
+ }
- _on_background_time_changed(settings, changed_background_time) {
- if ( changed_background_time === e.timer.time ) {
- this._change_background(changed_background_time);
- }
- }
+ _onBackgroundTimeChanged(_settings, changedBackgroundTime) {
+ if (changedBackgroundTime === e.timer.time)
+ this._changeBackground(changedBackgroundTime);
+ }
- _on_background_changed(settings, new_background) {
- switch (e.timer.time) {
- case 'day':
- e.settingsManager.background_day = new_background;
- break;
- case 'night':
- e.settingsManager.background_night = new_background;
- }
- }
+ _onBackgroundChanged(_settings, newBackground) {
+ switch (e.timer.time) {
+ case 'day':
+ e.settingsManager.backgroundDay = newBackground;
+ break;
+ case 'night':
+ e.settingsManager.backgroundNight = newBackground;
+ }
+ }
- _on_time_changed(timer, new_time) {
- this._change_background(new_time);
- }
+ _onTimeChanged(_timer, newTime) {
+ this._changeBackground(newTime);
+ }
- _change_background(time) {
- e.settingsManager.background = time === 'day' ? e.settingsManager.background_day : e.settingsManager.background_night;
- }
+ _changeBackground(time) {
+ e.settingsManager.background = time === 'day' ? e.settingsManager.backgroundDay : e.settingsManager.backgroundNight;
+ }
-}
+};
diff --git a/src/modules/Commander.js b/src/modules/Commander.js
index 9a66383..a965486 100644
--- a/src/modules/Commander.js
+++ b/src/modules/Commander.js
@@ -22,7 +22,7 @@ const { extensionUtils } = imports.misc;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
/**
@@ -30,64 +30,68 @@ const { log_debug } = Me.imports.utils;
*/
var Commander = class {
- enable() {
- log_debug('Enabling Commander...');
- this._watch_status();
- if ( e.settingsManager.commands_enabled ) {
- this._connect_timer();
- }
- log_debug('Commander enabled.');
- }
+ constructor() {
+ this._commandsStatusChangedConnect = null;
+ this._timeChangedConnect = null;
+ }
- disable() {
- log_debug('Disabling Commander...');
- this._disconnect_timer();
- this._unwatch_status();
- log_debug('Commander disabled.');
- }
+ enable() {
+ logDebug('Enabling Commander...');
+ this._watchStatus();
+ if (e.settingsManager.commandsEnabled)
+ this._connectTimer();
+ logDebug('Commander enabled.');
+ }
+
+ disable() {
+ logDebug('Disabling Commander...');
+ this._disconnectTimer();
+ this._unwatchStatus();
+ logDebug('Commander disabled.');
+ }
- _watch_status() {
- log_debug('Watching commands status...');
- this._commands_status_changed_connect = e.settingsManager.connect('commands-status-changed', this._on_commands_status_changed.bind(this));
- }
+ _watchStatus() {
+ logDebug('Watching commands status...');
+ this._commandsStatusChangedConnect = e.settingsManager.connect('commands-status-changed', this._onCommandsStatusChanged.bind(this));
+ }
- _unwatch_status() {
- if ( this._commands_status_changed_connect ) {
- e.settingsManager.disconnect(this._commands_status_changed_connect);
- this._commands_status_changed_connect = null;
- }
- log_debug('Stopped watching commands status.');
- }
+ _unwatchStatus() {
+ if (this._commandsStatusChangedConnect) {
+ e.settingsManager.disconnect(this._commandsStatusChangedConnect);
+ this._commandsStatusChangedConnect = null;
+ }
+ logDebug('Stopped watching commands status.');
+ }
- _connect_timer() {
- log_debug('Connecting Commander to Timer...');
- this._time_changed_connect = e.timer.connect('time-changed', this._on_time_changed.bind(this));
- }
+ _connectTimer() {
+ logDebug('Connecting Commander to Timer...');
+ this._timeChangedConnect = e.timer.connect('time-changed', this._onTimeChanged.bind(this));
+ }
- _disconnect_timer() {
- if ( this._time_changed_connect ) {
- e.timer.disconnect(this._time_changed_connect);
- this._time_changed_connect = null;
- }
- log_debug('Disconnecting Commander from Timer.');
- }
+ _disconnectTimer() {
+ if (this._timeChangedConnect) {
+ e.timer.disconnect(this._timeChangedConnect);
+ this._timeChangedConnect = null;
+ }
+ logDebug('Disconnecting Commander from Timer.');
+ }
- _on_commands_status_changed(settings, enabled) {
- this.disable();
- this.enable();
- }
+ _onCommandsStatusChanged(_settings, _enabled) {
+ this.disable();
+ this.enable();
+ }
- _on_time_changed(timer, new_time) {
- this._spawn_command(new_time);
- }
+ _onTimeChanged(_timer, newTime) {
+ this._spawnCommand(newTime);
+ }
- _spawn_command(time) {
- const command = time === 'day' ? e.settingsManager.command_sunrise : e.settingsManager.command_sunset;
- GLib.spawn_async(null, ['sh', '-c', command], null, GLib.SpawnFlags.SEARCH_PATH, null);
- log_debug(`Spawned ${time} command.`);
- }
+ _spawnCommand(time) {
+ const command = time === 'day' ? e.settingsManager.commandSunrise : e.settingsManager.commandSunset;
+ GLib.spawn_async(null, ['sh', '-c', command], null, GLib.SpawnFlags.SEARCH_PATH, null);
+ logDebug(`Spawned ${time} command.`);
+ }
-}
+};
diff --git a/src/modules/CursorThemer.js b/src/modules/CursorThemer.js
index e5ef4de..8c812d7 100644
--- a/src/modules/CursorThemer.js
+++ b/src/modules/CursorThemer.js
@@ -22,7 +22,7 @@ const { main } = imports.ui;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
/**
@@ -31,125 +31,131 @@ const { log_debug } = Me.imports.utils;
*/
var CursorThemer = class {
- enable() {
- log_debug('Enabling Cursor Themer...');
- this._watch_status();
- this._save_original_theme();
- if ( e.settingsManager.cursor_variants_enabled ) {
- this._connect_settings();
- this._connect_timer();
- }
- log_debug('Cursor Themer enabled.');
- }
+ constructor() {
+ this._cursorVariantsStatusChangedConnect = null;
+ this._cursorVariantChangedConnect = null;
+ this._cursorThemeChangedConnect = null;
+ this._timeChangedConnect = null;
+ }
- disable() {
- log_debug('Disabling Cursor Themer...');
- this._disconnect_timer();
- this._disconnect_settings();
- this._reset_original_theme();
- this._unwatch_status();
- log_debug('Cursor Themer disabled.');
- }
+ enable() {
+ logDebug('Enabling Cursor Themer...');
+ this._watchStatus();
+ this._saveOriginalTheme();
+ if (e.settingsManager.cursorVariantsEnabled) {
+ this._connectSettings();
+ this._connectTimer();
+ }
+ logDebug('Cursor Themer enabled.');
+ }
+
+ disable() {
+ logDebug('Disabling Cursor Themer...');
+ this._disconnectTimer();
+ this._disconnectSettings();
+ this._resetOriginalTheme();
+ this._unwatchStatus();
+ logDebug('Cursor Themer disabled.');
+ }
- _watch_status() {
- log_debug('Watching cursor variants status...');
- this._cursor_variants_status_changed_connect = e.settingsManager.connect('cursor-variants-status-changed', this._on_cursor_variants_status_changed.bind(this));
- }
+ _watchStatus() {
+ logDebug('Watching cursor variants status...');
+ this._cursorVariantsStatusChangedConnect = e.settingsManager.connect('cursor-variants-status-changed', this._onCursorVariantsStatusChanged.bind(this));
+ }
- _unwatch_status() {
- if ( this._cursor_variants_status_changed_connect ) {
- e.settingsManager.disconnect(this._cursor_variants_status_changed_connect);
- this._cursor_variants_status_changed_connect = null;
- }
- log_debug('Stopped watching cursor variants status.');
- }
+ _unwatchStatus() {
+ if (this._cursorVariantsStatusChangedConnect) {
+ e.settingsManager.disconnect(this._cursorVariantsStatusChangedConnect);
+ this._cursorVariantsStatusChangedConnect = null;
+ }
+ logDebug('Stopped watching cursor variants status.');
+ }
- _connect_settings() {
- log_debug('Connecting Cursor Themer to settings...');
- this._cursor_variant_changed_connect = e.settingsManager.connect('cursor-variant-changed', this._on_cursor_variant_changed.bind(this));
- this._cursor_theme_changed_connect = e.settingsManager.connect('cursor-theme-changed', this._on_cursor_theme_changed.bind(this));
- }
+ _connectSettings() {
+ logDebug('Connecting Cursor Themer to settings...');
+ this._cursorVariantChangedConnect = e.settingsManager.connect('cursor-variant-changed', this._onCursorVariantChanged.bind(this));
+ this._cursorThemeChangedConnect = e.settingsManager.connect('cursor-theme-changed', this._onCursorThemeChanged.bind(this));
+ }
- _disconnect_settings() {
- if ( this._cursor_variant_changed_connect ) {
- e.settingsManager.disconnect(this._cursor_variant_changed_connect);
- this._cursor_variant_changed_connect = null;
- }
- if ( this._cursor_theme_changed_connect ) {
- e.settingsManager.disconnect(this._cursor_theme_changed_connect);
- this._cursor_theme_changed_connect = null;
- }
- log_debug('Disconnected Cursor Themer from settings.');
- }
+ _disconnectSettings() {
+ if (this._cursorVariantChangedConnect) {
+ e.settingsManager.disconnect(this._cursorVariantChangedConnect);
+ this._cursorVariantChangedConnect = null;
+ }
+ if (this._cursorThemeChangedConnect) {
+ e.settingsManager.disconnect(this._cursorThemeChangedConnect);
+ this._cursorThemeChangedConnect = null;
+ }
+ logDebug('Disconnected Cursor Themer from settings.');
+ }
- _connect_timer() {
- log_debug('Connecting Cursor Themer to Timer...');
- this._time_changed_connect = e.timer.connect('time-changed', this._on_time_changed.bind(this));
- }
+ _connectTimer() {
+ logDebug('Connecting Cursor Themer to Timer...');
+ this._timeChangedConnect = e.timer.connect('time-changed', this._onTimeChanged.bind(this));
+ }
- _disconnect_timer() {
- if ( this._time_changed_connect ) {
- e.timer.disconnect(this._time_changed_connect);
- this._time_changed_connect = null;
- }
- log_debug('Disconnected Cursor Themer from Timer.');
- }
+ _disconnectTimer() {
+ if (this._timeChangedConnect) {
+ e.timer.disconnect(this._timeChangedConnect);
+ this._timeChangedConnect = null;
+ }
+ logDebug('Disconnected Cursor Themer from Timer.');
+ }
- _on_cursor_variants_status_changed(settings, enabled) {
- this.disable();
- this.enable();
- }
+ _onCursorVariantsStatusChanged(_settings, _enabled) {
+ this.disable();
+ this.enable();
+ }
- _on_cursor_variant_changed(settings, changed_variant_time) {
- if ( changed_variant_time === e.timer.time ) {
- this._set_variant(changed_variant_time);
- }
- }
+ _onCursorVariantChanged(_settings, changedVariantTime) {
+ if (changedVariantTime === e.timer.time)
+ this._setVariant(changedVariantTime);
+ }
- _on_cursor_theme_changed(settings, new_theme) {
- switch (e.timer.time) {
- case 'day':
- e.settingsManager.cursor_variant_day = new_theme;
- break;
- case 'night':
- e.settingsManager.cursor_variant_night = new_theme;
- }
- this._set_variant(e.timer.time);
- }
+ _onCursorThemeChanged(_settings, newTheme) {
+ switch (e.timer.time) {
+ case 'day':
+ e.settingsManager.cursorVariantDay = newTheme;
+ break;
+ case 'night':
+ e.settingsManager.cursorVariantNight = newTheme;
+ }
+ this._setVariant(e.timer.time);
+ }
- _on_time_changed(timer, new_time) {
- this._set_variant(new_time);
- }
+ _onTimeChanged(_timer, newTime) {
+ this._setVariant(newTime);
+ }
- _set_variant(time) {
- log_debug(`Setting the cursor ${time} variant...`);
- switch (time) {
- case 'day':
- e.settingsManager.cursor_theme = e.settingsManager.cursor_variant_day;
- break;
- case 'night':
- e.settingsManager.cursor_theme = e.settingsManager.cursor_variant_night;
- break;
- case 'original':
- e.settingsManager.cursor_theme = e.settingsManager.cursor_variant_original;
- break;
- }
- }
+ _setVariant(time) {
+ logDebug(`Setting the cursor ${time} variant...`);
+ switch (time) {
+ case 'day':
+ e.settingsManager.cursorTheme = e.settingsManager.cursorVariantDay;
+ break;
+ case 'night':
+ e.settingsManager.cursorTheme = e.settingsManager.cursorVariantNight;
+ break;
+ case 'original':
+ e.settingsManager.cursorTheme = e.settingsManager.cursorVariantOriginal;
+ break;
+ }
+ }
- _save_original_theme() {
- e.settingsManager.cursor_variant_original = e.settingsManager.cursor_theme;
- }
+ _saveOriginalTheme() {
+ e.settingsManager.cursorVariantOriginal = e.settingsManager.cursorTheme;
+ }
- _reset_original_theme() {
- // We don't reset the theme when locking the session to prevent
- // flicker on unlocking
- if ( !main.screenShield.locked ) {
- log_debug('Resetting to the user\'s original cursor theme...');
- this._set_variant('original');
- }
- }
+ _resetOriginalTheme() {
+ // We don't reset the theme when locking the session to prevent
+ // flicker on unlocking
+ if (!main.screenShield.locked) {
+ logDebug('Resetting to the user\'s original cursor theme...');
+ this._setVariant('original');
+ }
+ }
-}
+};
diff --git a/src/modules/GtkThemer.js b/src/modules/GtkThemer.js
index 1baebbc..0490895 100644
--- a/src/modules/GtkThemer.js
+++ b/src/modules/GtkThemer.js
@@ -16,14 +16,13 @@ You should have received a copy of the GNU General Public License along with
this program. If not, see .
*/
-const { Gio, GLib, Gtk } = imports.gi;
const { extensionUtils } = imports.misc;
const { main } = imports.ui;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug, log_error, get_installed_gtk_themes } = Me.imports.utils;
+const { logDebug, notifyError, getInstalledGtkThemes } = Me.imports.utils;
const { GtkVariants } = Me.imports.modules.GtkVariants;
const Gettext = imports.gettext.domain(Me.metadata.uuid);
@@ -43,155 +42,158 @@ const _ = Gettext.gettext;
*/
var GtkThemer = class {
- enable() {
- log_debug('Enabling GTK Themer...');
- try {
- this._watch_status();
- this._save_original_theme();
- if ( e.settingsManager.gtk_variants_enabled ) {
- this._update_variants();
- this._connect_settings();
- this._connect_timer();
- }
- }
- catch(e) {
- log_error(e);
- }
- log_debug('GTK Themer enabled.');
- }
+ constructor() {
+ this._gtkVariantsStatusChangedConnect = null;
+ this._gtkVariantChangedConnect = null;
+ this._gtkThemeChangedConnect = null;
+ this._timeChangedConnect = null;
+ }
- disable() {
- log_debug('Disabling GTK Themer...');
- this._disconnect_timer();
- this._disconnect_settings();
- this._reset_original_theme();
- this._unwatch_status();
- log_debug('GTK Themer disabled.');
- }
+ enable() {
+ logDebug('Enabling GTK Themer...');
+ try {
+ this._watchStatus();
+ this._saveOriginalTheme();
+ if (e.settingsManager.gtkVariantsEnabled) {
+ this._updateVariants();
+ this._connectSettings();
+ this._connectTimer();
+ }
+ } catch (error) {
+ notifyError(error);
+ }
+ logDebug('GTK Themer enabled.');
+ }
+
+ disable() {
+ logDebug('Disabling GTK Themer...');
+ this._disconnectTimer();
+ this._disconnectSettings();
+ this._resetOriginalTheme();
+ this._unwatchStatus();
+ logDebug('GTK Themer disabled.');
+ }
- _watch_status() {
- log_debug('Watching GTK variants status...');
- this._gtk_variants_status_changed_connect = e.settingsManager.connect('gtk-variants-status-changed', this._on_gtk_variants_status_changed.bind(this));
- }
+ _watchStatus() {
+ logDebug('Watching GTK variants status...');
+ this._gtkVariantsStatusChangedConnect = e.settingsManager.connect('gtk-variants-status-changed', this._onGtkVariantsStatusChanged.bind(this));
+ }
- _unwatch_status() {
- if ( this._gtk_variants_status_changed_connect ) {
- e.settingsManager.disconnect(this._gtk_variants_status_changed_connect);
- this._gtk_variants_status_changed_connect = null;
- }
- log_debug('Stopped watching GTK variants status.');
- }
+ _unwatchStatus() {
+ if (this._gtkVariantsStatusChangedConnect) {
+ e.settingsManager.disconnect(this._gtkVariantsStatusChangedConnect);
+ this._gtkVariantsStatusChangedConnect = null;
+ }
+ logDebug('Stopped watching GTK variants status.');
+ }
- _connect_settings() {
- log_debug('Connecting GTK Themer to settings...');
- this._gtk_variant_changed_connect = e.settingsManager.connect('gtk-variant-changed', this._on_gtk_variant_changed.bind(this));
- this._gtk_theme_changed_connect = e.settingsManager.connect('gtk-theme-changed', this._on_gtk_theme_changed.bind(this));
- }
+ _connectSettings() {
+ logDebug('Connecting GTK Themer to settings...');
+ this._gtkVariantChangedConnect = e.settingsManager.connect('gtk-variant-changed', this._onGtkVariantChanged.bind(this));
+ this._gtkThemeChangedConnect = e.settingsManager.connect('gtk-theme-changed', this._onGtkThemeChanged.bind(this));
+ }
- _disconnect_settings() {
- if ( this._gtk_variant_changed_connect ) {
- e.settingsManager.disconnect(this._gtk_variant_changed_connect);
- this._gtk_variant_changed_connect = null;
- }
- if ( this._gtk_theme_changed_connect ) {
- e.settingsManager.disconnect(this._gtk_theme_changed_connect);
- this._gtk_theme_changed_connect = null;
- }
- log_debug('Disconnected GTK Themer from settings.');
- }
+ _disconnectSettings() {
+ if (this._gtkVariantChangedConnect) {
+ e.settingsManager.disconnect(this._gtkVariantChangedConnect);
+ this._gtkVariantChangedConnect = null;
+ }
+ if (this._gtkThemeChangedConnect) {
+ e.settingsManager.disconnect(this._gtkThemeChangedConnect);
+ this._gtkThemeChangedConnect = null;
+ }
+ logDebug('Disconnected GTK Themer from settings.');
+ }
- _connect_timer() {
- log_debug('Connecting GTK Themer to Timer...');
- this._time_changed_connect = e.timer.connect('time-changed', this._on_time_changed.bind(this));
- }
+ _connectTimer() {
+ logDebug('Connecting GTK Themer to Timer...');
+ this._timeChangedConnect = e.timer.connect('time-changed', this._onTimeChanged.bind(this));
+ }
- _disconnect_timer() {
- if ( this._time_changed_connect ) {
- e.timer.disconnect(this._time_changed_connect);
- this._time_changed_connect = null;
- }
- log_debug('Disconnected GTK Themer from Timer.');
- }
+ _disconnectTimer() {
+ if (this._timeChangedConnect) {
+ e.timer.disconnect(this._timeChangedConnect);
+ this._timeChangedConnect = null;
+ }
+ logDebug('Disconnected GTK Themer from Timer.');
+ }
- _on_gtk_variants_status_changed(settings, enabled) {
- this.disable();
- this.enable();
- }
+ _onGtkVariantsStatusChanged(_settings, _enabled) {
+ this.disable();
+ this.enable();
+ }
- _on_gtk_variant_changed(settings, changed_variant_time) {
- if ( changed_variant_time === e.timer.time ) {
- this._set_variant(changed_variant_time);
- }
- }
+ _onGtkVariantChanged(_settings, changedVariantTime) {
+ if (changedVariantTime === e.timer.time)
+ this._setVariant(changedVariantTime);
+ }
- _on_gtk_theme_changed(settings, new_theme) {
- try {
- this._update_variants();
- this._set_variant(e.timer.time);
- }
- catch(e) {
- log_error(e);
- }
- }
+ _onGtkThemeChanged(_settings, _newTheme) {
+ try {
+ this._updateVariants();
+ this._setVariant(e.timer.time);
+ } catch (error) {
+ notifyError(error);
+ }
+ }
- _on_time_changed(timer, new_time) {
- this._set_variant(new_time);
- }
+ _onTimeChanged(_timer, newTime) {
+ this._setVariant(newTime);
+ }
- _are_variants_up_to_date() {
- return ( e.settingsManager.gtk_theme === e.settingsManager.gtk_variant_day || e.settingsManager.gtk_theme === e.settingsManager.gtk_variant_night );
- }
+ _areVariantsUpToDate() {
+ return e.settingsManager.gtkTheme === e.settingsManager.gtkVariantDay || e.settingsManager.gtkTheme === e.settingsManager.gtkVariantNight;
+ }
- _set_variant(time) {
- log_debug(`Setting the GTK ${time} variant...`);
- switch (time) {
- case 'day':
- e.settingsManager.gtk_theme = e.settingsManager.gtk_variant_day;
- break;
- case 'night':
- e.settingsManager.gtk_theme = e.settingsManager.gtk_variant_night;
- break;
- case 'original':
- e.settingsManager.gtk_theme = e.settingsManager.gtk_variant_original;
- break;
- }
- }
+ _setVariant(time) {
+ logDebug(`Setting the GTK ${time} variant...`);
+ switch (time) {
+ case 'day':
+ e.settingsManager.gtkTheme = e.settingsManager.gtkVariantDay;
+ break;
+ case 'night':
+ e.settingsManager.gtkTheme = e.settingsManager.gtkVariantNight;
+ break;
+ case 'original':
+ e.settingsManager.gtkTheme = e.settingsManager.gtkVariantOriginal;
+ break;
+ }
+ }
- _update_variants() {
- if ( e.settingsManager.manual_gtk_variants || this._are_variants_up_to_date() ) {
- return;
- }
+ _updateVariants() {
+ if (e.settingsManager.manualGtkVariants || this._areVariantsUpToDate())
+ return;
- log_debug('Updating GTK variants...');
- const variants = GtkVariants.guess_from(e.settingsManager.gtk_theme);
- const installed_themes = get_installed_gtk_themes();
+ logDebug('Updating GTK variants...');
+ const variants = GtkVariants.guessFrom(e.settingsManager.gtkTheme);
+ const installedThemes = getInstalledGtkThemes();
- if ( !installed_themes.has(variants.get('day')) || !installed_themes.has(variants.get('night')) ) {
- e.settingsManager.gtk_variant_original = variants.get('original');
- const message = _('Unable to automatically detect the day and night variants for the "%s" GTK theme. Please manually choose them in the extension\'s preferences.').format(variants.get('original'));
- throw new Error(message);
- }
+ if (!installedThemes.has(variants.get('day')) || !installedThemes.has(variants.get('night'))) {
+ e.settingsManager.gtkVariantOriginal = variants.get('original');
+ const message = _('Unable to automatically detect the day and night variants for the "%s" GTK theme. Please manually choose them in the extension\'s preferences.').format(variants.get('original'));
+ throw new Error(message);
+ }
- e.settingsManager.gtk_variant_day = variants.get('day');
- e.settingsManager.gtk_variant_night = variants.get('night');
- e.settingsManager.gtk_variant_original = variants.get('original');
- log_debug(`New GTK variants. { day: '${variants.get('day')}'; night: '${variants.get('night')}' }`);
- }
+ e.settingsManager.gtkVariantDay = variants.get('day');
+ e.settingsManager.gtkVariantNight = variants.get('night');
+ e.settingsManager.gtkVariantOriginal = variants.get('original');
+ logDebug(`New GTK variants. { day: '${variants.get('day')}'; night: '${variants.get('night')}' }`);
+ }
- _save_original_theme() {
- e.settingsManager.gtk_variant_original = e.settingsManager.gtk_theme;
- }
+ _saveOriginalTheme() {
+ e.settingsManager.gtkVariantOriginal = e.settingsManager.gtkTheme;
+ }
- _reset_original_theme() {
- // We don't reset the theme when locking the session to prevent
- // flicker on unlocking
- if ( !main.screenShield.locked ) {
- log_debug('Resetting to the user\'s original GTK theme...');
- this._set_variant('original');
- }
- }
+ _resetOriginalTheme() {
+ // We don't reset the theme when locking the session to prevent
+ // flicker on unlocking
+ if (!main.screenShield.locked) {
+ logDebug('Resetting to the user\'s original GTK theme...');
+ this._setVariant('original');
+ }
+ }
-}
+};
diff --git a/src/modules/GtkVariants.js b/src/modules/GtkVariants.js
index 03921a4..de81881 100644
--- a/src/modules/GtkVariants.js
+++ b/src/modules/GtkVariants.js
@@ -21,10 +21,10 @@ this program. If not, see .
* The magic of guessing theme variants happens here.
*
* If the theme doesn't fit a particular case, we'll do the following:
- * - Remove any signs of a dark variant to the theme name to get the day
- * variant
- * - Remove any signs of a light variant to the day variant and add '-dark' to
- * get the night variant
+ * - Remove any signs of a dark variant to the theme name to get the day
+ * variant
+ * - Remove any signs of a light variant to the day variant and add '-dark' to
+ * get the night variant
*
* For themes that don't work with the general rule, a particular case must be
* written. Day and night variants should be guessed with the most generic light
@@ -32,84 +32,70 @@ this program. If not, see .
* specific variant.
*
* Light variants, from the most to the least generic:
- * - ''
- * - '-light'
- * - '-darker'
+ * - ''
+ * - '-light'
+ * - '-darker'
*
* Dark variants, from the most the least generic:
- * - '-dark'
- * - '-darkest'
+ * - '-dark'
+ * - '-darkest'
*/
var GtkVariants = class {
- static guess_from(name) {
- const variants = new Map();
- variants.set('original', name);
+ static guessFrom(name) {
+ const variants = new Map();
+ variants.set('original', name);
- if ( name.includes('Adapta') ) {
- variants.set('day', name.replace('-Nokto', ''));
- variants.set('night', variants.get('day').replace('Adapta', 'Adapta-Nokto'));
- }
- else if ( name.includes('Arc') ) {
- const basename = name.split('-')[0];
- variants.set('day', name.replace(/-Dark(?!er)/, ''));
- variants.set('night', variants.get('day').replace(/Arc(-Darker)?/, 'Arc-Dark'));
- }
- else if ( name.match('Cabinet') ) {
- variants.set('day', name.replace(/-Dark(?!er)/, '-Light'));
- variants.set('night', variants.get('day').replace(/(-Light|-Darker)/, '-Dark'))
- }
- else if ( name.match(/^(Canta|ChromeOS|Materia|Orchis).*-compact/) ) {
- variants.set('day', name.replace('-dark', ''));
- variants.set('night', variants.get('day').replace(/(-light)?-compact/, '-dark-compact'));
- }
- else if ( name.includes('Flat-Remix-GTK') ) {
- const isSolid = name.includes('-Solid');
- const withoutBorder = name.includes('-NoBorder');
- const basename = name.split('-').slice(0, 4).join('-');
- variants.set('day', basename + (name.includes('-Darker') ? '-Darker' : '') + (isSolid ? '-Solid' : ''));
- variants.set('night', basename + (name.includes('-Darkest') ? '-Darkest' : '-Dark') + (isSolid ? '-Solid' : '') + (withoutBorder ? '-NoBorder' : ''));
- }
- else if ( name.includes('HighContrast') ) {
- variants.set('day', 'HighContrast');
- variants.set('night', 'HighContrastInverse');
- }
- else if ( name.match(/^(Layan|Macwaita|Matcha|Nextwaita)/) ) {
- const basename = name.split('-')[0];
- variants.set('day', name.replace('-dark', ''));
- variants.set('night', variants.get('day').replace(new RegExp(`${basename}(-light)?`), `${basename}-dark`));
- }
- else if ( name.includes('Mojave') ) {
- variants.set('day', name.replace('-dark', '-light'));
- variants.set('night', variants.get('day').replace('-light', '-dark'));
- }
- else if ( name.includes('Plata') ) {
- variants.set('day', name.replace('-Noir', ''));
- variants.set('night', variants.get('day').replace(/Plata(-Lumine)?/, 'Plata-Noir'));
- }
- else if ( name.match(/^Prof-Gnome-(.+)-3(.*)/) ) {
- variants.set('day', name.replace(/-Dark(?!er)/, '-Light'));
- variants.set('night', variants.get('day').replace(/(-Light(-DS)?|-Darker)/, '-Dark'))
- }
- else if ( name.includes('Simply_Circles') ) {
- variants.set('day', name.replace('_Dark', '_Light'));
- variants.set('night', name.replace('_Light', '_Dark'));
- }
- else if ( name.includes('Teja') ) {
- const dark_variant = '_' + (name.replace('_Light').split('_')[1] || 'Dark');
- variants.set('day', name.replace(/(_Dark(est)?|_Black)/, ''));
- variants.set('night', variants.get('day').replace('_Light', '') + dark_variant);
- }
- else if ( name.includes('vimix') ) {
- variants.set('day', name.replace('-dark', ''));
- variants.set('night', variants.get('day').replace(/vimix(-light)?/, 'vimix-dark'));
- }
- else {
- variants.set('day', name.replace(/-dark(?!er)(est)?/, ''));
- variants.set('night', variants.get('day').replace(/(-light|-darker)/, '') + (name.includes('-darkest') ? '-darkest' : '-dark'));
- }
+ if (name.includes('Adapta')) {
+ variants.set('day', name.replace('-Nokto', ''));
+ variants.set('night', variants.get('day').replace('Adapta', 'Adapta-Nokto'));
+ } else if (name.includes('Arc')) {
+ variants.set('day', name.replace(/-Dark(?!er)/, ''));
+ variants.set('night', variants.get('day').replace(/Arc(-Darker)?/, 'Arc-Dark'));
+ } else if (name.match('Cabinet')) {
+ variants.set('day', name.replace(/-Dark(?!er)/, '-Light'));
+ variants.set('night', variants.get('day').replace(/(-Light|-Darker)/, '-Dark'));
+ } else if (name.match(/^(Canta|ChromeOS|Materia|Orchis).*-compact/)) {
+ variants.set('day', name.replace('-dark', ''));
+ variants.set('night', variants.get('day').replace(/(-light)?-compact/, '-dark-compact'));
+ } else if (name.includes('Flat-Remix-GTK')) {
+ const isSolid = name.includes('-Solid');
+ const withoutBorder = name.includes('-NoBorder');
+ const basename = name.split('-').slice(0, 4).join('-');
+ variants.set('day', basename + (name.includes('-Darker') ? '-Darker' : '') + (isSolid ? '-Solid' : ''));
+ variants.set('night', basename + (name.includes('-Darkest') ? '-Darkest' : '-Dark') + (isSolid ? '-Solid' : '') + (withoutBorder ? '-NoBorder' : ''));
+ } else if (name.includes('HighContrast')) {
+ variants.set('day', 'HighContrast');
+ variants.set('night', 'HighContrastInverse');
+ } else if (name.match(/^(Layan|Macwaita|Matcha|Nextwaita)/)) {
+ const basename = name.split('-')[0];
+ variants.set('day', name.replace('-dark', ''));
+ variants.set('night', variants.get('day').replace(new RegExp(`${basename}(-light)?`), `${basename}-dark`));
+ } else if (name.includes('Mojave')) {
+ variants.set('day', name.replace('-dark', '-light'));
+ variants.set('night', variants.get('day').replace('-light', '-dark'));
+ } else if (name.includes('Plata')) {
+ variants.set('day', name.replace('-Noir', ''));
+ variants.set('night', variants.get('day').replace(/Plata(-Lumine)?/, 'Plata-Noir'));
+ } else if (name.match(/^Prof-Gnome-(.+)-3(.*)/)) {
+ variants.set('day', name.replace(/-Dark(?!er)/, '-Light'));
+ variants.set('night', variants.get('day').replace(/(-Light(-DS)?|-Darker)/, '-Dark'));
+ } else if (name.includes('Simply_Circles')) {
+ variants.set('day', name.replace('_Dark', '_Light'));
+ variants.set('night', name.replace('_Light', '_Dark'));
+ } else if (name.includes('Teja')) {
+ const darkVariant = `_${name.replace('_Light').split('_')[1] || 'Dark'}`;
+ variants.set('day', name.replace(/(_Dark(est)?|_Black)/, ''));
+ variants.set('night', variants.get('day').replace('_Light', '') + darkVariant);
+ } else if (name.includes('vimix')) {
+ variants.set('day', name.replace('-dark', ''));
+ variants.set('night', variants.get('day').replace(/vimix(-light)?/, 'vimix-dark'));
+ } else {
+ variants.set('day', name.replace(/-dark(?!er)(est)?/, ''));
+ variants.set('night', variants.get('day').replace(/(-light|-darker)/, '') + (name.includes('-darkest') ? '-darkest' : '-dark'));
+ }
- return variants;
- }
+ return variants;
+ }
-}
+};
diff --git a/src/modules/IconThemer.js b/src/modules/IconThemer.js
index 991c311..938d825 100644
--- a/src/modules/IconThemer.js
+++ b/src/modules/IconThemer.js
@@ -22,7 +22,7 @@ const { main } = imports.ui;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
/**
@@ -31,125 +31,131 @@ const { log_debug } = Me.imports.utils;
*/
var IconThemer = class {
- enable() {
- log_debug('Enabling Icon Themer...');
- this._watch_status();
- this._save_original_theme();
- if ( e.settingsManager.icon_variants_enabled ) {
- this._connect_settings();
- this._connect_timer();
- }
- log_debug('Icon Themer enabled.');
- }
+ constructor() {
+ this._iconVariantsStatusChangedConnect = null;
+ this._iconVariantChangedConnect = null;
+ this._iconThemeChangedConnect = null;
+ this._timeChangedConnect = null;
+ }
- disable() {
- log_debug('Disabling Icon Themer...');
- this._disconnect_timer();
- this._disconnect_settings();
- this._reset_original_theme();
- this._unwatch_status();
- log_debug('Icon Themer disabled.');
- }
+ enable() {
+ logDebug('Enabling Icon Themer...');
+ this._watchStatus();
+ this._saveOriginalTheme();
+ if (e.settingsManager.iconVariantsEnabled) {
+ this._connectSettings();
+ this._connectTimer();
+ }
+ logDebug('Icon Themer enabled.');
+ }
+
+ disable() {
+ logDebug('Disabling Icon Themer...');
+ this._disconnectTimer();
+ this._disconnectSettings();
+ this._resetOriginalTheme();
+ this._unwatchStatus();
+ logDebug('Icon Themer disabled.');
+ }
- _watch_status() {
- log_debug('Watching icon variants status...');
- this._icon_variants_status_changed_connect = e.settingsManager.connect('icon-variants-status-changed', this._on_icon_variants_status_changed.bind(this));
- }
+ _watchStatus() {
+ logDebug('Watching icon variants status...');
+ this._iconVariantsStatusChangedConnect = e.settingsManager.connect('icon-variants-status-changed', this._onIconVariantsStatusChanged.bind(this));
+ }
- _unwatch_status() {
- if ( this._icon_variants_status_changed_connect ) {
- e.settingsManager.disconnect(this._icon_variants_status_changed_connect);
- this._icon_variants_status_changed_connect = null;
- }
- log_debug('Stopped watching icon variants status.');
- }
+ _unwatchStatus() {
+ if (this._iconVariantsStatusChangedConnect) {
+ e.settingsManager.disconnect(this._iconVariantsStatusChangedConnect);
+ this._iconVariantsStatusChangedConnect = null;
+ }
+ logDebug('Stopped watching icon variants status.');
+ }
- _connect_settings() {
- log_debug('Connecting Icon Themer to settings...');
- this._icon_variant_changed_connect = e.settingsManager.connect('icon-variant-changed', this._on_icon_variant_changed.bind(this));
- this._icon_theme_changed_connect = e.settingsManager.connect('icon-theme-changed', this._on_icon_theme_changed.bind(this));
- }
+ _connectSettings() {
+ logDebug('Connecting Icon Themer to settings...');
+ this._iconVariantChangedConnect = e.settingsManager.connect('icon-variant-changed', this._onIconVariantChanged.bind(this));
+ this._iconThemeChangedConnect = e.settingsManager.connect('icon-theme-changed', this._onIconThemeChanged.bind(this));
+ }
- _disconnect_settings() {
- if ( this._icon_variant_changed_connect ) {
- e.settingsManager.disconnect(this._icon_variant_changed_connect);
- this._icon_variant_changed_connect = null;
- }
- if ( this._icon_theme_changed_connect ) {
- e.settingsManager.disconnect(this._icon_theme_changed_connect);
- this._icon_theme_changed_connect = null;
- }
- log_debug('Disconnected Icon Themer from settings.');
- }
+ _disconnectSettings() {
+ if (this._iconVariantChangedConnect) {
+ e.settingsManager.disconnect(this._iconVariantChangedConnect);
+ this._iconVariantChangedConnect = null;
+ }
+ if (this._iconThemeChangedConnect) {
+ e.settingsManager.disconnect(this._iconThemeChangedConnect);
+ this._iconThemeChangedConnect = null;
+ }
+ logDebug('Disconnected Icon Themer from settings.');
+ }
- _connect_timer() {
- log_debug('Connecting Icon Themer to Timer...');
- this._time_changed_connect = e.timer.connect('time-changed', this._on_time_changed.bind(this));
- }
+ _connectTimer() {
+ logDebug('Connecting Icon Themer to Timer...');
+ this._timeChangedConnect = e.timer.connect('time-changed', this._onTimeChanged.bind(this));
+ }
- _disconnect_timer() {
- if ( this._time_changed_connect ) {
- e.timer.disconnect(this._time_changed_connect);
- this._time_changed_connect = null;
- }
- log_debug('Disconnected Icon Themer from Timer.');
- }
+ _disconnectTimer() {
+ if (this._timeChangedConnect) {
+ e.timer.disconnect(this._timeChangedConnect);
+ this._timeChangedConnect = null;
+ }
+ logDebug('Disconnected Icon Themer from Timer.');
+ }
- _on_icon_variants_status_changed(settings, enabled) {
- this.disable();
- this.enable();
- }
+ _onIconVariantsStatusChanged(_settings, _enabled) {
+ this.disable();
+ this.enable();
+ }
- _on_icon_variant_changed(settings, changed_variant_time) {
- if ( changed_variant_time === e.timer.time ) {
- this._set_variant(changed_variant_time);
- }
- }
+ _onIconVariantChanged(_settings, changedVariantTime) {
+ if (changedVariantTime === e.timer.time)
+ this._setVariant(changedVariantTime);
+ }
- _on_icon_theme_changed(settings, new_theme) {
- switch (e.timer.time) {
- case 'day':
- e.settingsManager.icon_variant_day = new_theme;
- break;
- case 'night':
- e.settingsManager.icon_variant_night = new_theme;
- }
- this._set_variant(e.timer.time);
- }
+ _onIconThemeChanged(_settings, newTheme) {
+ switch (e.timer.time) {
+ case 'day':
+ e.settingsManager.iconVariantDay = newTheme;
+ break;
+ case 'night':
+ e.settingsManager.iconVariantNight = newTheme;
+ }
+ this._setVariant(e.timer.time);
+ }
- _on_time_changed(timer, new_time) {
- this._set_variant(new_time);
- }
+ _onTimeChanged(_timer, newTime) {
+ this._setVariant(newTime);
+ }
- _set_variant(time) {
- log_debug(`Setting the icon ${time} variant...`);
- switch (time) {
- case 'day':
- e.settingsManager.icon_theme = e.settingsManager.icon_variant_day;
- break;
- case 'night':
- e.settingsManager.icon_theme = e.settingsManager.icon_variant_night;
- break;
- case 'original':
- e.settingsManager.icon_theme = e.settingsManager.icon_variant_original;
- break;
- }
- }
+ _setVariant(time) {
+ logDebug(`Setting the icon ${time} variant...`);
+ switch (time) {
+ case 'day':
+ e.settingsManager.iconTheme = e.settingsManager.iconVariantDay;
+ break;
+ case 'night':
+ e.settingsManager.iconTheme = e.settingsManager.iconVariantNight;
+ break;
+ case 'original':
+ e.settingsManager.iconTheme = e.settingsManager.iconVariantOriginal;
+ break;
+ }
+ }
- _save_original_theme() {
- e.settingsManager.icon_variant_original = e.settingsManager.icon_theme;
- }
+ _saveOriginalTheme() {
+ e.settingsManager.iconVariantOriginal = e.settingsManager.iconTheme;
+ }
- _reset_original_theme() {
- // We don't reset the theme when locking the session to prevent
- // flicker on unlocking
- if ( !main.screenShield.locked ) {
- log_debug('Resetting to the user\'s original icon theme...');
- this._set_variant('original');
- }
- }
+ _resetOriginalTheme() {
+ // We don't reset the theme when locking the session to prevent
+ // flicker on unlocking
+ if (!main.screenShield.locked) {
+ logDebug('Resetting to the user\'s original icon theme...');
+ this._setVariant('original');
+ }
+ }
-}
+};
diff --git a/src/modules/SettingsManager.js b/src/modules/SettingsManager.js
index 25bc58a..344b314 100644
--- a/src/modules/SettingsManager.js
+++ b/src/modules/SettingsManager.js
@@ -22,13 +22,8 @@ const Signals = imports.signals;
const Me = extensionUtils.getCurrentExtension();
-const { log_debug, get_userthemes_extension, get_userthemes_settings } = Me.imports.utils;
-
-
-const shell_minor_version = parseInt(imports.misc.config.PACKAGE_VERSION.split('.')[1]);
-if ( shell_minor_version <= 30 ) {
- extensionUtils.getSettings = Me.imports.convenience.getSettings;
-}
+const compat = Me.imports.compat;
+const { logDebug, getUserthemesExtension, getUserthemesSettings } = Me.imports.utils;
/**
@@ -38,614 +33,608 @@ if ( shell_minor_version <= 30 ) {
*/
var SettingsManager = class {
- constructor() {
- log_debug('Initializing settings...');
- this._extensionsSettings = extensionUtils.getSettings();
- this._colorSettings = new Gio.Settings({ schema: 'org.gnome.settings-daemon.plugins.color' });
- this._locationSettings = new Gio.Settings({ schema: 'org.gnome.system.location' });
- this._interfaceSettings = new Gio.Settings({ schema: 'org.gnome.desktop.interface' });
- this._backgroundSettings = new Gio.Settings({ schema: 'org.gnome.desktop.background' });
- this._userthemesSettings = get_userthemes_settings();
- log_debug('Settings initialized.');
- }
-
- enable() {
- log_debug('Connecting settings signals...');
- this._gtk_variants_status_changed_connect = this._extensionsSettings.connect('changed::gtk-variants-enabled', this._on_gtk_variants_status_changed.bind(this));
- this._gtk_variant_day_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-day', this._on_gtk_variant_day_changed.bind(this));
- this._gtk_variant_night_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-night', this._on_gtk_variant_night_changed.bind(this));
- this._gtk_variant_original_changed_connect = this._extensionsSettings.connect('changed::gtk-variant-original', this._on_gtk_variant_original_changed.bind(this));
- this._shell_variants_status_changed_connect = this._extensionsSettings.connect('changed::shell-variants-enabled', this._on_shell_variants_status_changed.bind(this));
- this._shell_variant_day_changed_connect = this._extensionsSettings.connect('changed::shell-variant-day', this._on_shell_variant_day_changed.bind(this));
- this._shell_variant_night_changed_connect = this._extensionsSettings.connect('changed::shell-variant-night', this._on_shell_variant_night_changed.bind(this));
- this._shell_variant_original_changed_connect = this._extensionsSettings.connect('changed::shell-variant-original', this._on_shell_variant_original_changed.bind(this));
- this._icon_variants_status_connect = this._extensionsSettings.connect('changed::icon-variants-enabled', this._on_icon_variants_status_changed.bind(this));
- this._icon_variant_day_changed_connect = this._extensionsSettings.connect('changed::icon-variant-day', this._on_icon_variant_day_changed.bind(this));
- this._icon_variant_night_changed_connect = this._extensionsSettings.connect('changed::icon-variant-night', this._on_icon_variant_night_changed.bind(this));
- this._icon_variant_original_changed_connect = this._extensionsSettings.connect('changed::icon-variant-original', this._on_icon_variant_original_changed.bind(this));
- this._cursor_variants_status_connect = this._extensionsSettings.connect('changed::cursor-variants-enabled', this._on_cursor_variants_status_changed.bind(this));
- this._cursor_variant_day_changed_connect = this._extensionsSettings.connect('changed::cursor-variant-day', this._on_cursor_variant_day_changed.bind(this));
- this._cursor_variant_night_changed_connect = this._extensionsSettings.connect('changed::cursor-variant-night', this._on_cursor_variant_night_changed.bind(this));
- this._cursor_variant_original_changed_connect = this._extensionsSettings.connect('changed::cursor-variant-original', this._on_cursor_variant_original_changed.bind(this));
- this._time_source_changed_connect = this._extensionsSettings.connect('changed::time-source', this._on_time_source_changed.bind(this));
- this._manual_time_source_changed_connect = this._extensionsSettings.connect('changed::manual-time-source', this._on_manual_time_source_changed.bind(this));
- this._commands_status_connect = this._extensionsSettings.connect('changed::commands-enabled', this._on_commands_status_changed.bind(this));
- this._backgrounds_status_connect = this._extensionsSettings.connect('changed::backgrounds-enabled', this._on_backgrounds_status_changed.bind(this));
- this._background_day_changed_connect = this._extensionsSettings.connect('changed::background-day', this._on_background_day_changed.bind(this));
- this._background_night_changed_connect = this._extensionsSettings.connect('changed::background-night', this._on_background_night_changed.bind(this));
- this._nightlight_status_connect = this._colorSettings.connect('changed::night-light-enabled', this._on_nightlight_status_changed.bind(this));
- this._location_status_connect = this._locationSettings.connect('changed::enabled', this._on_location_status_changed.bind(this));
- this._gtk_theme_changed_connect = this._interfaceSettings.connect('changed::gtk-theme', this._on_gtk_theme_changed.bind(this));
- this._icon_theme_changed_connect = this._interfaceSettings.connect('changed::icon-theme', this._on_icon_theme_changed.bind(this));
- this._cursor_theme_changed_connect = this._interfaceSettings.connect('changed::cursor-theme', this._on_cursor_theme_changed.bind(this));
- this._background_changed_connect = this._backgroundSettings.connect('changed::picture-uri', this._on_background_changed.bind(this));
- if ( this._userthemesSettings ) {
- this._shell_theme_changed_connect = this._userthemesSettings.connect('changed::name', this._on_shell_theme_changed.bind(this));
- }
- log_debug('Settings signals connected.');
- }
-
- disable() {
- log_debug('Disconnecting settings signals...');
- this._extensionsSettings.disconnect(this._gtk_variants_status_changed_connect);
- this._extensionsSettings.disconnect(this._gtk_variant_day_changed_connect);
- this._extensionsSettings.disconnect(this._gtk_variant_night_changed_connect);
- this._extensionsSettings.disconnect(this._gtk_variant_original_changed_connect);
- this._extensionsSettings.disconnect(this._shell_variants_status_changed_connect);
- this._extensionsSettings.disconnect(this._shell_variant_day_changed_connect);
- this._extensionsSettings.disconnect(this._shell_variant_night_changed_connect);
- this._extensionsSettings.disconnect(this._shell_variant_original_changed_connect);
- this._extensionsSettings.disconnect(this._icon_variants_status_connect);
- this._extensionsSettings.disconnect(this._icon_variant_day_changed_connect);
- this._extensionsSettings.disconnect(this._icon_variant_night_changed_connect);
- this._extensionsSettings.disconnect(this._icon_variant_original_changed_connect);
- this._extensionsSettings.disconnect(this._cursor_variants_status_connect);
- this._extensionsSettings.disconnect(this._cursor_variant_day_changed_connect);
- this._extensionsSettings.disconnect(this._cursor_variant_night_changed_connect);
- this._extensionsSettings.disconnect(this._cursor_variant_original_changed_connect);
- this._extensionsSettings.disconnect(this._time_source_changed_connect);
- this._extensionsSettings.disconnect(this._manual_time_source_changed_connect);
- this._extensionsSettings.disconnect(this._commands_status_connect);
- this._extensionsSettings.disconnect(this._backgrounds_status_connect);
- this._extensionsSettings.disconnect(this._background_day_changed_connect);
- this._extensionsSettings.disconnect(this._background_night_changed_connect);
- this._colorSettings.disconnect(this._nightlight_status_connect);
- this._locationSettings.disconnect(this._location_status_connect);
- this._interfaceSettings.disconnect(this._gtk_theme_changed_connect);
- this._interfaceSettings.disconnect(this._icon_theme_changed_connect);
- this._interfaceSettings.disconnect(this._cursor_theme_changed_connect);
- this._backgroundSettings.disconnect(this._background_changed_connect);
- if ( this._userthemesSettings ) {
- this._userthemesSettings.disconnect(this._shell_theme_changed_connect);
- }
- log_debug('Settings signals disconnected.');
- }
-
- /**
- * SETTERS AND GETTERS
- */
-
- /* GTK variants settings */
-
- get gtk_variants_enabled() {
- return this._extensionsSettings.get_boolean('gtk-variants-enabled');
- }
-
- get gtk_variant_day() {
- return this._extensionsSettings.get_string('gtk-variant-day');
- }
-
- set gtk_variant_day(value) {
- if ( value !== this.gtk_variant_day ) {
- this._extensionsSettings.set_string('gtk-variant-day', value);
- log_debug(`The GTK day variant has been set to '${value}'.`);
- }
- }
-
- get gtk_variant_night() {
- return this._extensionsSettings.get_string('gtk-variant-night');
- }
-
- set gtk_variant_night(value) {
- if ( value !== this.gtk_variant_night ) {
- this._extensionsSettings.set_string('gtk-variant-night', value);
- log_debug(`The GTK night variant has been set to '${value}'.`);
- }
- }
-
- get gtk_variant_original() {
- return this._extensionsSettings.get_string('gtk-variant-original');
- }
-
- set gtk_variant_original(value) {
- if ( value !== this.gtk_variant_original ) {
- this._extensionsSettings.set_string('gtk-variant-original', value);
- log_debug(`The GTK original variant has been set to '${value}'.`);
- }
- }
-
- get manual_gtk_variants() {
- return this._extensionsSettings.get_boolean('manual-gtk-variants');
- }
-
-
- /* Shell variants settings */
-
- get shell_variants_enabled() {
- return this._extensionsSettings.get_boolean('shell-variants-enabled');
- }
-
- get shell_variant_day() {
- return this._extensionsSettings.get_string('shell-variant-day');
- }
-
- set shell_variant_day(value) {
- if ( value !== this.shell_variant_day ) {
- this._extensionsSettings.set_string('shell-variant-day', value);
- log_debug(`The shell day variant has been set to '${value}'.`);
- }
- }
-
- get shell_variant_night() {
- return this._extensionsSettings.get_string('shell-variant-night');
- }
-
- set shell_variant_night(value) {
- if ( value !== this.shell_variant_night ) {
- this._extensionsSettings.set_string('shell-variant-night', value);
- log_debug(`The shell night variant has been set to '${value}'.`);
- }
- }
-
- get shell_variant_original() {
- return this._extensionsSettings.get_string('shell-variant-original');
- }
-
- set shell_variant_original(value) {
- if ( value !== this.shell_variant_original ) {
- this._extensionsSettings.set_string('shell-variant-original', value);
- log_debug(`The shell original variant has been set to '${value}'.`);
- }
- }
-
- get manual_shell_variants() {
- return this._extensionsSettings.get_boolean('manual-shell-variants');
- }
-
- /* Cursor variants settings */
-
- get cursor_variants_enabled() {
- return this._extensionsSettings.get_boolean('cursor-variants-enabled');
- }
-
- get cursor_variant_day() {
- return this._extensionsSettings.get_string('cursor-variant-day') || this.cursor_theme;
- }
-
- set cursor_variant_day(value) {
- if ( value !== this.cursor_variant_day ) {
- this._extensionsSettings.set_string('cursor-variant-day', value);
- log_debug(`The cursor day variant has been set to '${value}'.`);
- }
- }
-
- get cursor_variant_night() {
- return this._extensionsSettings.get_string('cursor-variant-night') || this.cursor_theme;
- }
-
- set cursor_variant_night(value) {
- if ( value !== this.cursor_variant_night ) {
- this._extensionsSettings.set_string('cursor-variant-night', value);
- log_debug(`The cursor night variant has been set to '${value}'.`);
- }
- }
-
- get cursor_variant_original() {
- return this._extensionsSettings.get_string('cursor-variant-original');
- }
-
- set cursor_variant_original(value) {
- if ( value !== this.cursor_variant_original ) {
- this._extensionsSettings.set_string('cursor-variant-original', value);
- log_debug(`The cursor original variant has been set to '${value}'.`);
- }
- }
-
- /* Icon variants settings */
-
- get icon_variants_enabled() {
- return this._extensionsSettings.get_boolean('icon-variants-enabled');
- }
-
- get icon_variant_day() {
- return this._extensionsSettings.get_string('icon-variant-day') || this.icon_theme;
- }
-
- set icon_variant_day(value) {
- if ( value !== this.icon_variant_day ) {
- this._extensionsSettings.set_string('icon-variant-day', value);
- log_debug(`The icon day variant has been set to '${value}'.`);
- }
- }
+ constructor() {
+ logDebug('Initializing settings...');
+ this._extensionsSettings = compat.getExtensionSettings();
+ this._colorSettings = new Gio.Settings({ schema: 'org.gnome.settings-daemon.plugins.color' });
+ this._locationSettings = new Gio.Settings({ schema: 'org.gnome.system.location' });
+ this._interfaceSettings = new Gio.Settings({ schema: 'org.gnome.desktop.interface' });
+ this._backgroundSettings = new Gio.Settings({ schema: 'org.gnome.desktop.background' });
+ this._userthemesSettings = getUserthemesSettings();
+ logDebug('Settings initialized.');
+ }
+
+ enable() {
+ logDebug('Connecting settings signals...');
+ this._gtkVariantsStatusChangedConnect = this._extensionsSettings.connect('changed::gtk-variants-enabled', this._onGtkVariantsStatusChanged.bind(this));
+ this._gtkVariantDayChangedConnect = this._extensionsSettings.connect('changed::gtk-variant-day', this._onGtkVariantDayChanged.bind(this));
+ this._gtkVariantNightChangedConnect = this._extensionsSettings.connect('changed::gtk-variant-night', this._onGtkVariantNightChanged.bind(this));
+ this._gtkVariantOriginalChangedConnect = this._extensionsSettings.connect('changed::gtk-variant-original', this._onGtkVariantOriginalChanged.bind(this));
+ this._shellVariantsStatusChangedConnect = this._extensionsSettings.connect('changed::shell-variants-enabled', this._onShellVariantsStatusChanged.bind(this));
+ this._shellVariantDayChangedConnect = this._extensionsSettings.connect('changed::shell-variant-day', this._onShellVariantDayChanged.bind(this));
+ this._shellVariantNightChangedConnect = this._extensionsSettings.connect('changed::shell-variant-night', this._onShellVariantNightChanged.bind(this));
+ this._shellVariantOriginalChangedConnect = this._extensionsSettings.connect('changed::shell-variant-original', this._onShellVariantOriginalChanged.bind(this));
+ this._iconVariantsStatusConnect = this._extensionsSettings.connect('changed::icon-variants-enabled', this._onIconVariantsStatusChanged.bind(this));
+ this._iconVariantDayChangedConnect = this._extensionsSettings.connect('changed::icon-variant-day', this._onIconVariantDayChanged.bind(this));
+ this._iconVariantNightChangedConnect = this._extensionsSettings.connect('changed::icon-variant-night', this._onIconVariantNightChanged.bind(this));
+ this._iconVariantOriginalChangedConnect = this._extensionsSettings.connect('changed::icon-variant-original', this._onIconVariantOriginalChanged.bind(this));
+ this._cursorVariantsStatusConnect = this._extensionsSettings.connect('changed::cursor-variants-enabled', this._onCursorVariantsStatusChanged.bind(this));
+ this._cursorVariantDayChangedConnect = this._extensionsSettings.connect('changed::cursor-variant-day', this._onCursorVariantDayChanged.bind(this));
+ this._cursorVariantNightChangedConnect = this._extensionsSettings.connect('changed::cursor-variant-night', this._onCursorVariantNightChanged.bind(this));
+ this._cursorVariantOriginalChangedConnect = this._extensionsSettings.connect('changed::cursor-variant-original', this._onCursorVariantOriginalChanged.bind(this));
+ this._timeSourceChangedConnect = this._extensionsSettings.connect('changed::time-source', this._onTimeSourceChanged.bind(this));
+ this._manualTimeSourceChangedConnect = this._extensionsSettings.connect('changed::manual-time-source', this._onManualTimeSourceChanged.bind(this));
+ this._commandsStatusConnect = this._extensionsSettings.connect('changed::commands-enabled', this._onCommandsStatusChanged.bind(this));
+ this._backgroundsStatusConnect = this._extensionsSettings.connect('changed::backgrounds-enabled', this._onBackgroundsStatusChanged.bind(this));
+ this._backgroundDayChangedConnect = this._extensionsSettings.connect('changed::background-day', this._onBackgroundDayChanged.bind(this));
+ this._backgroundNightChangedConnect = this._extensionsSettings.connect('changed::background-night', this._onBackgroundNightChanged.bind(this));
+ this._nightlightStatusConnect = this._colorSettings.connect('changed::night-light-enabled', this._onNightlightStatusChanged.bind(this));
+ this._locationStatusConnect = this._locationSettings.connect('changed::enabled', this._onLocationStatusChanged.bind(this));
+ this._gtkThemeChangedConnect = this._interfaceSettings.connect('changed::gtk-theme', this._onGtkThemeChanged.bind(this));
+ this._iconThemeChangedConnect = this._interfaceSettings.connect('changed::icon-theme', this._onIconThemeChanged.bind(this));
+ this._cursorThemeChangedConnect = this._interfaceSettings.connect('changed::cursor-theme', this._onCursorThemeChanged.bind(this));
+ this._backgroundChangedConnect = this._backgroundSettings.connect('changed::picture-uri', this._onBackgroundChanged.bind(this));
+ if (this._userthemesSettings)
+ this._shell_theme_changed_connect = this._userthemesSettings.connect('changed::name', this._onShellThemeChanged.bind(this));
+ logDebug('Settings signals connected.');
+ }
+
+ disable() {
+ logDebug('Disconnecting settings signals...');
+ this._extensionsSettings.disconnect(this._gtkVariantsStatusChangedConnect);
+ this._extensionsSettings.disconnect(this._gtkVariantDayChangedConnect);
+ this._extensionsSettings.disconnect(this._gtkVariantNightChangedConnect);
+ this._extensionsSettings.disconnect(this._gtkVariantOriginalChangedConnect);
+ this._extensionsSettings.disconnect(this._shellVariantsStatusChangedConnect);
+ this._extensionsSettings.disconnect(this._shellVariantDayChangedConnect);
+ this._extensionsSettings.disconnect(this._shellVariantNightChangedConnect);
+ this._extensionsSettings.disconnect(this._shellVariantOriginalChangedConnect);
+ this._extensionsSettings.disconnect(this._iconVariantsStatusConnect);
+ this._extensionsSettings.disconnect(this._iconVariantDayChangedConnect);
+ this._extensionsSettings.disconnect(this._iconVariantNightChangedConnect);
+ this._extensionsSettings.disconnect(this._iconVariantOriginalChangedConnect);
+ this._extensionsSettings.disconnect(this._cursorVariantsStatusConnect);
+ this._extensionsSettings.disconnect(this._cursorVariantDayChangedConnect);
+ this._extensionsSettings.disconnect(this._cursorVariantNightChangedConnect);
+ this._extensionsSettings.disconnect(this._cursorVariantOriginalChangedConnect);
+ this._extensionsSettings.disconnect(this._timeSourceChangedConnect);
+ this._extensionsSettings.disconnect(this._manualTimeSourceChangedConnect);
+ this._extensionsSettings.disconnect(this._commandsStatusConnect);
+ this._extensionsSettings.disconnect(this._backgroundsStatusConnect);
+ this._extensionsSettings.disconnect(this._backgroundDayChangedConnect);
+ this._extensionsSettings.disconnect(this._backgroundNightChangedConnect);
+ this._colorSettings.disconnect(this._nightlightStatusConnect);
+ this._locationSettings.disconnect(this._locationStatusConnect);
+ this._interfaceSettings.disconnect(this._gtkThemeChangedConnect);
+ this._interfaceSettings.disconnect(this._iconThemeChangedConnect);
+ this._interfaceSettings.disconnect(this._cursorThemeChangedConnect);
+ this._backgroundSettings.disconnect(this._backgroundChangedConnect);
+ if (this._userthemesSettings)
+ this._userthemesSettings.disconnect(this._shell_theme_changed_connect);
+ logDebug('Settings signals disconnected.');
+ }
+
+ /**
+ * SETTERS AND GETTERS
+ */
+
+ /* GTK variants settings */
+
+ get gtkVariantsEnabled() {
+ return this._extensionsSettings.get_boolean('gtk-variants-enabled');
+ }
+
+ get gtkVariantDay() {
+ return this._extensionsSettings.get_string('gtk-variant-day');
+ }
+
+ set gtkVariantDay(value) {
+ if (value !== this.gtkVariantDay) {
+ this._extensionsSettings.set_string('gtk-variant-day', value);
+ logDebug(`The GTK day variant has been set to '${value}'.`);
+ }
+ }
+
+ get gtkVariantNight() {
+ return this._extensionsSettings.get_string('gtk-variant-night');
+ }
+
+ set gtkVariantNight(value) {
+ if (value !== this.gtkVariantNight) {
+ this._extensionsSettings.set_string('gtk-variant-night', value);
+ logDebug(`The GTK night variant has been set to '${value}'.`);
+ }
+ }
+
+ get gtkVariantOriginal() {
+ return this._extensionsSettings.get_string('gtk-variant-original');
+ }
+
+ set gtkVariantOriginal(value) {
+ if (value !== this.gtkVariantOriginal) {
+ this._extensionsSettings.set_string('gtk-variant-original', value);
+ logDebug(`The GTK original variant has been set to '${value}'.`);
+ }
+ }
+
+ get manualGtkVariants() {
+ return this._extensionsSettings.get_boolean('manual-gtk-variants');
+ }
+
+
+ /* Shell variants settings */
+
+ get shellVariantsEnabled() {
+ return this._extensionsSettings.get_boolean('shell-variants-enabled');
+ }
+
+ get shellVariantDay() {
+ return this._extensionsSettings.get_string('shell-variant-day');
+ }
+
+ set shellVariantDay(value) {
+ if (value !== this.shellVariantDay) {
+ this._extensionsSettings.set_string('shell-variant-day', value);
+ logDebug(`The shell day variant has been set to '${value}'.`);
+ }
+ }
+
+ get shellVariantNight() {
+ return this._extensionsSettings.get_string('shell-variant-night');
+ }
+
+ set shellVariantNight(value) {
+ if (value !== this.shellVariantNight) {
+ this._extensionsSettings.set_string('shell-variant-night', value);
+ logDebug(`The shell night variant has been set to '${value}'.`);
+ }
+ }
+
+ get shellVariantOriginal() {
+ return this._extensionsSettings.get_string('shell-variant-original');
+ }
+
+ set shellVariantOriginal(value) {
+ if (value !== this.shellVariantOriginal) {
+ this._extensionsSettings.set_string('shell-variant-original', value);
+ logDebug(`The shell original variant has been set to '${value}'.`);
+ }
+ }
+
+ get manualShellVariants() {
+ return this._extensionsSettings.get_boolean('manual-shell-variants');
+ }
+
+ /* Cursor variants settings */
+
+ get cursorVariantsEnabled() {
+ return this._extensionsSettings.get_boolean('cursor-variants-enabled');
+ }
+
+ get cursorVariantDay() {
+ return this._extensionsSettings.get_string('cursor-variant-day') || this.cursorTheme;
+ }
+
+ set cursorVariantDay(value) {
+ if (value !== this.cursorVariantDay) {
+ this._extensionsSettings.set_string('cursor-variant-day', value);
+ logDebug(`The cursor day variant has been set to '${value}'.`);
+ }
+ }
+
+ get cursorVariantNight() {
+ return this._extensionsSettings.get_string('cursor-variant-night') || this.cursorTheme;
+ }
+
+ set cursorVariantNight(value) {
+ if (value !== this.cursorVariantNight) {
+ this._extensionsSettings.set_string('cursor-variant-night', value);
+ logDebug(`The cursor night variant has been set to '${value}'.`);
+ }
+ }
+
+ get cursorVariantOriginal() {
+ return this._extensionsSettings.get_string('cursor-variant-original');
+ }
+
+ set cursorVariantOriginal(value) {
+ if (value !== this.cursorVariantOriginal) {
+ this._extensionsSettings.set_string('cursor-variant-original', value);
+ logDebug(`The cursor original variant has been set to '${value}'.`);
+ }
+ }
+
+ /* Icon variants settings */
+
+ get iconVariantsEnabled() {
+ return this._extensionsSettings.get_boolean('icon-variants-enabled');
+ }
+
+ get iconVariantDay() {
+ return this._extensionsSettings.get_string('icon-variant-day') || this.iconTheme;
+ }
+
+ set iconVariantDay(value) {
+ if (value !== this.iconVariantDay) {
+ this._extensionsSettings.set_string('icon-variant-day', value);
+ logDebug(`The icon day variant has been set to '${value}'.`);
+ }
+ }
- get icon_variant_night() {
- return this._extensionsSettings.get_string('icon-variant-night') || this.icon_theme;
- }
-
- set icon_variant_night(value) {
- if ( value !== this.icon_variant_night ) {
- this._extensionsSettings.set_string('icon-variant-night', value);
- log_debug(`The icon night variant has been set to '${value}'.`);
- }
- }
+ get iconVariantNight() {
+ return this._extensionsSettings.get_string('icon-variant-night') || this.iconTheme;
+ }
+
+ set iconVariantNight(value) {
+ if (value !== this.iconVariantNight) {
+ this._extensionsSettings.set_string('icon-variant-night', value);
+ logDebug(`The icon night variant has been set to '${value}'.`);
+ }
+ }
- get icon_variant_original() {
- return this._extensionsSettings.get_string('icon-variant-original');
- }
+ get iconVariantOriginal() {
+ return this._extensionsSettings.get_string('icon-variant-original');
+ }
- set icon_variant_original(value) {
- if ( value !== this.icon_variant_original ) {
- this._extensionsSettings.set_string('icon-variant-original', value);
- log_debug(`The icon original variant has been set to '${value}'.`);
- }
- }
+ set iconVariantOriginal(value) {
+ if (value !== this.iconVariantOriginal) {
+ this._extensionsSettings.set_string('icon-variant-original', value);
+ logDebug(`The icon original variant has been set to '${value}'.`);
+ }
+ }
- /* Time source settings */
+ /* Time source settings */
- get time_source() {
- return this._extensionsSettings.get_string('time-source');
- }
+ get timeSource() {
+ return this._extensionsSettings.get_string('time-source');
+ }
- get manual_time_source() {
- return this._extensionsSettings.get_boolean('manual-time-source');
- }
+ set timeSource(value) {
+ if (value !== this.timeSource) {
+ this._extensionsSettings.set_string('time-source', value);
+ logDebug(`The time source has been set to ${value}.`);
+ }
+ }
- set time_source(value) {
- if ( value !== this.time_source ) {
- this._extensionsSettings.set_string('time-source', value);
- log_debug(`The time source has been set to ${value}.`);
- }
- }
+ get manualTimeSource() {
+ return this._extensionsSettings.get_boolean('manual-time-source');
+ }
- get ondemand_time() {
- return this._extensionsSettings.get_string('ondemand-time');
- }
+ get ondemandTime() {
+ return this._extensionsSettings.get_string('ondemand-time');
+ }
- set ondemand_time(value) {
- if ( value !== this.ondemand_time ) {
- this._extensionsSettings.set_string('ondemand-time', value);
- log_debug(`The on-demand time has been set to ${value}.`);
- }
- }
+ set ondemandTime(value) {
+ if (value !== this.ondemandTime) {
+ this._extensionsSettings.set_string('ondemand-time', value);
+ logDebug(`The on-demand time has been set to ${value}.`);
+ }
+ }
- get schedule_sunrise() {
- return this._extensionsSettings.get_double('schedule-sunrise');
- }
+ get scheduleSunrise() {
+ return this._extensionsSettings.get_double('schedule-sunrise');
+ }
- get schedule_sunset() {
- return this._extensionsSettings.get_double('schedule-sunset');
- }
+ get scheduleSunset() {
+ return this._extensionsSettings.get_double('schedule-sunset');
+ }
- /* Commands settings */
+ /* Commands settings */
- get commands_enabled() {
- return this._extensionsSettings.get_boolean('commands-enabled');
- }
+ get commandsEnabled() {
+ return this._extensionsSettings.get_boolean('commands-enabled');
+ }
- get command_sunrise() {
- return this._extensionsSettings.get_string('command-sunrise');
- }
+ get commandSunrise() {
+ return this._extensionsSettings.get_string('command-sunrise');
+ }
- get command_sunset() {
- return this._extensionsSettings.get_string('command-sunset');
- }
+ get commandSunset() {
+ return this._extensionsSettings.get_string('command-sunset');
+ }
- /* Background settings */
+ /* Background settings */
- get backgrounds_enabled() {
- return this._extensionsSettings.get_boolean('backgrounds-enabled');
- }
+ get backgroundsEnabled() {
+ return this._extensionsSettings.get_boolean('backgrounds-enabled');
+ }
- get background_day() {
- return this._extensionsSettings.get_string('background-day') || this.background;
- }
+ get backgroundDay() {
+ return this._extensionsSettings.get_string('background-day') || this.background;
+ }
- set background_day(value) {
- this._extensionsSettings.set_string('background-day', value);
- }
+ set backgroundDay(value) {
+ this._extensionsSettings.set_string('background-day', value);
+ }
- get background_night() {
- return this._extensionsSettings.get_string('background-night') || this.background;
- }
+ get backgroundNight() {
+ return this._extensionsSettings.get_string('background-night') || this.background;
+ }
- set background_night(value) {
- this._extensionsSettings.set_string('background-night', value);
- }
+ set backgroundNight(value) {
+ this._extensionsSettings.set_string('background-night', value);
+ }
- /* Night Light settings */
+ /* Night Light settings */
- get nightlight_enabled() {
- return this._colorSettings.get_boolean('night-light-enabled');
- }
+ get nightlightEnabled() {
+ return this._colorSettings.get_boolean('night-light-enabled');
+ }
- /* Location settings */
+ /* Location settings */
- get location_enabled() {
- return this._locationSettings.get_boolean('enabled');
- }
+ get locationEnabled() {
+ return this._locationSettings.get_boolean('enabled');
+ }
- /* GTK theme settings */
+ /* GTK theme settings */
- get gtk_theme() {
- return this._interfaceSettings.get_string('gtk-theme');
- }
+ get gtkTheme() {
+ return this._interfaceSettings.get_string('gtk-theme');
+ }
- set gtk_theme(value) {
- if ( value !== this.gtk_theme ) {
- this._interfaceSettings.set_string('gtk-theme', value);
- log_debug(`GTK theme has been set to '${value}'.`);
- }
- }
+ set gtkTheme(value) {
+ if (value !== this.gtkTheme) {
+ this._interfaceSettings.set_string('gtk-theme', value);
+ logDebug(`GTK theme has been set to '${value}'.`);
+ }
+ }
- /* Shell theme settings */
+ /* Shell theme settings */
- get shell_theme() {
- if ( this._userthemesSettings ) {
- return this._userthemesSettings.get_string('name');
- }
- else {
- return '';
- }
- }
+ get shellTheme() {
+ if (this._userthemesSettings)
+ return this._userthemesSettings.get_string('name');
+ else
+ return '';
+ }
- set shell_theme(value) {
- if ( this._userthemesSettings && value !== this.shell_theme ) {
- this._userthemesSettings.set_string('name', value);
- }
- }
+ set shellTheme(value) {
+ if (this._userthemesSettings && value !== this.shellTheme)
+ this._userthemesSettings.set_string('name', value);
+ }
- get use_userthemes() {
- const extension = get_userthemes_extension();
- return (extension && extension.state === 1);
- }
+ get useUserthemes() {
+ const extension = getUserthemesExtension();
+ return extension && extension.state === 1;
+ }
- /* Icon theme settings */
+ /* Icon theme settings */
- get icon_theme() {
- return this._interfaceSettings.get_string('icon-theme');
- }
+ get iconTheme() {
+ return this._interfaceSettings.get_string('icon-theme');
+ }
- set icon_theme(value) {
- if ( value !== this.icon_theme ) {
- this._interfaceSettings.set_string('icon-theme', value);
- log_debug(`Icon theme has been set to '${value}'.`);
- }
- }
+ set iconTheme(value) {
+ if (value !== this.iconTheme) {
+ this._interfaceSettings.set_string('icon-theme', value);
+ logDebug(`Icon theme has been set to '${value}'.`);
+ }
+ }
- /* Cursor theme settings */
+ /* Cursor theme settings */
- get cursor_theme() {
- return this._interfaceSettings.get_string('cursor-theme');
- }
+ get cursorTheme() {
+ return this._interfaceSettings.get_string('cursor-theme');
+ }
- set cursor_theme(value) {
- if ( value !== this.cursor_theme ) {
- this._interfaceSettings.set_string('cursor-theme', value);
- log_debug(`Cursor theme has been set to '${value}'.`);
- }
- }
+ set cursorTheme(value) {
+ if (value !== this.cursorTheme) {
+ this._interfaceSettings.set_string('cursor-theme', value);
+ logDebug(`Cursor theme has been set to '${value}'.`);
+ }
+ }
- /* Background settings */
+ /* Background settings */
- get background() {
- return this._backgroundSettings.get_string('picture-uri');
- }
+ get background() {
+ return this._backgroundSettings.get_string('picture-uri');
+ }
- set background(value) {
- if ( value !== this.background ) {
- this._backgroundSettings.set_string('picture-uri', value);
- }
- }
+ set background(value) {
+ if (value !== this.background)
+ this._backgroundSettings.set_string('picture-uri', value);
+ }
- /**
- * SIGNALS
- */
+ /**
+ * SIGNALS
+ */
- /* GTK variants */
+ /* GTK variants */
- _on_gtk_variants_status_changed(settings, changed_key) {
- log_debug('GTK variants have been ' + (this.gtk_variants_enabled ? 'ena' : 'disa') + 'bled.');
- this.emit('gtk-variants-status-changed', this.gtk_variants_enabled);
- }
+ _onGtkVariantsStatusChanged(_settings, _changedKey) {
+ logDebug(`GTK variants have been ${this.gtkVariantsEnabled ? 'ena' : 'disa'}bled.`);
+ this.emit('gtk-variants-status-changed', this.gtkVariantsEnabled);
+ }
- _on_gtk_variant_day_changed(settings, changed_key) {
- log_debug(`GTK day variant has changed to '${this.gtk_variant_day}'.`);
- this.emit('gtk-variant-changed', 'day');
- }
+ _onGtkVariantDayChanged(_settings, _changedKey) {
+ logDebug(`GTK day variant has changed to '${this.gtkVariantDay}'.`);
+ this.emit('gtk-variant-changed', 'day');
+ }
- _on_gtk_variant_night_changed(settings, changed_key) {
- log_debug(`GTK night variant has changed to '${this.gtk_variant_night}'.`);
- this.emit('gtk-variant-changed', 'night');
- }
+ _onGtkVariantNightChanged(_settings, _changedKey) {
+ logDebug(`GTK night variant has changed to '${this.gtkVariantNight}'.`);
+ this.emit('gtk-variant-changed', 'night');
+ }
- _on_gtk_variant_original_changed(settings, changed_key) {
- log_debug(`GTK original variant has changed to '${this.gtk_variant_original}'.`);
- this.emit('gtk-variant-changed', 'original');
- }
+ _onGtkVariantOriginalChanged(_settings, _changedKey) {
+ logDebug(`GTK original variant has changed to '${this.gtkVariantOriginal}'.`);
+ this.emit('gtk-variant-changed', 'original');
+ }
- /* Shell variants */
+ /* Shell variants */
- _on_shell_variants_status_changed(settings, changed_key) {
- log_debug('Shell variants have been ' + (this.shell_variants_enabled ? 'ena' : 'disa') + 'bled.');
- this.emit('shell-variants-status-changed', this.shell_variants_enabled);
- }
+ _onShellVariantsStatusChanged(_settings, _changedKey) {
+ logDebug(`Shell variants have been ${this.shellVariantsEnabled ? 'ena' : 'disa'}bled.`);
+ this.emit('shell-variants-status-changed', this.shellVariantsEnabled);
+ }
- _on_shell_variant_day_changed(settings, changed_key) {
- log_debug(`Shell day variant has changed to '${this.shell_variant_day}'.`);
- this.emit('shell-variant-changed', 'day');
- }
+ _onShellVariantDayChanged(_settings, _changedKey) {
+ logDebug(`Shell day variant has changed to '${this.shellVariantDay}'.`);
+ this.emit('shell-variant-changed', 'day');
+ }
- _on_shell_variant_night_changed(settings, changed_key) {
- log_debug(`Shell night variant has changed to '${this.shell_variant_night}'.`);
- this.emit('shell-variant-changed', 'night');
- }
+ _onShellVariantNightChanged(_settings, _changedKey) {
+ logDebug(`Shell night variant has changed to '${this.shellVariantNight}'.`);
+ this.emit('shell-variant-changed', 'night');
+ }
- _on_shell_variant_original_changed(settings, changed_key) {
- log_debug(`Shell original variant has changed to '${this.shell_variant_original}'.`);
- this.emit('shell-variant-changed', 'original');
- }
+ _onShellVariantOriginalChanged(_settings, _changedKey) {
+ logDebug(`Shell original variant has changed to '${this.shellVariantOriginal}'.`);
+ this.emit('shell-variant-changed', 'original');
+ }
- /* Cursor variants */
+ /* Cursor variants */
- _on_cursor_variants_status_changed(settings, changed_key) {
- log_debug('Cursor variants have been ' + (this.cursor_variants_enabled ? 'ena' : 'disa') + 'bled.');
- this.emit('cursor-variants-status-changed', this.cursor_variants_enabled);
- }
+ _onCursorVariantsStatusChanged(_settings, _changedKey) {
+ logDebug(`Cursor variants have been ${this.cursorVariantsEnabled ? 'ena' : 'disa'}bled.`);
+ this.emit('cursor-variants-status-changed', this.cursorVariantsEnabled);
+ }
- _on_cursor_variant_day_changed(settings, changed_key) {
- log_debug(`Cursor day variant has changed to '${this.cursor_variant_day}'.`);
- this.emit('cursor-variant-changed', 'day');
- }
+ _onCursorVariantDayChanged(_settings, _changedKey) {
+ logDebug(`Cursor day variant has changed to '${this.cursorVariantDay}'.`);
+ this.emit('cursor-variant-changed', 'day');
+ }
- _on_cursor_variant_night_changed(settings, changed_key) {
- log_debug(`Cursor night variant has changed to '${this.cursor_variant_night}'.`);
- this.emit('cursor-variant-changed', 'night');
- }
+ _onCursorVariantNightChanged(_settings, _changedKey) {
+ logDebug(`Cursor night variant has changed to '${this.cursorVariantNight}'.`);
+ this.emit('cursor-variant-changed', 'night');
+ }
- _on_cursor_variant_original_changed(settings, changed_key) {
- log_debug(`Cursor original variant has changed to '${this.cursor_variant_original}'.`);
- this.emit('cursor-variant-changed', 'original');
- }
+ _onCursorVariantOriginalChanged(_settings, _changedKey) {
+ logDebug(`Cursor original variant has changed to '${this.cursorVariantOriginal}'.`);
+ this.emit('cursor-variant-changed', 'original');
+ }
- /* Icon variants */
+ /* Icon variants */
- _on_icon_variants_status_changed(settings, changed_key) {
- log_debug('Icon variants have been ' + (this.icon_variants_enabled ? 'ena' : 'disa') + 'bled.');
- this.emit('icon-variants-status-changed', this.icon_variants_enabled);
- }
+ _onIconVariantsStatusChanged(_settings, _changedKey) {
+ logDebug(`Icon variants have been ${this.iconVariantsEnabled ? 'ena' : 'disa'}bled.`);
+ this.emit('icon-variants-status-changed', this.iconVariantsEnabled);
+ }
- _on_icon_variant_day_changed(settings, changed_key) {
- log_debug(`Icon day variant has changed to '${this.icon_variant_day}'.`);
- this.emit('icon-variant-changed', 'day');
- }
+ _onIconVariantDayChanged(_settings, _changedKey) {
+ logDebug(`Icon day variant has changed to '${this.iconVariantDay}'.`);
+ this.emit('icon-variant-changed', 'day');
+ }
- _on_icon_variant_night_changed(settings, changed_key) {
- log_debug(`Icon night variant has changed to '${this.icon_variant_night}'.`);
- this.emit('icon-variant-changed', 'night');
- }
+ _onIconVariantNightChanged(_settings, _changedKey) {
+ logDebug(`Icon night variant has changed to '${this.iconVariantNight}'.`);
+ this.emit('icon-variant-changed', 'night');
+ }
- _on_icon_variant_original_changed(settings, changed_key) {
- log_debug(`Icon original variant has changed to '${this.icon_variant_original}'.`);
- this.emit('icon-variant-changed', 'original');
- }
+ _onIconVariantOriginalChanged(_settings, _changedKey) {
+ logDebug(`Icon original variant has changed to '${this.iconVariantOriginal}'.`);
+ this.emit('icon-variant-changed', 'original');
+ }
- /* Time source */
+ /* Time source */
- _on_time_source_changed(settings, changed_key) {
- log_debug(`Time source has changed to ${this.time_source}.`);
- this.emit('time-source-changed', this.time_source);
- }
+ _onTimeSourceChanged(_settings, _changedKey) {
+ logDebug(`Time source has changed to ${this.timeSource}.`);
+ this.emit('time-source-changed', this.timeSource);
+ }
- _on_manual_time_source_changed(settings, changed_key) {
- log_debug('Manual time source has been ' + (this.manual_time_source ? 'ena' : 'disa') + 'bled.');
- this.emit('manual-time-source-changed', this.manual_time_source);
- }
+ _onManualTimeSourceChanged(_settings, _changedKey) {
+ logDebug(`Manual time source has been ${this.manualTimeSource ? 'ena' : 'disa'}bled.`);
+ this.emit('manual-time-source-changed', this.manualTimeSource);
+ }
- /* Commands */
+ /* Commands */
- _on_commands_status_changed(settings, changed_key) {
- log_debug('Commands have been ' + (this.commands_enabled ? 'ena' : 'disa') + 'bled.');
- this.emit('commands-status-changed', this.commands_enabled);
- }
+ _onCommandsStatusChanged(_settings, _changedKey) {
+ logDebug(`Commands have been ${this.commandsEnabled ? 'ena' : 'disa'}bled.`);
+ this.emit('commands-status-changed', this.commandsEnabled);
+ }
- /* Backgrounds */
+ /* Backgrounds */
- _on_backgrounds_status_changed(settings, changed_key) {
- log_debug('Backgrounds have been ' + (this.backgrounds_enabled ? 'ena' : 'disa') + 'bled.');
- this.emit('backgrounds-status-changed', this.backgrounds_enabled);
- }
+ _onBackgroundsStatusChanged(_settings, _changedKey) {
+ logDebug(`Backgrounds have been ${this.backgroundsEnabled ? 'ena' : 'disa'}bled.`);
+ this.emit('backgrounds-status-changed', this.backgroundsEnabled);
+ }
- _on_background_day_changed(settings, changed_key) {
- log_debug(`Day background has changed to '${this.background_day}'.`);
- this.emit('background-time-changed', 'day');
- }
+ _onBackgroundDayChanged(_settings, _changedKey) {
+ logDebug(`Day background has changed to '${this.backgroundDay}'.`);
+ this.emit('background-time-changed', 'day');
+ }
- _on_background_night_changed(settings, changed_key) {
- log_debug(`Night background has changed to '${this.background_night}'.`);
- this.emit('background-time-changed', 'night');
- }
+ _onBackgroundNightChanged(_settings, _changedKey) {
+ logDebug(`Night background has changed to '${this.backgroundNight}'.`);
+ this.emit('background-time-changed', 'night');
+ }
- /* Night Light */
+ /* Night Light */
- _on_nightlight_status_changed(settings, changed_key) {
- log_debug('Night Light has been ' + (this.nightlight_enabled ? 'ena' : 'disa') + 'bled.');
- this.emit('nightlight-status-changed', this.nightlight_enabled);
- }
+ _onNightlightStatusChanged(_settings, _changedKey) {
+ logDebug(`Night Light has been ${this.nightlightEnabled ? 'ena' : 'disa'}bled.`);
+ this.emit('nightlight-status-changed', this.nightlightEnabled);
+ }
- /* Location */
+ /* Location */
- _on_location_status_changed(settings, changed_key) {
- log_debug('Location has been ' + (this.location_enabled ? 'ena' : 'disa') + 'bled.');
- this.emit('location-status-changed', this.location_enabled);
- }
+ _onLocationStatusChanged(_settings, _changedKey) {
+ logDebug(`Location has been ${this.locationEnabled ? 'ena' : 'disa'}bled.`);
+ this.emit('location-status-changed', this.locationEnabled);
+ }
- /* GTK theme */
+ /* GTK theme */
- _on_gtk_theme_changed(settings, changed_key) {
- log_debug(`GTK theme has changed to '${this.gtk_theme}'.`);
- this.emit('gtk-theme-changed', this.gtk_theme);
- }
+ _onGtkThemeChanged(_settings, _changedKey) {
+ logDebug(`GTK theme has changed to '${this.gtkTheme}'.`);
+ this.emit('gtk-theme-changed', this.gtkTheme);
+ }
- /* Icon theme */
+ /* Icon theme */
- _on_icon_theme_changed(settings, changed_key) {
- log_debug(`Cursor theme has changed to '${this.icon_theme}'.`);
- this.emit('icon-theme-changed', this.icon_theme);
- }
+ _onIconThemeChanged(_settings, _changedKey) {
+ logDebug(`Cursor theme has changed to '${this.iconTheme}'.`);
+ this.emit('icon-theme-changed', this.iconTheme);
+ }
- /* Cursor theme */
+ /* Cursor theme */
- _on_cursor_theme_changed(settings, changed_key) {
- log_debug(`Cursor theme has changed to '${this.cursor_theme}'.`);
- this.emit('cursor-theme-changed', this.cursor_theme);
- }
+ _onCursorThemeChanged(_settings, _changedKey) {
+ logDebug(`Cursor theme has changed to '${this.cursorTheme}'.`);
+ this.emit('cursor-theme-changed', this.cursorTheme);
+ }
- /* Background */
+ /* Background */
- _on_background_changed(settings, changed_key) {
- log_debug(`Background has changed to '${this.background}'.`);
- this.emit('background-changed', this.background);
- }
+ _onBackgroundChanged(_settings, _changedKey) {
+ logDebug(`Background has changed to '${this.background}'.`);
+ this.emit('background-changed', this.background);
+ }
- /* Shell theme */
+ /* Shell theme */
- _on_shell_theme_changed(settings, changed_key) {
- log_debug(`Shell theme has changed to '${this.shell_theme}'.`);
- this.emit('shell-theme-changed', this.shell_theme);
- }
+ _onShellThemeChanged(_settings, _changedKey) {
+ logDebug(`Shell theme has changed to '${this.shellTheme}'.`);
+ this.emit('shell-theme-changed', this.shellTheme);
+ }
-}
+};
Signals.addSignalMethods(SettingsManager.prototype);
diff --git a/src/modules/ShellThemer.js b/src/modules/ShellThemer.js
index 3bf0ea1..938990e 100644
--- a/src/modules/ShellThemer.js
+++ b/src/modules/ShellThemer.js
@@ -23,7 +23,7 @@ const { main } = imports.ui;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug, log_error, get_installed_shell_themes, get_shell_theme_stylesheet, apply_shell_stylesheet } = Me.imports.utils;
+const { logDebug, notifyError, getInstalledShellThemes, getShellThemeStylesheet, applyShellStylesheet } = Me.imports.utils;
const { ShellVariants } = Me.imports.modules.ShellVariants;
const Gettext = imports.gettext.domain(Me.metadata.uuid);
@@ -42,164 +42,166 @@ const _ = Gettext.gettext;
*/
var ShellThemer = class {
- enable() {
- log_debug('Enabling Shell Themer...');
- try {
- this._watch_status();
- this._save_original_theme();
- if ( e.settingsManager.shell_variants_enabled ) {
- this._update_variants();
- this._connect_settings();
- this._connect_timer();
- }
- }
- catch(e) {
- log_error(e);
- }
- log_debug('Shell Themer enabled.');
- }
+ constructor() {
+ this._shellVariantsStatusChangedConnect = null;
+ this._shellVariantChangedConnect = null;
+ this._shellThemeChangedConnect = null;
+ this._timeChangedConnect = null;
+ }
- disable() {
- log_debug('Disabling Shell Themer...');
- this._disconnect_timer();
- this._disconnect_settings();
- this._reset_original_theme();
- this._unwatch_status();
- log_debug('Shell Themer disabled.');
- }
+ enable() {
+ logDebug('Enabling Shell Themer...');
+ try {
+ this._watchStatus();
+ this._saveOriginalTheme();
+ if (e.settingsManager.shellVariantsEnabled) {
+ this._updateVariants();
+ this._connectSettings();
+ this._connectTimer();
+ }
+ } catch (error) {
+ notifyError(error);
+ }
+ logDebug('Shell Themer enabled.');
+ }
+
+ disable() {
+ logDebug('Disabling Shell Themer...');
+ this._disconnectTimer();
+ this._disconnectSettings();
+ this._resetOriginalTheme();
+ this._unwatchStatus();
+ logDebug('Shell Themer disabled.');
+ }
- _watch_status() {
- log_debug('Watching shell variants status...');
- this._shell_variants_status_changed_connect = e.settingsManager.connect('shell-variants-status-changed', this._on_shell_variants_status_changed.bind(this));
- }
+ _watchStatus() {
+ logDebug('Watching shell variants status...');
+ this._shellVariantsStatusChangedConnect = e.settingsManager.connect('shell-variants-status-changed', this._onShellVariantsStatusChanged.bind(this));
+ }
- _unwatch_status() {
- if ( this._shell_variants_status_changed_connect ) {
- e.settingsManager.disconnect(this._shell_variants_status_changed_connect);
- this._shell_variants_status_changed_connect = null;
- }
- log_debug('Stopped watching shell variants status.');
- }
+ _unwatchStatus() {
+ if (this._shellVariantsStatusChangedConnect) {
+ e.settingsManager.disconnect(this._shellVariantsStatusChangedConnect);
+ this._shellVariantsStatusChangedConnect = null;
+ }
+ logDebug('Stopped watching shell variants status.');
+ }
- _connect_settings() {
- log_debug('Connecting Shell Themer to settings...');
- this._shell_variant_changed_connect = e.settingsManager.connect('shell-variant-changed', this._on_shell_variant_changed.bind(this));
- this._shell_theme_changed_connect = e.settingsManager.connect('shell-theme-changed', this._on_shell_theme_changed.bind(this));
- }
+ _connectSettings() {
+ logDebug('Connecting Shell Themer to settings...');
+ this._shellVariantChangedConnect = e.settingsManager.connect('shell-variant-changed', this._onShellVariantChanged.bind(this));
+ this._shellThemeChangedConnect = e.settingsManager.connect('shell-theme-changed', this._onShellThemeChanged.bind(this));
+ }
- _disconnect_settings() {
- if ( this._shell_variant_changed_connect ) {
- e.settingsManager.disconnect(this._shell_variant_changed_connect);
- this._shell_variant_changed_connect = null;
- }
- if ( this._shell_theme_changed_connect ) {
- e.settingsManager.disconnect(this._shell_theme_changed_connect);
- this._shell_theme_changed_connect = null;
- }
- log_debug('Disconnected Shell Themer from settings.');
- }
+ _disconnectSettings() {
+ if (this._shellVariantChangedConnect) {
+ e.settingsManager.disconnect(this._shellVariantChangedConnect);
+ this._shellVariantChangedConnect = null;
+ }
+ if (this._shellThemeChangedConnect) {
+ e.settingsManager.disconnect(this._shellThemeChangedConnect);
+ this._shellThemeChangedConnect = null;
+ }
+ logDebug('Disconnected Shell Themer from settings.');
+ }
- _connect_timer() {
- log_debug('Connecting Shell Themer to Timer...');
- this._time_changed_connect = e.timer.connect('time-changed', this._on_time_changed.bind(this));
- }
+ _connectTimer() {
+ logDebug('Connecting Shell Themer to Timer...');
+ this._timeChangedConnect = e.timer.connect('time-changed', this._onTimeChanged.bind(this));
+ }
- _disconnect_timer() {
- if ( this._time_changed_connect ) {
- e.timer.disconnect(this._time_changed_connect);
- this._time_changed_connect = null;
- }
- log_debug('Disconnected Shell Themer from Timer.');
- }
+ _disconnectTimer() {
+ if (this._timeChangedConnect) {
+ e.timer.disconnect(this._timeChangedConnect);
+ this._timeChangedConnect = null;
+ }
+ logDebug('Disconnected Shell Themer from Timer.');
+ }
- _on_shell_variants_status_changed(settings, enabled) {
- this.disable();
- this.enable();
- }
+ _onShellVariantsStatusChanged(_settings, _enabled) {
+ this.disable();
+ this.enable();
+ }
- _on_shell_variant_changed(settings, changed_variant_time) {
- if ( changed_variant_time === e.timer.time ) {
- this._set_variant(e.timer.time);
- }
- }
+ _onShellVariantChanged(_settings, changedVariantTime) {
+ if (changedVariantTime === e.timer.time)
+ this._setVariant(e.timer.time);
+ }
- _on_shell_theme_changed(settings, new_theme) {
- try {
- this._update_variants();
- this._set_variant(e.timer.time);
- }
- catch(e) {
- log_error(e);
- }
- }
+ _onShellThemeChanged(_settings, _newTheme) {
+ try {
+ this._updateVariants();
+ this._setVariant(e.timer.time);
+ } catch (error) {
+ notifyError(error);
+ }
+ }
- _on_time_changed(timer, new_time) {
- this._set_variant(new_time);
- }
+ _onTimeChanged(_timer, newTime) {
+ this._setVariant(newTime);
+ }
- _are_variants_up_to_date() {
- return ( e.settingsManager.shell_theme === e.settingsManager.shell_variant_day || e.settingsManager.shell_theme === e.settingsManager.shell_variant_night );
- }
+ _areVariantsUpToDate() {
+ return e.settingsManager.shellTheme === e.settingsManager.shellVariantDay || e.settingsManager.shellTheme === e.settingsManager.shellVariantNight;
+ }
- _set_variant(time) {
- log_debug(`Setting the shell ${time} variant...`);
- let shell_theme;
- switch (time) {
- case 'day':
- shell_theme = e.settingsManager.shell_variant_day;
- break;
- case 'night':
- shell_theme = e.settingsManager.shell_variant_night;
- break;
- case 'original':
- shell_theme = e.settingsManager.shell_variant_original;
- break;
- }
- if ( e.settingsManager.use_userthemes ) {
- e.settingsManager.shell_theme = shell_theme;
- }
- else {
- const stylesheet = get_shell_theme_stylesheet(shell_theme);
- apply_shell_stylesheet(stylesheet);
- }
- }
+ _setVariant(time) {
+ logDebug(`Setting the shell ${time} variant...`);
+ let shellTheme;
+ switch (time) {
+ case 'day':
+ shellTheme = e.settingsManager.shellVariantDay;
+ break;
+ case 'night':
+ shellTheme = e.settingsManager.shellVariantNight;
+ break;
+ case 'original':
+ shellTheme = e.settingsManager.shellVariantOriginal;
+ break;
+ }
+ if (e.settingsManager.useUserthemes) {
+ e.settingsManager.shellTheme = shellTheme;
+ } else {
+ const stylesheet = getShellThemeStylesheet(shellTheme);
+ applyShellStylesheet(stylesheet);
+ }
+ }
- _update_variants() {
- if ( !e.settingsManager.use_userthemes || e.settingsManager.manual_shell_variants || this._are_variants_up_to_date() ) {
- return;
- }
+ _updateVariants() {
+ if (!e.settingsManager.useUserthemes || e.settingsManager.manualShellVariants || this._areVariantsUpToDate())
+ return;
- log_debug('Updating Shell variants...');
- const variants = ShellVariants.guess_from(e.settingsManager.shell_theme);
- const installed_themes = get_installed_shell_themes();
+ logDebug('Updating Shell variants...');
+ const variants = ShellVariants.guessFrom(e.settingsManager.shellTheme);
+ const installedThemes = getInstalledShellThemes();
- if ( !installed_themes.has(variants.get('day')) || !installed_themes.has(variants.get('night')) ) {
- e.settingsManager.shell_variant_original = variants.get('original');
- const message = _('Unable to automatically detect the day and night variants for the "%s" GNOME Shell theme. Please manually choose them in the extension\'s preferences.').format(variants.get('original'));
- throw new Error(message);
- }
+ if (!installedThemes.has(variants.get('day')) || !installedThemes.has(variants.get('night'))) {
+ e.settingsManager.shellVariantOriginal = variants.get('original');
+ const message = _('Unable to automatically detect the day and night variants for the "%s" GNOME Shell theme. Please manually choose them in the extension\'s preferences.').format(variants.get('original'));
+ throw new Error(message);
+ }
- e.settingsManager.shell_variant_day = variants.get('day');
- e.settingsManager.shell_variant_night = variants.get('night');
- e.settingsManager.shell_variant_original = variants.get('original');
- log_debug(`New Shell variants. { day: '${variants.get('day')}'; night: '${variants.get('night')}' }`);
- }
+ e.settingsManager.shellVariantDay = variants.get('day');
+ e.settingsManager.shellVariantNight = variants.get('night');
+ e.settingsManager.shellVariantOriginal = variants.get('original');
+ logDebug(`New Shell variants. { day: '${variants.get('day')}'; night: '${variants.get('night')}' }`);
+ }
- _save_original_theme() {
- e.settingsManager.shell_variant_original = e.settingsManager.shell_theme;
- }
+ _saveOriginalTheme() {
+ e.settingsManager.shellVariantOriginal = e.settingsManager.shellTheme;
+ }
- _reset_original_theme() {
- // We don't reset the theme when locking the session to prevent
- // flicker on unlocking
- if ( !main.screenShield.locked ) {
- log_debug('Resetting to the user\'s original Shell theme...');
- this._set_variant('original');
- }
- }
+ _resetOriginalTheme() {
+ // We don't reset the theme when locking the session to prevent
+ // flicker on unlocking
+ if (!main.screenShield.locked) {
+ logDebug('Resetting to the user\'s original Shell theme...');
+ this._setVariant('original');
+ }
+ }
-}
+};
Signals.addSignalMethods(ShellThemer.prototype);
diff --git a/src/modules/ShellVariants.js b/src/modules/ShellVariants.js
index cdb0fa3..3f0794a 100644
--- a/src/modules/ShellVariants.js
+++ b/src/modules/ShellVariants.js
@@ -17,15 +17,14 @@ You should have received a copy of the GNU General Public License along with
this program. If not, see .
*/
-
/**
* The magic of guessing theme variants happens here.
*
* If the theme doesn't fit a particular case, we'll do the following:
- * - Remove any signs of a dark variant to the theme name to get the day
- * variant
- * - Remove any signs of a light variant to the day variant and add '-dark' to
- * get the night variant
+ * - Remove any signs of a dark variant to the theme name to get the day
+ * variant
+ * - Remove any signs of a light variant to the day variant and add '-dark' to
+ * get the night variant
*
* For themes that don't work with the general rule, a particular case must be
* written. Day and night variants should be guessed with the most generic light
@@ -33,75 +32,64 @@ this program. If not, see .
* specific variant.
*
* Light variants, from the most to the least generic:
- * - ''
- * - '-light'
- * - '-darker'
+ * - ''
+ * - '-light'
+ * - '-darker'
*
* Dark variants, from the most the least generic:
- * - '-dark'
- * - '-darkest'
+ * - '-dark'
+ * - '-darkest'
*/
var ShellVariants = class {
- static guess_from(name) {
- const variants = new Map();
- variants.set('original', name);
+ static guessFrom(name) {
+ const variants = new Map();
+ variants.set('original', name);
- if ( name === '' ) {
- variants.set('day', '');
- variants.set('night', '');
- }
- else if ( name.includes('Adapta') ) {
- variants.set('day', name.replace('-Nokto', ''));
- variants.set('night', variants.get('day').replace('Adapta', 'Adapta-Nokto'));
- }
- else if ( name.includes('Arc') ) {
- variants.set('day', name.replace('-Dark', ''));
- variants.set('night', variants.get('day').replace('Arc', 'Arc-Dark'));
- }
- else if ( name.match(/^(Canta|ChromeOS|Materia|Orchis).*-compact/) ) {
- variants.set('day', name.replace('-dark', ''));
- variants.set('night', variants.get('day').replace(/(-light)?-compact/, '-dark-compact'));
- }
- else if ( name.includes('Flat-Remix') ) {
- const color = ( name.split('-')[2] && !['Dark', 'Darkest', 'fullPanel'].includes(name.split('-')[2]) ) ? '-' + name.split('-')[2] : '';
- const dark_variant = name.includes('Darkest') ? '-Darkest' : '-Dark';
- const size = name.includes('fullPanel')? '-fullPanel' : '';
- variants.set('day', name.replace(/-Dark(est)?/, ''));
- variants.set('night', `Flat-Remix${color}${dark_variant}${size}`);
- }
- else if ( name.match(/^(Layan|Matcha)/) ) {
- const basename = name.split('-')[0];
- variants.set('day', name.replace('-dark', ''));
- variants.set('night', variants.get('day').replace(new RegExp(`${basename}(-light)?`), `${basename}-dark`));
- }
- else if ( name.includes('Mojave') ) {
- variants.set('day', name.replace('-dark', '-light'));
- variants.set('night', variants.get('day').replace('-light', '-dark'));
- }
- else if ( name.includes('Plata') ) {
- variants.set('day', name.replace('-Noir', ''));
- variants.set('night', variants.get('day').replace(/Plata(-Lumine)?/, 'Plata-Noir'));
- }
- else if ( name.includes('Simply_Circles') ) {
- variants.set('day', name.replace('_Dark', '_Light'));
- variants.set('night', name.replace('_Light', '_Dark'));
- }
- else if ( name.includes('Teja') ) {
- const dark_variant = '_' + (name.replace('_Light').split('_')[1] || 'Dark');
- variants.set('day', name.replace(/(_Dark(est)?|_Black)/, ''));
- variants.set('night', variants.get('day').replace('_Light', '') + dark_variant);
- }
- else if ( name.includes('vimix') ) {
- variants.set('day', name.replace('-dark', ''));
- variants.set('night', variants.get('day').replace(/vimix(-light)?/, 'vimix-dark'));
- }
- else {
- variants.set('day', name.replace(/-dark(?!er)(est)?/, ''));
- variants.set('night', variants.get('day').replace(/(-light|-darker)/, '') + (name.includes('-darkest') ? '-darkest' : '-dark'));
- }
+ if (name === '') {
+ variants.set('day', '');
+ variants.set('night', '');
+ } else if (name.includes('Adapta')) {
+ variants.set('day', name.replace('-Nokto', ''));
+ variants.set('night', variants.get('day').replace('Adapta', 'Adapta-Nokto'));
+ } else if (name.includes('Arc')) {
+ variants.set('day', name.replace('-Dark', ''));
+ variants.set('night', variants.get('day').replace('Arc', 'Arc-Dark'));
+ } else if (name.match(/^(Canta|ChromeOS|Materia|Orchis).*-compact/)) {
+ variants.set('day', name.replace('-dark', ''));
+ variants.set('night', variants.get('day').replace(/(-light)?-compact/, '-dark-compact'));
+ } else if (name.includes('Flat-Remix')) {
+ const color = name.split('-')[2] && !['Dark', 'Darkest', 'fullPanel'].includes(name.split('-')[2]) ? `-${name.split('-')[2]}` : '';
+ const darkVariant = name.includes('Darkest') ? '-Darkest' : '-Dark';
+ const size = name.includes('fullPanel') ? '-fullPanel' : '';
+ variants.set('day', name.replace(/-Dark(est)?/, ''));
+ variants.set('night', `Flat-Remix${color}${darkVariant}${size}`);
+ } else if (name.match(/^(Layan|Matcha)/)) {
+ const basename = name.split('-')[0];
+ variants.set('day', name.replace('-dark', ''));
+ variants.set('night', variants.get('day').replace(new RegExp(`${basename}(-light)?`), `${basename}-dark`));
+ } else if (name.includes('Mojave')) {
+ variants.set('day', name.replace('-dark', '-light'));
+ variants.set('night', variants.get('day').replace('-light', '-dark'));
+ } else if (name.includes('Plata')) {
+ variants.set('day', name.replace('-Noir', ''));
+ variants.set('night', variants.get('day').replace(/Plata(-Lumine)?/, 'Plata-Noir'));
+ } else if (name.includes('Simply_Circles')) {
+ variants.set('day', name.replace('_Dark', '_Light'));
+ variants.set('night', name.replace('_Light', '_Dark'));
+ } else if (name.includes('Teja')) {
+ const darkVariant = `_${name.replace('_Light').split('_')[1] || 'Dark'}`;
+ variants.set('day', name.replace(/(_Dark(est)?|_Black)/, ''));
+ variants.set('night', variants.get('day').replace('_Light', '') + darkVariant);
+ } else if (name.includes('vimix')) {
+ variants.set('day', name.replace('-dark', ''));
+ variants.set('night', variants.get('day').replace(/vimix(-light)?/, 'vimix-dark'));
+ } else {
+ variants.set('day', name.replace(/-dark(?!er)(est)?/, ''));
+ variants.set('night', variants.get('day').replace(/(-light|-darker)/, '') + (name.includes('-darkest') ? '-darkest' : '-dark'));
+ }
- return variants;
- }
+ return variants;
+ }
-}
+};
diff --git a/src/modules/Timer.js b/src/modules/Timer.js
index c07c69a..ba3c822 100644
--- a/src/modules/Timer.js
+++ b/src/modules/Timer.js
@@ -22,7 +22,7 @@ const Signals = imports.signals;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
const { TimerNightlight } = Me.imports.modules.TimerNightlight;
const { TimerLocation } = Me.imports.modules.TimerLocation;
const { TimerSchedule } = Me.imports.modules.TimerSchedule;
@@ -37,156 +37,157 @@ const { TimerOndemand } = Me.imports.modules.TimerOndemand;
*
* It will try to use one of this three different time sources, in this order of
* preference:
- * - Night Light
- * - Location Services
- * - Manual schedule
+ * - Night Light
+ * - Location Services
+ * - Manual schedule
*
* The user can manually force a specific time source and set the manual
* schedule in the extensions's preferences.
*/
var Timer = class {
- constructor() {
- this._source = null;
- this._previous_time = null;
- }
+ constructor() {
+ this._source = null;
+ this._previousTime = null;
+ this._nightlightStatusChangedConnect = null;
+ this._locationStatusChangedConnect = null;
+ this._manualTimeSourceChangedConnect = null;
+ this._timeSourceChangedConnect = null;
+ this._timeChangedConnect = null;
+ }
- enable() {
- log_debug('Enabling Timer...');
- this._connect_settings();
- this._create_source();
- this._connect_source();
- this._enable_source();
- log_debug('Timer enabled.');
- }
+ enable() {
+ logDebug('Enabling Timer...');
+ this._connectSettings();
+ this._createSource();
+ this._connectSource();
+ this._enableSource();
+ logDebug('Timer enabled.');
+ }
- disable() {
- log_debug('Disabling Timer...');
- this._disconnect_source();
- this._disable_source();
- this._disconnect_settings();
- log_debug('Timer disabled.');
- }
+ disable() {
+ logDebug('Disabling Timer...');
+ this._disconnectSource();
+ this._disableSource();
+ this._disconnectSettings();
+ logDebug('Timer disabled.');
+ }
- get time() {
- return this._source.time;
- }
+ get time() {
+ return this._source.time;
+ }
- _connect_settings() {
- log_debug('Connecting Timer to settings...');
- this._nightlight_status_changed_connect = e.settingsManager.connect('nightlight-status-changed', this._on_source_changed.bind(this));
- this._location_status_changed_connect = e.settingsManager.connect('location-status-changed', this._on_source_changed.bind(this));
- this._manual_time_source_changed_connect = e.settingsManager.connect('manual-time-source-changed', this._on_source_changed.bind(this));
- this._time_source_changed_connect = e.settingsManager.connect('time-source-changed', this._on_time_source_changed.bind(this));
- }
+ _connectSettings() {
+ logDebug('Connecting Timer to settings...');
+ this._nightlightStatusChangedConnect = e.settingsManager.connect('nightlight-status-changed', this._onSourceChanged.bind(this));
+ this._locationStatusChangedConnect = e.settingsManager.connect('location-status-changed', this._onSourceChanged.bind(this));
+ this._manualTimeSourceChangedConnect = e.settingsManager.connect('manual-time-source-changed', this._onSourceChanged.bind(this));
+ this._timeSourceChangedConnect = e.settingsManager.connect('time-source-changed', this._onTimeSourceChanged.bind(this));
+ }
- _disconnect_settings() {
- if ( this._nightlight_status_changed_connect ) {
- e.settingsManager.disconnect(this._nightlight_status_changed_connect);
- this._nightlight_status_changed_connect = null;
- }
- if ( this._location_status_changed_connect ) {
- e.settingsManager.disconnect(this._location_status_changed_connect);
- this._location_status_changed_connect = null;
- }
- if ( this._manual_time_source_changed_connect ) {
- e.settingsManager.disconnect(this._manual_time_source_changed_connect);
- this._manual_time_source_changed_connect = null;
- }
- if ( this._time_source_changed_connect ) {
- e.settingsManager.disconnect(this._time_source_changed_connect);
- this._time_source_changed_connect = null;
- }
- log_debug('Disconnected Timer from settings.');
- }
+ _disconnectSettings() {
+ if (this._nightlightStatusChangedConnect) {
+ e.settingsManager.disconnect(this._nightlightStatusChangedConnect);
+ this._nightlightStatusChangedConnect = null;
+ }
+ if (this._locationStatusChangedConnect) {
+ e.settingsManager.disconnect(this._locationStatusChangedConnect);
+ this._locationStatusChangedConnect = null;
+ }
+ if (this._manualTimeSourceChangedConnect) {
+ e.settingsManager.disconnect(this._manualTimeSourceChangedConnect);
+ this._manualTimeSourceChangedConnect = null;
+ }
+ if (this._timeSourceChangedConnect) {
+ e.settingsManager.disconnect(this._timeSourceChangedConnect);
+ this._timeSourceChangedConnect = null;
+ }
+ logDebug('Disconnected Timer from settings.');
+ }
- _create_source() {
- switch ( this._get_source() ) {
- case 'nightlight':
- this._source = new TimerNightlight();
- break;
- case 'location':
- this._source = new TimerLocation();
- break;
- case 'schedule':
- this._source = new TimerSchedule();
- break;
- case 'ondemand':
- this._source = new TimerOndemand();
- break;
- }
- }
+ _createSource() {
+ switch (this._getSource()) {
+ case 'nightlight':
+ this._source = new TimerNightlight();
+ break;
+ case 'location':
+ this._source = new TimerLocation();
+ break;
+ case 'schedule':
+ this._source = new TimerSchedule();
+ break;
+ case 'ondemand':
+ this._source = new TimerOndemand();
+ break;
+ }
+ }
- _enable_source() {
- this._source.enable();
- }
+ _enableSource() {
+ this._source.enable();
+ }
- _disable_source() {
- if ( this._source ) {
- this._source.disable();
- this._source = null;
- }
- }
+ _disableSource() {
+ if (this._source) {
+ this._source.disable();
+ this._source = null;
+ }
+ }
- _connect_source() {
- log_debug('Connecting to time source...');
- this._time_changed_connect = this._source.connect('time-changed', this._on_time_changed.bind(this));
- }
+ _connectSource() {
+ logDebug('Connecting to time source...');
+ this._timeChangedConnect = this._source.connect('time-changed', this._onTimeChanged.bind(this));
+ }
- _disconnect_source() {
- if ( this._time_changed_connect ) {
- this._source.disconnect(this._time_changed_connect);
- this._time_changed_connect = null;
- }
- log_debug('Disconnected from time source.');
- }
+ _disconnectSource() {
+ if (this._timeChangedConnect) {
+ this._source.disconnect(this._timeChangedConnect);
+ this._timeChangedConnect = null;
+ }
+ logDebug('Disconnected from time source.');
+ }
- _on_source_changed() {
- this.disable();
- this.enable();
- }
+ _onSourceChanged() {
+ this.disable();
+ this.enable();
+ }
- _on_time_source_changed(settings, new_source) {
- if ( e.settingsManager.manual_time_source ) {
- this._on_source_changed();
- }
- }
+ _onTimeSourceChanged(_settings, _newSource) {
+ if (e.settingsManager.manualTimeSource)
+ this._onSourceChanged();
+ }
- _on_time_changed(source, new_time) {
- if ( new_time !== this._previous_time) {
- log_debug(`Time has changed to ${new_time}.`);
- this.emit('time-changed', new_time);
- this._previous_time = new_time;
- }
- }
+ _onTimeChanged(_source, newTime) {
+ if (newTime !== this._previousTime) {
+ logDebug(`Time has changed to ${newTime}.`);
+ this.emit('time-changed', newTime);
+ this._previousTime = newTime;
+ }
+ }
- _get_source() {
- log_debug('Getting time source...');
+ _getSource() {
+ logDebug('Getting time source...');
- if ( e.settingsManager.manual_time_source ) {
- log_debug(`Time source is forced to ${e.settingsManager.time_source}.`);
- return e.settingsManager.time_source;
- }
+ if (e.settingsManager.manualTimeSource) {
+ logDebug(`Time source is forced to ${e.settingsManager.timeSource}.`);
+ return e.settingsManager.timeSource;
+ }
- let source;
- if ( e.settingsManager.nightlight_enabled ) {
- source = 'nightlight';
- }
- else if ( e.settingsManager.location_enabled ) {
- source = 'location';
- }
- else {
- source = 'schedule';
- }
+ let source;
+ if (e.settingsManager.nightlightEnabled)
+ source = 'nightlight';
+ else if (e.settingsManager.locationEnabled)
+ source = 'location';
+ else
+ source = 'schedule';
- log_debug(`Time source is ${source}.`);
- e.settingsManager.time_source = source;
- return source;
- }
+ logDebug(`Time source is ${source}.`);
+ e.settingsManager.timeSource = source;
+ return source;
+ }
-}
+};
Signals.addSignalMethods(Timer.prototype);
diff --git a/src/modules/TimerLocation.js b/src/modules/TimerLocation.js
index d5e329e..873916d 100644
--- a/src/modules/TimerLocation.js
+++ b/src/modules/TimerLocation.js
@@ -23,64 +23,64 @@ const Signals = imports.signals;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
// GeoClue2 interfaces from https://gitlab.freedesktop.org/geoclue/geoclue/
const GEOCLUE_MANAGER_INTERFACE = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
`;
const GEOCLUE_CLIENT_INTERFACE = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
`;
const GEOCLUE_LOCATION_INTERFACE = `
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
`;
@@ -99,224 +99,229 @@ const GEOCLUE_LOCATION_INTERFACE = `
*/
var TimerLocation = class {
- constructor() {
- this._previously_daytime = null;
- // Before we have the location suntimes, we'll use the manual schedule
- // times
- this._suntimes = new Map([
- ['sunrise', e.settingsManager.schedule_sunrise],
- ['sunset', e.settingsManager.schedule_sunrise]
- ]);
- }
+ constructor() {
+ this._previouslyDaytime = null;
+ // Before we have the location suntimes, we'll use the manual schedule
+ // times
+ this._suntimes = new Map([
+ ['sunrise', e.settingsManager.scheduleSunrise],
+ ['sunset', e.settingsManager.scheduleSunrise],
+ ]);
+ this._geoclueClient = null;
+ this._geoclueClientDbusProxy = null;
+ this._geoclueManagerDbusProxy = null;
+ this._geoclueLocationDbusProxy = null;
+ this._locationUpdatesConnect = null;
+ this._timeChangeTimer = null;
+ this._regularlyUpdateSuntimesTimer = null;
+ }
- enable() {
- log_debug('Enabling Location Timer...');
- this._connect_to_geoclue_dbus_proxy();
- this._listen_to_location_updates();
- this._connect_to_geoclue_location_dbus_proxy();
- this._update_location();
- this._update_suntimes();
- this._watch_for_time_change();
- this._regularly_update_suntimes();
- log_debug('Location Timer enabled.');
- }
+ enable() {
+ logDebug('Enabling Location Timer...');
+ this._connectToGeoclueDbusProxy();
+ this._listenToLocationUpdates();
+ this._connectToGeoclueLocationDbusProxy();
+ this._updateLocation();
+ this._updateSuntimes();
+ this._watchForTimeChange();
+ this._regularlyUpdateSuntimes();
+ logDebug('Location Timer enabled.');
+ }
- disable() {
- log_debug('Disabling Location Timer...');
- this._stop_regularly_updating_suntimes();
- this._stop_watching_for_time_change();
- this._stop_listening_to_location_updates();
- this._disconnect_from_geoclue_location_dbus_proxy();
- this._disconnect_from_geoclue_dbus_proxy();
- log_debug('Location Timer disabled.');
- }
+ disable() {
+ logDebug('Disabling Location Timer...');
+ this._stopRegularlyUpdatingSuntimes();
+ this._stopWatchingForTimeChange();
+ this._stopListeningToLocationUpdates();
+ this._disconnectFromGeoclueLocationDbusProxy();
+ this._disconnectFromGeoclueDbusProxy();
+ logDebug('Location Timer disabled.');
+ }
- get time() {
- return this._is_daytime() ? 'day' : 'night';
- }
+ get time() {
+ return this._isDaytime() ? 'day' : 'night';
+ }
- _connect_to_geoclue_dbus_proxy() {
- log_debug('Connecting to GeoClue manager DBus proxy...');
- const GeoClueManagerProxy = Gio.DBusProxy.makeProxyWrapper(GEOCLUE_MANAGER_INTERFACE);
- this._geoclue_manager_dbus_proxy = new GeoClueManagerProxy(
- Gio.DBus.system,
- 'org.freedesktop.GeoClue2',
- '/org/freedesktop/GeoClue2/Manager'
- );
- log_debug('Connected to GeoClue manager DBus proxy.');
+ _connectToGeoclueDbusProxy() {
+ logDebug('Connecting to GeoClue manager DBus proxy...');
+ const GeoClueManagerProxy = Gio.DBusProxy.makeProxyWrapper(GEOCLUE_MANAGER_INTERFACE);
+ this._geoclueManagerDbusProxy = new GeoClueManagerProxy(
+ Gio.DBus.system,
+ 'org.freedesktop.GeoClue2',
+ '/org/freedesktop/GeoClue2/Manager'
+ );
+ logDebug('Connected to GeoClue manager DBus proxy.');
- log_debug('Getting a GeoClue client...');
- this._geoclue_client = this._geoclue_manager_dbus_proxy.GetClientSync()[0];
- log_debug(`Got a GeoClue client at ${this._geoclue_client}`);
+ logDebug('Getting a GeoClue client...');
+ this._geoclueClient = this._geoclueManagerDbusProxy.GetClientSync()[0];
+ logDebug(`Got a GeoClue client at ${this._geoclueClient}`);
- log_debug('Connecting to GeoClue client DBus proxy...');
- const GeoClueClientProxy = Gio.DBusProxy.makeProxyWrapper(GEOCLUE_CLIENT_INTERFACE);
- this._geoclue_client_dbus_proxy = new GeoClueClientProxy(
- Gio.DBus.system,
- 'org.freedesktop.GeoClue2',
- this._geoclue_client
- );
- this._geoclue_client_dbus_proxy.DesktopId = Me.metadata.uuid;
- this._geoclue_client_dbus_proxy.DistanceThreshold = 10000;
- this._geoclue_client_dbus_proxy.RequestedAccuracyLevel = 4;
- log_debug('Connected to GeoClue client DBus proxy.');
- }
+ logDebug('Connecting to GeoClue client DBus proxy...');
+ const GeoClueClientProxy = Gio.DBusProxy.makeProxyWrapper(GEOCLUE_CLIENT_INTERFACE);
+ this._geoclueClientDbusProxy = new GeoClueClientProxy(
+ Gio.DBus.system,
+ 'org.freedesktop.GeoClue2',
+ this._geoclueClient
+ );
+ this._geoclueClientDbusProxy.DesktopId = Me.metadata.uuid;
+ this._geoclueClientDbusProxy.DistanceThreshold = 10000;
+ this._geoclueClientDbusProxy.RequestedAccuracyLevel = 4;
+ logDebug('Connected to GeoClue client DBus proxy.');
+ }
- _disconnect_from_geoclue_dbus_proxy() {
- log_debug('Disconnecting from GeoClue DBus proxy...')
- this._geoclue_manager_dbus_proxy.DeleteClientSync(this._geoclue_client);
- this._geoclue_client = null;
- this._geoclue_client_dbus_proxy = null;
- this._geoclue_manager_dbus_proxy = null;
- log_debug('Disconnected from GeoClue DBus proxy.')
- }
+ _disconnectFromGeoclueDbusProxy() {
+ logDebug('Disconnecting from GeoClue DBus proxy...');
+ this._geoclueManagerDbusProxy.DeleteClientSync(this._geoclueClient);
+ this._geoclueClient = null;
+ this._geoclueClientDbusProxy = null;
+ this._geoclueManagerDbusProxy = null;
+ logDebug('Disconnected from GeoClue DBus proxy.');
+ }
- _listen_to_location_updates() {
- log_debug('Listening to location updates...');
- this._location_updates_connect = this._geoclue_client_dbus_proxy.connectSignal('LocationUpdated', this._on_location_updated.bind(this));
- this._geoclue_client_dbus_proxy.StartSync();
- }
+ _listenToLocationUpdates() {
+ logDebug('Listening to location updates...');
+ this._locationUpdatesConnect = this._geoclueClientDbusProxy.connectSignal('LocationUpdated', this._onLocationUpdated.bind(this));
+ this._geoclueClientDbusProxy.StartSync();
+ }
- _stop_listening_to_location_updates() {
- this._geoclue_client_dbus_proxy.disconnectSignal(this._location_updates_connect);
- this._location_updates_connect = null;
- this._geoclue_client_dbus_proxy.StopSync();
- log_debug('Stopped listening to location updates.');
- }
+ _stopListeningToLocationUpdates() {
+ this._geoclueClientDbusProxy.disconnectSignal(this._locationUpdatesConnect);
+ this._locationUpdatesConnect = null;
+ this._geoclueClientDbusProxy.StopSync();
+ logDebug('Stopped listening to location updates.');
+ }
- _on_location_updated(proxy, sender, [old_location_path, new_location_path]) {
- log_debug('Location has changed.');
- this._connect_to_geoclue_location_dbus_proxy(new_location_path);
- this._update_location();
- this._update_suntimes();
- }
+ _onLocationUpdated(_proxy, _sender, [_oldLocationPath, newLocationPath]) {
+ logDebug('Location has changed.');
+ this._connectToGeoclueLocationDbusProxy(newLocationPath);
+ this._updateLocation();
+ this._updateSuntimes();
+ }
- _connect_to_geoclue_location_dbus_proxy(path) {
- if ( !path ) {
- path = this._geoclue_client_dbus_proxy.Location;
- }
- if ( path !== '/' ) {
- log_debug('Connecting to GeoClue location DBus proxy...');
- const GeoClueLocationProxy = Gio.DBusProxy.makeProxyWrapper(GEOCLUE_LOCATION_INTERFACE);
- this._geoclue_location_dbus_proxy = new GeoClueLocationProxy(
- Gio.DBus.system,
- 'org.freedesktop.GeoClue2',
- path
- );
- log_debug('Connected to GeoClue location DBus proxy.');
- }
- }
+ _connectToGeoclueLocationDbusProxy(path) {
+ if (!path)
+ path = this._geoclueClientDbusProxy.Location;
+ if (path !== '/') {
+ logDebug('Connecting to GeoClue location DBus proxy...');
+ const GeoClueLocationProxy = Gio.DBusProxy.makeProxyWrapper(GEOCLUE_LOCATION_INTERFACE);
+ this._geoclueLocationDbusProxy = new GeoClueLocationProxy(
+ Gio.DBus.system,
+ 'org.freedesktop.GeoClue2',
+ path
+ );
+ logDebug('Connected to GeoClue location DBus proxy.');
+ }
+ }
- _disconnect_from_geoclue_location_dbus_proxy() {
- log_debug('Disconnecting from GeoClue location DBus proxy...');
- this._geoclue_location_dbus_proxy = null;
- log_debug('Disconnected from GeoClue location DBus proxy.');
- }
+ _disconnectFromGeoclueLocationDbusProxy() {
+ logDebug('Disconnecting from GeoClue location DBus proxy...');
+ this._geoclueLocationDbusProxy = null;
+ logDebug('Disconnected from GeoClue location DBus proxy.');
+ }
- _update_location() {
- if ( this._geoclue_location_dbus_proxy ) {
- log_debug('Updating location...');
- const latitude = this._geoclue_location_dbus_proxy.Latitude;
- const longitude = this._geoclue_location_dbus_proxy.Longitude;
+ _updateLocation() {
+ if (this._geoclueLocationDbusProxy) {
+ logDebug('Updating location...');
+ const latitude = this._geoclueLocationDbusProxy.Latitude;
+ const longitude = this._geoclueLocationDbusProxy.Longitude;
- this.location = new Map([
- ['latitude', latitude],
- ['longitude', longitude]
- ]);
- log_debug(`Current location: (${latitude};${longitude})`);
- }
- }
+ this.location = new Map([
+ ['latitude', latitude],
+ ['longitude', longitude],
+ ]);
+ logDebug(`Current location: (${latitude};${longitude})`);
+ }
+ }
- _update_suntimes() {
- if ( !this.location ) {
- return;
- }
+ _updateSuntimes() {
+ if (!this.location)
+ return;
- log_debug('Updating sun times...');
+ logDebug('Updating sun times...');
- Math.rad = degrees => degrees * Math.PI / 180;
- Math.deg = radians => radians * 180 / Math.PI;
+ Math.rad = degrees => degrees * Math.PI / 180;
+ Math.deg = radians => radians * 180 / Math.PI;
- // Calculations from https://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html
- const latitude = this.location.get('latitude');
- const longitude = this.location.get('longitude');
+ // Calculations from https://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html
+ const latitude = this.location.get('latitude');
+ const longitude = this.location.get('longitude');
- const dt_now = GLib.DateTime.new_now_local();
- const dt_zero = GLib.DateTime.new_utc(1900, 1, 1, 0, 0, 0);
+ const dtNow = GLib.DateTime.new_now_local();
+ const dtZero = GLib.DateTime.new_utc(1900, 1, 1, 0, 0, 0);
- const time_span = dt_now.difference(dt_zero);
+ const timeSpan = dtNow.difference(dtZero);
- const date = time_span / 1000 / 1000 / 60 / 60 / 24 + 2;
- const tz_offset = dt_now.get_utc_offset() / 1000 / 1000 / 60 / 60;
- const time_past_local_midnight = 0;
+ const date = timeSpan / 1000 / 1000 / 60 / 60 / 24 + 2;
+ const tzOffset = dtNow.get_utc_offset() / 1000 / 1000 / 60 / 60;
+ const timePastLocalMidnight = 0;
- const julian_day = date + 2415018.5 + time_past_local_midnight - tz_offset / 24;
- const julian_century = (julian_day - 2451545) / 36525;
- const geom_mean_long_sun = (280.46646 + julian_century * (36000.76983 + julian_century * 0.0003032)) % 360;
- const geom_mean_anom_sun = 357.52911 + julian_century * (35999.05029 - 0.0001537 * julian_century);
- const eccent_earth_orbit = 0.016708634 - julian_century * (0.000042037 + 0.0000001267 * julian_century);
- const sun_eq_of_ctr = Math.sin(Math.rad(geom_mean_anom_sun)) * (1.914602 - julian_century * (0.004817 + 0.000014 * julian_century)) + Math.sin(Math.rad(2 * geom_mean_anom_sun)) * (0.019993 - 0.000101 * julian_century) + Math.sin(Math.rad(3 * geom_mean_anom_sun)) * 0.000289;
- const sun_true_long = geom_mean_long_sun + sun_eq_of_ctr;
- const sun_app_long = sun_true_long - 0.00569 - 0.00478 * Math.sin(Math.rad(125.04 - 1934.136 * julian_century));
- const mean_obliq_ecliptic = 23 + (26 + ((21.448 - julian_century * (46.815 + julian_century * (0.00059 - julian_century * 0.001813)))) / 60) / 60;
- const obliq_corr = mean_obliq_ecliptic + 0.00256 * Math.cos(Math.rad(125.04 - 1934.136 * julian_century));
- const sun_declin = Math.deg(Math.asin(Math.sin(Math.rad(obliq_corr)) * Math.sin(Math.rad(sun_app_long))));
- const var_y = Math.tan(Math.rad(obliq_corr / 2)) * Math.tan(Math.rad(obliq_corr / 2));
- const eq_of_time = 4 * Math.deg(var_y * Math.sin(2 * Math.rad(geom_mean_long_sun)) - 2 * eccent_earth_orbit * Math.sin(Math.rad(geom_mean_anom_sun)) + 4 * eccent_earth_orbit * var_y * Math.sin(Math.rad(geom_mean_anom_sun)) * Math.cos(2 * Math.rad(geom_mean_long_sun)) - 0.5 * var_y * var_y * Math.sin(4 * Math.rad(geom_mean_long_sun)) - 1.25 * eccent_earth_orbit * eccent_earth_orbit * Math.sin(2 * Math.rad(geom_mean_anom_sun)));
- const ha_sunrise = Math.deg(Math.acos(Math.cos(Math.rad(90.833)) / (Math.cos(Math.rad(latitude)) * Math.cos(Math.rad(sun_declin))) - Math.tan(Math.rad(latitude)) * Math.tan(Math.rad(sun_declin))));
- const solar_noon = (720 - 4 * longitude - eq_of_time + tz_offset * 60) / 1440;
+ const julianDay = date + 2415018.5 + timePastLocalMidnight - tzOffset / 24;
+ const julianCentury = (julianDay - 2451545) / 36525;
+ const geomMeanLongSun = (280.46646 + julianCentury * (36000.76983 + julianCentury * 0.0003032)) % 360;
+ const geomMeanAnomSun = 357.52911 + julianCentury * (35999.05029 - 0.0001537 * julianCentury);
+ const eccentEarthOrbit = 0.016708634 - julianCentury * (0.000042037 + 0.0000001267 * julianCentury);
+ const sunEqOfCtr = Math.sin(Math.rad(geomMeanAnomSun)) * (1.914602 - julianCentury * (0.004817 + 0.000014 * julianCentury)) + Math.sin(Math.rad(2 * geomMeanAnomSun)) * (0.019993 - 0.000101 * julianCentury) + Math.sin(Math.rad(3 * geomMeanAnomSun)) * 0.000289;
+ const sunTrueLong = geomMeanLongSun + sunEqOfCtr;
+ const sunAppLong = sunTrueLong - 0.00569 - 0.00478 * Math.sin(Math.rad(125.04 - 1934.136 * julianCentury));
+ const meanObliqEcliptic = 23 + (26 + ((21.448 - julianCentury * (46.815 + julianCentury * (0.00059 - julianCentury * 0.001813)))) / 60) / 60;
+ const obliqCorr = meanObliqEcliptic + 0.00256 * Math.cos(Math.rad(125.04 - 1934.136 * julianCentury));
+ const sunDeclin = Math.deg(Math.asin(Math.sin(Math.rad(obliqCorr)) * Math.sin(Math.rad(sunAppLong))));
+ const varY = Math.tan(Math.rad(obliqCorr / 2)) * Math.tan(Math.rad(obliqCorr / 2));
+ const eqOfTime = 4 * Math.deg(varY * Math.sin(2 * Math.rad(geomMeanLongSun)) - 2 * eccentEarthOrbit * Math.sin(Math.rad(geomMeanAnomSun)) + 4 * eccentEarthOrbit * varY * Math.sin(Math.rad(geomMeanAnomSun)) * Math.cos(2 * Math.rad(geomMeanLongSun)) - 0.5 * varY * varY * Math.sin(4 * Math.rad(geomMeanLongSun)) - 1.25 * eccentEarthOrbit * eccentEarthOrbit * Math.sin(2 * Math.rad(geomMeanAnomSun)));
+ const haSunrise = Math.deg(Math.acos(Math.cos(Math.rad(90.833)) / (Math.cos(Math.rad(latitude)) * Math.cos(Math.rad(sunDeclin))) - Math.tan(Math.rad(latitude)) * Math.tan(Math.rad(sunDeclin))));
+ const solarNoon = (720 - 4 * longitude - eqOfTime + tzOffset * 60) / 1440;
- const sunrise_time = solar_noon - ha_sunrise * 4 / 1440;
- const sunset_time = solar_noon + ha_sunrise * 4 / 1440;
+ const timeSunrise = solarNoon - haSunrise * 4 / 1440;
+ const timeSunset = solarNoon + haSunrise * 4 / 1440;
- const sunrise = sunrise_time * 24;
- const sunset = sunset_time * 24;
+ const sunrise = timeSunrise * 24;
+ const sunset = timeSunset * 24;
- this._suntimes.set('sunrise', sunrise);
- this._suntimes.set('sunset', sunset);
- log_debug(`New sun times: (sunrise: ${sunrise}; sunset: ${sunset})`);
- }
+ this._suntimes.set('sunrise', sunrise);
+ this._suntimes.set('sunset', sunset);
+ logDebug(`New sun times: (sunrise: ${sunrise}; sunset: ${sunset})`);
+ }
- _regularly_update_suntimes() {
- log_debug('Regularly updating sun times...');
- this._regularly_update_suntimes_timer = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 3600, () => {
- this._update_suntimes();
- return true; // Repeat the loop
- });
- }
+ _regularlyUpdateSuntimes() {
+ logDebug('Regularly updating sun times...');
+ this._regularlyUpdateSuntimesTimer = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 3600, () => {
+ this._updateSuntimes();
+ return true; // Repeat the loop
+ });
+ }
- _stop_regularly_updating_suntimes() {
- GLib.Source.remove(this._regularly_update_suntimes_timer);
- this._regularly_update_suntimes_timer = null;
- log_debug('Stopped regularly updating sun times.');
- }
+ _stopRegularlyUpdatingSuntimes() {
+ GLib.Source.remove(this._regularlyUpdateSuntimesTimer);
+ this._regularlyUpdateSuntimesTimer = null;
+ logDebug('Stopped regularly updating sun times.');
+ }
- _is_daytime() {
- const time = GLib.DateTime.new_now_local();
- const hour = time.get_hour() + time.get_minute() / 60 + time.get_second() / 3600;
- return ( hour >= this._suntimes.get('sunrise') && hour <= this._suntimes.get('sunset') );
- }
+ _isDaytime() {
+ const time = GLib.DateTime.new_now_local();
+ const hour = time.get_hour() + time.get_minute() / 60 + time.get_second() / 3600;
+ return hour >= this._suntimes.get('sunrise') && hour <= this._suntimes.get('sunset');
+ }
- _watch_for_time_change() {
- log_debug('Watching for time change...');
- this._time_change_timer = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 1, () => {
- if ( !Me.imports.extension.enabled ) {
- // The extension doesn't exist anymore, quit the loop
- return false;
- }
- if ( this._previously_daytime !== this._is_daytime() ) {
- this._previously_daytime = this._is_daytime();
- this.emit('time-changed', this.time);
- }
- return true; // Repeat the loop
- });
- }
+ _watchForTimeChange() {
+ logDebug('Watching for time change...');
+ this._timeChangeTimer = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 1, () => {
+ if (!Me.imports.extension.enabled) {
+ // The extension doesn't exist anymore, quit the loop
+ return false;
+ }
+ if (this._previouslyDaytime !== this._isDaytime()) {
+ this._previouslyDaytime = this._isDaytime();
+ this.emit('time-changed', this.time);
+ }
+ return true; // Repeat the loop
+ });
+ }
- _stop_watching_for_time_change() {
- GLib.Source.remove(this._time_change_timer);
- log_debug('Stopped watching for time change.');
- }
+ _stopWatchingForTimeChange() {
+ GLib.Source.remove(this._timeChangeTimer);
+ logDebug('Stopped watching for time change.');
+ }
-}
+};
Signals.addSignalMethods(TimerLocation.prototype);
diff --git a/src/modules/TimerNightlight.js b/src/modules/TimerNightlight.js
index 9ab52ea..426a4ed 100644
--- a/src/modules/TimerNightlight.js
+++ b/src/modules/TimerNightlight.js
@@ -16,20 +16,20 @@ You should have received a copy of the GNU General Public License along with
this program. If not, see .
*/
-const { Gio, GLib } = imports.gi;
+const { Gio } = imports.gi;
const { extensionUtils } = imports.misc;
const Signals = imports.signals;
const Me = extensionUtils.getCurrentExtension();
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
const COLOR_INTERFACE = `
-
-
-
+
+
+
`;
@@ -41,68 +41,73 @@ const COLOR_INTERFACE = `
*/
var TimerNightlight = class {
- enable() {
- log_debug('Enabling Night Light Timer...');
- this._connect_to_color_dbus_proxy();
- this._listen_to_nightlight_state();
- this.emit('time-changed', this.time);
- log_debug('Night Light Timer enabled.');
- }
+ constructor() {
+ this._colorDbusProxy = null;
+ this._nightlightStateConnect = null;
+ }
- disable() {
- log_debug('Disabling Night Light Timer...');
- this._stop_listening_to_nightlight_state();
- this._disconnect_from_color_dbus_proxy();
- log_debug('Night Light Timer disabled.');
- }
+ enable() {
+ logDebug('Enabling Night Light Timer...');
+ this._connectToColorDbusProxy();
+ this._listenToNightlightState();
+ this.emit('time-changed', this.time);
+ logDebug('Night Light Timer enabled.');
+ }
+
+ disable() {
+ logDebug('Disabling Night Light Timer...');
+ this._stopListeningToNightlightState();
+ this._disconnectFromColorDbusProxy();
+ logDebug('Night Light Timer disabled.');
+ }
- get time() {
- return this._is_nightlight_active() ? 'night' : 'day';
- }
+ get time() {
+ return this._isNightlightActive() ? 'night' : 'day';
+ }
- _connect_to_color_dbus_proxy() {
- log_debug('Connecting to Color DBus proxy...');
- const ColorProxy = Gio.DBusProxy.makeProxyWrapper(COLOR_INTERFACE);
- this._color_dbus_proxy = new ColorProxy(
- Gio.DBus.session,
- 'org.gnome.SettingsDaemon.Color',
- '/org/gnome/SettingsDaemon/Color'
- );
- log_debug('Connected to Color DBus proxy.');
- }
+ _connectToColorDbusProxy() {
+ logDebug('Connecting to Color DBus proxy...');
+ const ColorProxy = Gio.DBusProxy.makeProxyWrapper(COLOR_INTERFACE);
+ this._colorDbusProxy = new ColorProxy(
+ Gio.DBus.session,
+ 'org.gnome.SettingsDaemon.Color',
+ '/org/gnome/SettingsDaemon/Color'
+ );
+ logDebug('Connected to Color DBus proxy.');
+ }
- _disconnect_from_color_dbus_proxy() {
- log_debug('Disconnecting from Color DBus proxy...');
- this._color_dbus_proxy = null;
- log_debug('Disconnected from Color DBus proxy.');
- }
+ _disconnectFromColorDbusProxy() {
+ logDebug('Disconnecting from Color DBus proxy...');
+ this._colorDbusProxy = null;
+ logDebug('Disconnected from Color DBus proxy.');
+ }
- _listen_to_nightlight_state() {
- log_debug('Listening to Night Light state...');
- this._nightlight_state_connect = this._color_dbus_proxy.connect(
- 'g-properties-changed',
- this._on_nightlight_state_changed.bind(this)
- );
- }
+ _listenToNightlightState() {
+ logDebug('Listening to Night Light state...');
+ this._nightlightStateConnect = this._colorDbusProxy.connect(
+ 'g-properties-changed',
+ this._onNightlightStateChanged.bind(this)
+ );
+ }
- _stop_listening_to_nightlight_state() {
- this._color_dbus_proxy.disconnect(this._nightlight_state_connect);
- log_debug('Stopped listening to Night Light state.');
- }
+ _stopListeningToNightlightState() {
+ this._colorDbusProxy.disconnect(this._nightlightStateConnect);
+ logDebug('Stopped listening to Night Light state.');
+ }
- _on_nightlight_state_changed(sender, dbus_properties) {
- const properties = dbus_properties.deep_unpack();
- if ( properties.NightLightActive ) {
- log_debug('Night Light has become ' + (properties.NightLightActive.unpack() ? '' : 'in') + 'active.');
- this.emit('time-changed', this.time);
- }
- }
+ _onNightlightStateChanged(_sender, dbusProperties) {
+ const properties = dbusProperties.deep_unpack();
+ if (properties.NightLightActive) {
+ logDebug(`Night Light has become ${properties.NightLightActive.unpack() ? '' : 'in'}active.`);
+ this.emit('time-changed', this.time);
+ }
+ }
- _is_nightlight_active() {
- return this._color_dbus_proxy.NightLightActive;
- }
+ _isNightlightActive() {
+ return this._colorDbusProxy.NightLightActive;
+ }
-}
+};
Signals.addSignalMethods(TimerNightlight.prototype);
diff --git a/src/modules/TimerOndemand.js b/src/modules/TimerOndemand.js
index fe7d3a1..361996b 100644
--- a/src/modules/TimerOndemand.js
+++ b/src/modules/TimerOndemand.js
@@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with
this program. If not, see .
*/
-const { GLib, Shell, St } = imports.gi;
+const { Shell, St } = imports.gi;
const { extensionUtils } = imports.misc;
const Signals = imports.signals;
@@ -25,8 +25,8 @@ const { main, panelMenu } = imports.ui;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug } = Me.imports.utils;
-const { key_binding_auto_repeat, get_actor } = Me.imports.compat;
+const { logDebug } = Me.imports.utils;
+const { keyBindingAutoRepeat, getActor } = Me.imports.compat;
/**
* The On-demand Timer allows the user to manually switch between the day and
@@ -36,85 +36,85 @@ const { key_binding_auto_repeat, get_actor } = Me.imports.compat;
*/
var TimerOndemand = class {
- constructor() {
- this._button = null;
- this._icon = null;
- }
+ constructor() {
+ this._button = null;
+ this._icon = null;
+ }
- enable() {
- log_debug('Enabling On-demand Timer ...');
- this._add_keybinding();
- this._add_button();
- log_debug('On-demand Timer enabled.');
- }
+ enable() {
+ logDebug('Enabling On-demand Timer ...');
+ this._addKeybinding();
+ this._addButton();
+ logDebug('On-demand Timer enabled.');
+ }
- disable() {
- log_debug('Disabling On-demand Timer ...');
- this._remove_keybinding();
- this._remove_button();
- log_debug('On-demand Timer disabled.');
- }
+ disable() {
+ logDebug('Disabling On-demand Timer ...');
+ this._removeKeybinding();
+ this._removeButton();
+ logDebug('On-demand Timer disabled.');
+ }
- get time() {
- return e.settingsManager.ondemand_time;
- }
+ get time() {
+ return e.settingsManager.ondemandTime;
+ }
- _add_keybinding() {
- log_debug('Adding On-demand Timer keybinding...');
- // add our own keydinging handler
- main.wm.addKeybinding(
- 'nightthemeswitcher-ondemand-keybinding',
- e.settingsManager._extensionsSettings,
- key_binding_auto_repeat(),
- Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
- this._toggle_time.bind(this)
- );
- log_debug('Added On-demand Timer keybinding.');
- }
+ _addKeybinding() {
+ logDebug('Adding On-demand Timer keybinding...');
+ // add our own keydinging handler
+ main.wm.addKeybinding(
+ 'nightthemeswitcher-ondemand-keybinding',
+ e.settingsManager._extensionsSettings,
+ keyBindingAutoRepeat(),
+ Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
+ this._toggleTime.bind(this)
+ );
+ logDebug('Added On-demand Timer keybinding.');
+ }
- _remove_keybinding() {
- log_debug('Removing On-demand Timer keybinding...');
- main.wm.removeKeybinding('nightthemeswitcher-ondemand-keybinding');
- log_debug('Removed On-demand Timer keybinding.');
- }
+ _removeKeybinding() {
+ logDebug('Removing On-demand Timer keybinding...');
+ main.wm.removeKeybinding('nightthemeswitcher-ondemand-keybinding');
+ logDebug('Removed On-demand Timer keybinding.');
+ }
- _add_button() {
- log_debug('Adding On-demand Timer button...');
+ _addButton() {
+ logDebug('Adding On-demand Timer button...');
- this._icon = new St.Icon({
- icon_name: this._get_icon_name_for_current_time(),
- style_class: 'system-status-icon'
- });
+ this._icon = new St.Icon({
+ icon_name: this._getIconNameForCurrentTime(),
+ style_class: 'system-status-icon',
+ });
- this._button = new panelMenu.Button(0.0);
- const button_actor = get_actor(this._button);
- button_actor.add_actor(this._icon);
- button_actor.connect(
- 'button-press-event',
- this._toggle_time.bind(this)
- );
- main.panel.addToStatusArea('NightThemeSwitcherButton', this._button);
+ this._button = new panelMenu.Button(0.0);
+ const buttonActor = getActor(this._button);
+ buttonActor.add_actor(this._icon);
+ buttonActor.connect(
+ 'button-press-event',
+ this._toggleTime.bind(this)
+ );
+ main.panel.addToStatusArea('NightThemeSwitcherButton', this._button);
- log_debug('Added On-demand Timer button.');
- }
+ logDebug('Added On-demand Timer button.');
+ }
- _remove_button() {
- log_debug('Removing On-demand Timer button...');
- this._button.destroy();
- log_debug('Removed On-demand Timer button.');
- }
+ _removeButton() {
+ logDebug('Removing On-demand Timer button...');
+ this._button.destroy();
+ logDebug('Removed On-demand Timer button.');
+ }
- _toggle_time() {
- e.settingsManager.ondemand_time = e.timer.time === 'day' ? 'night' : 'day';
- this.emit('time-changed', this.time);
- this._icon.icon_name = this._get_icon_name_for_current_time();
+ _toggleTime() {
+ e.settingsManager.ondemandTime = e.timer.time === 'day' ? 'night' : 'day';
+ this.emit('time-changed', this.time);
+ this._icon.icon_name = this._getIconNameForCurrentTime();
- }
+ }
- _get_icon_name_for_current_time() {
- return e.timer.time === 'day' ? 'weather-clear-symbolic' : 'weather-clear-night-symbolic';
- }
+ _getIconNameForCurrentTime() {
+ return e.timer.time === 'day' ? 'weather-clear-symbolic' : 'weather-clear-night-symbolic';
+ }
-}
+};
Signals.addSignalMethods(TimerOndemand.prototype);
diff --git a/src/modules/TimerSchedule.js b/src/modules/TimerSchedule.js
index 9f8bc0c..ad6720a 100644
--- a/src/modules/TimerSchedule.js
+++ b/src/modules/TimerSchedule.js
@@ -23,7 +23,7 @@ const Signals = imports.signals;
const Me = extensionUtils.getCurrentExtension();
const e = Me.imports.extension;
-const { log_debug } = Me.imports.utils;
+const { logDebug } = Me.imports.utils;
/**
@@ -36,53 +36,54 @@ const { log_debug } = Me.imports.utils;
*/
var TimerSchedule = class {
- constructor() {
- this._previously_daytime = null;
- }
+ constructor() {
+ this._previouslyDaytime = null;
+ this._timeChangeTimer = null;
+ }
- enable() {
- log_debug('Enabling Schedule Timer...');
- this._watch_for_time_change();
- log_debug('Schedule Timer enabled.');
- }
+ enable() {
+ logDebug('Enabling Schedule Timer...');
+ this._watchForTimeChange();
+ logDebug('Schedule Timer enabled.');
+ }
- disable() {
- log_debug('Disabling Schedule Timer...');
- this._stop_watching_for_time_change();
- log_debug('Schedule Timer disabled.');
- }
+ disable() {
+ logDebug('Disabling Schedule Timer...');
+ this._stopWatchingForTimeChange();
+ logDebug('Schedule Timer disabled.');
+ }
- get time() {
- return this._is_daytime() ? 'day' : 'night';
- }
+ get time() {
+ return this._isDaytime() ? 'day' : 'night';
+ }
- _is_daytime() {
- const time = GLib.DateTime.new_now_local();
- const hour = time.get_hour() + time.get_minute() / 60 + time.get_second() / 3600;
- return ( hour >= e.settingsManager.schedule_sunrise && hour <= e.settingsManager.schedule_sunset );
- }
+ _isDaytime() {
+ const time = GLib.DateTime.new_now_local();
+ const hour = time.get_hour() + time.get_minute() / 60 + time.get_second() / 3600;
+ return hour >= e.settingsManager.scheduleSunrise && hour <= e.settingsManager.scheduleSunset;
+ }
- _watch_for_time_change() {
- log_debug('Watching for time change...');
- this._time_change_timer = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 1, () => {
- if ( !Me.imports.extension.enabled ) {
- // The extension doesn't exist anymore, quit the loop
- return false;
- }
- if ( this._previously_daytime !== this._is_daytime() ) {
- this._previously_daytime = this._is_daytime();
- this.emit('time-changed', this.time);
- }
- return true; // Repeat the loop
- });
- }
+ _watchForTimeChange() {
+ logDebug('Watching for time change...');
+ this._timeChangeTimer = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 1, () => {
+ if (!Me.imports.extension.enabled) {
+ // The extension doesn't exist anymore, quit the loop
+ return false;
+ }
+ if (this._previouslyDaytime !== this._isDaytime()) {
+ this._previouslyDaytime = this._isDaytime();
+ this.emit('time-changed', this.time);
+ }
+ return true; // Repeat the loop
+ });
+ }
- _stop_watching_for_time_change() {
- GLib.Source.remove(this._time_change_timer);
- log_debug('Stopped watching for time change.');
- }
+ _stopWatchingForTimeChange() {
+ GLib.Source.remove(this._timeChangeTimer);
+ logDebug('Stopped watching for time change.');
+ }
-}
+};
Signals.addSignalMethods(TimerSchedule.prototype);
diff --git a/src/preferences/Backgrounds.js b/src/preferences/Backgrounds.js
index 1ddb89d..91a2403 100644
--- a/src/preferences/Backgrounds.js
+++ b/src/preferences/Backgrounds.js
@@ -30,89 +30,89 @@ const _ = Gettext.gettext;
var BackgroundsPreferences = class {
- constructor() {
- const settings = compat.get_extension_settings();
+ constructor() {
+ const settings = compat.getExtensionSettings();
- const label = _('Backgrounds');
- const description = _('You can set different backgrounds for day and night.');
- const content = new SettingsList();
+ const label = _('Backgrounds');
+ const description = _('You can set different backgrounds for day and night.');
+ const content = new SettingsList();
- content.add_row(new SettingsListRow(_('Switch backgrounds'), new BackgroundsEnabledControl()));
+ content.add_row(new SettingsListRow(_('Switch backgrounds'), new BackgroundsEnabledControl()));
- const day_background_row = new SettingsListRow(_('Day background'), new TimeBackgroundControl('day'));
- settings.bind(
- 'backgrounds-enabled',
- day_background_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(day_background_row);
+ const dayBackgroundRow = new SettingsListRow(_('Day background'), new TimeBackgroundControl('day'));
+ settings.bind(
+ 'backgrounds-enabled',
+ dayBackgroundRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(dayBackgroundRow);
- const night_background_row = new SettingsListRow(_('Night background'), new TimeBackgroundControl('night'));
- settings.bind(
- 'backgrounds-enabled',
- night_background_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(night_background_row);
+ const nightBackgroundRow = new SettingsListRow(_('Night background'), new TimeBackgroundControl('night'));
+ settings.bind(
+ 'backgrounds-enabled',
+ nightBackgroundRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(nightBackgroundRow);
- return new SettingsPage(label, description, content);
- }
+ return new SettingsPage(label, description, content);
+ }
-}
+};
class BackgroundsEnabledControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: settings.get_boolean('backgrounds-enabled')
- });
- settings.bind(
- 'backgrounds-enabled',
- toggle,
- 'active',
- Gio.SettingsBindFlags.DEFAULT
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: settings.get_boolean('backgrounds-enabled'),
+ });
+ settings.bind(
+ 'backgrounds-enabled',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return toggle;
+ }
}
class TimeBackgroundControl {
- constructor(time) {
- const settings = compat.get_extension_settings();
+ constructor(time) {
+ const settings = compat.getExtensionSettings();
- const filter = new Gtk.FileFilter();
- filter.add_mime_type('image/jpeg');
- filter.add_mime_type('image/png');
- filter.add_mime_type('image/tiff');
+ const filter = new Gtk.FileFilter();
+ filter.add_mime_type('image/jpeg');
+ filter.add_mime_type('image/png');
+ filter.add_mime_type('image/tiff');
- const preview = new Gtk.Image({
- pixel_size: 256
- });
+ const preview = new Gtk.Image({
+ pixel_size: 256,
+ });
- const button = new Gtk.FileChooserButton({
- title: _('Select your background image'),
- action: Gtk.FileChooserAction.OPEN,
- filter: filter,
- preview_widget: preview,
- use_preview_label: false
- });
- button.set_uri(settings.get_string(`background-${time}`));
- button.connect('update-preview', () => {
- const file = button.get_preview_filename();
- const pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(file, 256, 256);
- preview.set_from_pixbuf(pixbuf);
- });
- button.connect('file-set', () => settings.set_string(`background-${time}`, button.get_uri()));
- settings.connect(`changed::background-${time}`, () => button.set_uri(settings.get_string(`background-${time}`)));
+ const button = new Gtk.FileChooserButton({
+ title: _('Select your background image'),
+ action: Gtk.FileChooserAction.OPEN,
+ filter,
+ preview_widget: preview,
+ use_preview_label: false,
+ });
+ button.set_uri(settings.get_string(`background-${time}`));
+ button.connect('update-preview', () => {
+ const file = button.get_preview_filename();
+ const pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(file, 256, 256);
+ preview.set_from_pixbuf(pixbuf);
+ });
+ button.connect('file-set', () => settings.set_string(`background-${time}`, button.get_uri()));
+ settings.connect(`changed::background-${time}`, () => button.set_uri(settings.get_string(`background-${time}`)));
- return button;
- }
+ return button;
+ }
}
diff --git a/src/preferences/Commands.js b/src/preferences/Commands.js
index 6f27f54..8575677 100644
--- a/src/preferences/Commands.js
+++ b/src/preferences/Commands.js
@@ -30,77 +30,77 @@ const _ = Gettext.gettext;
var CommandsPreferences = class {
- constructor() {
- const settings = compat.get_extension_settings();
+ constructor() {
+ const settings = compat.getExtensionSettings();
- const label = _('Commands');
- const description = _('You can set custom commands that will be run when the time of the day changes.');
- const content = new SettingsList();
+ const label = _('Commands');
+ const description = _('You can set custom commands that will be run when the time of the day changes.');
+ const content = new SettingsList();
- content.add_row(new SettingsListRow(_('Use custom commands'), new CommandsEnabledControl()));
+ content.add_row(new SettingsListRow(_('Use custom commands'), new CommandsEnabledControl()));
- const day_command_row = new SettingsListRow(_('Sunrise'), new SuntimeCommandControl('sunrise'));
- settings.bind(
- 'commands-enabled',
- day_command_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(day_command_row);
+ const dayCommandRow = new SettingsListRow(_('Sunrise'), new SuntimeCommandControl('sunrise'));
+ settings.bind(
+ 'commands-enabled',
+ dayCommandRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(dayCommandRow);
- const night_command_row = new SettingsListRow(_('Sunset'), new SuntimeCommandControl('sunset'));
- settings.bind(
- 'commands-enabled',
- night_command_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(night_command_row);
+ const nightCommandRow = new SettingsListRow(_('Sunset'), new SuntimeCommandControl('sunset'));
+ settings.bind(
+ 'commands-enabled',
+ nightCommandRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(nightCommandRow);
- return new SettingsPage(label, description, content);
- }
+ return new SettingsPage(label, description, content);
+ }
-}
+};
class CommandsEnabledControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: settings.get_boolean('commands-enabled')
- });
- settings.bind(
- 'commands-enabled',
- toggle,
- 'active',
- Gio.SettingsBindFlags.DEFAULT
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: settings.get_boolean('commands-enabled'),
+ });
+ settings.bind(
+ 'commands-enabled',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return toggle;
+ }
}
class SuntimeCommandControl {
- constructor(suntime) {
- const message = new Map([
- ['sunrise', _('Hello sunshine!')],
- ['sunset', _('Hello moonshine!')]
- ]);
- const settings = compat.get_extension_settings();
- const entry = new Gtk.Entry({
- width_request: 300,
- placeholder_text: _(`notify-send "${message.get(suntime)}"`)
- });
- settings.bind(
- `command-${suntime}`,
- entry,
- 'text',
- Gio.SettingsBindFlags.DEFAULT
- );
- return entry;
- }
+ constructor(suntime) {
+ const message = new Map([
+ ['sunrise', _('Hello sunshine!')],
+ ['sunset', _('Hello moonshine!')],
+ ]);
+ const settings = compat.getExtensionSettings();
+ const entry = new Gtk.Entry({
+ width_request: 300,
+ placeholder_text: _(`notify-send "${message.get(suntime)}"`),
+ });
+ settings.bind(
+ `command-${suntime}`,
+ entry,
+ 'text',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return entry;
+ }
}
diff --git a/src/preferences/CursorTheme.js b/src/preferences/CursorTheme.js
index 1b85db2..5645fea 100644
--- a/src/preferences/CursorTheme.js
+++ b/src/preferences/CursorTheme.js
@@ -23,7 +23,7 @@ const Me = extensionUtils.getCurrentExtension();
const compat = Me.imports.compat;
const { SettingsPage, SettingsList, SettingsListRow } = Me.imports.preferences.bases;
-const { get_installed_cursor_themes } = Me.imports.utils;
+const { getInstalledCursorThemes } = Me.imports.utils;
const Gettext = imports.gettext.domain(Me.metadata.uuid);
const _ = Gettext.gettext;
@@ -31,72 +31,72 @@ const _ = Gettext.gettext;
var CursorThemePreferences = class {
- constructor() {
- const settings = compat.get_extension_settings();
+ constructor() {
+ const settings = compat.getExtensionSettings();
- const label = _('Cursor theme');
- const description = _('You can set different cursor themes for day and night.');
- const content = new SettingsList();
+ const label = _('Cursor theme');
+ const description = _('You can set different cursor themes for day and night.');
+ const content = new SettingsList();
- content.add_row(new SettingsListRow(_('Switch cursor variants'), new CursorVariantsEnabledControl()));
+ content.add_row(new SettingsListRow(_('Switch cursor variants'), new CursorVariantsEnabledControl()));
- const day_variant_row = new SettingsListRow(_('Day variant'), new TimeCursorVariantControl('day'));
- settings.bind(
- 'cursor-variants-enabled',
- day_variant_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(day_variant_row);
+ const dayVariantRow = new SettingsListRow(_('Day variant'), new TimeCursorVariantControl('day'));
+ settings.bind(
+ 'cursor-variants-enabled',
+ dayVariantRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(dayVariantRow);
- const night_variant_row = new SettingsListRow(_('Night variant'), new TimeCursorVariantControl('night'));
- settings.bind(
- 'cursor-variants-enabled',
- night_variant_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(night_variant_row);
+ const nightVariantRow = new SettingsListRow(_('Night variant'), new TimeCursorVariantControl('night'));
+ settings.bind(
+ 'cursor-variants-enabled',
+ nightVariantRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(nightVariantRow);
- return new SettingsPage(label, description, content);
- }
+ return new SettingsPage(label, description, content);
+ }
-}
+};
class CursorVariantsEnabledControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: settings.get_boolean('cursor-variants-enabled')
- });
- settings.bind(
- 'cursor-variants-enabled',
- toggle,
- 'active',
- Gio.SettingsBindFlags.DEFAULT
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: settings.get_boolean('cursor-variants-enabled'),
+ });
+ settings.bind(
+ 'cursor-variants-enabled',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return toggle;
+ }
}
class TimeCursorVariantControl {
- constructor(time) {
- const settings = compat.get_extension_settings();
- const combo = new Gtk.ComboBoxText();
- const themes = Array.from(get_installed_cursor_themes()).sort();
- themes.forEach(theme => combo.append(theme, theme));
- settings.bind(
- `cursor-variant-${time}`,
- combo,
- 'active-id',
- Gio.SettingsBindFlags.DEFAULT
- );
- return combo;
- }
+ constructor(time) {
+ const settings = compat.getExtensionSettings();
+ const combo = new Gtk.ComboBoxText();
+ const themes = Array.from(getInstalledCursorThemes()).sort();
+ themes.forEach(theme => combo.append(theme, theme));
+ settings.bind(
+ `cursor-variant-${time}`,
+ combo,
+ 'active-id',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return combo;
+ }
}
diff --git a/src/preferences/GtkTheme.js b/src/preferences/GtkTheme.js
index d056fdb..75a8854 100644
--- a/src/preferences/GtkTheme.js
+++ b/src/preferences/GtkTheme.js
@@ -23,7 +23,7 @@ const Me = extensionUtils.getCurrentExtension();
const compat = Me.imports.compat;
const { SettingsPage, SettingsList, SettingsListRow } = Me.imports.preferences.bases;
-const { get_installed_gtk_themes } = Me.imports.utils;
+const { getInstalledGtkThemes } = Me.imports.utils;
const Gettext = imports.gettext.domain(Me.metadata.uuid);
const _ = Gettext.gettext;
@@ -31,96 +31,96 @@ const _ = Gettext.gettext;
var GtkThemePreferences = class {
- constructor() {
- const settings = compat.get_extension_settings();
+ constructor() {
+ const settings = compat.getExtensionSettings();
- const label = _('GTK theme');
- const description = _('The extension will try to automatically detect the day and night variants of your GTK theme.\n\nIf the theme you use isn\'t supported, please submit a request. You can also manually set variants.');
- const content = new SettingsList();
+ const label = _('GTK theme');
+ const description = _('The extension will try to automatically detect the day and night variants of your GTK theme.\n\nIf the theme you use isn\'t supported, please submit a request. You can also manually set variants.');
+ const content = new SettingsList();
- content.add_row(new SettingsListRow(_('Switch GTK variants'), new GtkVariantsEnabledControl()));
+ content.add_row(new SettingsListRow(_('Switch GTK variants'), new GtkVariantsEnabledControl()));
- const manual_variants_row = new SettingsListRow(_('Manual variants'), new ManualGtkVariantsControl());
- settings.bind(
- 'gtk-variants-enabled',
- manual_variants_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(manual_variants_row);
+ const manualVariantsRow = new SettingsListRow(_('Manual variants'), new ManualGtkVariantsControl());
+ settings.bind(
+ 'gtk-variants-enabled',
+ manualVariantsRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(manualVariantsRow);
- const day_variant_row = new SettingsListRow(_('Day variant'), new TimeGtkVariantControl('day'));
- const update_day_variant_row_sensitivity = () => day_variant_row.set_sensitive(!!(settings.get_boolean('gtk-variants-enabled') && settings.get_boolean('manual-gtk-variants')));
- settings.connect('changed::gtk-variants-enabled', update_day_variant_row_sensitivity);
- settings.connect('changed::manual-gtk-variants', update_day_variant_row_sensitivity)
- update_day_variant_row_sensitivity();
- content.add_row(day_variant_row);
+ const dayVariantRow = new SettingsListRow(_('Day variant'), new TimeGtkVariantControl('day'));
+ const updateDayVariantRowSensitivity = () => dayVariantRow.set_sensitive(!!(settings.get_boolean('gtk-variants-enabled') && settings.get_boolean('manual-gtk-variants')));
+ settings.connect('changed::gtk-variants-enabled', updateDayVariantRowSensitivity);
+ settings.connect('changed::manual-gtk-variants', updateDayVariantRowSensitivity);
+ updateDayVariantRowSensitivity();
+ content.add_row(dayVariantRow);
- const night_variant_row = new SettingsListRow(_('Night variant'), new TimeGtkVariantControl('night'));
- const update_night_variant_row_sensitivity = () => night_variant_row.set_sensitive(!!(settings.get_boolean('gtk-variants-enabled') && settings.get_boolean('manual-gtk-variants')));
- settings.connect('changed::gtk-variants-enabled', update_night_variant_row_sensitivity);
- settings.connect('changed::manual-gtk-variants', update_night_variant_row_sensitivity)
- update_night_variant_row_sensitivity();
- content.add_row(night_variant_row);
+ const nightVariantRow = new SettingsListRow(_('Night variant'), new TimeGtkVariantControl('night'));
+ const updateNightVariantRowSensitivity = () => nightVariantRow.set_sensitive(!!(settings.get_boolean('gtk-variants-enabled') && settings.get_boolean('manual-gtk-variants')));
+ settings.connect('changed::gtk-variants-enabled', updateNightVariantRowSensitivity);
+ settings.connect('changed::manual-gtk-variants', updateNightVariantRowSensitivity);
+ updateNightVariantRowSensitivity();
+ content.add_row(nightVariantRow);
- return new SettingsPage(label, description, content);
- }
+ return new SettingsPage(label, description, content);
+ }
-}
+};
class GtkVariantsEnabledControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: settings.get_boolean('gtk-variants-enabled')
- });
- settings.bind(
- 'gtk-variants-enabled',
- toggle,
- 'active',
- Gio.SettingsBindFlags.DEFAULT
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: settings.get_boolean('gtk-variants-enabled'),
+ });
+ settings.bind(
+ 'gtk-variants-enabled',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return toggle;
+ }
}
class ManualGtkVariantsControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: false
- });
- settings.bind(
- 'manual-gtk-variants',
- toggle,
- 'active',
- Gio.SettingsBindFlags.DEFAULT
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: false,
+ });
+ settings.bind(
+ 'manual-gtk-variants',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return toggle;
+ }
}
class TimeGtkVariantControl {
- constructor(time) {
- const settings = compat.get_extension_settings();
- const combo = new Gtk.ComboBoxText();
- const themes = Array.from(get_installed_gtk_themes()).sort();
- themes.forEach(theme => combo.append(theme, theme));
- settings.bind(
- `gtk-variant-${time}`,
- combo,
- 'active-id',
- Gio.SettingsBindFlags.DEFAULT
- );
- return combo;
- }
+ constructor(time) {
+ const settings = compat.getExtensionSettings();
+ const combo = new Gtk.ComboBoxText();
+ const themes = Array.from(getInstalledGtkThemes()).sort();
+ themes.forEach(theme => combo.append(theme, theme));
+ settings.bind(
+ `gtk-variant-${time}`,
+ combo,
+ 'active-id',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return combo;
+ }
}
diff --git a/src/preferences/IconTheme.js b/src/preferences/IconTheme.js
index 5267cb4..7751d0a 100644
--- a/src/preferences/IconTheme.js
+++ b/src/preferences/IconTheme.js
@@ -23,7 +23,7 @@ const Me = extensionUtils.getCurrentExtension();
const compat = Me.imports.compat;
const { SettingsPage, SettingsList, SettingsListRow } = Me.imports.preferences.bases;
-const { get_installed_icon_themes } = Me.imports.utils;
+const { getInstalledIconThemes } = Me.imports.utils;
const Gettext = imports.gettext.domain(Me.metadata.uuid);
const _ = Gettext.gettext;
@@ -31,72 +31,72 @@ const _ = Gettext.gettext;
var IconThemePreferences = class {
- constructor() {
- const settings = compat.get_extension_settings();
+ constructor() {
+ const settings = compat.getExtensionSettings();
- const label = _('Icon theme');
- const description = _('You can set different icon themes for day and night.');
- const content = new SettingsList();
+ const label = _('Icon theme');
+ const description = _('You can set different icon themes for day and night.');
+ const content = new SettingsList();
- content.add_row(new SettingsListRow(_('Switch icon variants'), new IconVariantsEnabledControl()));
+ content.add_row(new SettingsListRow(_('Switch icon variants'), new IconVariantsEnabledControl()));
- const day_variant_row = new SettingsListRow(_('Day variant'), new TimeIconVariantControl('day'));
- settings.bind(
- 'icon-variants-enabled',
- day_variant_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(day_variant_row);
+ const dayVariantRow = new SettingsListRow(_('Day variant'), new TimeIconVariantControl('day'));
+ settings.bind(
+ 'icon-variants-enabled',
+ dayVariantRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(dayVariantRow);
- const night_variant_row = new SettingsListRow(_('Night variant'), new TimeIconVariantControl('night'));
- settings.bind(
- 'icon-variants-enabled',
- night_variant_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(night_variant_row);
+ const nightVariantRow = new SettingsListRow(_('Night variant'), new TimeIconVariantControl('night'));
+ settings.bind(
+ 'icon-variants-enabled',
+ nightVariantRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(nightVariantRow);
- return new SettingsPage(label, description, content);
- }
+ return new SettingsPage(label, description, content);
+ }
-}
+};
class IconVariantsEnabledControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: settings.get_boolean('icon-variants-enabled')
- });
- settings.bind(
- 'icon-variants-enabled',
- toggle,
- 'active',
- Gio.SettingsBindFlags.DEFAULT
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: settings.get_boolean('icon-variants-enabled'),
+ });
+ settings.bind(
+ 'icon-variants-enabled',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return toggle;
+ }
}
class TimeIconVariantControl {
- constructor(time) {
- const settings = compat.get_extension_settings();
- const combo = new Gtk.ComboBoxText();
- const themes = Array.from(get_installed_icon_themes()).sort();
- themes.forEach(theme => combo.append(theme, theme));
- settings.bind(
- `icon-variant-${time}`,
- combo,
- 'active-id',
- Gio.SettingsBindFlags.DEFAULT
- );
- return combo;
- }
+ constructor(time) {
+ const settings = compat.getExtensionSettings();
+ const combo = new Gtk.ComboBoxText();
+ const themes = Array.from(getInstalledIconThemes()).sort();
+ themes.forEach(theme => combo.append(theme, theme));
+ settings.bind(
+ `icon-variant-${time}`,
+ combo,
+ 'active-id',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return combo;
+ }
}
diff --git a/src/preferences/Schedule.js b/src/preferences/Schedule.js
index 81349b1..4078a12 100644
--- a/src/preferences/Schedule.js
+++ b/src/preferences/Schedule.js
@@ -30,280 +30,277 @@ const _ = Gettext.gettext;
var SchedulePreferences = class {
- constructor() {
- const settings = compat.get_extension_settings();
+ constructor() {
+ const settings = compat.getExtensionSettings();
- const label = _('Schedule');
- const description = _('The extension will try to use Night Light or Location Services to automatically set your current sunrise and sunset times if they are enabled.\n\nIf you prefer, you can manually choose a time source.');
- const content = new SettingsList();
+ const label = _('Schedule');
+ const description = _('The extension will try to use Night Light or Location Services to automatically set your current sunrise and sunset times if they are enabled.\n\nIf you prefer, you can manually choose a time source.');
+ const content = new SettingsList();
- content.add_row(new SettingsListRow(_('Automatic time source'), new ManualTimeSourceControl()));
+ content.add_row(new SettingsListRow(_('Automatic time source'), new ManualTimeSourceControl()));
- const time_source_row = new SettingsListRow(_('Time source'), new TimeSourceControl());
- settings.bind(
- 'manual-time-source',
- time_source_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(time_source_row);
+ const timeSourceRow = new SettingsListRow(_('Time source'), new TimeSourceControl());
+ settings.bind(
+ 'manual-time-source',
+ timeSourceRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(timeSourceRow);
- const ondemand_shortcut_row = new SettingsListRow(_('On-demand shortcut'), new KeyBindingControl());
- const update_ondemand_shortcut_row_sensitivity = () => ondemand_shortcut_row.set_sensitive(!!(settings.get_boolean('manual-time-source') && settings.get_string('time-source') === 'ondemand'));
- settings.connect('changed::manual-time-source', () => update_ondemand_shortcut_row_sensitivity());
- settings.connect('changed::time-source', () => update_ondemand_shortcut_row_sensitivity());
- update_ondemand_shortcut_row_sensitivity();
- content.add_row(ondemand_shortcut_row);
+ const ondemandShortcutRow = new SettingsListRow(_('On-demand shortcut'), new KeyBindingControl());
+ const updateOndemandShortcutRowSensitivity = () => ondemandShortcutRow.set_sensitive(!!(settings.get_boolean('manual-time-source') && settings.get_string('time-source') === 'ondemand'));
+ settings.connect('changed::manual-time-source', () => updateOndemandShortcutRowSensitivity());
+ settings.connect('changed::time-source', () => updateOndemandShortcutRowSensitivity());
+ updateOndemandShortcutRowSensitivity();
+ content.add_row(ondemandShortcutRow);
- const sunrise_row = new SettingsListRow(_('Sunrise'), new SuntimeControl('sunrise'));
- const update_sunrise_row_sensitivity = () => sunrise_row.set_sensitive(!!(settings.get_boolean('manual-time-source') && settings.get_string('time-source') === 'schedule'));
- settings.connect('changed::manual-time-source', () => update_sunrise_row_sensitivity());
- settings.connect('changed::time-source', () => update_sunrise_row_sensitivity());
- update_sunrise_row_sensitivity();
- content.add_row(sunrise_row);
+ const sunriseRow = new SettingsListRow(_('Sunrise'), new SuntimeControl('sunrise'));
+ const updateSunriseRowSensitivity = () => sunriseRow.set_sensitive(!!(settings.get_boolean('manual-time-source') && settings.get_string('time-source') === 'schedule'));
+ settings.connect('changed::manual-time-source', () => updateSunriseRowSensitivity());
+ settings.connect('changed::time-source', () => updateSunriseRowSensitivity());
+ updateSunriseRowSensitivity();
+ content.add_row(sunriseRow);
- const sunset_row = new SettingsListRow(_('Sunset'), new SuntimeControl('sunset'));
- const update_sunset_row_sensitivity = () => sunset_row.set_sensitive(!!(settings.get_boolean('manual-time-source') && settings.get_string('time-source') === 'schedule'));
- settings.connect('changed::manual-time-source', () => update_sunset_row_sensitivity());
- settings.connect('changed::time-source', () => update_sunset_row_sensitivity());
- update_sunset_row_sensitivity();
- content.add_row(sunset_row);
+ const sunsetRow = new SettingsListRow(_('Sunset'), new SuntimeControl('sunset'));
+ const updateSunsetRowSensitivity = () => sunsetRow.set_sensitive(!!(settings.get_boolean('manual-time-source') && settings.get_string('time-source') === 'schedule'));
+ settings.connect('changed::manual-time-source', () => updateSunsetRowSensitivity());
+ settings.connect('changed::time-source', () => updateSunsetRowSensitivity());
+ updateSunsetRowSensitivity();
+ content.add_row(sunsetRow);
- return new SettingsPage(label, description, content);
- }
+ return new SettingsPage(label, description, content);
+ }
-}
+};
class ManualTimeSourceControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: false
- });
- settings.bind(
- 'manual-time-source',
- toggle,
- 'active',
- Gio.SettingsBindFlags.INVERT_BOOLEAN
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: false,
+ });
+ settings.bind(
+ 'manual-time-source',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.INVERT_BOOLEAN
+ );
+ return toggle;
+ }
}
class TimeSourceControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const colorSettings = new Gio.Settings({ schema: 'org.gnome.settings-daemon.plugins.color' });
- const locationSettings = new Gio.Settings({ schema: 'org.gnome.system.location' });
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const colorSettings = new Gio.Settings({ schema: 'org.gnome.settings-daemon.plugins.color' });
+ const locationSettings = new Gio.Settings({ schema: 'org.gnome.system.location' });
- const box = new Gtk.Box({
- spacing: 8,
- orientation: Gtk.Orientation.HORIZONTAL,
- can_focus: false
- });
+ const box = new Gtk.Box({
+ spacing: 8,
+ orientation: Gtk.Orientation.HORIZONTAL,
+ can_focus: false,
+ });
- const nightlight_radio = new Gtk.RadioButton({
- label: _('Night Light'),
- active: (settings.get_string('time-source') === 'nightlight')
- });
- nightlight_radio.connect('toggled', () => {
- if ( nightlight_radio.get_active() ) {
- settings.set_string('time-source', 'nightlight')
- }
- });
- colorSettings.bind(
- 'night-light-enabled',
- nightlight_radio,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- box.pack_start(nightlight_radio, false, false, 0);
+ const nightlightRadio = new Gtk.RadioButton({
+ label: _('Night Light'),
+ active: settings.get_string('time-source') === 'nightlight',
+ });
+ nightlightRadio.connect('toggled', () => {
+ if (nightlightRadio.get_active())
+ settings.set_string('time-source', 'nightlight');
+ });
+ colorSettings.bind(
+ 'night-light-enabled',
+ nightlightRadio,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ box.pack_start(nightlightRadio, false, false, 0);
- const location_radio = new Gtk.RadioButton({
- label: _('Location Services'),
- group: nightlight_radio,
- active: (settings.get_string('time-source') === 'location')
- });
- location_radio.connect('toggled', () => {
- if ( location_radio.get_active() ) {
- settings.set_string('time-source', 'location')
- }
- });
- locationSettings.bind(
- 'enabled',
- location_radio,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- box.pack_start(location_radio, false, false, 0);
+ const locationRadio = new Gtk.RadioButton({
+ label: _('Location Services'),
+ group: nightlightRadio,
+ active: settings.get_string('time-source') === 'location',
+ });
+ locationRadio.connect('toggled', () => {
+ if (locationRadio.get_active())
+ settings.set_string('time-source', 'location');
+ });
+ locationSettings.bind(
+ 'enabled',
+ locationRadio,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ box.pack_start(locationRadio, false, false, 0);
- const schedule_radio = new Gtk.RadioButton({
- label: _('Manual schedule'),
- group: nightlight_radio,
- active: (settings.get_string('time-source') === 'schedule')
- });
- schedule_radio.connect('toggled', () => {
- if ( schedule_radio.get_active() ) {
- settings.set_string('time-source', 'schedule')
- }
- });
- settings.bind(
- 'manual-time-source',
- schedule_radio,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- box.pack_start(schedule_radio, false, false, 0);
+ const scheduleRadio = new Gtk.RadioButton({
+ label: _('Manual schedule'),
+ group: nightlightRadio,
+ active: settings.get_string('time-source') === 'schedule',
+ });
+ scheduleRadio.connect('toggled', () => {
+ if (scheduleRadio.get_active())
+ settings.set_string('time-source', 'schedule');
+ });
+ settings.bind(
+ 'manual-time-source',
+ scheduleRadio,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ box.pack_start(scheduleRadio, false, false, 0);
- const ondemand_radio = new Gtk.RadioButton({
- label: _('On-demand'),
- group: nightlight_radio,
- active: (settings.get_string('time-source') === 'ondemand')
- });
- ondemand_radio.connect('toggled', () => {
- settings.set_string('time-source', 'ondemand')
- });
- settings.bind(
- 'manual-time-source',
- ondemand_radio,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- box.pack_start(ondemand_radio, false, false, 0);
+ const ondemandRadio = new Gtk.RadioButton({
+ label: _('On-demand'),
+ group: nightlightRadio,
+ active: settings.get_string('time-source') === 'ondemand',
+ });
+ ondemandRadio.connect('toggled', () => {
+ settings.set_string('time-source', 'ondemand');
+ });
+ settings.bind(
+ 'manual-time-source',
+ ondemandRadio,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ box.pack_start(ondemandRadio, false, false, 0);
- return box;
- }
+ return box;
+ }
}
class KeyBindingControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const KEYBINDING_KEY = 'nightthemeswitcher-ondemand-keybinding';
- const COLUMN_KEY = 0;
- const COLUMN_MODS = 1;
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const KEYBINDING_KEY = 'nightthemeswitcher-ondemand-keybinding';
+ const COLUMN_KEY = 0;
+ const COLUMN_MODS = 1;
- const list_store = new Gtk.ListStore();
- list_store.set_column_types([GObject.TYPE_INT, GObject.TYPE_INT]);
- const tree_view = new Gtk.TreeView({model: list_store});
- tree_view.set_headers_visible(false);
+ const listStore = new Gtk.ListStore();
+ listStore.set_column_types([GObject.TYPE_INT, GObject.TYPE_INT]);
+ const treeView = new Gtk.TreeView({ model: listStore });
+ treeView.set_headers_visible(false);
- const renderer = new Gtk.CellRendererAccel({ editable: true});
- const column = new Gtk.TreeViewColumn();
- const iter = list_store.append();
+ const renderer = new Gtk.CellRendererAccel({ editable: true });
+ const column = new Gtk.TreeViewColumn();
+ const iter = listStore.append();
- const update_shortcut_row = (accel) => {
- const [key, mods] = accel ? Gtk.accelerator_parse(accel) : [0, 0];
- list_store.set(iter, [COLUMN_KEY, COLUMN_MODS], [key, mods]);
- };
+ const updateShortcutRow = accel => {
+ const [key, mods] = accel ? Gtk.accelerator_parse(accel) : [0, 0];
+ listStore.set(iter, [COLUMN_KEY, COLUMN_MODS], [key, mods]);
+ };
- renderer.connect('accel-edited', (renderer, path, key, mods) => {
- const accel = Gtk.accelerator_name(key, mods);
- update_shortcut_row(accel);
- settings.set_strv(KEYBINDING_KEY, [accel]);
- });
+ renderer.connect('accel-edited', (_renderer, _path, key, mods) => {
+ const accel = Gtk.accelerator_name(key, mods);
+ updateShortcutRow(accel);
+ settings.set_strv(KEYBINDING_KEY, [accel]);
+ });
- renderer.connect('accel-cleared', () => {
- update_shortcut_row(null);
- settings.set_strv(KEYBINDING_KEY, []);
- });
+ renderer.connect('accel-cleared', () => {
+ updateShortcutRow(null);
+ settings.set_strv(KEYBINDING_KEY, []);
+ });
- settings.connect(`changed::${KEYBINDING_KEY}`, () => {
- update_shortcut_row(settings.get_strv(KEYBINDING_KEY)[0]);
- });
+ settings.connect(`changed::${KEYBINDING_KEY}`, () => {
+ updateShortcutRow(settings.get_strv(KEYBINDING_KEY)[0]);
+ });
- column.pack_start(renderer, true);
- column.add_attribute(renderer, 'accel-key', COLUMN_KEY);
- column.add_attribute(renderer, 'accel-mods', COLUMN_MODS);
+ column.pack_start(renderer, true);
+ column.add_attribute(renderer, 'accel-key', COLUMN_KEY);
+ column.add_attribute(renderer, 'accel-mods', COLUMN_MODS);
- tree_view.append_column(column);
- update_shortcut_row(settings.get_strv(KEYBINDING_KEY)[0]);
+ treeView.append_column(column);
+ updateShortcutRow(settings.get_strv(KEYBINDING_KEY)[0]);
- return tree_view;
- }
+ return treeView;
+ }
}
class SuntimeControl {
- constructor(suntime) {
- const settings = compat.get_extension_settings();
- const box = new Gtk.Box({
- spacing: 8,
- orientation: Gtk.Orientation.HORIZONTAL,
- can_focus: false
- });
+ constructor(suntime) {
+ const settings = compat.getExtensionSettings();
+ const box = new Gtk.Box({
+ spacing: 8,
+ orientation: Gtk.Orientation.HORIZONTAL,
+ can_focus: false,
+ });
- const time = settings.get_double(`schedule-${suntime}`);
- const hours = Math.trunc(time);
- const minutes = Math.round((time - hours) * 60);
+ const time = settings.get_double(`schedule-${suntime}`);
+ const hours = Math.trunc(time);
+ const minutes = Math.round((time - hours) * 60);
- const hours_spin = new Gtk.SpinButton({
- adjustment: new Gtk.Adjustment({
- value: hours,
- lower: 0,
- upper: 23,
- step_increment: 1,
- page_increment: 0,
- page_size: 0
- }),
- value: hours,
- numeric: true,
- wrap: true,
- orientation: Gtk.Orientation.VERTICAL
- });
- hours_spin.connect('output', () => {
- const text = hours_spin.adjustment.value.toString().padStart(2, '0');
- hours_spin.set_text(text);
- return true;
- });
- hours_spin.connect('value-changed', () => {
- const old_time = settings.get_double(`schedule-${suntime}`);
- const old_hour = Math.trunc(old_time);
- const minutes = old_time - old_hour;
- const new_time = hours_spin.value + minutes;
- settings.set_double(`schedule-${suntime}`, new_time);
- });
+ const hoursSpin = new Gtk.SpinButton({
+ adjustment: new Gtk.Adjustment({
+ value: hours,
+ lower: 0,
+ upper: 23,
+ step_increment: 1,
+ page_increment: 0,
+ page_size: 0,
+ }),
+ value: hours,
+ numeric: true,
+ wrap: true,
+ orientation: Gtk.Orientation.VERTICAL,
+ });
+ hoursSpin.connect('output', () => {
+ const text = hoursSpin.adjustment.value.toString().padStart(2, '0');
+ hoursSpin.set_text(text);
+ return true;
+ });
+ hoursSpin.connect('value-changed', () => {
+ const oldTime = settings.get_double(`schedule-${suntime}`);
+ const oldHour = Math.trunc(oldTime);
+ const newMinutes = oldTime - oldHour;
+ const newTime = hoursSpin.value + newMinutes;
+ settings.set_double(`schedule-${suntime}`, newTime);
+ });
- const separator = new Gtk.Label({ label: ':' });
+ const separator = new Gtk.Label({ label: ':' });
- const minutes_spin = new Gtk.SpinButton({
- adjustment: new Gtk.Adjustment({
- value: minutes,
- lower: 0,
- upper: 59,
- step_increment: 1,
- page_increment: 0,
- page_size: 0
- }),
- value: minutes,
- numeric: true,
- wrap: true,
- orientation: Gtk.Orientation.VERTICAL
- });
- minutes_spin.connect('output', () => {
- const text = minutes_spin.adjustment.value.toString().padStart(2, '0');
- minutes_spin.set_text(text);
- return true;
- });
- minutes_spin.connect('value-changed', () => {
- const hour = Math.trunc(settings.get_double(`schedule-${suntime}`));
- const minutes = minutes_spin.value / 60;
- const new_time = hour + minutes;
- settings.set_double(`schedule-${suntime}`, new_time);
- });
+ const minutesSpin = new Gtk.SpinButton({
+ adjustment: new Gtk.Adjustment({
+ value: minutes,
+ lower: 0,
+ upper: 59,
+ step_increment: 1,
+ page_increment: 0,
+ page_size: 0,
+ }),
+ value: minutes,
+ numeric: true,
+ wrap: true,
+ orientation: Gtk.Orientation.VERTICAL,
+ });
+ minutesSpin.connect('output', () => {
+ const text = minutesSpin.adjustment.value.toString().padStart(2, '0');
+ minutesSpin.set_text(text);
+ return true;
+ });
+ minutesSpin.connect('value-changed', () => {
+ const hour = Math.trunc(settings.get_double(`schedule-${suntime}`));
+ const newMinutes = minutesSpin.value / 60;
+ const newTime = hour + newMinutes;
+ settings.set_double(`schedule-${suntime}`, newTime);
+ });
- box.pack_start(hours_spin, false, false, 0);
- box.pack_start(separator, false, false, 0);
- box.pack_start(minutes_spin, false, false, 0);
- return box;
- }
+ box.pack_start(hoursSpin, false, false, 0);
+ box.pack_start(separator, false, false, 0);
+ box.pack_start(minutesSpin, false, false, 0);
+ return box;
+ }
}
diff --git a/src/preferences/ShellTheme.js b/src/preferences/ShellTheme.js
index 152af64..b8c57ee 100644
--- a/src/preferences/ShellTheme.js
+++ b/src/preferences/ShellTheme.js
@@ -23,7 +23,7 @@ const Me = extensionUtils.getCurrentExtension();
const compat = Me.imports.compat;
const { SettingsPage, SettingsList, SettingsListRow } = Me.imports.preferences.bases;
-const { get_installed_shell_themes } = Me.imports.utils;
+const { getInstalledShellThemes } = Me.imports.utils;
const Gettext = imports.gettext.domain(Me.metadata.uuid);
const _ = Gettext.gettext;
@@ -31,96 +31,96 @@ const _ = Gettext.gettext;
var ShellThemePreferences = class {
- constructor() {
- const settings = compat.get_extension_settings();
+ constructor() {
+ const settings = compat.getExtensionSettings();
- const label = _('Shell theme');
- const description = _('The extension will try to automatically detect the day and night variants of your GNOME Shell theme.\n\nIf the theme you use isn\'t supported, please submit a request. You can also manually set variants.');
- const content = new SettingsList();
+ const label = _('Shell theme');
+ const description = _('The extension will try to automatically detect the day and night variants of your GNOME Shell theme.\n\nIf the theme you use isn\'t supported, please submit a request. You can also manually set variants.');
+ const content = new SettingsList();
- content.add_row(new SettingsListRow(_('Switch Shell variants'), new ShellVariantsEnabledControl()));
+ content.add_row(new SettingsListRow(_('Switch Shell variants'), new ShellVariantsEnabledControl()));
- const manual_variants_row = new SettingsListRow(_('Manual variants'), new ManualShellVariantsControl());
- settings.bind(
- 'shell-variants-enabled',
- manual_variants_row,
- 'sensitive',
- Gio.SettingsBindFlags.DEFAULT
- );
- content.add_row(manual_variants_row);
+ const manualVariantsRow = new SettingsListRow(_('Manual variants'), new ManualShellVariantsControl());
+ settings.bind(
+ 'shell-variants-enabled',
+ manualVariantsRow,
+ 'sensitive',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ content.add_row(manualVariantsRow);
- const day_variant_row = new SettingsListRow(_('Day variant'), new TimeShellVariantControl('day'));
- const update_day_variant_row_sensitivity = () => day_variant_row.set_sensitive(!!(settings.get_boolean('shell-variants-enabled') && settings.get_boolean('manual-shell-variants')));
- settings.connect('changed::shell-variants-enabled', update_day_variant_row_sensitivity);
- settings.connect('changed::manual-shell-variants', update_day_variant_row_sensitivity)
- update_day_variant_row_sensitivity();
- content.add_row(day_variant_row);
+ const dayVariantRow = new SettingsListRow(_('Day variant'), new TimeShellVariantControl('day'));
+ const updateDayVariantRowSensitivity = () => dayVariantRow.set_sensitive(!!(settings.get_boolean('shell-variants-enabled') && settings.get_boolean('manual-shell-variants')));
+ settings.connect('changed::shell-variants-enabled', updateDayVariantRowSensitivity);
+ settings.connect('changed::manual-shell-variants', updateDayVariantRowSensitivity);
+ updateDayVariantRowSensitivity();
+ content.add_row(dayVariantRow);
- const night_variant_row = new SettingsListRow(_('Night variant'), new TimeShellVariantControl('night'));
- const update_night_variant_row_sensitivity = () => night_variant_row.set_sensitive(!!(settings.get_boolean('shell-variants-enabled') && settings.get_boolean('manual-shell-variants')));
- settings.connect('changed::shell-variants-enabled', update_night_variant_row_sensitivity);
- settings.connect('changed::manual-shell-variants', update_night_variant_row_sensitivity)
- update_night_variant_row_sensitivity();
- content.add_row(night_variant_row);
+ const nightVariantRow = new SettingsListRow(_('Night variant'), new TimeShellVariantControl('night'));
+ const updateNightVariantRowSensitivity = () => nightVariantRow.set_sensitive(!!(settings.get_boolean('shell-variants-enabled') && settings.get_boolean('manual-shell-variants')));
+ settings.connect('changed::shell-variants-enabled', updateNightVariantRowSensitivity);
+ settings.connect('changed::manual-shell-variants', updateNightVariantRowSensitivity);
+ updateNightVariantRowSensitivity();
+ content.add_row(nightVariantRow);
- return new SettingsPage(label, description, content);
- }
+ return new SettingsPage(label, description, content);
+ }
-}
+};
class ShellVariantsEnabledControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: settings.get_boolean('shell-variants-enabled')
- });
- settings.bind(
- 'shell-variants-enabled',
- toggle,
- 'active',
- Gio.SettingsBindFlags.DEFAULT
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: settings.get_boolean('shell-variants-enabled'),
+ });
+ settings.bind(
+ 'shell-variants-enabled',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return toggle;
+ }
}
class ManualShellVariantsControl {
- constructor() {
- const settings = compat.get_extension_settings();
- const toggle = new Gtk.Switch({
- active: false
- });
- settings.bind(
- 'manual-shell-variants',
- toggle,
- 'active',
- Gio.SettingsBindFlags.DEFAULT
- );
- return toggle;
- }
+ constructor() {
+ const settings = compat.getExtensionSettings();
+ const toggle = new Gtk.Switch({
+ active: false,
+ });
+ settings.bind(
+ 'manual-shell-variants',
+ toggle,
+ 'active',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return toggle;
+ }
}
class TimeShellVariantControl {
- constructor(time) {
- const settings = compat.get_extension_settings();
- const combo = new Gtk.ComboBoxText();
- const themes = Array.from(get_installed_shell_themes()).sort();
- themes.forEach(theme => combo.append(theme, (theme === '' ? _('Default') : theme)));
- settings.bind(
- `shell-variant-${time}`,
- combo,
- 'active-id',
- Gio.SettingsBindFlags.DEFAULT
- );
- return combo;
- }
+ constructor(time) {
+ const settings = compat.getExtensionSettings();
+ const combo = new Gtk.ComboBoxText();
+ const themes = Array.from(getInstalledShellThemes()).sort();
+ themes.forEach(theme => combo.append(theme, theme === '' ? _('Default') : theme));
+ settings.bind(
+ `shell-variant-${time}`,
+ combo,
+ 'active-id',
+ Gio.SettingsBindFlags.DEFAULT
+ );
+ return combo;
+ }
}
diff --git a/src/preferences/bases.js b/src/preferences/bases.js
index 3b02ee6..6622794 100644
--- a/src/preferences/bases.js
+++ b/src/preferences/bases.js
@@ -21,89 +21,89 @@ const { Gtk } = imports.gi;
var SettingsPage = class {
- constructor(label, description, content_widget) {
- this.label = new Gtk.Label({
- label: label
- });
+ constructor(label, description, contentWidget) {
+ this.label = new Gtk.Label({
+ label,
+ });
- this.page = new Gtk.Box({
- orientation: Gtk.Orientation.VERTICAL,
- spacing: 30,
- margin_top: 30,
- margin_end: 36,
- margin_start: 36,
- margin_bottom: 36,
- valign: Gtk.Align.START,
- halign: Gtk.Align.CENTER
- });
+ this.page = new Gtk.Box({
+ orientation: Gtk.Orientation.VERTICAL,
+ spacing: 30,
+ margin_top: 30,
+ margin_end: 36,
+ margin_start: 36,
+ margin_bottom: 36,
+ valign: Gtk.Align.START,
+ halign: Gtk.Align.CENTER,
+ });
- const description_widget = new Gtk.Label({
- label: description,
- use_markup: true,
- width_request: 600,
- max_width_chars: 60,
- wrap: true,
- justify: Gtk.Justification.LEFT,
- halign: Gtk.Align.START
- });
- this.page.pack_start(description_widget, false, false, 0);
+ const descriptionWidget = new Gtk.Label({
+ label: description,
+ use_markup: true,
+ width_request: 600,
+ max_width_chars: 60,
+ wrap: true,
+ justify: Gtk.Justification.LEFT,
+ halign: Gtk.Align.START,
+ });
+ this.page.pack_start(descriptionWidget, false, false, 0);
- this.page.pack_start(content_widget, false, false, 0);
- }
+ this.page.pack_start(contentWidget, false, false, 0);
+ }
-}
+};
var SettingsList = class {
- constructor() {
- const frame = new Gtk.Frame({
- can_focus: false
- });
+ constructor() {
+ const frame = new Gtk.Frame({
+ can_focus: false,
+ });
- const list = new Gtk.ListBox({
- border_width: 0,
- margin: 0,
- can_focus: false,
- selection_mode: Gtk.SelectionMode.NONE
- });
- frame.add(list);
+ const list = new Gtk.ListBox({
+ border_width: 0,
+ margin: 0,
+ can_focus: false,
+ selection_mode: Gtk.SelectionMode.NONE,
+ });
+ frame.add(list);
- frame.add_row = (widget) => {
- if ( list.get_children().length > 0 ) {
- const separator = new Gtk.Separator({
- orientation: Gtk.Orientation.VERTICAL,
- can_focus: false
- });
- list.add(separator);
- }
- list.add(widget);
- }
+ frame.add_row = widget => {
+ if (list.get_children().length > 0) {
+ const separator = new Gtk.Separator({
+ orientation: Gtk.Orientation.VERTICAL,
+ can_focus: false,
+ });
+ list.add(separator);
+ }
+ list.add(widget);
+ };
- return frame;
- }
+ return frame;
+ }
-}
+};
var SettingsListRow = class {
- constructor(label, widget) {
- const row = new Gtk.Box({
- margin: 16,
- spacing: 30,
- orientation: Gtk.Orientation.HORIZONTAL,
- can_focus: false
- });
+ constructor(label, widget) {
+ const row = new Gtk.Box({
+ margin: 16,
+ spacing: 30,
+ orientation: Gtk.Orientation.HORIZONTAL,
+ can_focus: false,
+ });
- const label_widget = new Gtk.Label({
- label: label,
- halign: Gtk.Align.START
- });
- row.pack_start(label_widget, true, true, 0);
+ const labelWidget = new Gtk.Label({
+ label,
+ halign: Gtk.Align.START,
+ });
+ row.pack_start(labelWidget, true, true, 0);
- widget.set_halign(Gtk.Align.END);
- row.pack_start(widget, false, false, 0);
+ widget.set_halign(Gtk.Align.END);
+ row.pack_start(widget, false, false, 0);
- return row;
- }
+ return row;
+ }
-}
+};
diff --git a/src/prefs.js b/src/prefs.js
index 7fd287d..d32b595 100644
--- a/src/prefs.js
+++ b/src/prefs.js
@@ -34,36 +34,36 @@ const { ShellThemePreferences } = Me.imports.preferences.ShellTheme;
function init() {
- compat.init_translations(Me.metadata.uuid);
+ compat.initTranslations(Me.metadata.uuid);
}
function buildPrefsWidget() {
- const prefs_widget = new Gtk.Notebook({
- visible: true
- });
+ const prefsWidget = new Gtk.Notebook({
+ visible: true,
+ });
- const schedulePreferences = new SchedulePreferences();
- prefs_widget.append_page(schedulePreferences.page, schedulePreferences.label);
+ const schedulePreferences = new SchedulePreferences();
+ prefsWidget.append_page(schedulePreferences.page, schedulePreferences.label);
- const gtkThemePreferences = new GtkThemePreferences();
- prefs_widget.append_page(gtkThemePreferences.page, gtkThemePreferences.label);
+ const gtkThemePreferences = new GtkThemePreferences();
+ prefsWidget.append_page(gtkThemePreferences.page, gtkThemePreferences.label);
- const shellThemePreferences = new ShellThemePreferences();
- prefs_widget.append_page(shellThemePreferences.page, shellThemePreferences.label);
+ const shellThemePreferences = new ShellThemePreferences();
+ prefsWidget.append_page(shellThemePreferences.page, shellThemePreferences.label);
- const iconThemePreferences = new IconThemePreferences();
- prefs_widget.append_page(iconThemePreferences.page, iconThemePreferences.label);
+ const iconThemePreferences = new IconThemePreferences();
+ prefsWidget.append_page(iconThemePreferences.page, iconThemePreferences.label);
- const cursorThemePreferences = new CursorThemePreferences();
- prefs_widget.append_page(cursorThemePreferences.page, cursorThemePreferences.label);
+ const cursorThemePreferences = new CursorThemePreferences();
+ prefsWidget.append_page(cursorThemePreferences.page, cursorThemePreferences.label);
- const backgroundsPreferences = new BackgroundsPreferences();
- prefs_widget.append_page(backgroundsPreferences.page, backgroundsPreferences.label);
+ const backgroundsPreferences = new BackgroundsPreferences();
+ prefsWidget.append_page(backgroundsPreferences.page, backgroundsPreferences.label);
- const commandsPreferences = new CommandsPreferences();
- prefs_widget.append_page(commandsPreferences.page, commandsPreferences.label);
+ const commandsPreferences = new CommandsPreferences();
+ prefsWidget.append_page(commandsPreferences.page, commandsPreferences.label);
- prefs_widget.show_all();
+ prefsWidget.show_all();
- return prefs_widget;
+ return prefsWidget;
}
diff --git a/src/utils.js b/src/utils.js
index 58ce176..2a3b22d 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -31,23 +31,20 @@ const _ = Gettext.gettext;
* Output a debug message to the console if the debug config is active.
* @param {string} message The message to log.
*/
-function log_debug(message) {
- if (config.debug) {
- log(`[DEBUG] ${Me.metadata.name}: ${message}`);
- }
+function logDebug(message) {
+ if (config.debug)
+ log(`[DEBUG] ${Me.metadata.name}: ${message}`);
}
/**
* Log an error and show a notification if it has a message.
* @param {Error} error The error to log.
*/
-function log_error(error) {
- if (config.debug) {
- logError(error, Me.metadata.name);
- }
- if ( error.message && imports.ui ) {
- imports.ui.main.notifyError(Me.metadata.name, error.message);
- }
+function notifyError(error) {
+ if (config.debug)
+ logError(error, Me.metadata.name);
+ if (error.message && imports.ui)
+ imports.ui.main.notifyError(Me.metadata.name, error.message);
}
/**
@@ -55,12 +52,12 @@ function log_error(error) {
* @param {string} resource The resource to get the directories.
* @returns {string[]} An array of paths.
*/
-function get_resources_dirs_paths(resource) {
- return [
- GLib.build_filenamev([GLib.get_home_dir(), `.${resource}`]),
- GLib.build_filenamev([GLib.get_user_data_dir(), resource]),
- ...GLib.get_system_data_dirs().map(path => GLib.build_filenamev([path, resource]))
- ];
+function getResourcesDirsPaths(resource) {
+ return [
+ GLib.build_filenamev([GLib.get_home_dir(), `.${resource}`]),
+ GLib.build_filenamev([GLib.get_user_data_dir(), resource]),
+ ...GLib.get_system_data_dirs().map(path => GLib.build_filenamev([path, resource])),
+ ];
}
/**
@@ -68,106 +65,91 @@ function get_resources_dirs_paths(resource) {
* @param {string} type The resources to get.
* @returns {Set} A set of installed resources.
*/
-function get_installed_resources(type) {
- const installed_resources = new Set();
-
- get_resources_dirs_paths(type).forEach(resources_dir_path => {
- const resources_dir = Gio.File.new_for_path(resources_dir_path);
-
- if (resources_dir.query_file_type(Gio.FileQueryInfoFlags.NONE, null) !== Gio.FileType.DIRECTORY) {
- return;
- }
-
- const resources_dirs_enumerator = resources_dir.enumerate_children('', Gio.FileQueryInfoFlags.NONE, null);
-
- while (true) {
- let resource_dir_info = resources_dirs_enumerator.next_file(null);
-
- if (resource_dir_info === null) {
- break;
- }
-
- const resource_dir = resources_dirs_enumerator.get_child(resource_dir_info);
- if ( resource_dir === null ) {
- break;
- }
- const resource = new Map([
- ['name', resource_dir.get_basename()],
- ['path', resource_dir.get_path()]
- ]);
- installed_resources.add(resource);
- }
- resources_dirs_enumerator.close(null);
- });
-
- return installed_resources;
+function getInstalledResources(type) {
+ const installedResources = new Set();
+ getResourcesDirsPaths(type).forEach(resourcesDirPath => {
+ const resourcesDir = Gio.File.new_for_path(resourcesDirPath);
+ if (resourcesDir.query_file_type(Gio.FileQueryInfoFlags.NONE, null) !== Gio.FileType.DIRECTORY)
+ return;
+ const resourcesDirsEnumerator = resourcesDir.enumerate_children('', Gio.FileQueryInfoFlags.NONE, null);
+ while (true) {
+ let resourceDirInfo = resourcesDirsEnumerator.next_file(null);
+ if (resourceDirInfo === null)
+ break;
+ const resourceDir = resourcesDirsEnumerator.get_child(resourceDirInfo);
+ if (resourceDir === null)
+ break;
+ const resource = new Map([
+ ['name', resourceDir.get_basename()],
+ ['path', resourceDir.get_path()],
+ ]);
+ installedResources.add(resource);
+ }
+ resourcesDirsEnumerator.close(null);
+ });
+ return installedResources;
}
/**
* Get all the installed GTK themes on the system.
* @returns {Set} A set containing all the installed GTK themes names.
*/
-function get_installed_gtk_themes() {
- const themes = new Set(['Adwaita', 'HighContrast', 'HighContrastInverse']);
- get_installed_resources('themes').forEach(theme => {
- const version = [0, Gtk.MINOR_VERSION].find(gtk_version => {
- if (gtk_version % 2) {
- gtk_version += 1;
- }
- const css_file = Gio.File.new_for_path(GLib.build_filenamev([theme.get('path'), `gtk-3.${gtk_version}`, 'gtk.css']));
- return css_file.query_exists(null);
- });
- if ( version !== undefined ) {
- themes.add(theme.get('name'));
- }
- });
- return themes;
+function getInstalledGtkThemes() {
+ const themes = new Set(['Adwaita', 'HighContrast', 'HighContrastInverse']);
+ getInstalledResources('themes').forEach(theme => {
+ const version = [0, Gtk.MINOR_VERSION].find(gtkVersion => {
+ if (gtkVersion % 2)
+ gtkVersion += 1;
+ const cssFile = Gio.File.new_for_path(GLib.build_filenamev([theme.get('path'), `gtk-3.${gtkVersion}`, 'gtk.css']));
+ return cssFile.query_exists(null);
+ });
+ if (version !== undefined)
+ themes.add(theme.get('name'));
+ });
+ return themes;
}
/**
* Get all the installed shell themes on the system.
* @returns {Set} A set containing all the installed shell themes names.
*/
-function get_installed_shell_themes() {
- const themes = new Set(['']);
- get_installed_resources('themes').forEach(theme => {
- const theme_file = Gio.File.new_for_path(GLib.build_filenamev([theme.get('path'), 'gnome-shell', 'gnome-shell.css']));
- if ( theme_file.query_exists(null) ) {
- themes.add(theme.get('name'));
- }
- });
- return themes;
+function getInstalledShellThemes() {
+ const themes = new Set(['']);
+ getInstalledResources('themes').forEach(theme => {
+ const themeFile = Gio.File.new_for_path(GLib.build_filenamev([theme.get('path'), 'gnome-shell', 'gnome-shell.css']));
+ if (themeFile.query_exists(null))
+ themes.add(theme.get('name'));
+ });
+ return themes;
}
/**
* Get all the installed icon themes on the system.
* @returns {Set} A set containing all the installed icon themes names.
*/
-function get_installed_icon_themes() {
- const themes = new Set();
- get_installed_resources('icons').forEach(theme => {
- const theme_file = Gio.File.new_for_path(GLib.build_filenamev([theme.get('path'), 'index.theme']));
- if ( theme_file.query_exists(null) ) {
- themes.add(theme.get('name'));
- }
- });
- themes.delete('default');
- return themes;
+function getInstalledIconThemes() {
+ const themes = new Set();
+ getInstalledResources('icons').forEach(theme => {
+ const themeFile = Gio.File.new_for_path(GLib.build_filenamev([theme.get('path'), 'index.theme']));
+ if (themeFile.query_exists(null))
+ themes.add(theme.get('name'));
+ });
+ themes.delete('default');
+ return themes;
}
/**
* Get all the installed cursor themes on the system.
* @returns {Set} A set containing all the installed cursor themes names.
*/
-function get_installed_cursor_themes() {
- const themes = new Set();
- get_installed_resources('icons').forEach(theme => {
- const theme_file = Gio.File.new_for_path(GLib.build_filenamev([theme.get('path'), 'cursors']));
- if ( theme_file.query_exists(null) ) {
- themes.add(theme.get('name'));
- }
- });
- return themes;
+function getInstalledCursorThemes() {
+ const themes = new Set();
+ getInstalledResources('icons').forEach(theme => {
+ const themeFile = Gio.File.new_for_path(GLib.build_filenamev([theme.get('path'), 'cursors']));
+ if (themeFile.query_exists(null))
+ themes.add(theme.get('name'));
+ });
+ return themes;
}
/**
@@ -175,8 +157,8 @@ function get_installed_cursor_themes() {
* @returns {Object|undefined} The User Themes extension object or undefined if
* it isn't installed.
*/
-function get_userthemes_extension() {
- return compat.extension_manager_lookup('user-theme@gnome-shell-extensions.gcampax.github.com');
+function getUserthemesExtension() {
+ return compat.extensionManagerLookup('user-theme@gnome-shell-extensions.gcampax.github.com');
}
/**
@@ -184,24 +166,19 @@ function get_userthemes_extension() {
* @returns {Gio.Settings|null} The User Themes extension settings or null if
* the extension isn't installed.
*/
-function get_userthemes_settings() {
- let extension = get_userthemes_extension();
-
- if ( !extension ) {
- return null;
- }
-
- const schema_dir = extension.dir.get_child('schemas');
- const GioSSS = Gio.SettingsSchemaSource;
- let schemaSource;
- if ( schema_dir.query_exists(null) ) {
- schemaSource = GioSSS.new_from_directory(schema_dir.get_path(), GioSSS.get_default(), false);
- }
- else {
- schemaSource = GioSSS.get_default();
- }
- const schemaObj = schemaSource.lookup('org.gnome.shell.extensions.user-theme', true);
- return new Gio.Settings({ settings_schema: schemaObj });
+function getUserthemesSettings() {
+ let extension = getUserthemesExtension();
+ if (!extension)
+ return null;
+ const schemaDir = extension.dir.get_child('schemas');
+ const GioSSS = Gio.SettingsSchemaSource;
+ let schemaSource;
+ if (schemaDir.query_exists(null))
+ schemaSource = GioSSS.new_from_directory(schemaDir.get_path(), GioSSS.get_default(), false);
+ else
+ schemaSource = GioSSS.get_default();
+ const schemaObj = schemaSource.lookup('org.gnome.shell.extensions.user-theme', true);
+ return new Gio.Settings({ settings_schema: schemaObj });
}
/**
@@ -209,26 +186,27 @@ function get_userthemes_settings() {
* @param {string} theme The shell theme name.
* @returns {string|null} Path to the shell theme stylesheet.
*/
-function get_shell_theme_stylesheet(theme) {
- log_debug('Getting the ' + (theme ? `'${theme}'` : 'default') + ' theme shell stylesheet...');
- let stylesheet = null;
- if ( theme ) {
- const stylesheet_paths = get_resources_dirs_paths('themes').map(path => GLib.build_filenamev([path, theme, 'gnome-shell', 'gnome-shell.css']));
- stylesheet = stylesheet_paths.find(path => {
- const file = Gio.file_new_for_path(path);
- return file.query_exists(null);
- });
- }
- return stylesheet;
+function getShellThemeStylesheet(theme) {
+ const themeName = theme ? `'${theme}'` : 'default';
+ logDebug(`Getting the ${themeName} theme shell stylesheet...`);
+ let stylesheet = null;
+ if (theme) {
+ const stylesheetPaths = getResourcesDirsPaths('themes').map(path => GLib.build_filenamev([path, theme, 'gnome-shell', 'gnome-shell.css']));
+ stylesheet = stylesheetPaths.find(path => {
+ const file = Gio.file_new_for_path(path);
+ return file.query_exists(null);
+ });
+ }
+ return stylesheet;
}
/**
* Apply a stylesheet to the shell.
* @param {string} stylesheet The shell stylesheet to apply.
*/
-function apply_shell_stylesheet(stylesheet) {
- log_debug('Applying shell stylesheet...');
- imports.ui.main.setThemeStylesheet(stylesheet);
- imports.ui.main.loadTheme();
- log_debug('Shell stylesheet applied.');
+function applyShellStylesheet(stylesheet) {
+ logDebug('Applying shell stylesheet...');
+ imports.ui.main.setThemeStylesheet(stylesheet);
+ imports.ui.main.loadTheme();
+ logDebug('Shell stylesheet applied.');
}
diff --git a/tests/.eslintrc.yml b/tests/.eslintrc.yml
new file mode 100644
index 0000000..b88bb69
--- /dev/null
+++ b/tests/.eslintrc.yml
@@ -0,0 +1,3 @@
+env:
+ commonjs: true
+ node: true
diff --git a/tests/gtk_themes/Adapta.js b/tests/gtk_themes/Adapta.js
index 9755ced..c604b4d 100644
--- a/tests/gtk_themes/Adapta.js
+++ b/tests/gtk_themes/Adapta.js
@@ -21,25 +21,25 @@ const { Variants } = require('./_variants');
test('Adapta', t => {
- const variants = Variants.guess_from('Adapta');
- t.is(variants.get('day'), 'Adapta');
- t.is(variants.get('night'), 'Adapta-Nokto')
+ const variants = Variants.guessFrom('Adapta');
+ t.is(variants.get('day'), 'Adapta');
+ t.is(variants.get('night'), 'Adapta-Nokto');
});
test('Adapta-Nokto', t => {
- const variants = Variants.guess_from('Adapta-Nokto');
- t.is(variants.get('day'), 'Adapta');
- t.is(variants.get('night'), 'Adapta-Nokto');
+ const variants = Variants.guessFrom('Adapta-Nokto');
+ t.is(variants.get('day'), 'Adapta');
+ t.is(variants.get('night'), 'Adapta-Nokto');
});
test('Adapta-Eta', t => {
- const variants = Variants.guess_from('Adapta-Eta');
- t.is(variants.get('day'), 'Adapta-Eta');
- t.is(variants.get('night'), 'Adapta-Nokto-Eta');
+ const variants = Variants.guessFrom('Adapta-Eta');
+ t.is(variants.get('day'), 'Adapta-Eta');
+ t.is(variants.get('night'), 'Adapta-Nokto-Eta');
});
test('Adapta-Nokto-Eta', t => {
- const variants = Variants.guess_from('Adapta-Nokto-Eta');
- t.is(variants.get('day'), 'Adapta-Eta');
- t.is(variants.get('night'), 'Adapta-Nokto-Eta');
+ const variants = Variants.guessFrom('Adapta-Nokto-Eta');
+ t.is(variants.get('day'), 'Adapta-Eta');
+ t.is(variants.get('night'), 'Adapta-Nokto-Eta');
});
diff --git a/tests/gtk_themes/Adwaita.js b/tests/gtk_themes/Adwaita.js
index ff966cf..5321d57 100644
--- a/tests/gtk_themes/Adwaita.js
+++ b/tests/gtk_themes/Adwaita.js
@@ -21,13 +21,13 @@ const { Variants } = require('./_variants');
test('Adwaita', t => {
- const variants = Variants.guess_from('Adwaita');
- t.is(variants.get('day'), 'Adwaita');
- t.is(variants.get('night'), 'Adwaita-dark');
+ const variants = Variants.guessFrom('Adwaita');
+ t.is(variants.get('day'), 'Adwaita');
+ t.is(variants.get('night'), 'Adwaita-dark');
});
test('Adwaita-dark', t => {
- const variants = Variants.guess_from('Adwaita-dark');
- t.is(variants.get('day'), 'Adwaita');
- t.is(variants.get('night'), 'Adwaita-dark');
+ const variants = Variants.guessFrom('Adwaita-dark');
+ t.is(variants.get('day'), 'Adwaita');
+ t.is(variants.get('night'), 'Adwaita-dark');
});
diff --git a/tests/gtk_themes/Arc.js b/tests/gtk_themes/Arc.js
index ba63c15..60d0f60 100644
--- a/tests/gtk_themes/Arc.js
+++ b/tests/gtk_themes/Arc.js
@@ -21,37 +21,37 @@ const { Variants } = require('./_variants');
test('Arc', t => {
- const variants = Variants.guess_from('Arc');
- t.is(variants.get('day'), 'Arc');
- t.is(variants.get('night'), 'Arc-Dark');
+ const variants = Variants.guessFrom('Arc');
+ t.is(variants.get('day'), 'Arc');
+ t.is(variants.get('night'), 'Arc-Dark');
});
test('Arc-Dark', t => {
- const variants = Variants.guess_from('Arc-Dark');
- t.is(variants.get('day'), 'Arc');
- t.is(variants.get('night'), 'Arc-Dark');
+ const variants = Variants.guessFrom('Arc-Dark');
+ t.is(variants.get('day'), 'Arc');
+ t.is(variants.get('night'), 'Arc-Dark');
});
test('Arc-Darker', t => {
- const variants = Variants.guess_from('Arc-Darker');
- t.is(variants.get('day'), 'Arc-Darker');
- t.is(variants.get('night'), 'Arc-Dark');
+ const variants = Variants.guessFrom('Arc-Darker');
+ t.is(variants.get('day'), 'Arc-Darker');
+ t.is(variants.get('night'), 'Arc-Dark');
});
test('Arc-Darker-solid', t => {
- const variants = Variants.guess_from('Arc-Darker-solid');
- t.is(variants.get('day'), 'Arc-Darker-solid');
- t.is(variants.get('night'), 'Arc-Dark-solid');
+ const variants = Variants.guessFrom('Arc-Darker-solid');
+ t.is(variants.get('day'), 'Arc-Darker-solid');
+ t.is(variants.get('night'), 'Arc-Dark-solid');
});
test('Arc-Dark-solid', t => {
- const variants = Variants.guess_from('Arc-Dark-solid');
- t.is(variants.get('day'), 'Arc-solid');
- t.is(variants.get('night'), 'Arc-Dark-solid');
+ const variants = Variants.guessFrom('Arc-Dark-solid');
+ t.is(variants.get('day'), 'Arc-solid');
+ t.is(variants.get('night'), 'Arc-Dark-solid');
});
test('Arc-solid', t => {
- const variants = Variants.guess_from('Arc-solid');
- t.is(variants.get('day'), 'Arc-solid');
- t.is(variants.get('night'), 'Arc-Dark-solid');
+ const variants = Variants.guessFrom('Arc-solid');
+ t.is(variants.get('day'), 'Arc-solid');
+ t.is(variants.get('night'), 'Arc-Dark-solid');
});
diff --git a/tests/gtk_themes/Cabinet.js b/tests/gtk_themes/Cabinet.js
index 015423e..8e68a31 100644
--- a/tests/gtk_themes/Cabinet.js
+++ b/tests/gtk_themes/Cabinet.js
@@ -21,21 +21,21 @@ const { Variants } = require('./_variants');
['Blue', 'Green', 'Orange'].forEach(color => {
- test(`Cabinet-${color}`, t => {
- const variants = Variants.guess_from(`Cabinet-Light-${color}`);
- t.is(variants.get('day'), `Cabinet-Light-${color}`);
- t.is(variants.get('night'), `Cabinet-Dark-${color}`);
- });
+ test(`Cabinet-${color}`, t => {
+ const variants = Variants.guessFrom(`Cabinet-Light-${color}`);
+ t.is(variants.get('day'), `Cabinet-Light-${color}`);
+ t.is(variants.get('night'), `Cabinet-Dark-${color}`);
+ });
- test(`Cabinet-Dark-${color}`, t => {
- const variants = Variants.guess_from(`Cabinet-Dark-${color}`);
- t.is(variants.get('day'), `Cabinet-Light-${color}`);
- t.is(variants.get('night'), `Cabinet-Dark-${color}`);
- });
+ test(`Cabinet-Dark-${color}`, t => {
+ const variants = Variants.guessFrom(`Cabinet-Dark-${color}`);
+ t.is(variants.get('day'), `Cabinet-Light-${color}`);
+ t.is(variants.get('night'), `Cabinet-Dark-${color}`);
+ });
- test(`Cabinet-Darker-${color}`, t => {
- const variants = Variants.guess_from(`Cabinet-Darker-${color}`);
- t.is(variants.get('day'), `Cabinet-Darker-${color}`);
- t.is(variants.get('night'), `Cabinet-Dark-${color}`);
- });
+ test(`Cabinet-Darker-${color}`, t => {
+ const variants = Variants.guessFrom(`Cabinet-Darker-${color}`);
+ t.is(variants.get('day'), `Cabinet-Darker-${color}`);
+ t.is(variants.get('night'), `Cabinet-Dark-${color}`);
+ });
});
diff --git a/tests/gtk_themes/Canta.js b/tests/gtk_themes/Canta.js
index 731c042..28fc409 100644
--- a/tests/gtk_themes/Canta.js
+++ b/tests/gtk_themes/Canta.js
@@ -21,39 +21,39 @@ const { Variants } = require('./_variants');
['', '-blue', '-indigo'].forEach(color => {
- test(`Canta${color}`, t => {
- const variants = Variants.guess_from(`Canta${color}`);
- t.is(variants.get('day'), `Canta${color}`);
- t.is(variants.get('night'), `Canta${color}-dark`);
- });
+ test(`Canta${color}`, t => {
+ const variants = Variants.guessFrom(`Canta${color}`);
+ t.is(variants.get('day'), `Canta${color}`);
+ t.is(variants.get('night'), `Canta${color}-dark`);
+ });
- test(`Canta${color}-dark`, t => {
- const variants = Variants.guess_from(`Canta${color}-dark`);
- t.is(variants.get('day'), `Canta${color}`);
- t.is(variants.get('night'), `Canta${color}-dark`);
- });
+ test(`Canta${color}-dark`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-dark`);
+ t.is(variants.get('day'), `Canta${color}`);
+ t.is(variants.get('night'), `Canta${color}-dark`);
+ });
- test(`Canta${color}-light`, t => {
- const variants = Variants.guess_from(`Canta${color}-light`);
- t.is(variants.get('day'), `Canta${color}-light`);
- t.is(variants.get('night'), `Canta${color}-dark`);
- });
+ test(`Canta${color}-light`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-light`);
+ t.is(variants.get('day'), `Canta${color}-light`);
+ t.is(variants.get('night'), `Canta${color}-dark`);
+ });
- test(`Canta${color}-compact`, t => {
- const variants = Variants.guess_from(`Canta${color}-compact`);
- t.is(variants.get('day'), `Canta${color}-compact`);
- t.is(variants.get('night'), `Canta${color}-dark-compact`);
- });
+ test(`Canta${color}-compact`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-compact`);
+ t.is(variants.get('day'), `Canta${color}-compact`);
+ t.is(variants.get('night'), `Canta${color}-dark-compact`);
+ });
- test(`Canta${color}-dark-compact`, t => {
- const variants = Variants.guess_from(`Canta${color}-dark-compact`);
- t.is(variants.get('day'), `Canta${color}-compact`);
- t.is(variants.get('night'), `Canta${color}-dark-compact`);
- });
+ test(`Canta${color}-dark-compact`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-dark-compact`);
+ t.is(variants.get('day'), `Canta${color}-compact`);
+ t.is(variants.get('night'), `Canta${color}-dark-compact`);
+ });
- test(`Canta${color}-light-compact`, t => {
- const variants = Variants.guess_from(`Canta${color}-light-compact`);
- t.is(variants.get('day'), `Canta${color}-light-compact`);
- t.is(variants.get('night'), `Canta${color}-dark-compact`);
- });
+ test(`Canta${color}-light-compact`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-light-compact`);
+ t.is(variants.get('day'), `Canta${color}-light-compact`);
+ t.is(variants.get('night'), `Canta${color}-dark-compact`);
+ });
});
diff --git a/tests/gtk_themes/ChromeOS.js b/tests/gtk_themes/ChromeOS.js
index a50c706..e858103 100644
--- a/tests/gtk_themes/ChromeOS.js
+++ b/tests/gtk_themes/ChromeOS.js
@@ -20,21 +20,21 @@ const test = require('ava');
const { Variants } = require('./_variants');
['', '-compact'].forEach(size => {
- test(`ChromeOS${size}`, t => {
- const variants = Variants.guess_from(`ChromeOS${size}`);
- t.is(variants.get('day'), `ChromeOS${size}`);
- t.is(variants.get('night'), `ChromeOS-dark${size}`);
- });
+ test(`ChromeOS${size}`, t => {
+ const variants = Variants.guessFrom(`ChromeOS${size}`);
+ t.is(variants.get('day'), `ChromeOS${size}`);
+ t.is(variants.get('night'), `ChromeOS-dark${size}`);
+ });
- test(`ChromeOS-dark${size}`, t => {
- const variants = Variants.guess_from(`ChromeOS-dark${size}`);
- t.is(variants.get('day'), `ChromeOS${size}`);
- t.is(variants.get('night'), `ChromeOS-dark${size}`);
- });
+ test(`ChromeOS-dark${size}`, t => {
+ const variants = Variants.guessFrom(`ChromeOS-dark${size}`);
+ t.is(variants.get('day'), `ChromeOS${size}`);
+ t.is(variants.get('night'), `ChromeOS-dark${size}`);
+ });
- test(`ChromeOS-light${size}`, t => {
- const variants = Variants.guess_from(`ChromeOS-light${size}`);
- t.is(variants.get('day'), `ChromeOS-light${size}`);
- t.is(variants.get('night'), `ChromeOS-dark${size}`);
- });
-})
+ test(`ChromeOS-light${size}`, t => {
+ const variants = Variants.guessFrom(`ChromeOS-light${size}`);
+ t.is(variants.get('day'), `ChromeOS-light${size}`);
+ t.is(variants.get('night'), `ChromeOS-dark${size}`);
+ });
+});
diff --git a/tests/gtk_themes/Flat-Remix-GTK.js b/tests/gtk_themes/Flat-Remix-GTK.js
index 227d84c..071eb2f 100644
--- a/tests/gtk_themes/Flat-Remix-GTK.js
+++ b/tests/gtk_themes/Flat-Remix-GTK.js
@@ -21,63 +21,63 @@ const { Variants } = require('./_variants');
['Blue', 'Green', 'Red', 'Yellow'].forEach(color => {
- test(`Flat-Remix-GTK-${color}`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark`);
- });
+ test(`Flat-Remix-GTK-${color}`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark`);
+ });
- test(`Flat-Remix-GTK-${color}-Dark`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Dark`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark`);
- });
+ test(`Flat-Remix-GTK-${color}-Dark`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Dark`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark`);
+ });
- test(`Flat-Remix-GTK-${color}-Darker`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Darker`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Darker`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark`);
- });
+ test(`Flat-Remix-GTK-${color}-Darker`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Darker`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Darker`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark`);
+ });
- test(`Flat-Remix-GTK-${color}-Darker-Solid`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Darker-Solid`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Darker-Solid`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark-Solid`);
- });
+ test(`Flat-Remix-GTK-${color}-Darker-Solid`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Darker-Solid`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Darker-Solid`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark-Solid`);
+ });
- test(`Flat-Remix-GTK-${color}-Darkest`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Darkest`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Darkest`);
- });
+ test(`Flat-Remix-GTK-${color}-Darkest`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Darkest`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Darkest`);
+ });
- test(`Flat-Remix-GTK-${color}-Darkest-NoBorder`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Darkest-NoBorder`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Darkest-NoBorder`);
- });
+ test(`Flat-Remix-GTK-${color}-Darkest-NoBorder`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Darkest-NoBorder`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Darkest-NoBorder`);
+ });
- test(`Flat-Remix-GTK-${color}-Darkest-Solid`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Darkest-Solid`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Solid`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Darkest-Solid`);
- });
+ test(`Flat-Remix-GTK-${color}-Darkest-Solid`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Darkest-Solid`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Solid`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Darkest-Solid`);
+ });
- test(`Flat-Remix-GTK-${color}-Darkest-Solid-NoBorder`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Darkest-Solid-NoBorder`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Solid`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Darkest-Solid-NoBorder`);
- });
+ test(`Flat-Remix-GTK-${color}-Darkest-Solid-NoBorder`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Darkest-Solid-NoBorder`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Solid`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Darkest-Solid-NoBorder`);
+ });
- test(`Flat-Remix-GTK-${color}-Dark-Solid`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Dark-Solid`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Solid`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark-Solid`);
- });
+ test(`Flat-Remix-GTK-${color}-Dark-Solid`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Dark-Solid`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Solid`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark-Solid`);
+ });
- test(`Flat-Remix-GTK-${color}-Solid`, t => {
- const variants = Variants.guess_from(`Flat-Remix-GTK-${color}-Solid`);
- t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Solid`);
- t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark-Solid`);
- });
+ test(`Flat-Remix-GTK-${color}-Solid`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix-GTK-${color}-Solid`);
+ t.is(variants.get('day'), `Flat-Remix-GTK-${color}-Solid`);
+ t.is(variants.get('night'), `Flat-Remix-GTK-${color}-Dark-Solid`);
+ });
});
diff --git a/tests/gtk_themes/HighContrast.js b/tests/gtk_themes/HighContrast.js
index 99c46d4..c4d5d47 100644
--- a/tests/gtk_themes/HighContrast.js
+++ b/tests/gtk_themes/HighContrast.js
@@ -21,13 +21,13 @@ const { Variants } = require('./_variants');
test('HighContrast', t => {
- const variants = Variants.guess_from('HighContrast');
- t.is(variants.get('day'), 'HighContrast');
- t.is(variants.get('night'), 'HighContrastInverse');
+ const variants = Variants.guessFrom('HighContrast');
+ t.is(variants.get('day'), 'HighContrast');
+ t.is(variants.get('night'), 'HighContrastInverse');
});
test('HighContrastInverse', t => {
- const variants = Variants.guess_from('HighContrastInverse');
- t.is(variants.get('day'), 'HighContrast');
- t.is(variants.get('night'), 'HighContrastInverse');
+ const variants = Variants.guessFrom('HighContrastInverse');
+ t.is(variants.get('day'), 'HighContrast');
+ t.is(variants.get('night'), 'HighContrastInverse');
});
diff --git a/tests/gtk_themes/Layan.js b/tests/gtk_themes/Layan.js
index a7e8f17..f7bcf7d 100644
--- a/tests/gtk_themes/Layan.js
+++ b/tests/gtk_themes/Layan.js
@@ -21,37 +21,37 @@ const { Variants } = require('./_variants');
test('Layan', t => {
- const variants = Variants.guess_from('Layan');
- t.is(variants.get('day'), 'Layan');
- t.is(variants.get('night'), 'Layan-dark');
+ const variants = Variants.guessFrom('Layan');
+ t.is(variants.get('day'), 'Layan');
+ t.is(variants.get('night'), 'Layan-dark');
});
test('Layan-dark', t => {
- const variants = Variants.guess_from('Layan-dark');
- t.is(variants.get('day'), 'Layan');
- t.is(variants.get('night'), 'Layan-dark');
+ const variants = Variants.guessFrom('Layan-dark');
+ t.is(variants.get('day'), 'Layan');
+ t.is(variants.get('night'), 'Layan-dark');
});
test('Layan-light', t => {
- const variants = Variants.guess_from('Layan-light');
- t.is(variants.get('day'), 'Layan-light');
- t.is(variants.get('night'), 'Layan-dark');
+ const variants = Variants.guessFrom('Layan-light');
+ t.is(variants.get('day'), 'Layan-light');
+ t.is(variants.get('night'), 'Layan-dark');
});
test('Layan-solid', t => {
- const variants = Variants.guess_from('Layan-solid');
- t.is(variants.get('day'), 'Layan-solid');
- t.is(variants.get('night'), 'Layan-dark-solid');
+ const variants = Variants.guessFrom('Layan-solid');
+ t.is(variants.get('day'), 'Layan-solid');
+ t.is(variants.get('night'), 'Layan-dark-solid');
});
test('Layan-dark-solid', t => {
- const variants = Variants.guess_from('Layan-dark-solid');
- t.is(variants.get('day'), 'Layan-solid');
- t.is(variants.get('night'), 'Layan-dark-solid');
+ const variants = Variants.guessFrom('Layan-dark-solid');
+ t.is(variants.get('day'), 'Layan-solid');
+ t.is(variants.get('night'), 'Layan-dark-solid');
});
test('Layan-light-solid', t => {
- const variants = Variants.guess_from('Layan-light-solid');
- t.is(variants.get('day'), 'Layan-light-solid');
- t.is(variants.get('night'), 'Layan-dark-solid');
+ const variants = Variants.guessFrom('Layan-light-solid');
+ t.is(variants.get('day'), 'Layan-light-solid');
+ t.is(variants.get('night'), 'Layan-dark-solid');
});
diff --git a/tests/gtk_themes/Macwaita.js b/tests/gtk_themes/Macwaita.js
index d57c7b6..dea103f 100644
--- a/tests/gtk_themes/Macwaita.js
+++ b/tests/gtk_themes/Macwaita.js
@@ -21,17 +21,17 @@ const { Variants } = require('./_variants');
['', '-Slim'].forEach(size => {
- ['-blue', '-green', '-orange', '-purple', '-red', '-yellow'].forEach(color => {
- test(`Macwaita${color}${size}`, t => {
- const variants = Variants.guess_from(`Macwaita${color}${size}`);
- t.is(variants.get('day'), `Macwaita${color}${size}`);
- t.is(variants.get('night'), `Macwaita-dark${color}${size}`);
- });
+ ['-blue', '-green', '-orange', '-purple', '-red', '-yellow'].forEach(color => {
+ test(`Macwaita${color}${size}`, t => {
+ const variants = Variants.guessFrom(`Macwaita${color}${size}`);
+ t.is(variants.get('day'), `Macwaita${color}${size}`);
+ t.is(variants.get('night'), `Macwaita-dark${color}${size}`);
+ });
- test(`Macwaita-dark${color}${size}`, t => {
- const variants = Variants.guess_from(`Macwaita-dark${color}${size}`);
- t.is(variants.get('day'), `Macwaita${color}${size}`);
- t.is(variants.get('night'), `Macwaita-dark${color}${size}`);
- });
- });
+ test(`Macwaita-dark${color}${size}`, t => {
+ const variants = Variants.guessFrom(`Macwaita-dark${color}${size}`);
+ t.is(variants.get('day'), `Macwaita${color}${size}`);
+ t.is(variants.get('night'), `Macwaita-dark${color}${size}`);
+ });
+ });
});
diff --git a/tests/gtk_themes/Matcha.js b/tests/gtk_themes/Matcha.js
index f74323b..698407f 100644
--- a/tests/gtk_themes/Matcha.js
+++ b/tests/gtk_themes/Matcha.js
@@ -21,21 +21,21 @@ const { Variants } = require('./_variants');
['aliz', 'azul', 'sea'].forEach(color => {
- test(`Matcha-${color}`, t => {
- const variants = Variants.guess_from(`Matcha-${color}`);
- t.is(variants.get('day'), `Matcha-${color}`);
- t.is(variants.get('night'), `Matcha-dark-${color}`);
- });
+ test(`Matcha-${color}`, t => {
+ const variants = Variants.guessFrom(`Matcha-${color}`);
+ t.is(variants.get('day'), `Matcha-${color}`);
+ t.is(variants.get('night'), `Matcha-dark-${color}`);
+ });
- test(`Matcha-dark-${color}`, t => {
- const variants = Variants.guess_from(`Matcha-dark-${color}`);
- t.is(variants.get('day'), `Matcha-${color}`);
- t.is(variants.get('night'), `Matcha-dark-${color}`);
- });
+ test(`Matcha-dark-${color}`, t => {
+ const variants = Variants.guessFrom(`Matcha-dark-${color}`);
+ t.is(variants.get('day'), `Matcha-${color}`);
+ t.is(variants.get('night'), `Matcha-dark-${color}`);
+ });
- test(`Matcha-light-${color}`, t => {
- const variants = Variants.guess_from(`Matcha-light-${color}`);
- t.is(variants.get('day'), `Matcha-light-${color}`);
- t.is(variants.get('night'), `Matcha-dark-${color}`);
- });
-})
+ test(`Matcha-light-${color}`, t => {
+ const variants = Variants.guessFrom(`Matcha-light-${color}`);
+ t.is(variants.get('day'), `Matcha-light-${color}`);
+ t.is(variants.get('night'), `Matcha-dark-${color}`);
+ });
+});
diff --git a/tests/gtk_themes/Materia.js b/tests/gtk_themes/Materia.js
index 275ef95..5fff646 100644
--- a/tests/gtk_themes/Materia.js
+++ b/tests/gtk_themes/Materia.js
@@ -21,21 +21,21 @@ const { Variants } = require('./_variants');
['', '-compact'].forEach(size => {
- test(`Materia${size}`, t => {
- const variants = Variants.guess_from(`Materia${size}`);
- t.is(variants.get('day'), `Materia${size}`);
- t.is(variants.get('night'), `Materia-dark${size}`);
- });
+ test(`Materia${size}`, t => {
+ const variants = Variants.guessFrom(`Materia${size}`);
+ t.is(variants.get('day'), `Materia${size}`);
+ t.is(variants.get('night'), `Materia-dark${size}`);
+ });
- test(`Materia-dark${size}`, t => {
- const variants = Variants.guess_from(`Materia-dark${size}`);
- t.is(variants.get('day'), `Materia${size}`);
- t.is(variants.get('night'), `Materia-dark${size}`);
- });
+ test(`Materia-dark${size}`, t => {
+ const variants = Variants.guessFrom(`Materia-dark${size}`);
+ t.is(variants.get('day'), `Materia${size}`);
+ t.is(variants.get('night'), `Materia-dark${size}`);
+ });
- test(`Materia-light${size}`, t => {
- const variants = Variants.guess_from(`Materia-light${size}`);
- t.is(variants.get('day'), `Materia-light${size}`);
- t.is(variants.get('night'), `Materia-dark${size}`);
- });
-})
+ test(`Materia-light${size}`, t => {
+ const variants = Variants.guessFrom(`Materia-light${size}`);
+ t.is(variants.get('day'), `Materia-light${size}`);
+ t.is(variants.get('night'), `Materia-dark${size}`);
+ });
+});
diff --git a/tests/gtk_themes/Mojave.js b/tests/gtk_themes/Mojave.js
index 374eaae..82be214 100644
--- a/tests/gtk_themes/Mojave.js
+++ b/tests/gtk_themes/Mojave.js
@@ -21,17 +21,17 @@ const { Variants } = require('./_variants');
['', '-solid'].forEach(transparency => {
- ['', '-alt'].forEach(alt => {
- test(`Mojave-light${transparency}${alt}`, t => {
- const variants = Variants.guess_from(`Mojave-light${transparency}${alt}`);
- t.is(variants.get('day'), `Mojave-light${transparency}${alt}`);
- t.is(variants.get('night'), `Mojave-dark${transparency}${alt}`);
- });
+ ['', '-alt'].forEach(alt => {
+ test(`Mojave-light${transparency}${alt}`, t => {
+ const variants = Variants.guessFrom(`Mojave-light${transparency}${alt}`);
+ t.is(variants.get('day'), `Mojave-light${transparency}${alt}`);
+ t.is(variants.get('night'), `Mojave-dark${transparency}${alt}`);
+ });
- test(`Mojave-dark${transparency}${alt}`, t => {
- const variants = Variants.guess_from(`Mojave-dark${transparency}${alt}`);
- t.is(variants.get('day'), `Mojave-light${transparency}${alt}`);
- t.is(variants.get('night'), `Mojave-dark${transparency}${alt}`);
- });
- });
+ test(`Mojave-dark${transparency}${alt}`, t => {
+ const variants = Variants.guessFrom(`Mojave-dark${transparency}${alt}`);
+ t.is(variants.get('day'), `Mojave-light${transparency}${alt}`);
+ t.is(variants.get('night'), `Mojave-dark${transparency}${alt}`);
+ });
+ });
});
diff --git a/tests/gtk_themes/Nextwaita.js b/tests/gtk_themes/Nextwaita.js
index 95f4b0f..7024f37 100644
--- a/tests/gtk_themes/Nextwaita.js
+++ b/tests/gtk_themes/Nextwaita.js
@@ -20,13 +20,13 @@ const test = require('ava');
const { Variants } = require('./_variants');
test('Nextwaita', t => {
- const variants = Variants.guess_from('Nextwaita-2.2');
- t.is(variants.get('day'), 'Nextwaita-2.2');
- t.is(variants.get('night'), 'Nextwaita-dark-2.2');
+ const variants = Variants.guessFrom('Nextwaita-2.2');
+ t.is(variants.get('day'), 'Nextwaita-2.2');
+ t.is(variants.get('night'), 'Nextwaita-dark-2.2');
});
test('Nextwaita-dark', t => {
- const variants = Variants.guess_from('Nextwaita-dark-2.2');
- t.is(variants.get('day'), 'Nextwaita-2.2');
- t.is(variants.get('night'), 'Nextwaita-dark-2.2');
+ const variants = Variants.guessFrom('Nextwaita-dark-2.2');
+ t.is(variants.get('day'), 'Nextwaita-2.2');
+ t.is(variants.get('night'), 'Nextwaita-dark-2.2');
});
diff --git a/tests/gtk_themes/Orchis.js b/tests/gtk_themes/Orchis.js
index 4796296..2c8f9bf 100644
--- a/tests/gtk_themes/Orchis.js
+++ b/tests/gtk_themes/Orchis.js
@@ -21,15 +21,15 @@ const { Variants } = require('./_variants');
['', '-compact'].forEach(size => {
- test(`Orchis${size}`, t => {
- const variants = Variants.guess_from(`Orchis${size}`);
- t.is(variants.get('day'), `Orchis${size}`);
- t.is(variants.get('night'), `Orchis-dark${size}`);
- });
+ test(`Orchis${size}`, t => {
+ const variants = Variants.guessFrom(`Orchis${size}`);
+ t.is(variants.get('day'), `Orchis${size}`);
+ t.is(variants.get('night'), `Orchis-dark${size}`);
+ });
- test(`Orchis-dark${size}`, t => {
- const variants = Variants.guess_from(`Orchis-dark${size}`);
- t.is(variants.get('day'), `Orchis${size}`);
- t.is(variants.get('night'), `Orchis-dark${size}`);
- });
-})
+ test(`Orchis-dark${size}`, t => {
+ const variants = Variants.guessFrom(`Orchis-dark${size}`);
+ t.is(variants.get('day'), `Orchis${size}`);
+ t.is(variants.get('night'), `Orchis-dark${size}`);
+ });
+});
diff --git a/tests/gtk_themes/Plata.js b/tests/gtk_themes/Plata.js
index 9529341..862ac71 100644
--- a/tests/gtk_themes/Plata.js
+++ b/tests/gtk_themes/Plata.js
@@ -21,21 +21,21 @@ const { Variants } = require('./_variants');
['', '-Compact'].forEach(size => {
- test(`Plata${size}`, t => {
- const variants = Variants.guess_from(`Plata${size}`);
- t.is(variants.get('day'), `Plata${size}`);
- t.is(variants.get('night'), `Plata-Noir${size}`);
- });
+ test(`Plata${size}`, t => {
+ const variants = Variants.guessFrom(`Plata${size}`);
+ t.is(variants.get('day'), `Plata${size}`);
+ t.is(variants.get('night'), `Plata-Noir${size}`);
+ });
- test(`Plata-Noir${size}`, t => {
- const variants = Variants.guess_from(`Plata-Noir${size}`);
- t.is(variants.get('day'), `Plata${size}`);
- t.is(variants.get('night'), `Plata-Noir${size}`);
- });
+ test(`Plata-Noir${size}`, t => {
+ const variants = Variants.guessFrom(`Plata-Noir${size}`);
+ t.is(variants.get('day'), `Plata${size}`);
+ t.is(variants.get('night'), `Plata-Noir${size}`);
+ });
- test(`Plata-Lumine${size}`, t => {
- const variants = Variants.guess_from(`Plata-Lumine${size}`);
- t.is(variants.get('day'), `Plata-Lumine${size}`);
- t.is(variants.get('night'), `Plata-Noir${size}`);
- });
-})
+ test(`Plata-Lumine${size}`, t => {
+ const variants = Variants.guessFrom(`Plata-Lumine${size}`);
+ t.is(variants.get('day'), `Plata-Lumine${size}`);
+ t.is(variants.get('night'), `Plata-Noir${size}`);
+ });
+});
diff --git a/tests/gtk_themes/Prof-Gnome-3.js b/tests/gtk_themes/Prof-Gnome-3.js
index aedafac..6e82da0 100644
--- a/tests/gtk_themes/Prof-Gnome-3.js
+++ b/tests/gtk_themes/Prof-Gnome-3.js
@@ -21,25 +21,25 @@ const { Variants } = require('./_variants');
test('Prof-Gnome-Light-3', t => {
- const variants = Variants.guess_from('Prof-Gnome-Light-3');
- t.is(variants.get('day'), 'Prof-Gnome-Light-3');
- t.is(variants.get('night'), 'Prof-Gnome-Dark-3');
+ const variants = Variants.guessFrom('Prof-Gnome-Light-3');
+ t.is(variants.get('day'), 'Prof-Gnome-Light-3');
+ t.is(variants.get('night'), 'Prof-Gnome-Dark-3');
});
test('Prof-Gnome-Dark-3', t => {
- const variants = Variants.guess_from('Prof-Gnome-Dark-3');
- t.is(variants.get('day'), 'Prof-Gnome-Light-3');
- t.is(variants.get('night'), 'Prof-Gnome-Dark-3');
+ const variants = Variants.guessFrom('Prof-Gnome-Dark-3');
+ t.is(variants.get('day'), 'Prof-Gnome-Light-3');
+ t.is(variants.get('night'), 'Prof-Gnome-Dark-3');
});
test('Prof-Gnome-Darker-3', t => {
- const variants = Variants.guess_from('Prof-Gnome-Darker-3');
- t.is(variants.get('day'), 'Prof-Gnome-Darker-3');
- t.is(variants.get('night'), 'Prof-Gnome-Dark-3');
+ const variants = Variants.guessFrom('Prof-Gnome-Darker-3');
+ t.is(variants.get('day'), 'Prof-Gnome-Darker-3');
+ t.is(variants.get('night'), 'Prof-Gnome-Dark-3');
});
test('Prof-Gnome-Light-DS-3', t => {
- const variants = Variants.guess_from('Prof-Gnome-Light-DS-3');
- t.is(variants.get('day'), 'Prof-Gnome-Light-DS-3');
- t.is(variants.get('night'), 'Prof-Gnome-Dark-3');
+ const variants = Variants.guessFrom('Prof-Gnome-Light-DS-3');
+ t.is(variants.get('day'), 'Prof-Gnome-Light-DS-3');
+ t.is(variants.get('night'), 'Prof-Gnome-Dark-3');
});
diff --git a/tests/gtk_themes/Qogir.js b/tests/gtk_themes/Qogir.js
index 5f07e29..44e1f27 100644
--- a/tests/gtk_themes/Qogir.js
+++ b/tests/gtk_themes/Qogir.js
@@ -21,23 +21,23 @@ const { Variants } = require('./_variants');
['', '-manjaro', '-ubuntu'].forEach(color => {
- ['', '-win'].forEach(alt => {
- test(`Qogir${color}${alt}`, t => {
- const variants = Variants.guess_from(`Qogir${color}${alt}`);
- t.is(variants.get('day'), `Qogir${color}${alt}`);
- t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
- });
+ ['', '-win'].forEach(alt => {
+ test(`Qogir${color}${alt}`, t => {
+ const variants = Variants.guessFrom(`Qogir${color}${alt}`);
+ t.is(variants.get('day'), `Qogir${color}${alt}`);
+ t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
+ });
- test(`Qogir${color}${alt}-dark`, t => {
- const variants = Variants.guess_from(`Qogir${color}${alt}-dark`);
- t.is(variants.get('day'), `Qogir${color}${alt}`);
- t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
- });
+ test(`Qogir${color}${alt}-dark`, t => {
+ const variants = Variants.guessFrom(`Qogir${color}${alt}-dark`);
+ t.is(variants.get('day'), `Qogir${color}${alt}`);
+ t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
+ });
- test(`Qogir${color}${alt}light`, t => {
- const variants = Variants.guess_from(`Qogir${color}${alt}-light`);
- t.is(variants.get('day'), `Qogir${color}${alt}-light`);
- t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
- });
- });
+ test(`Qogir${color}${alt}light`, t => {
+ const variants = Variants.guessFrom(`Qogir${color}${alt}-light`);
+ t.is(variants.get('day'), `Qogir${color}${alt}-light`);
+ t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
+ });
+ });
});
diff --git a/tests/gtk_themes/Simply-Circles.js b/tests/gtk_themes/Simply-Circles.js
index 125e214..ee05f43 100644
--- a/tests/gtk_themes/Simply-Circles.js
+++ b/tests/gtk_themes/Simply-Circles.js
@@ -21,17 +21,17 @@ const { Variants } = require('./_variants');
['', '_Blue', '_Cyan', '_Green', '_Orange', '_Purple'].forEach(color => {
- ['', '_Envolved'].forEach(variant => {
- test(`Simply_Circles${color}_Light${variant}`, t => {
- const variants = Variants.guess_from(`Simply_Circles${color}_Light${variant}`);
- t.is(variants.get('day'), `Simply_Circles${color}_Light${variant}`);
- t.is(variants.get('night'), `Simply_Circles${color}_Dark${variant}`);
- });
+ ['', '_Envolved'].forEach(variant => {
+ test(`Simply_Circles${color}_Light${variant}`, t => {
+ const variants = Variants.guessFrom(`Simply_Circles${color}_Light${variant}`);
+ t.is(variants.get('day'), `Simply_Circles${color}_Light${variant}`);
+ t.is(variants.get('night'), `Simply_Circles${color}_Dark${variant}`);
+ });
- test(`Simply_Circles${color}${variant}`, t => {
- const variants = Variants.guess_from(`Simply_Circles${color}_Dark${variant}`);
- t.is(variants.get('day'), `Simply_Circles${color}_Light${variant}`);
- t.is(variants.get('night'), `Simply_Circles${color}_Dark${variant}`);
- });
- })
+ test(`Simply_Circles${color}${variant}`, t => {
+ const variants = Variants.guessFrom(`Simply_Circles${color}_Dark${variant}`);
+ t.is(variants.get('day'), `Simply_Circles${color}_Light${variant}`);
+ t.is(variants.get('night'), `Simply_Circles${color}_Dark${variant}`);
+ });
+ });
});
diff --git a/tests/gtk_themes/Teja.js b/tests/gtk_themes/Teja.js
index e099598..54f432a 100644
--- a/tests/gtk_themes/Teja.js
+++ b/tests/gtk_themes/Teja.js
@@ -20,31 +20,31 @@ const test = require('ava');
const { Variants } = require('./_variants');
test('Teja', t => {
- const variants = Variants.guess_from('Teja');
- t.is(variants.get('day'), 'Teja');
- t.is(variants.get('night'), 'Teja_Dark');
+ const variants = Variants.guessFrom('Teja');
+ t.is(variants.get('day'), 'Teja');
+ t.is(variants.get('night'), 'Teja_Dark');
});
test('Teja_Dark', t => {
- const variants = Variants.guess_from('Teja_Dark');
- t.is(variants.get('day'), 'Teja');
- t.is(variants.get('night'), 'Teja_Dark');
+ const variants = Variants.guessFrom('Teja_Dark');
+ t.is(variants.get('day'), 'Teja');
+ t.is(variants.get('night'), 'Teja_Dark');
});
test('Teja_Darkest', t => {
- const variants = Variants.guess_from('Teja_Darkest');
- t.is(variants.get('day'), 'Teja');
- t.is(variants.get('night'), 'Teja_Darkest');
+ const variants = Variants.guessFrom('Teja_Darkest');
+ t.is(variants.get('day'), 'Teja');
+ t.is(variants.get('night'), 'Teja_Darkest');
});
test('Teja_Black', t => {
- const variants = Variants.guess_from('Teja_Black');
- t.is(variants.get('day'), 'Teja');
- t.is(variants.get('night'), 'Teja_Black');
+ const variants = Variants.guessFrom('Teja_Black');
+ t.is(variants.get('day'), 'Teja');
+ t.is(variants.get('night'), 'Teja_Black');
});
test('Teja_Light', t => {
- const variants = Variants.guess_from('Teja_Light');
- t.is(variants.get('day'), 'Teja_Light');
- t.is(variants.get('night'), 'Teja_Dark');
+ const variants = Variants.guessFrom('Teja_Light');
+ t.is(variants.get('day'), 'Teja_Light');
+ t.is(variants.get('night'), 'Teja_Dark');
});
diff --git a/tests/gtk_themes/Vimix.js b/tests/gtk_themes/Vimix.js
index 472a594..b9f2d7c 100644
--- a/tests/gtk_themes/Vimix.js
+++ b/tests/gtk_themes/Vimix.js
@@ -21,22 +21,22 @@ const { Variants } = require('./_variants');
['', '-laptop'].forEach(size => {
- ['', '-beryl', '-doder', '-ruby'].forEach(color => {
- test(`vimix${size}${color}`, t => {
- const variants = Variants.guess_from(`vimix${size}${color}`);
- t.is(variants.get('day'), `vimix${size}${color}`);
- t.is(variants.get('night'), `vimix-dark${size}${color}`);
- });
+ ['', '-beryl', '-doder', '-ruby'].forEach(color => {
+ test(`vimix${size}${color}`, t => {
+ const variants = Variants.guessFrom(`vimix${size}${color}`);
+ t.is(variants.get('day'), `vimix${size}${color}`);
+ t.is(variants.get('night'), `vimix-dark${size}${color}`);
+ });
- test(`vimix-dark${size}${color}`, t => {
- const variants = Variants.guess_from(`vimix-dark${size}${color}`);
- t.is(variants.get('day'), `vimix${size}${color}`);
- t.is(variants.get('night'), `vimix-dark${size}${color}`);
- });
- test(`vimix-light${size}${color}`, t => {
- const variants = Variants.guess_from(`vimix-light${size}${color}`);
- t.is(variants.get('day'), `vimix-light${size}${color}`);
- t.is(variants.get('night'), `vimix-dark${size}${color}`);
- });
- });
+ test(`vimix-dark${size}${color}`, t => {
+ const variants = Variants.guessFrom(`vimix-dark${size}${color}`);
+ t.is(variants.get('day'), `vimix${size}${color}`);
+ t.is(variants.get('night'), `vimix-dark${size}${color}`);
+ });
+ test(`vimix-light${size}${color}`, t => {
+ const variants = Variants.guessFrom(`vimix-light${size}${color}`);
+ t.is(variants.get('day'), `vimix-light${size}${color}`);
+ t.is(variants.get('night'), `vimix-dark${size}${color}`);
+ });
+ });
});
diff --git a/tests/gtk_themes/Yaru.js b/tests/gtk_themes/Yaru.js
index 2ed79d7..b3a5190 100644
--- a/tests/gtk_themes/Yaru.js
+++ b/tests/gtk_themes/Yaru.js
@@ -21,19 +21,19 @@ const { Variants } = require('./_variants');
test('Yaru', t => {
- const variants = Variants.guess_from('Yaru');
- t.is(variants.get('day'), 'Yaru');
- t.is(variants.get('night'), 'Yaru-dark');
+ const variants = Variants.guessFrom('Yaru');
+ t.is(variants.get('day'), 'Yaru');
+ t.is(variants.get('night'), 'Yaru-dark');
});
test('Yaru-dark', t => {
- const variants = Variants.guess_from('Yaru-dark');
- t.is(variants.get('day'), 'Yaru');
- t.is(variants.get('night'), 'Yaru-dark');
+ const variants = Variants.guessFrom('Yaru-dark');
+ t.is(variants.get('day'), 'Yaru');
+ t.is(variants.get('night'), 'Yaru-dark');
});
test('Yaru-light', t => {
- const variants = Variants.guess_from('Yaru-light');
- t.is(variants.get('day'), 'Yaru-light');
- t.is(variants.get('night'), 'Yaru-dark');
+ const variants = Variants.guessFrom('Yaru-light');
+ t.is(variants.get('day'), 'Yaru-light');
+ t.is(variants.get('night'), 'Yaru-dark');
});
diff --git a/tests/gtk_themes/base.js b/tests/gtk_themes/base.js
index 054d9c2..beb2990 100644
--- a/tests/gtk_themes/base.js
+++ b/tests/gtk_themes/base.js
@@ -20,31 +20,31 @@ const test = require('ava');
const { Variants } = require('./_variants');
test('base', t => {
- const variants = Variants.guess_from('base');
- t.is(variants.get('day'), 'base');
- t.is(variants.get('night'), 'base-dark');
+ const variants = Variants.guessFrom('base');
+ t.is(variants.get('day'), 'base');
+ t.is(variants.get('night'), 'base-dark');
});
test('base-dark', t => {
- const variants = Variants.guess_from('base-dark');
- t.is(variants.get('day'), 'base');
- t.is(variants.get('night'), 'base-dark');
+ const variants = Variants.guessFrom('base-dark');
+ t.is(variants.get('day'), 'base');
+ t.is(variants.get('night'), 'base-dark');
});
test('base-light', t => {
- const variants = Variants.guess_from('base-light');
- t.is(variants.get('day'), 'base-light');
- t.is(variants.get('night'), 'base-dark');
+ const variants = Variants.guessFrom('base-light');
+ t.is(variants.get('day'), 'base-light');
+ t.is(variants.get('night'), 'base-dark');
});
test('base-darker', t => {
- const variants = Variants.guess_from('base-darker');
- t.is(variants.get('day'), 'base-darker');
- t.is(variants.get('night'), 'base-dark');
+ const variants = Variants.guessFrom('base-darker');
+ t.is(variants.get('day'), 'base-darker');
+ t.is(variants.get('night'), 'base-dark');
});
test('base-darkest', t => {
- const variants = Variants.guess_from('base-darkest');
- t.is(variants.get('day'), 'base');
- t.is(variants.get('night'), 'base-darkest');
+ const variants = Variants.guessFrom('base-darkest');
+ t.is(variants.get('day'), 'base');
+ t.is(variants.get('night'), 'base-darkest');
});
diff --git a/tests/shell_themes/Adapta.js b/tests/shell_themes/Adapta.js
index 2c8aa35..c604b4d 100644
--- a/tests/shell_themes/Adapta.js
+++ b/tests/shell_themes/Adapta.js
@@ -21,25 +21,25 @@ const { Variants } = require('./_variants');
test('Adapta', t => {
- const variants = Variants.guess_from('Adapta');
- t.is(variants.get('day'), 'Adapta');
- t.is(variants.get('night'), 'Adapta-Nokto');
+ const variants = Variants.guessFrom('Adapta');
+ t.is(variants.get('day'), 'Adapta');
+ t.is(variants.get('night'), 'Adapta-Nokto');
});
test('Adapta-Nokto', t => {
- const variants = Variants.guess_from('Adapta-Nokto');
- t.is(variants.get('day'), 'Adapta');
- t.is(variants.get('night'), 'Adapta-Nokto');
+ const variants = Variants.guessFrom('Adapta-Nokto');
+ t.is(variants.get('day'), 'Adapta');
+ t.is(variants.get('night'), 'Adapta-Nokto');
});
test('Adapta-Eta', t => {
- const variants = Variants.guess_from('Adapta-Eta');
- t.is(variants.get('day'), 'Adapta-Eta');
- t.is(variants.get('night'), 'Adapta-Nokto-Eta');
+ const variants = Variants.guessFrom('Adapta-Eta');
+ t.is(variants.get('day'), 'Adapta-Eta');
+ t.is(variants.get('night'), 'Adapta-Nokto-Eta');
});
test('Adapta-Nokto-Eta', t => {
- const variants = Variants.guess_from('Adapta-Nokto-Eta');
- t.is(variants.get('day'), 'Adapta-Eta');
- t.is(variants.get('night'), 'Adapta-Nokto-Eta');
+ const variants = Variants.guessFrom('Adapta-Nokto-Eta');
+ t.is(variants.get('day'), 'Adapta-Eta');
+ t.is(variants.get('night'), 'Adapta-Nokto-Eta');
});
diff --git a/tests/shell_themes/Arc.js b/tests/shell_themes/Arc.js
index e1ae6ef..e8c6c43 100644
--- a/tests/shell_themes/Arc.js
+++ b/tests/shell_themes/Arc.js
@@ -21,25 +21,25 @@ const { Variants } = require('./_variants');
test('Arc', t => {
- const variants = Variants.guess_from('Arc');
- t.is(variants.get('day'), 'Arc');
- t.is(variants.get('night'), 'Arc-Dark');
+ const variants = Variants.guessFrom('Arc');
+ t.is(variants.get('day'), 'Arc');
+ t.is(variants.get('night'), 'Arc-Dark');
});
test('Arc-Dark', t => {
- const variants = Variants.guess_from('Arc-Dark');
- t.is(variants.get('day'), 'Arc');
- t.is(variants.get('night'), 'Arc-Dark');
+ const variants = Variants.guessFrom('Arc-Dark');
+ t.is(variants.get('day'), 'Arc');
+ t.is(variants.get('night'), 'Arc-Dark');
});
test('Arc-Dark-solid', t => {
- const variants = Variants.guess_from('Arc-Dark-solid');
- t.is(variants.get('day'), 'Arc-solid');
- t.is(variants.get('night'), 'Arc-Dark-solid');
+ const variants = Variants.guessFrom('Arc-Dark-solid');
+ t.is(variants.get('day'), 'Arc-solid');
+ t.is(variants.get('night'), 'Arc-Dark-solid');
});
test('Arc-solid', t => {
- const variants = Variants.guess_from('Arc-solid');
- t.is(variants.get('day'), 'Arc-solid');
- t.is(variants.get('night'), 'Arc-Dark-solid');
+ const variants = Variants.guessFrom('Arc-solid');
+ t.is(variants.get('day'), 'Arc-solid');
+ t.is(variants.get('night'), 'Arc-Dark-solid');
});
diff --git a/tests/shell_themes/Canta.js b/tests/shell_themes/Canta.js
index 731c042..28fc409 100644
--- a/tests/shell_themes/Canta.js
+++ b/tests/shell_themes/Canta.js
@@ -21,39 +21,39 @@ const { Variants } = require('./_variants');
['', '-blue', '-indigo'].forEach(color => {
- test(`Canta${color}`, t => {
- const variants = Variants.guess_from(`Canta${color}`);
- t.is(variants.get('day'), `Canta${color}`);
- t.is(variants.get('night'), `Canta${color}-dark`);
- });
+ test(`Canta${color}`, t => {
+ const variants = Variants.guessFrom(`Canta${color}`);
+ t.is(variants.get('day'), `Canta${color}`);
+ t.is(variants.get('night'), `Canta${color}-dark`);
+ });
- test(`Canta${color}-dark`, t => {
- const variants = Variants.guess_from(`Canta${color}-dark`);
- t.is(variants.get('day'), `Canta${color}`);
- t.is(variants.get('night'), `Canta${color}-dark`);
- });
+ test(`Canta${color}-dark`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-dark`);
+ t.is(variants.get('day'), `Canta${color}`);
+ t.is(variants.get('night'), `Canta${color}-dark`);
+ });
- test(`Canta${color}-light`, t => {
- const variants = Variants.guess_from(`Canta${color}-light`);
- t.is(variants.get('day'), `Canta${color}-light`);
- t.is(variants.get('night'), `Canta${color}-dark`);
- });
+ test(`Canta${color}-light`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-light`);
+ t.is(variants.get('day'), `Canta${color}-light`);
+ t.is(variants.get('night'), `Canta${color}-dark`);
+ });
- test(`Canta${color}-compact`, t => {
- const variants = Variants.guess_from(`Canta${color}-compact`);
- t.is(variants.get('day'), `Canta${color}-compact`);
- t.is(variants.get('night'), `Canta${color}-dark-compact`);
- });
+ test(`Canta${color}-compact`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-compact`);
+ t.is(variants.get('day'), `Canta${color}-compact`);
+ t.is(variants.get('night'), `Canta${color}-dark-compact`);
+ });
- test(`Canta${color}-dark-compact`, t => {
- const variants = Variants.guess_from(`Canta${color}-dark-compact`);
- t.is(variants.get('day'), `Canta${color}-compact`);
- t.is(variants.get('night'), `Canta${color}-dark-compact`);
- });
+ test(`Canta${color}-dark-compact`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-dark-compact`);
+ t.is(variants.get('day'), `Canta${color}-compact`);
+ t.is(variants.get('night'), `Canta${color}-dark-compact`);
+ });
- test(`Canta${color}-light-compact`, t => {
- const variants = Variants.guess_from(`Canta${color}-light-compact`);
- t.is(variants.get('day'), `Canta${color}-light-compact`);
- t.is(variants.get('night'), `Canta${color}-dark-compact`);
- });
+ test(`Canta${color}-light-compact`, t => {
+ const variants = Variants.guessFrom(`Canta${color}-light-compact`);
+ t.is(variants.get('day'), `Canta${color}-light-compact`);
+ t.is(variants.get('night'), `Canta${color}-dark-compact`);
+ });
});
diff --git a/tests/shell_themes/ChromeOS.js b/tests/shell_themes/ChromeOS.js
index a50c706..e858103 100644
--- a/tests/shell_themes/ChromeOS.js
+++ b/tests/shell_themes/ChromeOS.js
@@ -20,21 +20,21 @@ const test = require('ava');
const { Variants } = require('./_variants');
['', '-compact'].forEach(size => {
- test(`ChromeOS${size}`, t => {
- const variants = Variants.guess_from(`ChromeOS${size}`);
- t.is(variants.get('day'), `ChromeOS${size}`);
- t.is(variants.get('night'), `ChromeOS-dark${size}`);
- });
+ test(`ChromeOS${size}`, t => {
+ const variants = Variants.guessFrom(`ChromeOS${size}`);
+ t.is(variants.get('day'), `ChromeOS${size}`);
+ t.is(variants.get('night'), `ChromeOS-dark${size}`);
+ });
- test(`ChromeOS-dark${size}`, t => {
- const variants = Variants.guess_from(`ChromeOS-dark${size}`);
- t.is(variants.get('day'), `ChromeOS${size}`);
- t.is(variants.get('night'), `ChromeOS-dark${size}`);
- });
+ test(`ChromeOS-dark${size}`, t => {
+ const variants = Variants.guessFrom(`ChromeOS-dark${size}`);
+ t.is(variants.get('day'), `ChromeOS${size}`);
+ t.is(variants.get('night'), `ChromeOS-dark${size}`);
+ });
- test(`ChromeOS-light${size}`, t => {
- const variants = Variants.guess_from(`ChromeOS-light${size}`);
- t.is(variants.get('day'), `ChromeOS-light${size}`);
- t.is(variants.get('night'), `ChromeOS-dark${size}`);
- });
-})
+ test(`ChromeOS-light${size}`, t => {
+ const variants = Variants.guessFrom(`ChromeOS-light${size}`);
+ t.is(variants.get('day'), `ChromeOS-light${size}`);
+ t.is(variants.get('night'), `ChromeOS-dark${size}`);
+ });
+});
diff --git a/tests/shell_themes/Flat-Remix.js b/tests/shell_themes/Flat-Remix.js
index 1fcc28c..66fce9b 100644
--- a/tests/shell_themes/Flat-Remix.js
+++ b/tests/shell_themes/Flat-Remix.js
@@ -20,23 +20,23 @@ const test = require('ava');
const { Variants } = require('./_variants');
['', '-Miami'].forEach(color => {
- ['', '-fullPanel'].forEach(size => {
- test(`Flat-Remix${color}${size}`, t => {
- const variants = Variants.guess_from(`Flat-Remix${color}${size}`);
- t.is(variants.get('day'), `Flat-Remix${color}${size}`);
- t.is(variants.get('night'), `Flat-Remix${color}-Dark${size}`);
- });
+ ['', '-fullPanel'].forEach(size => {
+ test(`Flat-Remix${color}${size}`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix${color}${size}`);
+ t.is(variants.get('day'), `Flat-Remix${color}${size}`);
+ t.is(variants.get('night'), `Flat-Remix${color}-Dark${size}`);
+ });
- test(`Flat-Remix${color}-Dark${size}`, t => {
- const variants = Variants.guess_from(`Flat-Remix${color}-Dark${size}`);
- t.is(variants.get('day'), `Flat-Remix${color}${size}`);
- t.is(variants.get('night'), `Flat-Remix${color}-Dark${size}`);
- });
+ test(`Flat-Remix${color}-Dark${size}`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix${color}-Dark${size}`);
+ t.is(variants.get('day'), `Flat-Remix${color}${size}`);
+ t.is(variants.get('night'), `Flat-Remix${color}-Dark${size}`);
+ });
- test(`Flat-Remix${color}-Darkest${size}`, t => {
- const variants = Variants.guess_from(`Flat-Remix${color}-Darkest${size}`);
- t.is(variants.get('day'), `Flat-Remix${color}${size}`);
- t.is(variants.get('night'), `Flat-Remix${color}-Darkest${size}`);
- });
- })
-})
+ test(`Flat-Remix${color}-Darkest${size}`, t => {
+ const variants = Variants.guessFrom(`Flat-Remix${color}-Darkest${size}`);
+ t.is(variants.get('day'), `Flat-Remix${color}${size}`);
+ t.is(variants.get('night'), `Flat-Remix${color}-Darkest${size}`);
+ });
+ });
+});
diff --git a/tests/shell_themes/Layan.js b/tests/shell_themes/Layan.js
index a7e8f17..f7bcf7d 100644
--- a/tests/shell_themes/Layan.js
+++ b/tests/shell_themes/Layan.js
@@ -21,37 +21,37 @@ const { Variants } = require('./_variants');
test('Layan', t => {
- const variants = Variants.guess_from('Layan');
- t.is(variants.get('day'), 'Layan');
- t.is(variants.get('night'), 'Layan-dark');
+ const variants = Variants.guessFrom('Layan');
+ t.is(variants.get('day'), 'Layan');
+ t.is(variants.get('night'), 'Layan-dark');
});
test('Layan-dark', t => {
- const variants = Variants.guess_from('Layan-dark');
- t.is(variants.get('day'), 'Layan');
- t.is(variants.get('night'), 'Layan-dark');
+ const variants = Variants.guessFrom('Layan-dark');
+ t.is(variants.get('day'), 'Layan');
+ t.is(variants.get('night'), 'Layan-dark');
});
test('Layan-light', t => {
- const variants = Variants.guess_from('Layan-light');
- t.is(variants.get('day'), 'Layan-light');
- t.is(variants.get('night'), 'Layan-dark');
+ const variants = Variants.guessFrom('Layan-light');
+ t.is(variants.get('day'), 'Layan-light');
+ t.is(variants.get('night'), 'Layan-dark');
});
test('Layan-solid', t => {
- const variants = Variants.guess_from('Layan-solid');
- t.is(variants.get('day'), 'Layan-solid');
- t.is(variants.get('night'), 'Layan-dark-solid');
+ const variants = Variants.guessFrom('Layan-solid');
+ t.is(variants.get('day'), 'Layan-solid');
+ t.is(variants.get('night'), 'Layan-dark-solid');
});
test('Layan-dark-solid', t => {
- const variants = Variants.guess_from('Layan-dark-solid');
- t.is(variants.get('day'), 'Layan-solid');
- t.is(variants.get('night'), 'Layan-dark-solid');
+ const variants = Variants.guessFrom('Layan-dark-solid');
+ t.is(variants.get('day'), 'Layan-solid');
+ t.is(variants.get('night'), 'Layan-dark-solid');
});
test('Layan-light-solid', t => {
- const variants = Variants.guess_from('Layan-light-solid');
- t.is(variants.get('day'), 'Layan-light-solid');
- t.is(variants.get('night'), 'Layan-dark-solid');
+ const variants = Variants.guessFrom('Layan-light-solid');
+ t.is(variants.get('day'), 'Layan-light-solid');
+ t.is(variants.get('night'), 'Layan-dark-solid');
});
diff --git a/tests/shell_themes/Matcha.js b/tests/shell_themes/Matcha.js
index f74323b..698407f 100644
--- a/tests/shell_themes/Matcha.js
+++ b/tests/shell_themes/Matcha.js
@@ -21,21 +21,21 @@ const { Variants } = require('./_variants');
['aliz', 'azul', 'sea'].forEach(color => {
- test(`Matcha-${color}`, t => {
- const variants = Variants.guess_from(`Matcha-${color}`);
- t.is(variants.get('day'), `Matcha-${color}`);
- t.is(variants.get('night'), `Matcha-dark-${color}`);
- });
+ test(`Matcha-${color}`, t => {
+ const variants = Variants.guessFrom(`Matcha-${color}`);
+ t.is(variants.get('day'), `Matcha-${color}`);
+ t.is(variants.get('night'), `Matcha-dark-${color}`);
+ });
- test(`Matcha-dark-${color}`, t => {
- const variants = Variants.guess_from(`Matcha-dark-${color}`);
- t.is(variants.get('day'), `Matcha-${color}`);
- t.is(variants.get('night'), `Matcha-dark-${color}`);
- });
+ test(`Matcha-dark-${color}`, t => {
+ const variants = Variants.guessFrom(`Matcha-dark-${color}`);
+ t.is(variants.get('day'), `Matcha-${color}`);
+ t.is(variants.get('night'), `Matcha-dark-${color}`);
+ });
- test(`Matcha-light-${color}`, t => {
- const variants = Variants.guess_from(`Matcha-light-${color}`);
- t.is(variants.get('day'), `Matcha-light-${color}`);
- t.is(variants.get('night'), `Matcha-dark-${color}`);
- });
-})
+ test(`Matcha-light-${color}`, t => {
+ const variants = Variants.guessFrom(`Matcha-light-${color}`);
+ t.is(variants.get('day'), `Matcha-light-${color}`);
+ t.is(variants.get('night'), `Matcha-dark-${color}`);
+ });
+});
diff --git a/tests/shell_themes/Materia.js b/tests/shell_themes/Materia.js
index 275ef95..5fff646 100644
--- a/tests/shell_themes/Materia.js
+++ b/tests/shell_themes/Materia.js
@@ -21,21 +21,21 @@ const { Variants } = require('./_variants');
['', '-compact'].forEach(size => {
- test(`Materia${size}`, t => {
- const variants = Variants.guess_from(`Materia${size}`);
- t.is(variants.get('day'), `Materia${size}`);
- t.is(variants.get('night'), `Materia-dark${size}`);
- });
+ test(`Materia${size}`, t => {
+ const variants = Variants.guessFrom(`Materia${size}`);
+ t.is(variants.get('day'), `Materia${size}`);
+ t.is(variants.get('night'), `Materia-dark${size}`);
+ });
- test(`Materia-dark${size}`, t => {
- const variants = Variants.guess_from(`Materia-dark${size}`);
- t.is(variants.get('day'), `Materia${size}`);
- t.is(variants.get('night'), `Materia-dark${size}`);
- });
+ test(`Materia-dark${size}`, t => {
+ const variants = Variants.guessFrom(`Materia-dark${size}`);
+ t.is(variants.get('day'), `Materia${size}`);
+ t.is(variants.get('night'), `Materia-dark${size}`);
+ });
- test(`Materia-light${size}`, t => {
- const variants = Variants.guess_from(`Materia-light${size}`);
- t.is(variants.get('day'), `Materia-light${size}`);
- t.is(variants.get('night'), `Materia-dark${size}`);
- });
-})
+ test(`Materia-light${size}`, t => {
+ const variants = Variants.guessFrom(`Materia-light${size}`);
+ t.is(variants.get('day'), `Materia-light${size}`);
+ t.is(variants.get('night'), `Materia-dark${size}`);
+ });
+});
diff --git a/tests/shell_themes/Mojave.js b/tests/shell_themes/Mojave.js
index 374eaae..82be214 100644
--- a/tests/shell_themes/Mojave.js
+++ b/tests/shell_themes/Mojave.js
@@ -21,17 +21,17 @@ const { Variants } = require('./_variants');
['', '-solid'].forEach(transparency => {
- ['', '-alt'].forEach(alt => {
- test(`Mojave-light${transparency}${alt}`, t => {
- const variants = Variants.guess_from(`Mojave-light${transparency}${alt}`);
- t.is(variants.get('day'), `Mojave-light${transparency}${alt}`);
- t.is(variants.get('night'), `Mojave-dark${transparency}${alt}`);
- });
+ ['', '-alt'].forEach(alt => {
+ test(`Mojave-light${transparency}${alt}`, t => {
+ const variants = Variants.guessFrom(`Mojave-light${transparency}${alt}`);
+ t.is(variants.get('day'), `Mojave-light${transparency}${alt}`);
+ t.is(variants.get('night'), `Mojave-dark${transparency}${alt}`);
+ });
- test(`Mojave-dark${transparency}${alt}`, t => {
- const variants = Variants.guess_from(`Mojave-dark${transparency}${alt}`);
- t.is(variants.get('day'), `Mojave-light${transparency}${alt}`);
- t.is(variants.get('night'), `Mojave-dark${transparency}${alt}`);
- });
- });
+ test(`Mojave-dark${transparency}${alt}`, t => {
+ const variants = Variants.guessFrom(`Mojave-dark${transparency}${alt}`);
+ t.is(variants.get('day'), `Mojave-light${transparency}${alt}`);
+ t.is(variants.get('night'), `Mojave-dark${transparency}${alt}`);
+ });
+ });
});
diff --git a/tests/shell_themes/Orchis.js b/tests/shell_themes/Orchis.js
index 4796296..2c8f9bf 100644
--- a/tests/shell_themes/Orchis.js
+++ b/tests/shell_themes/Orchis.js
@@ -21,15 +21,15 @@ const { Variants } = require('./_variants');
['', '-compact'].forEach(size => {
- test(`Orchis${size}`, t => {
- const variants = Variants.guess_from(`Orchis${size}`);
- t.is(variants.get('day'), `Orchis${size}`);
- t.is(variants.get('night'), `Orchis-dark${size}`);
- });
+ test(`Orchis${size}`, t => {
+ const variants = Variants.guessFrom(`Orchis${size}`);
+ t.is(variants.get('day'), `Orchis${size}`);
+ t.is(variants.get('night'), `Orchis-dark${size}`);
+ });
- test(`Orchis-dark${size}`, t => {
- const variants = Variants.guess_from(`Orchis-dark${size}`);
- t.is(variants.get('day'), `Orchis${size}`);
- t.is(variants.get('night'), `Orchis-dark${size}`);
- });
-})
+ test(`Orchis-dark${size}`, t => {
+ const variants = Variants.guessFrom(`Orchis-dark${size}`);
+ t.is(variants.get('day'), `Orchis${size}`);
+ t.is(variants.get('night'), `Orchis-dark${size}`);
+ });
+});
diff --git a/tests/shell_themes/Plata.js b/tests/shell_themes/Plata.js
index 9529341..862ac71 100644
--- a/tests/shell_themes/Plata.js
+++ b/tests/shell_themes/Plata.js
@@ -21,21 +21,21 @@ const { Variants } = require('./_variants');
['', '-Compact'].forEach(size => {
- test(`Plata${size}`, t => {
- const variants = Variants.guess_from(`Plata${size}`);
- t.is(variants.get('day'), `Plata${size}`);
- t.is(variants.get('night'), `Plata-Noir${size}`);
- });
+ test(`Plata${size}`, t => {
+ const variants = Variants.guessFrom(`Plata${size}`);
+ t.is(variants.get('day'), `Plata${size}`);
+ t.is(variants.get('night'), `Plata-Noir${size}`);
+ });
- test(`Plata-Noir${size}`, t => {
- const variants = Variants.guess_from(`Plata-Noir${size}`);
- t.is(variants.get('day'), `Plata${size}`);
- t.is(variants.get('night'), `Plata-Noir${size}`);
- });
+ test(`Plata-Noir${size}`, t => {
+ const variants = Variants.guessFrom(`Plata-Noir${size}`);
+ t.is(variants.get('day'), `Plata${size}`);
+ t.is(variants.get('night'), `Plata-Noir${size}`);
+ });
- test(`Plata-Lumine${size}`, t => {
- const variants = Variants.guess_from(`Plata-Lumine${size}`);
- t.is(variants.get('day'), `Plata-Lumine${size}`);
- t.is(variants.get('night'), `Plata-Noir${size}`);
- });
-})
+ test(`Plata-Lumine${size}`, t => {
+ const variants = Variants.guessFrom(`Plata-Lumine${size}`);
+ t.is(variants.get('day'), `Plata-Lumine${size}`);
+ t.is(variants.get('night'), `Plata-Noir${size}`);
+ });
+});
diff --git a/tests/shell_themes/Qogir.js b/tests/shell_themes/Qogir.js
index 5f07e29..44e1f27 100644
--- a/tests/shell_themes/Qogir.js
+++ b/tests/shell_themes/Qogir.js
@@ -21,23 +21,23 @@ const { Variants } = require('./_variants');
['', '-manjaro', '-ubuntu'].forEach(color => {
- ['', '-win'].forEach(alt => {
- test(`Qogir${color}${alt}`, t => {
- const variants = Variants.guess_from(`Qogir${color}${alt}`);
- t.is(variants.get('day'), `Qogir${color}${alt}`);
- t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
- });
+ ['', '-win'].forEach(alt => {
+ test(`Qogir${color}${alt}`, t => {
+ const variants = Variants.guessFrom(`Qogir${color}${alt}`);
+ t.is(variants.get('day'), `Qogir${color}${alt}`);
+ t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
+ });
- test(`Qogir${color}${alt}-dark`, t => {
- const variants = Variants.guess_from(`Qogir${color}${alt}-dark`);
- t.is(variants.get('day'), `Qogir${color}${alt}`);
- t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
- });
+ test(`Qogir${color}${alt}-dark`, t => {
+ const variants = Variants.guessFrom(`Qogir${color}${alt}-dark`);
+ t.is(variants.get('day'), `Qogir${color}${alt}`);
+ t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
+ });
- test(`Qogir${color}${alt}light`, t => {
- const variants = Variants.guess_from(`Qogir${color}${alt}-light`);
- t.is(variants.get('day'), `Qogir${color}${alt}-light`);
- t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
- });
- });
+ test(`Qogir${color}${alt}light`, t => {
+ const variants = Variants.guessFrom(`Qogir${color}${alt}-light`);
+ t.is(variants.get('day'), `Qogir${color}${alt}-light`);
+ t.is(variants.get('night'), `Qogir${color}${alt}-dark`);
+ });
+ });
});
diff --git a/tests/shell_themes/Simply-Circles.js b/tests/shell_themes/Simply-Circles.js
index 125e214..ee05f43 100644
--- a/tests/shell_themes/Simply-Circles.js
+++ b/tests/shell_themes/Simply-Circles.js
@@ -21,17 +21,17 @@ const { Variants } = require('./_variants');
['', '_Blue', '_Cyan', '_Green', '_Orange', '_Purple'].forEach(color => {
- ['', '_Envolved'].forEach(variant => {
- test(`Simply_Circles${color}_Light${variant}`, t => {
- const variants = Variants.guess_from(`Simply_Circles${color}_Light${variant}`);
- t.is(variants.get('day'), `Simply_Circles${color}_Light${variant}`);
- t.is(variants.get('night'), `Simply_Circles${color}_Dark${variant}`);
- });
+ ['', '_Envolved'].forEach(variant => {
+ test(`Simply_Circles${color}_Light${variant}`, t => {
+ const variants = Variants.guessFrom(`Simply_Circles${color}_Light${variant}`);
+ t.is(variants.get('day'), `Simply_Circles${color}_Light${variant}`);
+ t.is(variants.get('night'), `Simply_Circles${color}_Dark${variant}`);
+ });
- test(`Simply_Circles${color}${variant}`, t => {
- const variants = Variants.guess_from(`Simply_Circles${color}_Dark${variant}`);
- t.is(variants.get('day'), `Simply_Circles${color}_Light${variant}`);
- t.is(variants.get('night'), `Simply_Circles${color}_Dark${variant}`);
- });
- })
+ test(`Simply_Circles${color}${variant}`, t => {
+ const variants = Variants.guessFrom(`Simply_Circles${color}_Dark${variant}`);
+ t.is(variants.get('day'), `Simply_Circles${color}_Light${variant}`);
+ t.is(variants.get('night'), `Simply_Circles${color}_Dark${variant}`);
+ });
+ });
});
diff --git a/tests/shell_themes/Teja.js b/tests/shell_themes/Teja.js
index e099598..54f432a 100644
--- a/tests/shell_themes/Teja.js
+++ b/tests/shell_themes/Teja.js
@@ -20,31 +20,31 @@ const test = require('ava');
const { Variants } = require('./_variants');
test('Teja', t => {
- const variants = Variants.guess_from('Teja');
- t.is(variants.get('day'), 'Teja');
- t.is(variants.get('night'), 'Teja_Dark');
+ const variants = Variants.guessFrom('Teja');
+ t.is(variants.get('day'), 'Teja');
+ t.is(variants.get('night'), 'Teja_Dark');
});
test('Teja_Dark', t => {
- const variants = Variants.guess_from('Teja_Dark');
- t.is(variants.get('day'), 'Teja');
- t.is(variants.get('night'), 'Teja_Dark');
+ const variants = Variants.guessFrom('Teja_Dark');
+ t.is(variants.get('day'), 'Teja');
+ t.is(variants.get('night'), 'Teja_Dark');
});
test('Teja_Darkest', t => {
- const variants = Variants.guess_from('Teja_Darkest');
- t.is(variants.get('day'), 'Teja');
- t.is(variants.get('night'), 'Teja_Darkest');
+ const variants = Variants.guessFrom('Teja_Darkest');
+ t.is(variants.get('day'), 'Teja');
+ t.is(variants.get('night'), 'Teja_Darkest');
});
test('Teja_Black', t => {
- const variants = Variants.guess_from('Teja_Black');
- t.is(variants.get('day'), 'Teja');
- t.is(variants.get('night'), 'Teja_Black');
+ const variants = Variants.guessFrom('Teja_Black');
+ t.is(variants.get('day'), 'Teja');
+ t.is(variants.get('night'), 'Teja_Black');
});
test('Teja_Light', t => {
- const variants = Variants.guess_from('Teja_Light');
- t.is(variants.get('day'), 'Teja_Light');
- t.is(variants.get('night'), 'Teja_Dark');
+ const variants = Variants.guessFrom('Teja_Light');
+ t.is(variants.get('day'), 'Teja_Light');
+ t.is(variants.get('night'), 'Teja_Dark');
});
diff --git a/tests/shell_themes/Vimix.js b/tests/shell_themes/Vimix.js
index 472a594..b9f2d7c 100644
--- a/tests/shell_themes/Vimix.js
+++ b/tests/shell_themes/Vimix.js
@@ -21,22 +21,22 @@ const { Variants } = require('./_variants');
['', '-laptop'].forEach(size => {
- ['', '-beryl', '-doder', '-ruby'].forEach(color => {
- test(`vimix${size}${color}`, t => {
- const variants = Variants.guess_from(`vimix${size}${color}`);
- t.is(variants.get('day'), `vimix${size}${color}`);
- t.is(variants.get('night'), `vimix-dark${size}${color}`);
- });
+ ['', '-beryl', '-doder', '-ruby'].forEach(color => {
+ test(`vimix${size}${color}`, t => {
+ const variants = Variants.guessFrom(`vimix${size}${color}`);
+ t.is(variants.get('day'), `vimix${size}${color}`);
+ t.is(variants.get('night'), `vimix-dark${size}${color}`);
+ });
- test(`vimix-dark${size}${color}`, t => {
- const variants = Variants.guess_from(`vimix-dark${size}${color}`);
- t.is(variants.get('day'), `vimix${size}${color}`);
- t.is(variants.get('night'), `vimix-dark${size}${color}`);
- });
- test(`vimix-light${size}${color}`, t => {
- const variants = Variants.guess_from(`vimix-light${size}${color}`);
- t.is(variants.get('day'), `vimix-light${size}${color}`);
- t.is(variants.get('night'), `vimix-dark${size}${color}`);
- });
- });
+ test(`vimix-dark${size}${color}`, t => {
+ const variants = Variants.guessFrom(`vimix-dark${size}${color}`);
+ t.is(variants.get('day'), `vimix${size}${color}`);
+ t.is(variants.get('night'), `vimix-dark${size}${color}`);
+ });
+ test(`vimix-light${size}${color}`, t => {
+ const variants = Variants.guessFrom(`vimix-light${size}${color}`);
+ t.is(variants.get('day'), `vimix-light${size}${color}`);
+ t.is(variants.get('night'), `vimix-dark${size}${color}`);
+ });
+ });
});
diff --git a/tests/shell_themes/Yaru.js b/tests/shell_themes/Yaru.js
index 2ed79d7..b3a5190 100644
--- a/tests/shell_themes/Yaru.js
+++ b/tests/shell_themes/Yaru.js
@@ -21,19 +21,19 @@ const { Variants } = require('./_variants');
test('Yaru', t => {
- const variants = Variants.guess_from('Yaru');
- t.is(variants.get('day'), 'Yaru');
- t.is(variants.get('night'), 'Yaru-dark');
+ const variants = Variants.guessFrom('Yaru');
+ t.is(variants.get('day'), 'Yaru');
+ t.is(variants.get('night'), 'Yaru-dark');
});
test('Yaru-dark', t => {
- const variants = Variants.guess_from('Yaru-dark');
- t.is(variants.get('day'), 'Yaru');
- t.is(variants.get('night'), 'Yaru-dark');
+ const variants = Variants.guessFrom('Yaru-dark');
+ t.is(variants.get('day'), 'Yaru');
+ t.is(variants.get('night'), 'Yaru-dark');
});
test('Yaru-light', t => {
- const variants = Variants.guess_from('Yaru-light');
- t.is(variants.get('day'), 'Yaru-light');
- t.is(variants.get('night'), 'Yaru-dark');
+ const variants = Variants.guessFrom('Yaru-light');
+ t.is(variants.get('day'), 'Yaru-light');
+ t.is(variants.get('night'), 'Yaru-dark');
});
diff --git a/tests/shell_themes/base.js b/tests/shell_themes/base.js
index 054d9c2..beb2990 100644
--- a/tests/shell_themes/base.js
+++ b/tests/shell_themes/base.js
@@ -20,31 +20,31 @@ const test = require('ava');
const { Variants } = require('./_variants');
test('base', t => {
- const variants = Variants.guess_from('base');
- t.is(variants.get('day'), 'base');
- t.is(variants.get('night'), 'base-dark');
+ const variants = Variants.guessFrom('base');
+ t.is(variants.get('day'), 'base');
+ t.is(variants.get('night'), 'base-dark');
});
test('base-dark', t => {
- const variants = Variants.guess_from('base-dark');
- t.is(variants.get('day'), 'base');
- t.is(variants.get('night'), 'base-dark');
+ const variants = Variants.guessFrom('base-dark');
+ t.is(variants.get('day'), 'base');
+ t.is(variants.get('night'), 'base-dark');
});
test('base-light', t => {
- const variants = Variants.guess_from('base-light');
- t.is(variants.get('day'), 'base-light');
- t.is(variants.get('night'), 'base-dark');
+ const variants = Variants.guessFrom('base-light');
+ t.is(variants.get('day'), 'base-light');
+ t.is(variants.get('night'), 'base-dark');
});
test('base-darker', t => {
- const variants = Variants.guess_from('base-darker');
- t.is(variants.get('day'), 'base-darker');
- t.is(variants.get('night'), 'base-dark');
+ const variants = Variants.guessFrom('base-darker');
+ t.is(variants.get('day'), 'base-darker');
+ t.is(variants.get('night'), 'base-dark');
});
test('base-darkest', t => {
- const variants = Variants.guess_from('base-darkest');
- t.is(variants.get('day'), 'base');
- t.is(variants.get('night'), 'base-darkest');
+ const variants = Variants.guessFrom('base-darkest');
+ t.is(variants.get('day'), 'base');
+ t.is(variants.get('night'), 'base-darkest');
});
diff --git a/tests/shell_themes/default.js b/tests/shell_themes/default.js
index 761d225..7d17d1a 100644
--- a/tests/shell_themes/default.js
+++ b/tests/shell_themes/default.js
@@ -20,7 +20,7 @@ const test = require('ava');
const { Variants } = require('./_variants');
test('default', t => {
- const variants = Variants.guess_from('');
- t.is(variants.get('day'), '');
- t.is(variants.get('night'), '');
+ const variants = Variants.guessFrom('');
+ t.is(variants.get('day'), '');
+ t.is(variants.get('night'), '');
});