This repository has been archived by the owner on Nov 2, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(extension): complete rewrite (#11)
- Loading branch information
Showing
13 changed files
with
1,704 additions
and
262 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,233 @@ | ||
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 | ||
- always-multiline | ||
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 | ||
global: readonly | ||
_: readonly | ||
C_: readonly | ||
N_: readonly | ||
ngettext: readonly | ||
parserOptions: | ||
ecmaVersion: 2019 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,4 @@ | ||
node_modules/ | ||
[email protected] | ||
*.compiled | ||
*.gresource |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,13 @@ | ||
# gnome screenshot locations extension | ||
Override GNOME's screenshot functionality to use a custom path as the current gsetting value | ||
does not reflect on the `gnome-screenshot` utility as it used to. | ||
# gnome-screenshot-locations-extension | ||
|
||
## download | ||
You can enable the extension [here](https://extensions.gnome.org/extension/1179/screenshot-locations/). | ||
Override GNOME's screenshot functionality to use a user-defined path, in the order of: | ||
|
||
## what it does | ||
Upon enabling the extension, it disables all default screenshot keys defined in | ||
`org.gnome.settings-daemon.plugins.media-keys` and overrides the default screenshot | ||
behavior to respect the save directory path. | ||
1. User defined path (added behaviour) | ||
2. Pictures directory (default behaviour) | ||
3. Home directory (default behaviour) | ||
|
||
The save directory path and extension are defined under `org.gnome.gnome-screenshot` | ||
with the keys `auto-save-directory` and `default-file-type`. You can customize the | ||
save directory with the extension preference tool. A valid example would be | ||
`/home/timur/Pictures/Screenshots` for instance. | ||
![extension preferences](./images/preferences.png) | ||
|
||
## acknowledgement | ||
This extension makes use of the excellent [gnome-shell-keybinder](https://github.com/rliang/gnome-shell-keybinder) library. | ||
## installation | ||
|
||
Available from GNOME extensions website [here](https://extensions.gnome.org/extension/1179/screenshot-locations/). |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
{ | ||
"name": "gnome-shell-screenshotlocations-extension", | ||
"description": "Change the default GNOME screenshot directory", | ||
"scripts": { | ||
"build:resources": "glib-compile-resources --sourcedir [email protected]/ [email protected]/org.gnome.shell.extensions.screenshotlocations.data.gresource.xml", | ||
"build:schema": "glib-compile-schemas [email protected]/schemas/", | ||
"build:link": "ln -s $(pwd)/[email protected]/ ~/.local/share/gnome-shell/extensions/", | ||
"build:zip": "cd [email protected]/ && zip -r ../[email protected] ./*", | ||
"build": "npm run build:resources && npm run build:schema && npm run build:zip" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/kiyui/gnome-shell-screenshotlocations-extension.git" | ||
}, | ||
"keywords": [ | ||
"gnome", | ||
"gjs", | ||
"screenshot", | ||
"extension" | ||
], | ||
"author": "Dafne Kiyui", | ||
"license": "GPL-2.0", | ||
"bugs": { | ||
"url": "https://github.com/kiyui/gnome-shell-screenshotlocations-extension/issues" | ||
}, | ||
"homepage": "https://github.com/kiyui/gnome-shell-screenshotlocations-extension#readme", | ||
"devDependencies": { | ||
"eslint": "^7.8.1", | ||
"husky": ">=4", | ||
"lint-staged": ">=10" | ||
}, | ||
"dependencies": {}, | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "lint-staged" | ||
} | ||
}, | ||
"lint-staged": { | ||
"*.js": "eslint --fix" | ||
} | ||
} |
Oops, something went wrong.