Compare commits
127 Commits
citadel-48
...
cherry-pic
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ff73f76527 | ||
![]() |
b642f9275e | ||
![]() |
4220cd6624 | ||
![]() |
47bcc09516 | ||
![]() |
1889a975ce | ||
![]() |
4b8e090d19 | ||
![]() |
e74e691d84 | ||
![]() |
3ad2baede0 | ||
![]() |
3c69cb5677 | ||
![]() |
bd3f8de1e3 | ||
![]() |
27455c4458 | ||
![]() |
5fca21b943 | ||
![]() |
064633f4d5 | ||
![]() |
159ac3f180 | ||
![]() |
ba435e5f2d | ||
![]() |
b0a12fee51 | ||
![]() |
b5591fef10 | ||
![]() |
04e8ebcb2d | ||
![]() |
99ebef504d | ||
![]() |
c8d91b2c30 | ||
![]() |
4099c446da | ||
![]() |
d625618d1b | ||
![]() |
a09feb4b47 | ||
![]() |
bc3c1e5a68 | ||
![]() |
b148a8bc60 | ||
![]() |
2327fc9287 | ||
![]() |
28407c95b3 | ||
![]() |
e210d3138b | ||
![]() |
3f24721c76 | ||
![]() |
1a045bb210 | ||
![]() |
db2917479a | ||
![]() |
5815f9ac0e | ||
![]() |
e84d10bf87 | ||
![]() |
40481314d2 | ||
![]() |
daf25f273d | ||
![]() |
bc6a3329b4 | ||
![]() |
d3934bd685 | ||
![]() |
504d4b7ea4 | ||
![]() |
fde8519002 | ||
![]() |
e8ae2ea432 | ||
![]() |
57e67e0f31 | ||
![]() |
894ca0dd07 | ||
![]() |
5f945294c8 | ||
![]() |
a4d0f15edb | ||
![]() |
f781bdbcc8 | ||
![]() |
e8e79173d9 | ||
![]() |
884a2623a0 | ||
![]() |
fbdb56eb6d | ||
![]() |
e2c5e471c0 | ||
![]() |
34306d7326 | ||
![]() |
c3bdaf7e41 | ||
![]() |
c9950442d9 | ||
![]() |
5cf104933e | ||
![]() |
79aeabcf76 | ||
![]() |
1974724cb1 | ||
![]() |
d159bbfd79 | ||
![]() |
881d330bc0 | ||
![]() |
6a9ce0f18c | ||
![]() |
473a666cc0 | ||
![]() |
4872d5969c | ||
![]() |
048796d145 | ||
![]() |
dfc016894e | ||
![]() |
7b19a6f9b6 | ||
![]() |
e4199c71cc | ||
![]() |
abb401eaa8 | ||
![]() |
118676bffb | ||
![]() |
dff855942e | ||
![]() |
1d3c1b1ee3 | ||
![]() |
7b75e9f5ed | ||
![]() |
4336952822 | ||
![]() |
2a2634439c | ||
![]() |
0d2d8cf623 | ||
![]() |
d64b1e6efb | ||
![]() |
bbf3a09e2a | ||
![]() |
e57a4e0937 | ||
![]() |
443d615edf | ||
![]() |
006d0e8521 | ||
![]() |
1a5a01622a | ||
![]() |
38e31b9f0d | ||
![]() |
fb7e70d562 | ||
![]() |
63a6c0d6f9 | ||
![]() |
05c1a6dce6 | ||
![]() |
4097f7943f | ||
![]() |
802c2fe532 | ||
![]() |
9497ddd68a | ||
![]() |
890f5b591f | ||
![]() |
5b0d013229 | ||
![]() |
60ee6ab4b7 | ||
![]() |
18a5c74362 | ||
![]() |
4895032054 | ||
![]() |
6b24ab572c | ||
![]() |
35a3320851 | ||
![]() |
156e05fe90 | ||
![]() |
cc0fac895c | ||
![]() |
a6783692c5 | ||
![]() |
1c27b68bcc | ||
![]() |
717c05a288 | ||
![]() |
e68604b1aa | ||
![]() |
0368ad29e9 | ||
![]() |
b982ce394e | ||
![]() |
025647f585 | ||
![]() |
7125b726ad | ||
![]() |
aebfab7207 | ||
![]() |
698bd5b3a9 | ||
![]() |
51e9f19f2f | ||
![]() |
6d38a4a7b3 | ||
![]() |
dfcc5ffb1e | ||
![]() |
8b80a4cf4d | ||
![]() |
01e894c028 | ||
![]() |
856adfd1f1 | ||
![]() |
efee3aa749 | ||
![]() |
15e72da648 | ||
![]() |
3f8bd1db25 | ||
![]() |
3a863ee341 | ||
![]() |
654a7af929 | ||
![]() |
8dd9cbac7f | ||
![]() |
331db650dd | ||
![]() |
428d38179d | ||
![]() |
fe9708ebd8 | ||
![]() |
8398769321 | ||
![]() |
768c08ba9d | ||
![]() |
69426cbfda | ||
![]() |
9f968e7378 | ||
![]() |
1ab5e6973a | ||
![]() |
1dea3341ec | ||
![]() |
8fda054dc5 | ||
![]() |
e989684602 |
@@ -1,23 +0,0 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.js]
|
||||
indent_size = 4
|
||||
|
||||
[*.[ch]]
|
||||
indent_size = 2
|
||||
|
||||
[*.gresource.xml]
|
||||
indent_size = 2
|
||||
|
||||
[*.ui]
|
||||
indent_size = 2
|
||||
|
||||
[meson.build]
|
||||
indent_size = 2
|
@@ -1,5 +1,3 @@
|
||||
extends:
|
||||
- ./lint/eslintrc-gjs.yml
|
||||
- ./lint/eslintrc-shell.yml
|
||||
parserOptions:
|
||||
sourceType: module
|
||||
|
82
.gitignore
vendored
@@ -1,10 +1,84 @@
|
||||
*.la
|
||||
*.lo
|
||||
*.o
|
||||
.deps
|
||||
.libs
|
||||
ABOUT-NLS
|
||||
ChangeLog
|
||||
INSTALL
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
data/.osk-layout-workbench
|
||||
data/org.gnome.Shell.desktop
|
||||
data/org.gnome.Shell.desktop.in
|
||||
data/gnome-shell-extension-prefs.desktop
|
||||
data/gnome-shell-extension-prefs.desktop.in
|
||||
data/gnome-shell-theme.gresource
|
||||
data/gschemas.compiled
|
||||
data/perf-background.xml
|
||||
data/org.gnome.shell.gschema.xml
|
||||
data/org.gnome.shell.gschema.valid
|
||||
data/org.gnome.Shell.PortalHelper.desktop
|
||||
data/org.gnome.Shell.PortalHelper.service
|
||||
data/theme/.sass-cache
|
||||
data/theme/gnome-shell*.css.map
|
||||
data/theme/gnome-shell*.css
|
||||
docs/reference/*/*.args
|
||||
docs/reference/*/*.bak
|
||||
docs/reference/*/*.hierarchy
|
||||
docs/reference/*/*.interfaces
|
||||
docs/reference/*/*.prerequisites
|
||||
docs/reference/*/*.sgml
|
||||
docs/reference/*/*.signals
|
||||
docs/reference/*/*.stamp
|
||||
docs/reference/*/*.txt
|
||||
docs/reference/*/*.types
|
||||
docs/reference/*/html/
|
||||
docs/reference/*/xml/
|
||||
docs/reference/shell/doc-gen-*
|
||||
js/misc/config.js
|
||||
js/js-resources.c
|
||||
js/js-resources.h
|
||||
man/gnome-shell.1
|
||||
omf.make
|
||||
po/*.gmo
|
||||
po/gnome-shell.pot
|
||||
subprojects/gvc
|
||||
subprojects/jasmine-gjs
|
||||
po/*.header
|
||||
po/*.sed
|
||||
po/*.sin
|
||||
po/.intltool-merge-cache
|
||||
po/Makevars.template
|
||||
po/POTFILES
|
||||
po/Rules-quot
|
||||
po/stamp-it
|
||||
scripts/launcher.pyc
|
||||
src/*.gir
|
||||
src/*.typelib
|
||||
src/*-enum-types.[ch]
|
||||
src/*-marshal.[ch]
|
||||
src/calendar-server/evolution-calendar.desktop
|
||||
src/calendar-server/org.gnome.Shell.CalendarServer.service
|
||||
src/gnome-shell
|
||||
src/gnome-shell-calendar-server
|
||||
src/gnome-shell-extension-tool
|
||||
src/gnome-shell-hotplug-sniffer
|
||||
src/gnome-shell-perf-helper
|
||||
src/gnome-shell-perf-tool
|
||||
src/gnome-shell-portal-helper
|
||||
src/hotplug-sniffer/org.gnome.Shell.HotplugSniffer.service
|
||||
src/org-gtk-application.[ch]
|
||||
src/run-js-test
|
||||
src/test-recorder
|
||||
src/test-recorder.ogg
|
||||
src/test-theme
|
||||
src/st.h
|
||||
src/stamp-st.h
|
||||
src/stamp-st.h.tmp
|
||||
src/st-scroll-view-fade-generated.c
|
||||
src/stamp-st-scroll-view-fade-generated.c
|
||||
stamp-h1
|
||||
tests/run-test.sh
|
||||
*~
|
||||
*.patch
|
||||
*.sw?
|
||||
.buildconfig
|
||||
.eslintcache
|
||||
.vscode
|
||||
|
427
.gitlab-ci.yml
@@ -1,334 +1,137 @@
|
||||
include:
|
||||
- project: 'GNOME/citemplates'
|
||||
file: 'templates/default-rules.yml'
|
||||
- project: 'GNOME/citemplates'
|
||||
file: 'flatpak/flatpak_ci_initiative.yml'
|
||||
- project: 'Infrastructure/freedesktop-ci-templates'
|
||||
file: 'templates/fedora.yml'
|
||||
ref: '057b052e682d8e5a20c1eb2dd60d5b87d2b56856'
|
||||
- project: 'Infrastructure/freedesktop-ci-templates'
|
||||
file: 'templates/ci-fairy.yml'
|
||||
ref: 'bc70242ffb8402243e934659ecc1a2d1c89eca2b'
|
||||
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
|
||||
inputs:
|
||||
job-stage: deploy
|
||||
dist-job-name: "dist-tarball"
|
||||
tarball-artifact-path: $TARBALL_ARTIFACT_PATH
|
||||
- component: gitlab.gnome.org/GNOME/citemplates/gnomeos-build-sysext@1.0.0-alpha.1
|
||||
inputs:
|
||||
meson-options:
|
||||
-Dextensions_app=false
|
||||
-Dextensions-tool:bash_completion=disabled
|
||||
|
||||
build-sysext:
|
||||
tags:
|
||||
- x86_64_v3
|
||||
before_script:
|
||||
- .gitlab-ci/install-gnomeos-sysext-dependencies.sh $CI_PROJECT_DIR/extension
|
||||
include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
|
||||
|
||||
stages:
|
||||
- pre-review
|
||||
- prep
|
||||
- review
|
||||
- build
|
||||
- test
|
||||
- analyze
|
||||
- docs
|
||||
- deploy
|
||||
|
||||
default:
|
||||
image: $MUTTER_CI_IMAGE
|
||||
- review
|
||||
- build
|
||||
- test
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
MUTTER_CI_IMAGE: registry.gitlab.gnome.org/gnome/mutter/fedora/42:x86_64-2025-03-31.0
|
||||
FDO_UPSTREAM_REPO: GNOME/gnome-shell
|
||||
BUNDLE: "extensions-git.flatpak"
|
||||
LINT_LOG: "eslint-report.xml"
|
||||
LINT_MR_LOG: "eslint-mr-report.xml"
|
||||
TARBALL_ARTIFACT_PATH: build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
|
||||
BUNDLE: "extensions-git.flatpak"
|
||||
JS_LOG: "js-report.txt"
|
||||
POT_LOG: "pot-update.txt"
|
||||
|
||||
.pipeline-guard:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
||||
- when: 'manual'
|
||||
.only_default: &only_default
|
||||
only:
|
||||
- branches
|
||||
- tags
|
||||
- merge_requests
|
||||
|
||||
.gnome-shell.fedora:
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: 42
|
||||
FDO_DISTRIBUTION_TAG: '2025-04-01.0'
|
||||
FDO_DISTRIBUTION_PACKAGES:
|
||||
gjs
|
||||
nodejs
|
||||
npm
|
||||
meson
|
||||
git
|
||||
'pkgconfig(gobject-introspection-1.0)'
|
||||
'pkgconfig(gio-2.0)'
|
||||
'pkgconfig(gio-unix-2.0)'
|
||||
'pkgconfig(gnome-autoar-0)'
|
||||
'pkgconfig(json-glib-1.0)'
|
||||
FDO_DISTRIBUTION_EXEC: |
|
||||
# For static analysis with eslint
|
||||
npm install -g eslint@^8.0.0 eslint-plugin-jsdoc@^46.0.0 &&
|
||||
check_commit_log:
|
||||
image: registry.gitlab.gnome.org/gnome/mutter/master:v3
|
||||
stage: review
|
||||
variables:
|
||||
GIT_DEPTH: "100"
|
||||
script:
|
||||
- ./.gitlab-ci/check-commit-log.sh
|
||||
only:
|
||||
- merge_requests
|
||||
|
||||
./.gitlab-ci/install-meson-project.sh \
|
||||
https://gitlab.gnome.org/World/javascript/gjs-ci-tools.git \
|
||||
main &&
|
||||
|
||||
./.gitlab-ci/install-meson-project.sh \
|
||||
--subdir subprojects/extensions-tool/ \
|
||||
--prepare ./generate-translations.sh \
|
||||
-Dman=false \
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell.git \
|
||||
main
|
||||
|
||||
check-commit-log:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
stage: pre-review
|
||||
variables:
|
||||
GIT_DEPTH: "100"
|
||||
script:
|
||||
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
||||
then
|
||||
ci-fairy check-commits --junit-xml=commit-message-junit-report.xml ;
|
||||
else
|
||||
echo "Not a merge request" ;
|
||||
fi
|
||||
rules:
|
||||
- !reference [.pipeline-guard, rules]
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- commit-message-junit-report.xml
|
||||
reports:
|
||||
junit: commit-message-junit-report.xml
|
||||
|
||||
check-merge-request:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
stage: pre-review
|
||||
script:
|
||||
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
||||
then
|
||||
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
|
||||
else
|
||||
echo "Not a merge request" ;
|
||||
fi
|
||||
rules:
|
||||
- !reference [.pipeline-guard, rules]
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- check-merge-request-report.xml
|
||||
reports:
|
||||
junit: check-merge-request-report.xml
|
||||
|
||||
build-fedora-container:
|
||||
extends:
|
||||
- .fdo.container-build@fedora@x86_64
|
||||
- .gnome-shell.fedora
|
||||
stage: prep
|
||||
|
||||
js-check:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell.fedora
|
||||
stage: review
|
||||
script:
|
||||
- gjs-check-syntax
|
||||
artifacts:
|
||||
reports:
|
||||
junit: gjs-check-syntax.junit.xml
|
||||
js_check:
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
|
||||
stage: review
|
||||
script:
|
||||
- find js -name '*.js' -exec js60 -c -s '{}' ';' 2>&1 | tee $JS_LOG
|
||||
- (! grep -q . $JS_LOG)
|
||||
<<: *only_default
|
||||
artifacts:
|
||||
paths:
|
||||
- ${JS_LOG}
|
||||
when: on_failure
|
||||
|
||||
eslint:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell.fedora
|
||||
stage: review
|
||||
script:
|
||||
- export NODE_PATH=$(npm root -g)
|
||||
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit --stdout
|
||||
artifacts:
|
||||
reports:
|
||||
junit: ${LINT_LOG}
|
||||
when: always
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
|
||||
stage: review
|
||||
script:
|
||||
- ./.gitlab-ci/run-eslint.sh
|
||||
<<: *only_default
|
||||
artifacts:
|
||||
paths:
|
||||
- reports
|
||||
when: always
|
||||
|
||||
eslint-doc:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell.fedora
|
||||
stage: review
|
||||
script:
|
||||
- export NODE_PATH=$(npm root -g)
|
||||
- ./.gitlab-ci/eslint-coding-style.sh
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
changes:
|
||||
- HACKING.md
|
||||
- .eslintrc.yml
|
||||
- lint/*
|
||||
potfile_check:
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
|
||||
stage: review
|
||||
script:
|
||||
- ./.gitlab-ci/check-potfiles.sh
|
||||
<<: *only_default
|
||||
|
||||
potfile-c-check:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell.fedora
|
||||
stage: review
|
||||
script:
|
||||
- ./.gitlab-ci/check-potfiles.sh
|
||||
|
||||
potfile-js-check:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell.fedora
|
||||
stage: review
|
||||
script:
|
||||
- gjs-check-potfiles
|
||||
artifacts:
|
||||
reports:
|
||||
junit: gjs-check-potfiles.junit.xml
|
||||
no_template_check:
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
|
||||
stage: review
|
||||
script:
|
||||
- ./.gitlab-ci/check-template-strings.sh
|
||||
<<: *only_default
|
||||
|
||||
build:
|
||||
stage: build
|
||||
needs: ["check-commit-log"]
|
||||
before_script:
|
||||
- .gitlab-ci/checkout-mutter.sh
|
||||
- meson mutter mutter/build --prefix=/usr
|
||||
- sudo meson install -C mutter/build
|
||||
script:
|
||||
- meson setup . build -Dbuildtype=debugoptimized -Dman=false -Dgtk_doc=true --werror --fatal-meson-warnings
|
||||
- meson compile -C build
|
||||
- sudo meson install -C build
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- mutter
|
||||
- build
|
||||
- subprojects/gvc
|
||||
- subprojects/jasmine-gjs
|
||||
image: registry.gitlab.gnome.org/gnome/mutter/master:v3
|
||||
stage: build
|
||||
before_script:
|
||||
- .gitlab-ci/checkout-mutter.sh
|
||||
- meson mutter mutter/build --prefix=/usr -Dtests=false
|
||||
- ninja -C mutter/build install
|
||||
script:
|
||||
- meson . build -Dbuiltype=debugoptimized -Dman=false --werror
|
||||
- ninja -C build
|
||||
- ninja -C build install
|
||||
<<: *only_default
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- mutter
|
||||
- build
|
||||
|
||||
test:
|
||||
stage: test
|
||||
needs: ["build"]
|
||||
variables:
|
||||
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
||||
NO_AT_BRIDGE: "1"
|
||||
before_script:
|
||||
- sudo meson install -C mutter/build
|
||||
- mkdir -m 700 $XDG_RUNTIME_DIR
|
||||
- mkdir -m 1777 /tmp/.X11-unix
|
||||
script:
|
||||
- dbus-run-session -- meson test -C build --no-rebuild --timeout-multiplier 5
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- build/meson-logs/testlog.txt
|
||||
reports:
|
||||
junit: build/meson-logs/testlog.junit.xml
|
||||
when: on_failure
|
||||
image: registry.gitlab.gnome.org/gnome/mutter/master:v3
|
||||
stage: test
|
||||
variables:
|
||||
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
||||
NO_AT_BRIDGE: "1"
|
||||
before_script:
|
||||
- ninja -C mutter/build install
|
||||
script:
|
||||
- dbus-run-session -- xvfb-run meson test -C build --no-rebuild
|
||||
<<: *only_default
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- build/meson-logs/testlog.txt
|
||||
when: on_failure
|
||||
|
||||
test-coverity:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "schedule" && $GNOME_SHELL_SCHEDULED_JOB == "coverity"'
|
||||
when: always
|
||||
- when: manual
|
||||
needs: ["build"]
|
||||
stage: analyze
|
||||
allow_failure: true
|
||||
before_script:
|
||||
- sudo meson install -C mutter/build
|
||||
script:
|
||||
- .gitlab-ci/download-coverity-tarball.sh
|
||||
- CC=clang meson coverity-build -Dman=false
|
||||
- ./coverity/cov-analysis-linux64-*/bin/cov-build --fs-capture-search js --dir cov-int meson compile -C coverity-build
|
||||
- tar czf cov-int.tar.gz cov-int
|
||||
- curl https://scan.coverity.com/builds?project=GNOME+Shell
|
||||
--form token=$COVERITY_TOKEN --form email=carlosg@gnome.org
|
||||
--form file=@cov-int.tar.gz --form version="`git describe --tags`"
|
||||
--form description="GitLab CI build"
|
||||
cache:
|
||||
key: coverity-tarball
|
||||
paths:
|
||||
- coverity
|
||||
test-pot:
|
||||
image: registry.gitlab.gnome.org/gnome/mutter/master:v3
|
||||
stage: test
|
||||
before_script:
|
||||
- ninja -C mutter/build install
|
||||
script:
|
||||
# Check that pot files are generated correctly:
|
||||
# https://savannah.gnu.org/bugs/?50920#comment5
|
||||
- ninja -C build gnome-shell-pot 2>&1 | awk '
|
||||
BEGIN { start=0; }
|
||||
start==1 { print $0; }
|
||||
/gnome-shell-pot/ { start=1; }
|
||||
' | tee $POT_LOG
|
||||
- (! grep -q . $POT_LOG)
|
||||
<<: *only_default
|
||||
|
||||
flatpak:
|
||||
stage: build
|
||||
needs: ["check-commit-log"]
|
||||
variables:
|
||||
SUBPROJECT: "subprojects/extensions-app"
|
||||
# Your manifest path
|
||||
MANIFEST_PATH: "$SUBPROJECT/build-aux/flatpak/org.gnome.Extensions.json"
|
||||
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
||||
FLATPAK_MODULE: "gnome-extensions-app"
|
||||
APP_ID: "org.gnome.Extensions.Devel"
|
||||
extends: .flatpak
|
||||
stage: build
|
||||
variables:
|
||||
SUBPROJECT: "subprojects/extensions-app"
|
||||
# Your manifest path
|
||||
MANIFEST_PATH: "$SUBPROJECT/build-aux/flatpak/org.gnome.Extensions.json"
|
||||
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
||||
FLATPAK_MODULE: "gnome-extensions-app"
|
||||
APP_ID: "org.gnome.Extensions"
|
||||
MESON_ARGS: "$SUBPROJECT"
|
||||
extends: .flatpak
|
||||
before_script:
|
||||
- flatpak run --command=$SUBPROJECT/generate-translations.sh
|
||||
--filesystem=host org.gnome.Sdk//master
|
||||
<<: *only_default
|
||||
|
||||
nightly:
|
||||
extends: '.publish_nightly'
|
||||
needs:
|
||||
- flatpak
|
||||
|
||||
dist:
|
||||
variables:
|
||||
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
||||
NO_AT_BRIDGE: "1"
|
||||
stage: deploy
|
||||
needs: ["build"]
|
||||
before_script:
|
||||
- sudo meson install -C mutter/build
|
||||
- mkdir -m 700 $XDG_RUNTIME_DIR
|
||||
- mkdir -m 1777 /tmp/.X11-unix
|
||||
script:
|
||||
- dbus-run-session meson dist -C build --include-subprojects
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
changes:
|
||||
- "**/meson.build"
|
||||
- meson/*
|
||||
|
||||
dist-tarball:
|
||||
extends: dist
|
||||
needs:
|
||||
- build
|
||||
artifacts:
|
||||
expose_as: 'Get tarball here'
|
||||
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
||||
when: always
|
||||
paths:
|
||||
- $TARBALL_ARTIFACT_PATH
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
reference:
|
||||
stage: docs
|
||||
needs: ["build"]
|
||||
script:
|
||||
- mkdir -p reference/
|
||||
- mv build/docs/reference/{shell/shell,st/st} reference/
|
||||
artifacts:
|
||||
paths:
|
||||
- reference
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
needs: ['reference']
|
||||
script:
|
||||
- mv reference/ public/
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME"'
|
||||
|
||||
build-toolbox:
|
||||
image: quay.io/freedesktop.org/ci-templates:container-build-base-2021-07-29.0
|
||||
stage: deploy
|
||||
needs: []
|
||||
script:
|
||||
- .gitlab-ci/build-toolbox-image.sh $MUTTER_CI_IMAGE
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME"'
|
||||
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/ && $CI_PROJECT_NAMESPACE == "GNOME"'
|
||||
BUNDLES: '$BUNDLE'
|
||||
|
18
.gitlab-ci/Dockerfile.extension-ci
Normal file
@@ -0,0 +1,18 @@
|
||||
FROM registry.fedoraproject.org/fedora:latest
|
||||
|
||||
RUN dnf -y update && dnf -y upgrade && \
|
||||
dnf install -y 'dnf-command(copr)' git && \
|
||||
|
||||
# For syntax checks with `find . -name '*.js' -exec js60 -c -s '{}' ';'`
|
||||
dnf install -y findutils mozjs60-devel && \
|
||||
|
||||
# For static analysis with eslint
|
||||
dnf install -y nodejs && \
|
||||
npm install -g eslint && \
|
||||
|
||||
# Shameless plug for my own tooling; useful for generating zip
|
||||
dnf copr enable -y fmuellner/gnome-shell-ci && \
|
||||
dnf install -y gnome-extensions-tool meson && \
|
||||
|
||||
dnf clean all && \
|
||||
rm -rf /var/cache/dnf
|
@@ -1,99 +0,0 @@
|
||||
#!/bin/bash
|
||||
# vi: sw=2 ts=4
|
||||
|
||||
set -e
|
||||
|
||||
die() {
|
||||
echo "$@" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
check_image_base() {
|
||||
local base=$(
|
||||
skopeo inspect docker://$TOOLBOX_IMAGE 2>/dev/null |
|
||||
jq -r '.Labels["org.opencontainers.image.base.name"]')
|
||||
[[ "$base" == "$MUTTER_CI_IMAGE" ]]
|
||||
}
|
||||
|
||||
build_container() {
|
||||
echo Building $TOOLBOX_IMAGE from $MUTTER_CI_IMAGE
|
||||
|
||||
export BUILDAH_ISOLATION=chroot
|
||||
export BUILDAH_FORMAT=docker
|
||||
|
||||
local build_cntr=$(buildah from $MUTTER_CI_IMAGE)
|
||||
local build_mnt=$(buildah mount $build_cntr)
|
||||
|
||||
[[ -n "$build_mnt" && -n "$build_cntr" ]] || die "Failed to mount the container"
|
||||
|
||||
local extra_packages=(
|
||||
passwd # needed by toolbox
|
||||
gdb
|
||||
gnome-console # can't do without *some* terminal
|
||||
flatpak-spawn # run host commands
|
||||
flatpak # for host apps
|
||||
nautilus # FileChooser portal
|
||||
adwaita-fonts-all # system fonts
|
||||
gnome-backgrounds # no blank background!
|
||||
)
|
||||
local debug_packages=(
|
||||
glib2 # makes gdb much more useful
|
||||
)
|
||||
buildah run $build_cntr dnf config-manager setopt '*-openh264.enabled=0'
|
||||
buildah run $build_cntr dnf install -y "${extra_packages[@]}"
|
||||
buildah run $build_cntr dnf debuginfo-install -y "${debug_packages[@]}"
|
||||
buildah run $build_cntr dnf clean all
|
||||
buildah run $build_cntr rm -rf /var/lib/cache/dnf
|
||||
|
||||
# disable gnome-keyring activation:
|
||||
# it either asks for unlocking the login keyring on startup, or it detects
|
||||
# the running host daemon and doesn't export the object on the bus, which
|
||||
# blocks the activating service until it hits the timeout
|
||||
buildah run $build_cntr rm /usr/share/dbus-1/services/org.freedesktop.secrets.service
|
||||
|
||||
local srcdir=$(realpath $(dirname $0))
|
||||
buildah copy --chmod 755 $build_cntr $srcdir/install-meson-project.sh /usr/libexec
|
||||
|
||||
# include convenience script for updating mutter dependency
|
||||
local update_mutter=$(mktemp)
|
||||
cat > $update_mutter <<-EOF
|
||||
#!/bin/sh
|
||||
TOOLBOX=\$(. /run/.containerenv; echo \$name)
|
||||
/usr/libexec/install-meson-project.sh \\
|
||||
--destdir=/ --destdir=/var/lib/extensions/\$TOOLBOX \\
|
||||
https://gitlab.gnome.org/GNOME/mutter.git $MUTTER_BRANCH
|
||||
EOF
|
||||
buildah copy --chmod 755 $build_cntr $update_mutter /usr/bin/update-mutter
|
||||
|
||||
buildah config --env HOME- \
|
||||
--label com.github.containers.toolbox=true \
|
||||
--label org.opencontainers.image.base.name=$MUTTER_CI_IMAGE \
|
||||
$build_cntr
|
||||
|
||||
buildah commit $build_cntr $TOOLBOX_IMAGE
|
||||
}
|
||||
|
||||
|
||||
MUTTER_CI_IMAGE=$1
|
||||
MUTTER_BRANCH=${2:-$CI_COMMIT_BRANCH}
|
||||
|
||||
TOOLBOX_IMAGE=$CI_REGISTRY_IMAGE/toolbox:${MUTTER_BRANCH#gnome-}
|
||||
|
||||
[[ -n "$MUTTER_CI_IMAGE" && -n "$MUTTER_BRANCH" ]] ||
|
||||
die "Usage: $(basename $0) MUTTER_CI_IMAGE [MUTTER_BRANCH]"
|
||||
|
||||
if [[ -z "$FORCE_REBUILD" ]]; then
|
||||
if check_image_base; then
|
||||
echo Image $TOOLBOX_IMAGE exists and is up to date.
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
[[ -n "$CI_REGISTRY" && -n "$CI_REGISTRY_USER" && -n "$CI_REGISTRY_PASSWORD" ]] ||
|
||||
die "Insufficient information to log in."
|
||||
|
||||
podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
|
||||
build_container
|
||||
|
||||
podman push $TOOLBOX_IMAGE
|
31
.gitlab-ci/check-commit-log.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
||||
echo Cannot review non-merge request
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||
|
||||
branch_point=$(git merge-base HEAD FETCH_HEAD)
|
||||
|
||||
commits=$(git log --format='format:%H' $branch_point..$CI_COMMIT_SHA)
|
||||
|
||||
if [ -z "$commits" ]; then
|
||||
echo Commit range empty
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function commit_message_has_url() {
|
||||
commit=$1
|
||||
commit_message=$(git show -s --format='format:%b' $commit)
|
||||
echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(-/\)\?\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)"
|
||||
return $?
|
||||
}
|
||||
|
||||
for commit in $commits; do
|
||||
if ! commit_message_has_url $commit; then
|
||||
echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)"
|
||||
exit 1
|
||||
fi
|
||||
done
|
@@ -1,22 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
srcdirs="src subprojects/extensions-tool"
|
||||
uidirs="js subprojects/extensions-app"
|
||||
desktopdirs="data subprojects/extensions-app/ subprojects/extensions-tool"
|
||||
srcdirs="js src subprojects/extensions-tool"
|
||||
globs=('*.js' '*.c')
|
||||
|
||||
# find source files that contain gettext keywords
|
||||
files=$(grep -lR --include='*.c' '\(gettext\|[^I_)]_\)(' $srcdirs)
|
||||
|
||||
# find ui files that contain translatable string
|
||||
files="$files "$(grep -lRi --include='*.ui' 'translatable="[ty1]' $uidirs)
|
||||
|
||||
# find .desktop files
|
||||
files="$files "$(find $desktopdirs -name '*.desktop*')
|
||||
|
||||
# filter out excluded files
|
||||
if [ -f po/POTFILES.skip ]; then
|
||||
files=$(for f in $files; do ! grep -q ^$f po/POTFILES.skip && echo $f; done)
|
||||
fi
|
||||
files=$(grep -lR ${globs[@]/#/--include=} '\(gettext\|[^I_)]_\)(' $srcdirs)
|
||||
|
||||
# find those that aren't listed in POTFILES.in
|
||||
missing=$(for f in $files; do ! grep -q ^$f po/POTFILES.in && echo $f; done)
|
||||
|
23
.gitlab-ci/check-template-strings.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# find files from POTFILES.in that use js template strings
|
||||
baddies=$(grep -l '${' $(grep ^js po/POTFILES.in))
|
||||
|
||||
if [ ${#baddies} -eq 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cat >&2 <<EOT
|
||||
|
||||
xgettext cannot handle template strings properly, so we ban their use
|
||||
in files with translatable strings.
|
||||
|
||||
The following files are listed in po/POTFILES.in and use template strings:
|
||||
|
||||
EOT
|
||||
for f in $baddies; do
|
||||
echo " $f" >&2
|
||||
done
|
||||
echo >&2
|
||||
|
||||
exit 1
|
@@ -1,19 +1,11 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
fetch() {
|
||||
local remote=$1
|
||||
local ref=$2
|
||||
|
||||
git fetch --quiet --depth=1 $remote $ref 2>/dev/null
|
||||
}
|
||||
|
||||
mutter_target=
|
||||
|
||||
echo -n Cloning into mutter ...
|
||||
if git clone --quiet --depth=1 https://gitlab.gnome.org/GNOME/mutter.git; then
|
||||
echo \ done
|
||||
else
|
||||
echo \ failed
|
||||
git clone https://gitlab.gnome.org/GNOME/mutter.git
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo Checkout failed
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -23,47 +15,18 @@ if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
||||
merge_request_remote=${CI_MERGE_REQUEST_SOURCE_PROJECT_URL//gnome-shell/mutter}
|
||||
merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
|
||||
|
||||
echo -n Looking for $merge_request_branch on remote ...
|
||||
if fetch $merge_request_remote $merge_request_branch; then
|
||||
echo \ found
|
||||
echo Looking for $merge_request_branch on remote ...
|
||||
if git fetch -q $merge_request_remote $merge_request_branch 2>/dev/null; then
|
||||
mutter_target=FETCH_HEAD
|
||||
else
|
||||
echo \ not found
|
||||
|
||||
echo -n Looking for $CI_MERGE_REQUEST_TARGET_BRANCH_NAME instead ...
|
||||
if fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME; then
|
||||
echo \ found
|
||||
mutter_target=FETCH_HEAD
|
||||
else
|
||||
echo \ not found
|
||||
fi
|
||||
mutter_target=origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||
echo Using $mutter_target instead
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$mutter_target" ]; then
|
||||
ref_remote=${CI_PROJECT_URL//gnome-shell/mutter}
|
||||
echo -n Looking for $CI_COMMIT_REF_NAME on remote ...
|
||||
if fetch $ref_remote $CI_COMMIT_REF_NAME; then
|
||||
echo \ found
|
||||
mutter_target=FETCH_HEAD
|
||||
else
|
||||
echo \ not found
|
||||
fi
|
||||
fi
|
||||
|
||||
fallback_branch=${CI_COMMIT_TAG:+gnome-}${CI_COMMIT_TAG%%.*}
|
||||
if [ -z "$mutter_target" -a "$fallback_branch" ]; then
|
||||
echo -n Looking for $fallback_branch instead ...
|
||||
if fetch origin $fallback_branch; then
|
||||
echo \ found
|
||||
mutter_target=FETCH_HEAD
|
||||
else
|
||||
echo \ not found
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$mutter_target" ]; then
|
||||
mutter_target=HEAD
|
||||
mutter_target=$(git branch -r -l origin/$CI_COMMIT_REF_NAME)
|
||||
mutter_target=${mutter_target:-origin/master}
|
||||
echo Using $mutter_target instead
|
||||
fi
|
||||
|
||||
|
@@ -1,18 +0,0 @@
|
||||
patterns:
|
||||
deny:
|
||||
- regex: '^(st-|St)'
|
||||
message: Commit message subject should not be prefixed with 'st-' or 'St', use 'st/' instead
|
||||
where: subject
|
||||
- regex: '^[^:]+: [a-z]'
|
||||
message: "Commit message subject should be properly Capitalized. E.g. 'window: Marginalize extradicity'"
|
||||
where: subject
|
||||
- regex: '^\S*\.(js|c|h):'
|
||||
message: Commit message subject prefix should not include .c, .h etc.
|
||||
where: subject
|
||||
- regex: '([^.]\.|[:,;])\s*$'
|
||||
message: Commit message subject should not end with punctuation
|
||||
where: subject
|
||||
- regex: '^[Cc]lose[sd]?:?\s*#[0-9]+'
|
||||
message: Closes instructions must be a full link
|
||||
- regex: '^[Ff]ix(e[sd]?)?:?\s*(#[0-9]+|https://)'
|
||||
message: \"Fixes\" should be used with commits, use \"Closes\" for issues
|
@@ -1,38 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# We need a coverity token to fetch the tarball
|
||||
if [ -x $COVERITY_TOKEN ]
|
||||
then
|
||||
echo "No coverity token. Run this job from a protected branch."
|
||||
exit -1
|
||||
fi
|
||||
|
||||
mkdir -p coverity
|
||||
|
||||
# Download and check MD5 first
|
||||
curl https://scan.coverity.com/download/linux64 \
|
||||
--data "token=$COVERITY_TOKEN&project=GNOME+Shell&md5=1" \
|
||||
--output /tmp/coverity_tool.md5
|
||||
|
||||
diff /tmp/coverity_tool.md5 coverity/coverity_tool.md5 >/dev/null 2>&1
|
||||
|
||||
if [ $? -eq 0 -a -d coverity/cov-analysis* ]
|
||||
then
|
||||
echo "Coverity tarball is up-to-date"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Download and extract coverity tarball
|
||||
curl https://scan.coverity.com/download/linux64 \
|
||||
--data "token=$COVERITY_TOKEN&project=GNOME+Shell" \
|
||||
--output /tmp/coverity_tool.tgz
|
||||
|
||||
rm -rf ./coverity/cov-analysis*
|
||||
|
||||
tar zxf /tmp/coverity_tool.tgz -C coverity/
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
mv /tmp/coverity_tool.md5 coverity/
|
||||
fi
|
||||
|
||||
rm /tmp/coverity_tool.tgz
|
@@ -1,43 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
SRCDIR=$(realpath $(dirname $0)/..)
|
||||
OUTDIR=$(mktemp --directory --tmpdir=$SRCDIR)
|
||||
trap "rm -rf $OUTDIR" EXIT
|
||||
|
||||
# Turn ```javascript``` code snippets in the
|
||||
# style guide into .js files in $OUTDIR
|
||||
cat <<'EOF' | python3 - docs/js-coding-style.md $OUTDIR
|
||||
import sys
|
||||
import re
|
||||
|
||||
def extract_js_snippets(input_file, output_dir):
|
||||
with open(input_file, 'r') as file:
|
||||
content = file.read()
|
||||
|
||||
# Find all JavaScript code blocks using regex
|
||||
js_blocks = re.findall(r'```javascript\n(.*?)\n?```', content, flags=re.DOTALL)
|
||||
|
||||
for i, (match) in enumerate(js_blocks):
|
||||
js_code = match
|
||||
|
||||
# Remove one level of indent
|
||||
js_code = re.sub(r'^ {4}', '', js_code, flags=re.MULTILINE)
|
||||
|
||||
# The following are class snippets, turn them
|
||||
# into functions to not confuse eslint
|
||||
js_code = re.sub(r'^moveActor', 'function moveActor', js_code)
|
||||
js_code = re.sub(r'^desaturateActor', 'function desaturateActor', js_code)
|
||||
|
||||
# Finally, create a .js file in the output directory
|
||||
output_filename = f'{output_dir}/{i}.js'
|
||||
with open(output_filename, 'w') as out_file:
|
||||
out_file.write(f'{js_code}\n')
|
||||
|
||||
input_file, output_dir = sys.argv[1:]
|
||||
extract_js_snippets(input_file, output_dir)
|
||||
EOF
|
||||
|
||||
eslint \
|
||||
--rule 'no-undef: off' \
|
||||
--rule 'no-unused-vars: off' \
|
||||
--rule 'no-invalid-this: off' $OUTDIR/*.js
|
@@ -1,31 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script ensures that all dependencies required to build and run
|
||||
# a GNOME Shell system extension are present in:
|
||||
#
|
||||
# The building environment, by installing these dependencies to the container.
|
||||
# The running environment, by bundling these dependencies with the extension.
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
# Install dependencies to $SYSEXT_DEST_DIR to bundle these with the extension.
|
||||
|
||||
SYSEXT_DEST_DIR="$(realpath $1)"
|
||||
|
||||
# Ensure that we're building against (and bundling) the right mutter branch
|
||||
# and its dependencies:
|
||||
|
||||
SCRIPT_DIR="$(dirname $0)"
|
||||
|
||||
$SCRIPT_DIR/checkout-mutter.sh
|
||||
./mutter/.gitlab-ci/install-gnomeos-sysext-dependencies.sh $SYSEXT_DEST_DIR
|
||||
|
||||
meson setup mutter/build mutter --prefix=/usr --libdir="lib/$(gcc -print-multiarch)"
|
||||
meson compile -C mutter/build
|
||||
meson install -C mutter/build --destdir $SYSEXT_DEST_DIR
|
||||
|
||||
sudo meson install -C mutter/build
|
||||
|
||||
# Ensure that any other dependency missing in GNOME OS is installed and bundled
|
||||
# here as it was done with mutter:
|
@@ -1,107 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
usage() {
|
||||
cat <<-EOF
|
||||
Usage: $(basename $0) [OPTION…] REPO_URL COMMIT
|
||||
|
||||
Check out and install a meson project
|
||||
|
||||
Options:
|
||||
-Dkey=val Option to pass on to meson
|
||||
--subdir=DIR Build subdirectory instead of whole project
|
||||
--prepare=SCRIPT Script to run before build
|
||||
--libdir=DIR Setup the project with a different libdir
|
||||
--destdir=DIR Install the project to DIR, can be used
|
||||
several times to install to multiple destdirs
|
||||
|
||||
-h, --help Display this help
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
TEMP=$(getopt \
|
||||
--name=$(basename $0) \
|
||||
--options='D:h' \
|
||||
--longoptions='subdir:' \
|
||||
--longoptions='prepare:' \
|
||||
--longoptions='libdir:' \
|
||||
--longoptions='destdir:' \
|
||||
--longoptions='help' \
|
||||
-- "$@")
|
||||
|
||||
eval set -- "$TEMP"
|
||||
unset TEMP
|
||||
|
||||
MESON_OPTIONS=()
|
||||
SUBDIR=.
|
||||
PREPARE=:
|
||||
DESTDIRS=()
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
-D)
|
||||
MESON_OPTIONS+=( -D$2 )
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--subdir)
|
||||
SUBDIR=$2
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--prepare)
|
||||
PREPARE=$2
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--libdir)
|
||||
MESON_OPTIONS+=( --libdir=$2 )
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--destdir)
|
||||
DESTDIRS+=( $2 )
|
||||
shift 2
|
||||
;;
|
||||
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ $# -lt 2 ]]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO_URL="$1"
|
||||
COMMIT="$2"
|
||||
|
||||
[[ ${#DESTDIRS[@]} == 0 ]] && DESTDIRS+=( / )
|
||||
|
||||
CHECKOUT_DIR=$(mktemp --directory)
|
||||
trap "rm -rf $CHECKOUT_DIR" EXIT
|
||||
|
||||
git clone --depth 1 "$REPO_URL" -b "$COMMIT" "$CHECKOUT_DIR"
|
||||
|
||||
pushd "$CHECKOUT_DIR/$SUBDIR"
|
||||
sh -c "$PREPARE"
|
||||
meson setup --prefix=/usr _build "${MESON_OPTIONS[@]}"
|
||||
|
||||
# Install it to all specified dest dirs
|
||||
for destdir in "${DESTDIRS[@]}"; do
|
||||
# don't use --destdir when installing to root,
|
||||
# so post-install hooks are run
|
||||
[[ $destdir == / ]] && destdir=
|
||||
sudo meson install -C _build ${destdir:+--destdir=$destdir}
|
||||
done
|
||||
popd
|
@@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const {ESLint} = require('eslint');
|
||||
|
||||
console.log(`Running ESLint version ${ESLint.version}...`);
|
||||
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
function hasOption(...names) {
|
||||
return process.argv.some(arg => names.includes(arg));
|
||||
}
|
||||
|
||||
function getOption(...names) {
|
||||
const optIndex =
|
||||
process.argv.findIndex(arg => names.includes(arg)) + 1;
|
||||
|
||||
if (optIndex === 0)
|
||||
return undefined;
|
||||
|
||||
return process.argv[optIndex];
|
||||
}
|
||||
|
||||
(async function main() {
|
||||
const outputOption = getOption('--output-file', '-o');
|
||||
const outputPath = outputOption ? path.resolve(outputOption) : null;
|
||||
|
||||
const sourceDir = path.dirname(process.argv[1]);
|
||||
process.chdir(path.resolve(sourceDir, '..'));
|
||||
|
||||
const sources = ['js', 'subprojects/extensions-app/js', 'tests'];
|
||||
const eslint = new ESLint({cache: true});
|
||||
|
||||
const results = await eslint.lintFiles(sources);
|
||||
const formatter = await eslint.loadFormatter(getOption('--format', '-f'));
|
||||
const resultText = formatter.format(results);
|
||||
|
||||
if (outputPath) {
|
||||
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
|
||||
fs.writeFileSync(outputPath, resultText);
|
||||
|
||||
if (hasOption('--stdout')) {
|
||||
const consoleFormatter = await eslint.loadFormatter();
|
||||
console.log(consoleFormatter.format(results));
|
||||
}
|
||||
} else {
|
||||
console.log(resultText);
|
||||
}
|
||||
|
||||
process.exitCode = results.some(r => r.errorCount > 0) ? 1 : 0;
|
||||
})().catch((error) => {
|
||||
process.exitCode = 1;
|
||||
console.error(error);
|
||||
});
|
114
.gitlab-ci/run-eslint.sh
Executable file
@@ -0,0 +1,114 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
OUTPUT_REGULAR=reports/lint-regular-report.txt
|
||||
OUTPUT_LEGACY=reports/lint-legacy-report.txt
|
||||
OUTPUT_FINAL=reports/lint-common-report.txt
|
||||
|
||||
OUTPUT_MR=reports/lint-mr-report.txt
|
||||
|
||||
LINE_CHANGES=changed-lines.txt
|
||||
|
||||
is_empty() {
|
||||
(! grep -q . $1)
|
||||
}
|
||||
|
||||
run_eslint() {
|
||||
ARGS_LEGACY='--config lint/eslintrc-legacy.yml'
|
||||
|
||||
local extra_args=ARGS_$1
|
||||
local output_var=OUTPUT_$1
|
||||
local output=${!output_var}
|
||||
|
||||
# ensure output exists even if eslint doesn't report any errors
|
||||
mkdir -p $(dirname $output)
|
||||
touch $output
|
||||
|
||||
eslint -f unix ${!extra_args} -o $output js subprojects/extensions-app/js
|
||||
}
|
||||
|
||||
list_commit_range_additions() {
|
||||
# Turn raw context-less git-diff into a list of
|
||||
# filename:lineno pairs of new (+) lines
|
||||
git diff -U0 "$@" -- js |
|
||||
awk '
|
||||
BEGIN { file=""; }
|
||||
/^+++ b/ { file=substr($0,7); }
|
||||
/^@@ / {
|
||||
len = split($3,a,",")
|
||||
start=a[1]
|
||||
count=(len > 1) ? a[2] : 1
|
||||
|
||||
for (line=start; line<start+count; line++)
|
||||
printf "%s/%s:%d:\n",ENVIRON["PWD"],file,line;
|
||||
}'
|
||||
}
|
||||
|
||||
copy_matched_lines() {
|
||||
local source=$1
|
||||
local matches=$2
|
||||
local target=$3
|
||||
|
||||
echo -n > $target
|
||||
for l in $(<$matches); do
|
||||
grep $l $source >> $target
|
||||
done
|
||||
}
|
||||
|
||||
create_common() {
|
||||
# comm requires sorted input;
|
||||
# we also strip the error message to make the following a "common" error:
|
||||
# regular:
|
||||
# file.js:42:23 Indentation of 55, expected 42
|
||||
# legacy:
|
||||
# file.js:42:23 Indentation of 55, extected 24
|
||||
prepare() {
|
||||
sed 's: .*::' $1 | sort
|
||||
}
|
||||
|
||||
comm -12 <(prepare $OUTPUT_REGULAR) <(prepare $OUTPUT_LEGACY) >$OUTPUT_FINAL.tmp
|
||||
|
||||
# Now add back the stripped error messages
|
||||
copy_matched_lines $OUTPUT_REGULAR $OUTPUT_FINAL.tmp $OUTPUT_FINAL
|
||||
rm $OUTPUT_FINAL.tmp
|
||||
}
|
||||
|
||||
# Disable MR handling for now. We aren't ready to enforce
|
||||
# non-legacy style just yet ...
|
||||
unset CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||
|
||||
REMOTE=${1:-$CI_MERGE_REQUEST_PROJECT_URL.git}
|
||||
BRANCH_NAME=${2:-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
|
||||
|
||||
if [ "$BRANCH_NAME" ]; then
|
||||
git fetch $REMOTE $BRANCH_NAME
|
||||
branch_point=$(git merge-base HEAD FETCH_HEAD)
|
||||
commit_range=$branch_point...HEAD
|
||||
|
||||
list_commit_range_additions $commit_range > $LINE_CHANGES
|
||||
|
||||
# Don't bother with running lint when no JS changed
|
||||
if is_empty $LINE_CHANGES; then
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo Generating lint report using regular configuration
|
||||
run_eslint REGULAR
|
||||
echo Generating lint report using legacy configuration
|
||||
run_eslint LEGACY
|
||||
echo Done.
|
||||
create_common
|
||||
|
||||
if ! is_empty $OUTPUT_FINAL; then
|
||||
cat $OUTPUT_FINAL
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Just show the report and succeed when not testing a MR
|
||||
if [ -z "$BRANCH_NAME" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
copy_matched_lines $OUTPUT_REGULAR $LINE_CHANGES $OUTPUT_MR
|
||||
cat $OUTPUT_MR
|
||||
is_empty $OUTPUT_MR
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Please read https://gitlab.gnome.org/GNOME/gnome-shell/-/tree/main#reporting-bugs
|
||||
<!--
|
||||
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
|
||||
first to ensure that you create a clear and specific issue.
|
||||
-->
|
||||
|
||||
@@ -8,15 +8,8 @@ first to ensure that you create a clear and specific issue.
|
||||
<!--
|
||||
Provide at least the following information:
|
||||
* Your OS and version
|
||||
* Affected GNOME Shell version (see https://release.gnome.org/calendar/
|
||||
for currently supported versions)
|
||||
* Affected GNOME Shell version
|
||||
* Does this issue appear in XOrg and/or Wayland
|
||||
* Does this issue happen without extensions (please follow instructions below)
|
||||
|
||||
To properly disable extensions you can use gnome-extensions-app and then restart
|
||||
your session. Disabling extensions without a restart is not sufficient to rule
|
||||
out extensions as cause of a bug. If an issue can only be reproduced with a
|
||||
certain extension, please file a bug report against that extension first.
|
||||
-->
|
||||
|
||||
### Bug summary
|
||||
@@ -54,7 +47,7 @@ screenshots or screencasts related, please provide them here.
|
||||
If the bug is a crash, please obtain a stack trace with installed debug
|
||||
symbols (at least for GNOME Shell and Mutter) and attach it to
|
||||
this issue following the instructions on
|
||||
https://handbook.gnome.org/issues/stack-traces.html.
|
||||
https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces.
|
||||
-->
|
||||
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
Please read https://gitlab.gnome.org/GNOME/gnome-shell/-/tree/main#reporting-bugs
|
||||
<!--
|
||||
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
|
||||
first to ensure that you create a clear and specific issue.
|
||||
-->
|
||||
|
||||
|
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "subprojects/gvc"]
|
||||
path = subprojects/gvc
|
||||
url = https://gitlab.gnome.org/GNOME/libgnome-volume-control.git
|
11
.settings/.jsdtscope
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
|
||||
<attributes>
|
||||
<attribute name="hide" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
|
||||
<classpathentry kind="output" path=""/>
|
||||
</classpath>
|
@@ -1,4 +1,4 @@
|
||||
# JS Coding Style
|
||||
# Coding guide
|
||||
|
||||
Our goal is to have all JavaScript code in GNOME follow a consistent style. In
|
||||
a dynamic language like JavaScript, it is essential to be rigorous about style
|
||||
@@ -28,7 +28,7 @@ what to do.
|
||||
else
|
||||
bar = do_thing(b);
|
||||
|
||||
if (bar === 5) {
|
||||
if (var == 5) {
|
||||
for (let i = 0; i < 10; i++)
|
||||
print(i);
|
||||
} else {
|
||||
@@ -66,7 +66,7 @@ library. These headers are not installed, distributed or introspected.
|
||||
Use UpperCamelCase when importing modules to distinguish them from ordinary
|
||||
variables, e.g.
|
||||
```javascript
|
||||
import GLib from 'gi://GLib';
|
||||
const GLib = imports.gi.GLib;
|
||||
```
|
||||
Imports should be categorized into one of two places. The top-most import block
|
||||
should contain only "environment imports". These are either modules from
|
||||
@@ -74,18 +74,16 @@ gobject-introspection or modules added by gjs itself.
|
||||
|
||||
The second block of imports should contain only "application imports". These
|
||||
are the JS code that is in the gnome-shell codebase,
|
||||
e.g. `'./popupMenu.js'`.
|
||||
e.g. `imports.ui.popupMenu`.
|
||||
|
||||
Each import block should be sorted alphabetically. Don't import modules you
|
||||
don't use.
|
||||
```javascript
|
||||
import GLib from 'gi://GLib';
|
||||
import Gio from 'gi://Gio';
|
||||
import St from 'gi://St';
|
||||
const { GLib, Gio, St } = imports.gi;
|
||||
|
||||
import * as Main from './main.js';
|
||||
import * as Params from '../misc/params.js';
|
||||
import * as Util from '../misc/util.js';
|
||||
const Main = imports.ui.main;
|
||||
const Params = imports.misc.params;
|
||||
const Util = imports.misc.util;
|
||||
```
|
||||
The alphabetical ordering should be done independently of the location of the
|
||||
location. Never reference `imports` in actual code.
|
||||
@@ -103,13 +101,12 @@ under the imports:
|
||||
Always use either `const` or `let` when defining a variable.
|
||||
```javascript
|
||||
// Iterating over an array
|
||||
for (let i = 0; i < arr.length; ++i) {
|
||||
const item = arr[i];
|
||||
}
|
||||
for (let i = 0; i < arr.length; ++i)
|
||||
let item = arr[i];
|
||||
|
||||
// Iterating over an object's properties
|
||||
for (const prop in someobj) {
|
||||
const val = someobj[prop];
|
||||
for (let prop in someobj) {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
@@ -121,26 +118,26 @@ See [What's new in JavaScript 1.7](https://developer.mozilla.org/en/JavaScript/N
|
||||
There are many approaches to classes in JavaScript. We use standard ES6 classes
|
||||
whenever possible, that is when not inheriting from GObjects.
|
||||
```javascript
|
||||
export class IconLabelMenuItem extends PopupMenu.PopupMenuBaseItem {
|
||||
var IconLabelMenuItem = class extends PopupMenu.PopupMenuBaseItem {
|
||||
constructor(icon, label) {
|
||||
super({reactive: false});
|
||||
super({ reactive: false });
|
||||
this.actor.add_child(icon);
|
||||
this.actor.add_child(label);
|
||||
}
|
||||
|
||||
open() {
|
||||
log('menu opened!');
|
||||
log("menu opened!");
|
||||
}
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
For GObject inheritance, we use the GObject.registerClass() function provided
|
||||
For GObject inheritence, we use the GObject.registerClass() function provided
|
||||
by gjs.
|
||||
```javascript
|
||||
export const MyActor = GObject.registerClass(
|
||||
var MyActor = GObject.registerClass(
|
||||
class MyActor extends Clutter.Actor {
|
||||
constructor(params) {
|
||||
super(params);
|
||||
_init(params) {
|
||||
super._init(params);
|
||||
|
||||
this.name = 'MyCustomActor';
|
||||
}
|
||||
@@ -153,27 +150,28 @@ GObject Introspection is a powerful feature that allows us to have native
|
||||
bindings for almost any library built around GObject. If a library requires
|
||||
you to inherit from a type to use it, you can do so:
|
||||
```javascript
|
||||
export const MyClutterActor = GObject.registerClass(
|
||||
var MyClutterActor = GObject.registerClass(
|
||||
class MyClutterActor extends Clutter.Actor {
|
||||
|
||||
vfunc_get_preferred_width(forHeight) {
|
||||
return [100, 100];
|
||||
return [100, 100];
|
||||
}
|
||||
|
||||
vfunc_get_preferred_height(forWidth) {
|
||||
return [100, 100];
|
||||
return [100, 100];
|
||||
}
|
||||
|
||||
vfunc_paint(paintContext) {
|
||||
let framebuffer = paintContext.get_framebuffer();
|
||||
let coglContext = framebuffer.get_context();
|
||||
let alloc = this.get_allocation_box();
|
||||
let framebuffer = paintContext.get_framebuffer();
|
||||
let coglContext = framebuffer.get_context();
|
||||
let alloc = this.get_allocation_box();
|
||||
|
||||
let pipeline = Cogl.Pipeline.new(coglContext);
|
||||
pipeline.set_color4ub(255, 0, 0, 255);
|
||||
let pipeline = new Cogl.Pipeline(coglContext);
|
||||
pipeline.set_color4ub(255, 0, 0, 255);
|
||||
|
||||
framebuffer.draw_rectangle(pipeline,
|
||||
alloc.x1, alloc.y1,
|
||||
alloc.x2, alloc.y2);
|
||||
framebuffer.draw_rectangle(pipeline,
|
||||
alloc.x1, alloc.y1,
|
||||
alloc.x2, alloc.y2);
|
||||
}
|
||||
});
|
||||
```
|
||||
@@ -187,6 +185,11 @@ explicitly import it. This is done through some magic in the
|
||||
file. If you can't find a method that's used, it's probably either in gjs itself
|
||||
or installed on the global object from the Environment.
|
||||
|
||||
Use 'single quotes' for programming strings that should not be translated
|
||||
and "double quotes" for strings that the user may see. This allows us to
|
||||
quickly find untranslated or mistranslated strings by grepping through the
|
||||
sources for double quotes without a gettext call around them.
|
||||
|
||||
## `actor` (deprecated) and `_delegate`
|
||||
|
||||
gjs allows us to set so-called "expando properties" on introspected objects,
|
||||
@@ -198,10 +201,10 @@ wrapper class the "delegate".
|
||||
We sometimes use expando properties to set a property called `_delegate` on
|
||||
the actor itself:
|
||||
```javascript
|
||||
export const MyActor = GObject.registerClass(
|
||||
var MyActor = GObject.registerClass(
|
||||
class MyActor extends Clutter.Actor {
|
||||
constructor(params) {
|
||||
super(params);
|
||||
_init(params) {
|
||||
super._init(params);
|
||||
this._delegate = this;
|
||||
}
|
||||
});
|
||||
@@ -209,18 +212,18 @@ the actor itself:
|
||||
|
||||
Or using the deprecated `actor`:
|
||||
```javascript
|
||||
export class MyClass {
|
||||
var MyClass = class {
|
||||
constructor() {
|
||||
this.actor = new St.Button({text: 'This is a button'});
|
||||
this.actor = new St.Button({ text: "This is a button" });
|
||||
this.actor._delegate = this;
|
||||
|
||||
this.actor.connect('clicked', this._onClicked.bind(this));
|
||||
}
|
||||
|
||||
_onClicked(actor) {
|
||||
actor.set_label('You clicked the button!');
|
||||
actor.set_label("You clicked the button!");
|
||||
}
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
The 'delegate' property is important for anything which trying to get the
|
||||
@@ -254,10 +257,10 @@ notation.
|
||||
A more realistic example would be connecting to a signal on a method of a
|
||||
prototype:
|
||||
```javascript
|
||||
import * as FnorbLib from './fborbLib.js';
|
||||
const FnorbLib = imports.fborbLib;
|
||||
|
||||
export class MyClass {
|
||||
constructor() {
|
||||
var MyClass = class {
|
||||
_init() {
|
||||
let fnorb = new FnorbLib.Fnorb();
|
||||
fnorb.connect('frobate', this._onFnorbFrobate.bind(this));
|
||||
}
|
||||
@@ -265,30 +268,30 @@ prototype:
|
||||
_onFnorbFrobate(fnorb) {
|
||||
this._updateFnorb();
|
||||
}
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
## Object literal syntax
|
||||
|
||||
In JavaScript, these are equivalent:
|
||||
```javascript
|
||||
foo = {'bar': 42};
|
||||
foo = {bar: 42};
|
||||
foo = { 'bar': 42 };
|
||||
foo = { bar: 42 };
|
||||
```
|
||||
|
||||
and so are these:
|
||||
```javascript
|
||||
b = foo['bar'];
|
||||
b = foo.bar;
|
||||
var b = foo['bar'];
|
||||
var b = foo.bar;
|
||||
```
|
||||
|
||||
If your usage of an object is like an object, then you're defining "member
|
||||
variables." For member variables, use the no-quotes no-brackets syntax:
|
||||
`{bar: 42}` `foo.bar`.
|
||||
variables." For member variables, use the no-quotes no-brackets syntax: `{ bar:
|
||||
42 }` `foo.bar`.
|
||||
|
||||
If your usage of an object is like a hash table (and thus conceptually the keys
|
||||
can have special chars in them), don't use quotes, but use brackets:
|
||||
`{bar: 42}`, `foo['bar']`.
|
||||
can have special chars in them), don't use quotes, but use brackets: `{ bar: 42
|
||||
}`, `foo['bar']`.
|
||||
|
||||
## Animations
|
||||
|
||||
@@ -301,7 +304,7 @@ are animatable, which means they can use implicit animations:
|
||||
x,
|
||||
y,
|
||||
duration: 500, // ms
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD
|
||||
});
|
||||
}
|
||||
```
|
||||
@@ -317,7 +320,7 @@ be preferred over the more verbose:
|
||||
actor.set_easing_mode(Clutter.AnimationMode.EASE_OUT_QUAD);
|
||||
actor.set({
|
||||
x,
|
||||
y,
|
||||
y
|
||||
});
|
||||
|
||||
actor.restore_easing_state();
|
||||
@@ -332,7 +335,7 @@ actor (or actor meta) properties that cannot use implicit animations:
|
||||
let factor = desaturate ? 1.0 : 0.0;
|
||||
actor.ease_property('@effects.desaturate.factor', factor, {
|
||||
duration: 500, // ms
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD
|
||||
});
|
||||
}
|
||||
```
|
128
README.md
@@ -1,136 +1,28 @@
|
||||
# GNOME Shell
|
||||
|
||||
GNOME Shell provides core user interface functions for the GNOME desktop,
|
||||
GNOME Shell provides core user interface functions for the GNOME 3 desktop,
|
||||
like switching to windows and launching applications. GNOME Shell takes
|
||||
advantage of the capabilities of modern graphics hardware and introduces
|
||||
innovative user interface concepts to provide a visually attractive and
|
||||
easy to use experience.
|
||||
|
||||
All interactions with the project should follow the [Code of Conduct][conduct].
|
||||
For more information about GNOME Shell, including instructions on how
|
||||
to build GNOME Shell from source and how to get involved with the project,
|
||||
see the [project wiki][project-wiki].
|
||||
|
||||
[conduct]: https://conduct.gnome.org/
|
||||
|
||||
## Supported versions
|
||||
|
||||
Upstream gnome-shell only supports the most recent stable release series,
|
||||
the previous stable release series, and the current development release
|
||||
series. Any older stable release series are no longer supported, although
|
||||
they may still receive backported security updates in long-term support
|
||||
distributions. Such support is up to the distributions, though.
|
||||
|
||||
Please refer to the [schedule] to see when a new version will be released.
|
||||
|
||||
[schedule]: https://release.gnome.org/calendar
|
||||
|
||||
## Reporting bugs
|
||||
|
||||
Bugs should be reported to the [issue tracking system][bug-tracker].
|
||||
|
||||
The [GNOME handbook][bug-handbook] has useful information for creating
|
||||
effective issue reports.
|
||||
|
||||
If you are using extensions, please confirm that an issue still happens
|
||||
without extensions. To properly disable extensions you can use the
|
||||
[extensions-app] and then restart your session. Disabling extensions
|
||||
without a restart is not sufficient to rule out extensions as the
|
||||
cause of a bug. If an issue can only be reproduced with a certain
|
||||
extension, please file an issue report against that extension first.
|
||||
|
||||
Please note that the issue tracker is meant to be used for
|
||||
actionable issues only.
|
||||
|
||||
For support questions, feedback on changes or general discussions,
|
||||
you can use:
|
||||
|
||||
- the [#gnome-shell matrix room][matrix-room]
|
||||
- the `Desktop` category or `shell` tag on [GNOME Discourse][discourse]
|
||||
|
||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell/issues
|
||||
[bug-handbook]: https://handbook.gnome.org/issues/reporting.html
|
||||
[extensions-app]: https://apps.gnome.org/Extensions
|
||||
[matrix-room]: https://matrix.to/#/#gnome-shell:gnome.org
|
||||
[discourse]: https://discourse.gnome.org
|
||||
|
||||
## Feature requests
|
||||
|
||||
gnome-shell is a core compoment of the GNOME desktop experience.
|
||||
As such, any changes in behavior or appearance only happen in
|
||||
accordance with the [GNOME design team][design-team].
|
||||
|
||||
For major changes, it is best to start a discussion on [discourse]
|
||||
and reach out on the [#gnome-design matrix room][design-room],
|
||||
and only involve the issue tracker once agreement has been reached.
|
||||
|
||||
In particular mockups must be approved by the design team to be
|
||||
considered for implementation.
|
||||
|
||||
For enhancements that are limited in scope and well-defined,
|
||||
it is acceptable to directly open a feature request.
|
||||
|
||||
When in doubt, it is better to ask before opening an issue.
|
||||
|
||||
[design-team]: https://gitlab.gnome.org/Teams/Design
|
||||
[discourse]: https://discourse.gnome.org
|
||||
[design-room]: https://matrix.to/#/#gnome-design:gnome.org
|
||||
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
|
||||
|
||||
## Contributing
|
||||
|
||||
To contribute, open merge requests at https://gitlab.gnome.org/GNOME/gnome-shell.
|
||||
|
||||
It can be useful to first look at the [GNOME handbook][mr-handbook].
|
||||
|
||||
If a change likely requires discussion beyond code review, it is probably better to
|
||||
open an issue first, or follow the process for [feature requests](#feature-requests).
|
||||
Otherwise, creating a separate issue is not required.
|
||||
|
||||
The following guidelines will help your change to be successfully merged:
|
||||
|
||||
* Keep the change as small as possible. If you can split it into multiple
|
||||
merge requests, please do so.
|
||||
* Use multiple commits. This makes it easier to review and helps to diagnose
|
||||
bugs in the future.
|
||||
* Use clear commit messages following the [conventions][commit-messages].
|
||||
* Pay attention to the CI results. Merge requests cannot be merged until the
|
||||
CI passes.
|
||||
|
||||
There's also a [small guide for newcomers][newcomers-contribution-guide] with
|
||||
a few more basic tips and tricks.
|
||||
|
||||
[mr-handbook]: https://handbook.gnome.org/development/change-submission.html
|
||||
[commit-messages]: docs/commit-messages.md
|
||||
[newcomers-contribution-guide]: docs/newcomers-contribution-guide.md
|
||||
|
||||
## Documentation
|
||||
|
||||
* [Coding style and conventions for javascript][js-style]
|
||||
* [Coding style and conventions for C code][c-style]
|
||||
* [The GJS Developer Guide][gjs-guide]
|
||||
* [Building and Running][building]
|
||||
* [Debugging][debugging]
|
||||
|
||||
[js-style]: docs/js-coding-style.md
|
||||
[c-style]: docs/c-coding-style.md
|
||||
[gjs-guide]: https://gjs.guide
|
||||
[building]: docs/building-and-running.md
|
||||
[debugging]: docs/debugging.md
|
||||
|
||||
## API Reference
|
||||
|
||||
* [Meta][meta-docs]: Display server and window manager
|
||||
* [St][st-docs]: Shell toolkit
|
||||
* [Clutter][clutter-docs]: OpenGL based scene graph
|
||||
* [Shell][shell-docs]: Non-ui shell objects and utilities
|
||||
* See the [mutter page][mutter-docs] for additional documentation
|
||||
|
||||
[st-docs]: <https://gnome.pages.gitlab.gnome.org/gnome-shell/st/>
|
||||
[shell-docs]: <https://gnome.pages.gitlab.gnome.org/gnome-shell/shell/>
|
||||
[clutter-docs]: <https://mutter.gnome.org/clutter/>
|
||||
[meta-docs]: <https://mutter.gnome.org/meta/>
|
||||
[mutter-docs]: <https://mutter.gnome.org>
|
||||
Commit messages should follow the [GNOME commit message
|
||||
guidelines](https://wiki.gnome.org/Git/CommitMessages). We require an URL
|
||||
to either an issue or a merge request in each commit.
|
||||
|
||||
## License
|
||||
|
||||
GNOME Shell is distributed under the terms of the GNU General Public License,
|
||||
version 2 or later. See the [COPYING][license] file for details.
|
||||
|
||||
[project-wiki]: https://wiki.gnome.org/Projects/GnomeShell
|
||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell/issues
|
||||
[license]: COPYING
|
||||
|
@@ -13,35 +13,20 @@
|
||||
/* Define to 1 if you have the `mallinfo' function. */
|
||||
#mesondefine HAVE_MALLINFO
|
||||
|
||||
/* Define to 1 if you have the `mallinfo2' function. */
|
||||
#mesondefine HAVE_MALLINFO2
|
||||
|
||||
/* Define to 1 fi you have the <sys/resource.h> header file. */
|
||||
#mesondefine HAVE_SYS_RESOURCE_H
|
||||
|
||||
/* Define if we have NetworkManager */
|
||||
#mesondefine HAVE_NETWORKMANAGER
|
||||
|
||||
/* Define if we have Pipewire */
|
||||
#mesondefine HAVE_PIPEWIRE
|
||||
|
||||
/* Define if we have systemd */
|
||||
#mesondefine HAVE_SYSTEMD
|
||||
|
||||
/* Define if _NL_TIME_FIRST_WEEKDATE is available */
|
||||
#mesondefine HAVE__NL_TIME_FIRST_WEEKDAY
|
||||
|
||||
/* Define if you have the `g_desktop_app_info_launch_uris_as_manager_with_fds` function */
|
||||
#mesondefine HAVE_GIO_DESKTOP_LAUNCH_URIS_WITH_FDS
|
||||
|
||||
/* Define if fdwalk is available in libc */
|
||||
#mesondefine HAVE_FDWALK
|
||||
|
||||
/* Define if polkit defines autocleanup functions */
|
||||
#mesondefine HAVE_POLKIT_AUTOCLEANUP
|
||||
|
||||
/* Define to 1 if the <elf.h> and <link.h> header file exist. */
|
||||
#mesondefine HAVE_EXE_INTROSPECTION
|
||||
|
||||
/* Whether GNOME Shell is built with X11 support */
|
||||
#mesondefine HAVE_X11
|
||||
|
||||
/* Whether GNOME Shell is built with X11 clients support */
|
||||
#mesondefine HAVE_X11_CLIENT
|
||||
|
@@ -1,81 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<KeyListEntries schema="org.gnome.shell.keybindings"
|
||||
group="system"
|
||||
name="Launchers"
|
||||
wm_name="GNOME Shell"
|
||||
package="gnome-shell">
|
||||
|
||||
<KeyListEntry name="switch-to-application-1"
|
||||
description="Activate pinned app 1"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="switch-to-application-2"
|
||||
description="Activate pinned app 2"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="switch-to-application-3"
|
||||
description="Activate pinned app 3"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="switch-to-application-4"
|
||||
description="Activate pinned app 4"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="switch-to-application-5"
|
||||
description="Activate pinned app 5"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="switch-to-application-6"
|
||||
description="Activate pinned app 6"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="switch-to-application-7"
|
||||
description="Activate pinned app 7"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="switch-to-application-8"
|
||||
description="Activate pinned app 8"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="switch-to-application-9"
|
||||
description="Activate pinned app 9"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-1"
|
||||
description="Open new window of pinned app 1"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-2"
|
||||
description="Open new window of pinned app 2"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-3"
|
||||
description="Open new window of pinned app 3"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-4"
|
||||
description="Open new window of pinned app 4"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-5"
|
||||
description="Open new window of pinned app 5"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-6"
|
||||
description="Open new window of pinned app 6"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-7"
|
||||
description="Open new window of pinned app 7"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-8"
|
||||
description="Open new window of pinned app 8"
|
||||
hidden="true"/>
|
||||
|
||||
<KeyListEntry name="open-new-window-application-9"
|
||||
description="Open new window of pinned app 9"
|
||||
hidden="true"/>
|
||||
|
||||
</KeyListEntries>
|
||||
|
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<KeyListEntries schema="org.gnome.shell.keybindings"
|
||||
group="system"
|
||||
name="Screenshots"
|
||||
wm_name="GNOME Shell"
|
||||
package="gnome-shell">
|
||||
|
||||
<KeyListEntry name="show-screenshot-ui"
|
||||
description="Take a screenshot interactively"/>
|
||||
|
||||
<KeyListEntry name="screenshot"
|
||||
description="Take a screenshot"/>
|
||||
|
||||
<KeyListEntry name="screenshot-window"
|
||||
description="Take a screenshot of a window"/>
|
||||
|
||||
<KeyListEntry name="show-screen-recording-ui"
|
||||
description="Record a screencast interactively"/>
|
||||
|
||||
</KeyListEntries>
|
@@ -8,9 +8,6 @@
|
||||
<KeyListEntry name="toggle-message-tray"
|
||||
description="Show the notification list"/>
|
||||
|
||||
<KeyListEntry name="toggle-quick-settings"
|
||||
description="Open the quick settings menu"/>
|
||||
|
||||
<KeyListEntry name="focus-active-notification"
|
||||
description="Focus the active notification"/>
|
||||
|
||||
@@ -18,7 +15,10 @@
|
||||
description="Show the overview"/>
|
||||
|
||||
<KeyListEntry name="toggle-application-view"
|
||||
description="Show all apps"/>
|
||||
description="Show all applications"/>
|
||||
|
||||
<KeyListEntry name="open-application-menu"
|
||||
description="Open the application menu"/>
|
||||
|
||||
</KeyListEntries>
|
||||
|
||||
|
@@ -1,84 +1,33 @@
|
||||
Gnome-shell OSK layouts are extracted from CLDR layout definitions:
|
||||
https://www.unicode.org/cldr/charts/latest/keyboards/layouts/index.html
|
||||
|
||||
To add new layouts from CLDR:
|
||||
Updating these involves several steps:
|
||||
|
||||
1) Downloading and unzipping the tarball found at:
|
||||
http://www.unicode.org/Public/cldr/latest/keyboards.zip
|
||||
|
||||
This file contains XML files describing the keyboard layouts.
|
||||
|
||||
2) Cloning the cldr2json script at:
|
||||
git://repo.or.cz/cldr2json.git
|
||||
|
||||
It will be used to convert the XML files into JSON that can be
|
||||
directly consumed by gnome-shell.
|
||||
|
||||
3) Running the script to produce the files:
|
||||
./cldr2json <input-directory> <output-directory>
|
||||
|
||||
We shall usually use the "android" folder, since that's most
|
||||
complete, and similar to our UI and target sizes. And the target
|
||||
directory must be data/osk-layouts in this repository.
|
||||
|
||||
4) Modify gnome-shell-osk-layouts.gresource.xml to include the files
|
||||
|
||||
5) Do git add on the updated/new files, and git commit.
|
||||
|
||||
|
||||
Or alternatively:
|
||||
|
||||
1) Run update-osk-layouts.sh
|
||||
|
||||
2) Modify JSON files to add extra keys, tweak appearance...
|
||||
|
||||
2) Do git add and git commit
|
||||
|
||||
JSON file format
|
||||
================
|
||||
|
||||
Each JSON file describes a keymap for a certain language and layout,
|
||||
it has the following structure:
|
||||
|
||||
- Root (Object)
|
||||
|
||||
Root object of a layout, has the following properties:
|
||||
|
||||
- levels (Array of Level): Levels in the keymap
|
||||
- locale (String): Locale name for this keymap
|
||||
- name (String): Human readable name for this keymap
|
||||
|
||||
- Level (Object)
|
||||
|
||||
A level defines the keys available on a keyboard level,
|
||||
these are the key panels visible at a time. E.g. to type
|
||||
uppercase levels or symbols.
|
||||
|
||||
Levels have the following properties:
|
||||
|
||||
- level (String): Name of the level, common names are
|
||||
"", "shift", "opt" and "opt+shift".
|
||||
- mode (String): Mode for this level, common modes are
|
||||
"default", "latched" and "locked".
|
||||
- rows (Array of Row): Array of rows of keys.
|
||||
|
||||
- Row (Array)
|
||||
|
||||
A row is an Array of Key.
|
||||
|
||||
- Key (Object)
|
||||
|
||||
A keyboard key. Keys have the following properties:
|
||||
|
||||
- iconName (String): Icon name to show on the key.
|
||||
Keys with an icon name do not have a label.
|
||||
- label (String): Label to show on the key.
|
||||
- strings (Array of String): Strings to commit. If
|
||||
label property does not exist, the first element
|
||||
will be also the label. Extra elements are shown
|
||||
in the extra keys popover.
|
||||
- keyval (String): Hexadecimal keyval to emit as
|
||||
emulated key presses. Committed strings are
|
||||
preferred.
|
||||
- leftOffset (Double): If set, the left offset of
|
||||
this key, relative to the key immediately to the
|
||||
left, or the start of the row. If not set, the key
|
||||
will be implicitly located at the right of the
|
||||
previous key in the row. Multiples of 0.5 are
|
||||
accepted.
|
||||
- width (Double): Relative width of the key in the
|
||||
row. 1 is for a square key. Multiples of 0.5 are
|
||||
accepted. The implicit default value is 1.
|
||||
- height (Double): Relative height of the key in
|
||||
the grid. The key will overflow downwards. Multiples
|
||||
of 0.5 are accepted. The implicit default value is 1.
|
||||
- level (Integer): Level that the key switches to.
|
||||
See the levelSwitch action.
|
||||
- action (string): Action performed by the key,
|
||||
accepted actions are:
|
||||
|
||||
- hide: Hides the OSK
|
||||
- languageMenu: Pops up the language selection
|
||||
menu
|
||||
- emoji: Switches to the emoji selection panel
|
||||
- modifier: Handles the keyval as a modifier
|
||||
key. This handles e.g. Ctrl+A as a sequence
|
||||
of Ctrl press, A press, A release, Ctrl
|
||||
release.
|
||||
- delete: Deletes text backwards
|
||||
- levelSwitch: Switches OSK to a different level
|
||||
|
@@ -1,3 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=System
|
||||
Type=Directory
|
@@ -1,3 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Utilities
|
||||
Type=Directory
|
@@ -79,7 +79,7 @@ def parse_rows(keymap):
|
||||
reverse=True):
|
||||
row = []
|
||||
for key in sorted(v, key=lambda x: x):
|
||||
row.append({ 'strings': key[1] })
|
||||
row.append(key[1])
|
||||
rows.append(row)
|
||||
|
||||
return rows
|
||||
@@ -123,7 +123,7 @@ def locale_to_xkb(locale, name):
|
||||
if xkb:
|
||||
return xkb
|
||||
else:
|
||||
raise KeyError("layout %s explicitly disabled in overrides"
|
||||
raise KeyError("layout %s explicitely disabled in overrides"
|
||||
% locale)
|
||||
xkb_names = sorted(name_to_xkb.keys())
|
||||
if name in xkb_names:
|
||||
|
@@ -4,7 +4,6 @@ dbus_interfaces = [
|
||||
'org.gnome.Shell.PadOsd.xml',
|
||||
'org.gnome.Shell.Screencast.xml',
|
||||
'org.gnome.Shell.Screenshot.xml',
|
||||
'org.gnome.Shell.ScreenTime.xml',
|
||||
'org.gnome.ShellSearchProvider.xml',
|
||||
'org.gnome.ShellSearchProvider2.xml'
|
||||
]
|
||||
|
@@ -1,78 +0,0 @@
|
||||
<!DOCTYPE node PUBLIC
|
||||
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
|
||||
<node>
|
||||
<interface name="net.reactivated.Fprint.Device">
|
||||
<method name="ListEnrolledFingers">
|
||||
<arg type="s" name="username" direction="in">
|
||||
</arg>
|
||||
<arg type="as" name="enrolled_fingers" direction="out">
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="DeleteEnrolledFingers">
|
||||
<arg type="s" name="username" direction="in">
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="DeleteEnrolledFingers2">
|
||||
</method>
|
||||
|
||||
<method name="Claim">
|
||||
<arg type="s" name="username" direction="in">
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="Release">
|
||||
</method>
|
||||
|
||||
<method name="VerifyStart">
|
||||
<arg type="s" name="finger_name" direction="in">
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="VerifyStop">
|
||||
</method>
|
||||
|
||||
<signal name="VerifyFingerSelected">
|
||||
<arg type="s" name="finger_name">
|
||||
</arg>
|
||||
</signal>
|
||||
|
||||
<signal name="VerifyStatus">
|
||||
<arg type="s" name="result">
|
||||
</arg>
|
||||
|
||||
<arg type="b" name="done">
|
||||
</arg>
|
||||
|
||||
</signal>
|
||||
|
||||
<method name="EnrollStart">
|
||||
<arg type="s" name="finger_name" direction="in">
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="EnrollStop">
|
||||
</method>
|
||||
|
||||
<signal name="EnrollStatus">
|
||||
<arg type="s" name="result">
|
||||
</arg>
|
||||
|
||||
<arg type="b" name="done">
|
||||
</arg>
|
||||
</signal>
|
||||
|
||||
<property name="name" type="s" access="read">
|
||||
</property>
|
||||
|
||||
<property name="num-enroll-stages" type="i" access="read">
|
||||
</property>
|
||||
|
||||
<property name="scan-type" type="s" access="read">
|
||||
</property>
|
||||
|
||||
</interface>
|
||||
</node>
|
@@ -1,18 +0,0 @@
|
||||
<!DOCTYPE node PUBLIC
|
||||
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
<node>
|
||||
<interface name="net.reactivated.Fprint.Manager">
|
||||
|
||||
<method name="GetDevices">
|
||||
<arg type="ao" name="devices" direction="out">
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
<method name="GetDefaultDevice">
|
||||
<arg type="o" name="device" direction="out">
|
||||
</arg>
|
||||
</method>
|
||||
|
||||
</interface>
|
||||
</node>
|
@@ -31,9 +31,5 @@
|
||||
<arg type="u"/>
|
||||
<arg type="s"/>
|
||||
</signal>
|
||||
<signal name="ActivationToken">
|
||||
<arg type="u"/>
|
||||
<arg type="s"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
||||
|
@@ -1,147 +0,0 @@
|
||||
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||
|
||||
<node>
|
||||
|
||||
<!--
|
||||
org.freedesktop.UPower.PowerProfiles:
|
||||
@short_description: Power Profiles daemon
|
||||
|
||||
The power-profiles-daemon API is meant to be used by parts of the OS or
|
||||
desktop environment to switch system power profiles based on user choice,
|
||||
or user intent.
|
||||
|
||||
OS components would typically use the "Profiles" property to construct
|
||||
their UI (2 or 3 profiles available), and monitor the "ActiveProfile"
|
||||
and the "PerformanceDegraded" properties to update that UI. The UI
|
||||
would try to set the "ActiveProfile" property if the user selected
|
||||
a different one.
|
||||
|
||||
Note that the reason why the project exists and how it is different from
|
||||
existing projects is explained <ulink href=" https://gitlab.freedesktop.org/hadess/power-profiles-daemon/-/blob/master/README.md">
|
||||
in the project's README file</ulink>.
|
||||
|
||||
The object path will be "/org/freedesktop/UPower/PowerProfiles".
|
||||
-->
|
||||
<interface name="org.freedesktop.UPower.PowerProfiles">
|
||||
|
||||
<!--
|
||||
HoldProfile:
|
||||
|
||||
This forces the passed profile (either 'power-saver' or 'performance')
|
||||
to be activated until either the caller quits, "ReleaseProfile" is
|
||||
called, or the "ActiveProfile" is changed by the user.
|
||||
|
||||
This should be used programmatically by OS components when, eg. high-
|
||||
performance workloads are started with the "performance" profile, or
|
||||
battery will soon be critically low with the "power-saver" profile.
|
||||
|
||||
When conflicting profiles are requested to be held, the 'power-saver' profile
|
||||
will be activated in preference to the 'performance' profile.
|
||||
|
||||
Those holds will be automatically cancelled if the user manually switches
|
||||
to another profile, and the "ProfileReleased" signal will be emitted.
|
||||
-->
|
||||
<method name="HoldProfile">
|
||||
<arg name="profile" type="s" direction="in"/>
|
||||
<arg name="reason" type="s" direction="in"/>
|
||||
<arg name="application_id" type="s" direction="in" />
|
||||
<arg name="cookie" type="u" direction="out"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
ReleaseProfile:
|
||||
|
||||
This removes the hold that was set on a profile.
|
||||
-->
|
||||
<method name="ReleaseProfile">
|
||||
<arg name="cookie" type="u" direction="in"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
ProfileReleased:
|
||||
|
||||
This signal will be emitted if the profile is released because the
|
||||
"ActiveProfile" was manually changed. The signal will only be emitted
|
||||
to the process that originally called "HoldProfile".
|
||||
-->
|
||||
<signal name="ProfileReleased">
|
||||
<arg name="cookie" type="u" direction="out"/>
|
||||
</signal>
|
||||
|
||||
<!--
|
||||
ActiveProfile:
|
||||
|
||||
The type of the currently active profile. It might change automatically
|
||||
if a profile is held, using the "HoldProfile" function.
|
||||
-->
|
||||
<property name="ActiveProfile" type="s" access="readwrite"/>
|
||||
|
||||
<!--
|
||||
PerformanceInhibited:
|
||||
|
||||
This property is deprecated, and unused since version 0.9.
|
||||
-->
|
||||
<property name="PerformanceInhibited" type="s" access="read"/>
|
||||
|
||||
<!--
|
||||
PerformanceDegraded:
|
||||
|
||||
This will be set if the performance power profile is running in degraded
|
||||
mode, with the value being used to identify the reason for that degradation.
|
||||
As new reasons can be added, it is recommended that front-ends show a generic
|
||||
reason if they do not recognise the value. Possible values are:
|
||||
- "lap-detected" (the computer is sitting on the user's lap)
|
||||
- "high-operating-temperature" (the computer is close to overheating)
|
||||
- "" (the empty string, if not performance is not degraded)
|
||||
-->
|
||||
<property name="PerformanceDegraded" type="s" access="read"/>
|
||||
|
||||
<!--
|
||||
Profiles:
|
||||
|
||||
An array of key-pair values representing each profile. The key named
|
||||
"Driver" (s) identifies the power-profiles-daemon backend code used to
|
||||
implement the profile.
|
||||
|
||||
The key named "Profile" (s) will be one of:
|
||||
- "power-saver" (battery saving profile)
|
||||
- "balanced" (the default profile)
|
||||
- "performance" (a profile that does not care about noise or battery consumption)
|
||||
|
||||
Only one of each type of profile will be listed, with the daemon choosing the
|
||||
more appropriate "driver" for each profile type.
|
||||
|
||||
This list is guaranteed to be sorted in the same order that the profiles
|
||||
are listed above.
|
||||
-->
|
||||
<property name="Profiles" type="aa{sv}" access="read"/>
|
||||
|
||||
<!--
|
||||
Actions:
|
||||
|
||||
An array of strings listing each one of the "actions" implemented in
|
||||
the running daemon. This is used by API users to figure out whether
|
||||
particular functionality is available in a version of the daemon.
|
||||
-->
|
||||
<property name="Actions" type="as" access="read"/>
|
||||
|
||||
<!--
|
||||
ActiveProfileHolds:
|
||||
|
||||
A list of dictionaries representing the current profile holds.
|
||||
The keys in the dict are "ApplicationId", "Profile" and "Reason",
|
||||
and correspond to the "application_id", "profile" and "reason" arguments
|
||||
passed to the HoldProfile() method.
|
||||
-->
|
||||
<property name="ActiveProfileHolds" type="aa{sv}" access="read"/>
|
||||
|
||||
<!--
|
||||
Version:
|
||||
|
||||
The version of the power-profiles-daemon software.
|
||||
-->
|
||||
<property name="Version" type="s" access="read"/>
|
||||
|
||||
</interface>
|
||||
</node>
|
@@ -1,64 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
Copyright (C) 2022 Endless OS Foundation, LLC
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Author: Georges Basile Stavracas Neto <georges@endlessos.org>
|
||||
-->
|
||||
|
||||
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
|
||||
<!--
|
||||
org.freedesktop.background.Monitor:
|
||||
@short_description: Background applications monitor
|
||||
|
||||
This interface provides APIs related to applications
|
||||
that are running in the background.
|
||||
|
||||
This documentation describes version 1 of this interface.
|
||||
-->
|
||||
<interface name="org.freedesktop.background.Monitor">
|
||||
|
||||
<!--
|
||||
BackgroundApps:
|
||||
|
||||
The list of applications that are considered to be running in
|
||||
background. The following keys are supported:
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>app_id s</term>
|
||||
<listitem><para>
|
||||
App id of the application.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>instance s</term>
|
||||
<listitem><para>
|
||||
The Flatpak instance of the application.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>message s</term>
|
||||
<listitem><para>
|
||||
Status message reported by the application. Optional.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
-->
|
||||
<property name="BackgroundApps" type="aa{sv}" access="read"/>
|
||||
|
||||
<property name="version" type="u" access="read"/>
|
||||
</interface>
|
||||
</node>
|
@@ -13,13 +13,6 @@
|
||||
<arg name="app_permissions" type="a{sas}" direction="in"/>
|
||||
<arg name="data" type="v" direction="in"/>
|
||||
</method>
|
||||
<method name="SetPermission">
|
||||
<arg name='table' type='s' direction='in'/>
|
||||
<arg name='create' type='b' direction='in'/>
|
||||
<arg name='id' type='s' direction='in'/>
|
||||
<arg name='app' type='s' direction='in'/>
|
||||
<arg name='permissions' type='as' direction='in'/>
|
||||
</method>
|
||||
<signal name="Changed">
|
||||
<arg name="table" type="s" direction="out"/>
|
||||
<arg name="id" type="s" direction="out"/>
|
||||
|
@@ -17,19 +17,9 @@
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="o" direction="out"/>
|
||||
</method>
|
||||
<method name="GetUser">
|
||||
<arg type="u" direction="in"/>
|
||||
<arg type="o" direction="out"/>
|
||||
</method>
|
||||
<method name="ListSessions">
|
||||
<arg name="sessions" type="a(susso)" direction="out"/>
|
||||
</method>
|
||||
<method name="CanRebootToBootLoaderMenu">
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
<method name="SetRebootToBootLoaderMenu">
|
||||
<arg type="t" direction="in"/>
|
||||
</method>
|
||||
<signal name="PrepareForSleep">
|
||||
<arg type="b" direction="out"/>
|
||||
</signal>
|
||||
|
@@ -5,10 +5,9 @@
|
||||
<property name="Active" type="b" access="read"/>
|
||||
<property name="Class" type="s" access="read"/>
|
||||
<property name="Id" type="s" access="read"/>
|
||||
<property name="Name" type="s" access="read"/>
|
||||
<property name="Remote" type="b" access="read"/>
|
||||
<property name="State" type="s" access="read"/>
|
||||
<property name="Type" type="s" access="read"/>
|
||||
<property name="State" type="s" access="read"/>
|
||||
<method name="SetLockedHint">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
|
@@ -1,8 +1,6 @@
|
||||
<node>
|
||||
<interface name="org.freedesktop.login1.User">
|
||||
<property name="Display" type="(so)" access="read"/>
|
||||
<property name="IdleHint" type="b" access="read"/>
|
||||
<property name="Sessions" type="a(so)" access="read"/>
|
||||
<property name="State" type="s" access="read"/>
|
||||
</interface>
|
||||
</node>
|
||||
|
26
data/dbus-interfaces/org.gnome.Magnifier.ZoomRegion.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Magnifier.ZoomRegion">
|
||||
<method name="setMagFactor">
|
||||
<arg type="d" direction="in"/>
|
||||
<arg type="d" direction="in"/>
|
||||
</method>
|
||||
<method name="getMagFactor">
|
||||
<arg type="d" direction="out"/>
|
||||
<arg type="d" direction="out"/>
|
||||
</method>
|
||||
<method name="setRoi">
|
||||
<arg type="ai" direction="in"/>
|
||||
</method>
|
||||
<method name="getRoi">
|
||||
<arg type="ai" direction="out"/>
|
||||
</method>
|
||||
<method name="shiftContentsTo">
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="moveResize">
|
||||
<arg type="ai" direction="in"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
54
data/dbus-interfaces/org.gnome.Magnifier.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Magnifier">
|
||||
<method name="setActive">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
<method name="isActive">
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="showCursor"/>
|
||||
<method name="hideCursor"/>
|
||||
<method name="createZoomRegion">
|
||||
<arg type="d" direction="in"/>
|
||||
<arg type="d" direction="in"/>
|
||||
<arg type="ai" direction="in"/>
|
||||
<arg type="ai" direction="in"/>
|
||||
<arg type="o" direction="out"/>
|
||||
</method>
|
||||
<method name="addZoomRegion">
|
||||
<arg type="o" direction="in"/>
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="getZoomRegions">
|
||||
<arg type="ao" direction="out"/>
|
||||
</method>
|
||||
<method name="clearAllZoomRegions"/>
|
||||
<method name="fullScreenCapable">
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="setCrosswireSize">
|
||||
<arg type="i" direction="in"/>
|
||||
</method>
|
||||
<method name="getCrosswireSize">
|
||||
<arg type="i" direction="out"/>
|
||||
</method>
|
||||
<method name="setCrosswireLength">
|
||||
<arg type="i" direction="in"/>
|
||||
</method>
|
||||
<method name="getCrosswireLength">
|
||||
<arg type="i" direction="out"/>
|
||||
</method>
|
||||
<method name="setCrosswireClip">
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
<method name="getCrosswireClip">
|
||||
<arg type="b" direction="out"/>
|
||||
</method>
|
||||
<method name="setCrosswireColor">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<method name="getCrosswireColor">
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
</interface>
|
||||
</node>
|
@@ -1,191 +0,0 @@
|
||||
<!DOCTYPE node PUBLIC
|
||||
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
|
||||
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
|
||||
<node>
|
||||
|
||||
<!--
|
||||
org.gnome.Mutter.ScreenCast:
|
||||
@short_description: Screen cast interface
|
||||
|
||||
This API is private and not intended to be used outside of the integrated
|
||||
system that uses libmutter. No compatibility between versions are
|
||||
promised.
|
||||
-->
|
||||
<interface name="org.gnome.Mutter.ScreenCast">
|
||||
|
||||
<!--
|
||||
CreateSession:
|
||||
@properties: Properties
|
||||
@session_path: Path to the new session object
|
||||
|
||||
* "remote-desktop-session-id" (s): The ID of a remote desktop session.
|
||||
Remote desktop driven screen casts
|
||||
are started and stopped by the remote
|
||||
desktop session.
|
||||
* "disable-animations" (b): Set to "true" if the screen cast application
|
||||
would prefer animations to be globally
|
||||
disabled, while the session is running. Default
|
||||
is "false". Available since version 3.
|
||||
-->
|
||||
<method name="CreateSession">
|
||||
<arg name="properties" type="a{sv}" direction="in" />
|
||||
<arg name="session_path" type="o" direction="out" />
|
||||
</method>
|
||||
|
||||
<!--
|
||||
Version:
|
||||
@short_description: API version
|
||||
-->
|
||||
<property name="Version" type="i" access="read" />
|
||||
|
||||
</interface>
|
||||
|
||||
<!--
|
||||
org.gnome.Mutter.ScreenCast.Session:
|
||||
@short_description: Screen cast session
|
||||
-->
|
||||
<interface name="org.gnome.Mutter.ScreenCast.Session">
|
||||
|
||||
<!--
|
||||
Start:
|
||||
|
||||
Start the screen cast session
|
||||
-->
|
||||
<method name="Start" />
|
||||
|
||||
<!--
|
||||
Stop:
|
||||
|
||||
Stop the screen cast session
|
||||
-->
|
||||
<method name="Stop" />
|
||||
|
||||
<!--
|
||||
Closed:
|
||||
|
||||
The session has closed.
|
||||
-->
|
||||
<signal name="Closed" />
|
||||
|
||||
<!--
|
||||
RecordMonitor:
|
||||
@connector: Connector of the monitor to record
|
||||
@properties: Properties
|
||||
@stream_path: Path to the new stream object
|
||||
|
||||
Record a single monitor.
|
||||
|
||||
Available @properties include:
|
||||
|
||||
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
|
||||
Available since API version 2.
|
||||
* "is-recording" (b): Whether this is a screen recording. May be
|
||||
be used for choosing panel icon.
|
||||
Default: false. Available since API version 4.
|
||||
|
||||
Available cursor mode values:
|
||||
|
||||
0: hidden - cursor is not included in the stream
|
||||
1: embedded - cursor is included in the framebuffer
|
||||
2: metadata - cursor is included as metadata in the PipeWire stream
|
||||
-->
|
||||
<method name="RecordMonitor">
|
||||
<arg name="connector" type="s" direction="in" />
|
||||
<arg name="properties" type="a{sv}" direction="in" />
|
||||
<arg name="stream_path" type="o" direction="out" />
|
||||
</method>
|
||||
|
||||
<!--
|
||||
RecordWindow:
|
||||
@properties: Properties used determining what window to select
|
||||
@stream_path: Path to the new stream object
|
||||
|
||||
Supported since API version 2.
|
||||
|
||||
Record a single window. The cursor will not be included.
|
||||
|
||||
Available @properties include:
|
||||
|
||||
* "window-id" (t): Id of the window to record.
|
||||
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see RecordMonitor).
|
||||
* "is-recording" (b): Whether this is a screen recording. May be
|
||||
be used for choosing panel icon.
|
||||
Default: false. Available since API version 4.
|
||||
|
||||
-->
|
||||
<method name="RecordWindow">
|
||||
<arg name="properties" type="a{sv}" direction="in" />
|
||||
<arg name="stream_path" type="o" direction="out" />
|
||||
</method>
|
||||
|
||||
<!--
|
||||
RecordArea:
|
||||
@x: X position of the recorded area
|
||||
@y: Y position of the recorded area
|
||||
@width: width of the recorded area
|
||||
@height: height of the recorded area
|
||||
@properties: Properties
|
||||
@stream_path: Path to the new stream object
|
||||
|
||||
Record an area of the stage. The coordinates are in stage coordinates.
|
||||
The size of the stream does not necessarily match the size of the
|
||||
recorded area, and will depend on DPI scale of the affected monitors.
|
||||
|
||||
Available @properties include:
|
||||
|
||||
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
|
||||
Available since API version 2.
|
||||
* "is-recording" (b): Whether this is a screen recording. May be
|
||||
be used for choosing panel icon.
|
||||
Default: false. Available since API version 4.
|
||||
|
||||
Available cursor mode values:
|
||||
|
||||
0: hidden - cursor is not included in the stream
|
||||
1: embedded - cursor is included in the framebuffer
|
||||
2: metadata - cursor is included as metadata in the PipeWire stream
|
||||
-->
|
||||
<method name="RecordArea">
|
||||
<arg name="x" type="i" direction="in" />
|
||||
<arg name="y" type="i" direction="in" />
|
||||
<arg name="width" type="i" direction="in" />
|
||||
<arg name="height" type="i" direction="in" />
|
||||
<arg name="properties" type="a{sv}" direction="in" />
|
||||
<arg name="stream_path" type="o" direction="out" />
|
||||
</method>
|
||||
</interface>
|
||||
|
||||
<!--
|
||||
org.gnome.Mutter.ScreenCast.Stream:
|
||||
@short_description: Screen cast stream
|
||||
-->
|
||||
<interface name="org.gnome.Mutter.ScreenCast.Stream">
|
||||
|
||||
<!--
|
||||
PipeWireStreamAdded:
|
||||
@short_description: Pipewire stream added
|
||||
|
||||
A signal emitted when PipeWire stream for the screen cast stream has
|
||||
been created. The @node_id corresponds to the PipeWire stream node.
|
||||
-->
|
||||
<signal name="PipeWireStreamAdded">
|
||||
<annotation name="org.gtk.GDBus.C.Name" value="pipewire-stream-added"/>
|
||||
<arg name="node_id" type="u" direction="out" />
|
||||
</signal>
|
||||
|
||||
<!--
|
||||
Parameters:
|
||||
@short_description: Optional stream parameters
|
||||
|
||||
Available parameters include:
|
||||
|
||||
* "position" (ii): Position of the source of the stream in the
|
||||
compositor coordinate space.
|
||||
* "size" (ii): Size of the source of the stream in the compositor
|
||||
coordinate space.
|
||||
-->
|
||||
<property name="Parameters" type="a{sv}" access="read" />
|
||||
|
||||
</interface>
|
||||
|
||||
</node>
|
@@ -3,9 +3,6 @@
|
||||
<method name="GetAppId">
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
<method name="GetFlags">
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
<method name="GetReason">
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
|
@@ -1,7 +0,0 @@
|
||||
<node>
|
||||
<interface name='org.gnome.SettingsDaemon.Power.Keyboard'>
|
||||
<property name='Brightness' type='i' access='readwrite'/>
|
||||
<property name='Steps' type='i' access='read'/>
|
||||
</interface>
|
||||
</node>
|
||||
|
@@ -1,7 +1,6 @@
|
||||
<node>
|
||||
<interface name="org.gnome.SettingsDaemon.Rfkill">
|
||||
<property name="AirplaneMode" type="b" access="readwrite"/>
|
||||
<property name="HasAirplaneMode" type="b" access="read"/>
|
||||
<property name="HardwareAirplaneMode" type="b" access="read"/>
|
||||
<property name="BluetoothAirplaneMode" type="b" access="readwrite"/>
|
||||
<property name="BluetoothHasAirplaneMode" type="b" access="read"/>
|
||||
|
@@ -1,19 +1,12 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.CalendarServer">
|
||||
<method name="SetTimeRange">
|
||||
<arg type="x" name="since" direction="in"/>
|
||||
<arg type="x" name="until" direction="in"/>
|
||||
<arg type="b" name="force_reload" direction="in"/>
|
||||
<method name="GetEvents">
|
||||
<arg type="x" direction="in" />
|
||||
<arg type="x" direction="in" />
|
||||
<arg type="b" direction="in" />
|
||||
<arg type="a(sssbxxa{sv})" direction="out" />
|
||||
</method>
|
||||
<signal name="EventsAddedOrUpdated">
|
||||
<arg type="a(ssxxa{sv})" name="events" direction="out"/>
|
||||
</signal>
|
||||
<signal name="EventsRemoved">
|
||||
<arg type="as" name="ids" direction="out"/>
|
||||
</signal>
|
||||
<signal name="ClientDisappeared">
|
||||
<arg type="s" name="source_uid" direction="out"/>
|
||||
</signal>
|
||||
<property name="HasCalendars" type="b" access="read" />
|
||||
<signal name="Changed" />
|
||||
</interface>
|
||||
</node>
|
||||
|
@@ -71,14 +71,12 @@
|
||||
<listitem><para>
|
||||
The state the extension is in:
|
||||
<simplelist>
|
||||
<member>1: ACTIVE</member>
|
||||
<member>2: INACTIVE</member>
|
||||
<member>1: ENABLED</member>
|
||||
<member>2: DISABLED</member>
|
||||
<member>3: ERROR</member>
|
||||
<member>4: OUT_OF_DATE</member>
|
||||
<member>5: DOWNLOADING</member>
|
||||
<member>6: INITIALIZED</member>
|
||||
<member>7: DEACTIVATING</member>
|
||||
<member>8: ACTIVATING</member>
|
||||
<member>99: UNINSTALLED</member>
|
||||
</simplelist>
|
||||
</para></listitem>
|
||||
@@ -107,11 +105,6 @@
|
||||
<listitem><para>The extension version</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>version-name s</term>
|
||||
<listitem><para>The extension version name</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>url s</term>
|
||||
<listitem><para>The URL to the extension homepage or repository</para></listitem>
|
||||
@@ -187,10 +180,10 @@
|
||||
|
||||
Enable an extension.
|
||||
-->
|
||||
<method name="EnableExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
<method name="EnableExtension"> \
|
||||
<arg type="s" direction="in" name="uuid"/> \
|
||||
<arg type="b" direction="out" name="success"/> \
|
||||
</method> \
|
||||
|
||||
<!--
|
||||
DisableExtension:
|
||||
@@ -199,10 +192,10 @@
|
||||
|
||||
Disable an extension.
|
||||
-->
|
||||
<method name="DisableExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
<method name="DisableExtension"> \
|
||||
<arg type="s" direction="in" name="uuid"/> \
|
||||
<arg type="b" direction="out" name="success"/> \
|
||||
</method> \
|
||||
|
||||
<!--
|
||||
LaunchExtensionPrefs:
|
||||
|
@@ -18,12 +18,6 @@
|
||||
-->
|
||||
<signal name="RunningApplicationsChanged" />
|
||||
|
||||
<!--
|
||||
WindowsChanged:
|
||||
@short_description: Notifies when any window opens or closes
|
||||
-->
|
||||
<signal name="WindowsChanged" />
|
||||
|
||||
<!--
|
||||
GetRunningApplications:
|
||||
@short_description: Retrieves the description of all running applications
|
||||
@@ -76,14 +70,6 @@
|
||||
-->
|
||||
<property name="AnimationsEnabled" type="b" access="read"/>
|
||||
|
||||
<!--
|
||||
ScreenSize:
|
||||
@short_description: The size of the screen
|
||||
|
||||
Since: 3
|
||||
-->
|
||||
<property name="ScreenSize" type="(ii)" access="read"/>
|
||||
|
||||
<property name="version" type="u" access="read"/>
|
||||
</interface>
|
||||
</node>
|
||||
|
@@ -1,13 +1,11 @@
|
||||
<node>
|
||||
<interface name="org.gnome.Shell.PerfHelper">
|
||||
<method name="Exit"/>
|
||||
<method name="CreateWindow">
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="b" direction="in"/>
|
||||
<arg type="b" direction="in"/>
|
||||
<arg type="b" direction="in"/>
|
||||
<arg type="b" direction="in"/>
|
||||
</method>
|
||||
<method name="WaitWindows"/>
|
||||
<method name="DestroyWindows"/>
|
||||
|
@@ -1,38 +0,0 @@
|
||||
<!DOCTYPE node PUBLIC
|
||||
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
|
||||
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
|
||||
<!--
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-FileCopyrightText: 2024 GNOME Foundation, Inc.
|
||||
-->
|
||||
<node>
|
||||
|
||||
<!--
|
||||
org.gnome.Shell.ScreenTime:
|
||||
@short_description: Screen Time interface
|
||||
|
||||
The interface used to access Screen Time and Break Reminders usage data.
|
||||
-->
|
||||
<interface name="org.gnome.Shell.ScreenTime">
|
||||
|
||||
<!--
|
||||
State:
|
||||
|
||||
The state of the break manager.
|
||||
- 0: Break reminders are disabled.
|
||||
- 1: Break reminders are enabled, user is active, no break is needed yet.
|
||||
- 2: A break is needed and the user is taking it.
|
||||
- 3: A break is needed but the user is still active.
|
||||
-->
|
||||
<property name="State" type="u" access="read"/>
|
||||
|
||||
<!--
|
||||
LastBreakEndTime:
|
||||
|
||||
The time (in wall clock seconds since the Unix epoch) when the most
|
||||
recent break ended. If there have been no breaks so far, zero is
|
||||
returned.
|
||||
-->
|
||||
<property name="LastBreakEndTime" type="t" access="read"/>
|
||||
</interface>
|
||||
</node>
|
@@ -10,7 +10,6 @@
|
||||
The interface used to record screen contents.
|
||||
-->
|
||||
<interface name="org.gnome.Shell.Screencast">
|
||||
<property name="ScreencastSupported" type="b" access="read"/>
|
||||
|
||||
<!--
|
||||
Screencast:
|
||||
@@ -92,10 +91,5 @@
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
|
||||
<signal name="Error">
|
||||
<arg type="s" name="name"/>
|
||||
<arg type="s" name="message"/>
|
||||
</signal>
|
||||
|
||||
</interface>
|
||||
</node>
|
||||
|
@@ -11,22 +11,6 @@
|
||||
-->
|
||||
<interface name="org.gnome.Shell.Screenshot">
|
||||
|
||||
<!--
|
||||
InteractiveScreenshot:
|
||||
@success: whether the screenshot was captured
|
||||
@uri: the file where the screenshot was saved
|
||||
|
||||
Shows Shell's interactive screenshot dialog, and lets the
|
||||
user take an interactive screenshot, which is then returned
|
||||
in @filename as png image. It returns a boolean indicating
|
||||
whether the operation was successful or not. The URI of the
|
||||
screenshot will be returned in @uri.
|
||||
-->
|
||||
<method name="InteractiveScreenshot">
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
<arg type="s" direction="out" name="uri"/>
|
||||
</method>
|
||||
|
||||
<!--
|
||||
Screenshot:
|
||||
@filename: The filename for the screenshot
|
||||
|
@@ -35,15 +35,10 @@
|
||||
<arg type="au" direction="in" name="action"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
<method name="ScreenTransition"/>
|
||||
<signal name="AcceleratorActivated">
|
||||
<arg name="action" type="u"/>
|
||||
<arg name="parameters" type="a{sv}"/>
|
||||
</signal>
|
||||
<signal name="AcceleratorDeactivated">
|
||||
<arg name="action" type="u"/>
|
||||
<arg name="parameters" type="a{sv}"/>
|
||||
</signal>
|
||||
<property name="Mode" type="s" access="read"/>
|
||||
<property name="OverviewActive" type="b" access="readwrite"/>
|
||||
<property name="ShellVersion" type="s" access="read"/>
|
||||
|
@@ -1,20 +1,13 @@
|
||||
<node>
|
||||
<interface name="org.gtk.Notifications">
|
||||
<method name="AddNotification">
|
||||
<arg name="app_id" type="s" direction="in"/>
|
||||
<arg name="id" type="s" direction="in"/>
|
||||
<arg name="notification" type="a{sv}" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="a{sv}" direction="in"/>
|
||||
</method>
|
||||
<method name="RemoveNotification">
|
||||
<arg name="app_id" type="s" direction="in"/>
|
||||
<arg name="id" type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
</method>
|
||||
<signal name="ActionInvoked">
|
||||
<arg name="app_id" type="s"/>
|
||||
<arg name="id" type="s"/>
|
||||
<arg name="action" type="s"/>
|
||||
<arg name="parameter" type="av"/>
|
||||
<arg name="platform_data" type="a{sv}"/>
|
||||
</signal>
|
||||
</interface>
|
||||
</node>
|
||||
|
@@ -3,6 +3,5 @@
|
||||
<method name="Raise"/>
|
||||
<property name="CanRaise" type="b" access="read"/>
|
||||
<property name="DesktopEntry" type="s" access="read"/>
|
||||
<property name="Identity" type="s" access="read"/>
|
||||
</interface>
|
||||
</node>
|
||||
|
@@ -1,17 +0,0 @@
|
||||
org.gnome.Geary.desktop
|
||||
org.gnome.Contacts.desktop
|
||||
org.gnome.Weather.desktop
|
||||
org.gnome.clocks.desktop
|
||||
org.gnome.Maps.desktop
|
||||
org.gnome.Music.desktop
|
||||
simple-scan.desktop
|
||||
org.gnome.Settings.desktop
|
||||
org.gnome.Boxes.desktop
|
||||
org.gnome.Totem.desktop
|
||||
org.gnome.Snapshot.desktop
|
||||
org.gnome.Characters.desktop
|
||||
Utilities # folder
|
||||
System # folder
|
||||
org.gnome.Console.desktop
|
||||
org.gnome.Tour.desktop
|
||||
yelp.desktop
|
@@ -1,6 +0,0 @@
|
||||
org.gnome.Epiphany.desktop
|
||||
org.gnome.Calendar.desktop
|
||||
org.gnome.Nautilus.desktop
|
||||
org.gnome.Software.desktop
|
||||
org.gnome.TextEditor.desktop
|
||||
org.gnome.Calculator.desktop
|
@@ -1,10 +0,0 @@
|
||||
nm-connection-editor.desktop # Advanced Network Configuration
|
||||
org.gnome.DejaDup.desktop # Backups
|
||||
org.gnome.baobab.desktop # Disk Usage Analyzer
|
||||
org.gnome.DiskUtility.desktop # Disks
|
||||
org.gnome.Logs.desktop # Logs
|
||||
org.freedesktop.MalcontentControl.desktop # Parental Controls
|
||||
org.freedesktop.GnomeAbrt.desktop # Problem Reporting
|
||||
org.gnome.tweaks.desktop # Tweaks
|
||||
org.gnome.Sysprof.desktop # Sysprof
|
||||
org.gnome.SystemMonitor.desktop # System Monitor
|
@@ -1,8 +0,0 @@
|
||||
# Sorted by name as shown in menus, not filename
|
||||
org.gnome.Decibels # Audio Player
|
||||
org.gnome.Connections.desktop # Connections
|
||||
org.gnome.Evince.desktop # Document Viewer
|
||||
org.gnome.FileRoller.desktop # File Roller
|
||||
org.gnome.font-viewer.desktop # Fonts
|
||||
org.gnome.Loupe.desktop # Image Viewer
|
||||
org.gnome.seahorse.Application.desktop # Passwords and Keys
|
@@ -2,10 +2,8 @@
|
||||
<gresources>
|
||||
<gresource prefix="/org/gnome/shell/dbus-interfaces">
|
||||
<file preprocess="xml-stripblanks">net.hadess.SensorProxy.xml</file>
|
||||
<file preprocess="xml-stripblanks">net.reactivated.Fprint.Device.xml</file>
|
||||
<file preprocess="xml-stripblanks">net.reactivated.Fprint.Manager.xml</file>
|
||||
<file preprocess="xml-stripblanks">net.hadess.SwitcherooControl.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.Application.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.background.Monitor.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Device.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.DBus.xml</file>
|
||||
@@ -29,15 +27,14 @@
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.realmd.Service.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.UPower.Device.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.UPower.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.freedesktop.UPower.PowerProfiles.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Mutter.ScreenCast.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Magnifier.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Magnifier.ZoomRegion.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.ScreenSaver.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.EndSessionDialog.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.Inhibitor.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.Presence.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Color.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Power.Keyboard.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Power.Screen.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Rfkill.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Wacom.xml</file>
|
||||
@@ -51,7 +48,6 @@
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.PortalHelper.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Screencast.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Screenshot.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.ScreenTime.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Wacom.PadOsd.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.WeatherIntegration.xml</file>
|
||||
<file preprocess="xml-stripblanks">org.gnome.Shell.xml</file>
|
||||
|
@@ -1,65 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gresources>
|
||||
<gresource prefix="/org/gnome/shell/icons">
|
||||
<file preprocess="xml-stripblanks">scalable/actions/color-pick.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/carousel-arrow-next-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/carousel-arrow-previous-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/cog-wheel-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/dark-mode-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/group-collapse-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/notification-expand-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/ornament-check-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/ornament-dot-checked-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/ornament-dot-unchecked-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/pointer-double-click-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/pointer-drag-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/pointer-primary-click-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/pointer-secondary-click-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/preview-close-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/record-screen-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/screencast-recorded-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/screencast-stop-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/screenshooter-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/screenshot-ui-area-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/screenshot-ui-display-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/screenshot-ui-show-pointer-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/screenshot-ui-window-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/screenshot-recorded-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-display-built-in-only-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-display-extend-all-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-display-external-only-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-display-mirror-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-app-grid-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-dash-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-dash-symbolic-rtl.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-desktop-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-desktop-symbolic-rtl.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-search-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-top-bar-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-top-bar-symbolic-rtl.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-windows-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/background-app-ghost-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/check-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/keyboard-brightness-high-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/keyboard-brightness-medium-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/keyboard-brightness-off-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/message-indicator-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/no-notifications-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/osk-caps-lock-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/osk-delete-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/osk-emoji-picker-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/osk-enter-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/osk-hide-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/osk-layout-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/osk-shift-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/osk-zwnj-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/screen-privacy-disabled-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/screen-privacy-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/switch-off-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/switch-on-symbolic.svg</file>
|
||||
<file preprocess="xml-stripblanks">scalable/status/wellbeing-symbolic.svg</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
||||
|
||||
|
@@ -3,19 +3,14 @@
|
||||
<gresource prefix="/org/gnome/shell/osk-layouts">
|
||||
<file>am.json</file>
|
||||
<file>ara.json</file>
|
||||
<file>at.json</file>
|
||||
<file>be.json</file>
|
||||
<file>bg.json</file>
|
||||
<file>by.json</file>
|
||||
<file>ca.json</file>
|
||||
<file>ch.json</file>
|
||||
<file>ch+fr.json</file>
|
||||
<file>cz.json</file>
|
||||
<file>de.json</file>
|
||||
<file>digits.json</file>
|
||||
<file>dk.json</file>
|
||||
<file>ee.json</file>
|
||||
<file>email.json</file>
|
||||
<file>epo.json</file>
|
||||
<file>es+cat.json</file>
|
||||
<file>es.json</file>
|
||||
@@ -35,7 +30,6 @@
|
||||
<file>ke.json</file>
|
||||
<file>kg.json</file>
|
||||
<file>kh.json</file>
|
||||
<file>kr.json</file>
|
||||
<file>la.json</file>
|
||||
<file>latam.json</file>
|
||||
<file>lt.json</file>
|
||||
@@ -45,9 +39,7 @@
|
||||
<file>my.json</file>
|
||||
<file>nl.json</file>
|
||||
<file>no.json</file>
|
||||
<file>number.json</file>
|
||||
<file>ph.json</file>
|
||||
<file>phone.json</file>
|
||||
<file>pl.json</file>
|
||||
<file>pt.json</file>
|
||||
<file>ro.json</file>
|
||||
@@ -60,12 +52,9 @@
|
||||
<file>tr.json</file>
|
||||
<file>ua.json</file>
|
||||
<file>uk.json</file>
|
||||
<file>url.json</file>
|
||||
<file>us.json</file>
|
||||
<file>us-extended.json</file>
|
||||
<file>vn.json</file>
|
||||
<file>za.json</file>
|
||||
<file>za-extended.json</file>
|
||||
<file>emoji.json</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
5
data/gnome-shell-overrides-migration.desktop.in
Normal file
@@ -0,0 +1,5 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=GNOME settings overrides migration
|
||||
NoDisplay=true
|
||||
Exec=@libexecdir@/gnome-shell-overrides-migration.sh
|
4
data/gnome-shell-overrides.convert
Normal file
@@ -0,0 +1,4 @@
|
||||
[org.gnome.shell.overrides]
|
||||
attach-modal-dialogs = /desktop/gnome/shell/windows/attach_modal_dialogs
|
||||
edge-tiling = /desktop/gnome/shell/windows/edge_tiling
|
||||
workspaces-only-on-primary = /desktop/gnome/shell/windows/workspaces_only_on_primary
|
@@ -2,12 +2,34 @@
|
||||
<gresources>
|
||||
<gresource prefix="/org/gnome/shell/theme">
|
||||
<file>calendar-today.svg</file>
|
||||
<file>calendar-today-light.svg</file>
|
||||
<file>gnome-shell-dark.css</file>
|
||||
<file>gnome-shell-light.css</file>
|
||||
<file>checkbox-focused.svg</file>
|
||||
<file>checkbox-off-focused.svg</file>
|
||||
<file>checkbox-off.svg</file>
|
||||
<file>checkbox.svg</file>
|
||||
<file>dash-placeholder.svg</file>
|
||||
<file>gnome-shell.css</file>
|
||||
<file>gnome-shell-high-contrast.css</file>
|
||||
<file>gnome-shell-start.svg</file>
|
||||
<file alias="icons/message-indicator-symbolic.svg">message-indicator-symbolic.svg</file>
|
||||
<file>no-events.svg</file>
|
||||
<file>no-notifications.svg</file>
|
||||
<file>pad-osd.css</file>
|
||||
<file>workspace-placeholder.svg</file>
|
||||
<file alias="icons/eye-open-negative-filled-symbolic.svg">eye-open-negative-filled-symbolic.svg</file>
|
||||
<file alias="icons/eye-not-looking-symbolic.svg">eye-not-looking-symbolic.svg</file>
|
||||
<file alias="icons/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
|
||||
<file alias="icons/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
|
||||
<file alias="icons/pointer-primary-click-symbolic.svg">pointer-primary-click-symbolic.svg</file>
|
||||
<file alias="icons/pointer-secondary-click-symbolic.svg">pointer-secondary-click-symbolic.svg</file>
|
||||
<file alias="icons/keyboard-caps-lock-filled-symbolic.svg">keyboard-caps-lock-filled-symbolic.svg</file>
|
||||
<file alias="icons/keyboard-enter-symbolic.svg">keyboard-enter-symbolic.svg</file>
|
||||
<file alias="icons/keyboard-hide-symbolic.svg">keyboard-hide-symbolic.svg</file>
|
||||
<file alias="icons/keyboard-layout-filled-symbolic.svg">keyboard-layout-filled-symbolic.svg</file>
|
||||
<file alias="icons/keyboard-shift-filled-symbolic.svg">keyboard-shift-filled-symbolic.svg</file>
|
||||
<file>process-working.svg</file>
|
||||
<file>toggle-off.svg</file>
|
||||
<file>toggle-off-dark.svg</file>
|
||||
<file>toggle-off-hc.svg</file>
|
||||
<file>toggle-on.svg</file>
|
||||
<file>toggle-on-dark.svg</file>
|
||||
<file>toggle-on-hc.svg</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
[Unit]
|
||||
Description=GNOME Shell on Wayland
|
||||
# On wayland, force a session shutdown
|
||||
OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-shutdown.target
|
||||
OnFailure=gnome-shell-disable-extensions.service gnome-session-shutdown.target
|
||||
OnFailureJobMode=replace-irreversibly
|
||||
CollectMode=inactive-or-failed
|
||||
RefuseManualStart=on
|
||||
@@ -13,22 +13,19 @@ Requisite=gnome-session-initialized.target
|
||||
PartOf=gnome-session-initialized.target
|
||||
Before=gnome-session-initialized.target
|
||||
|
||||
ConditionEnvironment=XDG_SESSION_TYPE=%I
|
||||
# The units already conflict because they use the same BusName
|
||||
#Conflicts=gnome-shell-x11.service
|
||||
|
||||
[Service]
|
||||
Slice=session.slice
|
||||
Type=notify
|
||||
ExecStart=@bindir@/gnome-shell
|
||||
# Exit code 1 means we are probably *not* dealing with an extension failure
|
||||
SuccessExitStatus=1
|
||||
|
||||
# unset some environment variables that were set by the shell and won't work now that the shell is gone
|
||||
ExecStopPost=-/bin/sh -c 'test "$SERVICE_RESULT" != "exec-condition" && systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY'
|
||||
ExecStopPost=-systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY
|
||||
|
||||
# Exit code 1 means we are probably *not* dealing with an extension failure
|
||||
SuccessExitStatus=1
|
||||
# On wayland we cannot restart
|
||||
Restart=no
|
||||
# Kill any stubborn child processes after this long
|
||||
TimeoutStopSec=5
|
||||
|
||||
# Lower down gnome-shell's OOM score to avoid being killed by OOM-killer too early
|
||||
OOMScoreAdjust=-1000
|
10
data/gnome-shell-wayland.target
Normal file
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=GNOME Shell on Wayland
|
||||
DefaultDependencies=no
|
||||
|
||||
Requisite=gnome-session-initialized.target
|
||||
PartOf=gnome-session-initialized.target
|
||||
Before=gnome-session-initialized.target
|
||||
|
||||
Requires=gnome-shell-wayland.service
|
||||
After=gnome-shell-wayland.service
|
@@ -1,7 +1,7 @@
|
||||
[Unit]
|
||||
Description=GNOME Shell on X11
|
||||
# On X11, try to show the GNOME Session Failed screen
|
||||
OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-failed.target
|
||||
OnFailure=gnome-shell-disable-extensions.service gnome-session-failed.target
|
||||
OnFailureJobMode=replace
|
||||
CollectMode=inactive-or-failed
|
||||
RefuseManualStart=on
|
||||
@@ -13,27 +13,21 @@ Requisite=gnome-session-initialized.target
|
||||
PartOf=gnome-session-initialized.target
|
||||
Before=gnome-session-initialized.target
|
||||
|
||||
ConditionEnvironment=XDG_SESSION_TYPE=%I
|
||||
# The units already conflict because they use the same BusName
|
||||
#Conflicts=gnome-shell-wayland.service
|
||||
|
||||
# Limit startup frequency more than the default
|
||||
StartLimitIntervalSec=15s
|
||||
StartLimitBurst=3
|
||||
|
||||
[Service]
|
||||
Slice=session.slice
|
||||
Type=notify
|
||||
ExecStart=@bindir@/gnome-shell
|
||||
# Exit code 1 means we are probably *not* dealing with an extension failure
|
||||
SuccessExitStatus=1
|
||||
|
||||
# On X11 we do not need to unset any variables
|
||||
|
||||
# On X11 we want to restart on-success (Alt+F2 + r) and on-failure.
|
||||
Restart=always
|
||||
# Do not wait before restarting the shell
|
||||
RestartSec=0ms
|
||||
# Kill any stubborn child processes after this long
|
||||
TimeoutStopSec=5
|
||||
|
||||
# Lower down gnome-shell's OOM score to avoid being killed by OOM-killer too early
|
||||
OOMScoreAdjust=-1000
|
@@ -1,9 +1,10 @@
|
||||
[Unit]
|
||||
Description=GNOME Shell
|
||||
Description=GNOME Shell on X11
|
||||
DefaultDependencies=no
|
||||
|
||||
Requisite=gnome-session-initialized.target
|
||||
PartOf=gnome-session-initialized.target
|
||||
Before=gnome-session-initialized.target
|
||||
|
||||
Wants=@SUPPORTED_SESSIONS@
|
||||
Requires=gnome-shell-x11.service
|
||||
After=gnome-shell-x11.service
|
4
data/gnome-shell.portal
Normal file
@@ -0,0 +1,4 @@
|
||||
[portal]
|
||||
DBusName=org.freedesktop.impl.portal.desktop.gnome
|
||||
Interfaces=org.freedesktop.impl.portal.Access
|
||||
UseIn=gnome
|
@@ -1,46 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientTransform="matrix(0.409876 -0.0955931 0.0955931 0.409876 54.804951 57.342529)" gradientUnits="userSpaceOnUse" x1="-129.163696" x2="129.993073" y1="64.190842" y2="124.632477">
|
||||
<stop offset="0" stop-color="#b6b6b9"/>
|
||||
<stop offset="0.0880388" stop-color="#77767b"/>
|
||||
<stop offset="0.404541" stop-color="#77767b"/>
|
||||
<stop offset="0.5" stop-color="#aaaaad"/>
|
||||
<stop offset="0.605913" stop-color="#5c5b5f"/>
|
||||
<stop offset="0.897286" stop-color="#616064"/>
|
||||
<stop offset="0.9648" stop-color="#c8c8c9"/>
|
||||
<stop offset="1" stop-color="#77767b"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse" x1="24" x2="104.182137" y1="72" y2="72">
|
||||
<stop offset="0" stop-color="#e66100"/>
|
||||
<stop offset="0.0650497" stop-color="#e66100"/>
|
||||
<stop offset="0.114985" stop-color="#e66100"/>
|
||||
<stop offset="0.185686" stop-color="#e66100"/>
|
||||
<stop offset="0.242855" stop-color="#e66100"/>
|
||||
<stop offset="0.317234" stop-color="#e66100"/>
|
||||
<stop offset="0.44832" stop-color="#e66100"/>
|
||||
<stop offset="0.502445" stop-color="#ffb780"/>
|
||||
<stop offset="0.563268" stop-color="#e66100"/>
|
||||
<stop offset="0.719163" stop-color="#e66100"/>
|
||||
<stop offset="0.796271" stop-color="#e66100"/>
|
||||
<stop offset="0.857009" stop-color="#e66100"/>
|
||||
<stop offset="1" stop-color="#e66100"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#bb5e00"/>
|
||||
<stop offset="0.0530386" stop-color="#ffa954"/>
|
||||
<stop offset="0.117718" stop-color="#eb7400"/>
|
||||
<stop offset="0.25693" stop-color="#9a4c00"/>
|
||||
<stop offset="0.592964" stop-color="#ff9d40"/>
|
||||
<stop offset="0.874885" stop-color="#d36900"/>
|
||||
<stop offset="0.934563" stop-color="#ffc080"/>
|
||||
<stop offset="1" stop-color="#ae5700"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="d" x1="38.373528" x2="89.688972" xlink:href="#c" y1="56" y2="56"/>
|
||||
<linearGradient id="e" x1="25.382807" x2="104" xlink:href="#c" y1="54.150375" y2="56"/>
|
||||
<path d="m 110.65625 99.722656 l -37.371094 21.601563 c -5.785156 3.34375 -12.917968 3.351562 -18.714844 0.023437 l -36.867187 -21.164062 c -5.796875 -3.328125 -9.382813 -9.492188 -9.414063 -16.175782 l -0.179687 -39.480468 c -0.03125 -6.683594 3.5 -12.878906 9.269531 -16.257813 l 36.679688 -21.488281 c 5.769531 -3.378906 12.898437 -3.429688 18.714844 -0.132812 l 37.554687 21.273437 c 5.8125 3.292969 9.417969 9.441406 9.445313 16.121094 l 0.183593 39.480469 c 0.027344 6.675781 -3.519531 12.859374 -9.300781 16.199218 z m 0 0" fill="url(#a)"/>
|
||||
<path d="m 110.65625 95.722656 l -37.371094 21.601563 c -5.785156 3.34375 -12.917968 3.351562 -18.714844 0.023437 l -36.867187 -21.164062 c -5.796875 -3.328125 -9.382813 -9.492188 -9.414063 -16.175782 l -0.179687 -39.480468 c -0.03125 -6.683594 3.5 -12.878906 9.269531 -16.257813 l 36.679688 -21.488281 c 5.769531 -3.378906 12.898437 -3.429688 18.714844 -0.132812 l 37.554687 21.273437 c 5.8125 3.292969 9.417969 9.441406 9.445313 16.121094 l 0.183593 39.480469 c 0.027344 6.675781 -3.519531 12.859374 -9.300781 16.199218 z m 0 0" fill="#f6f5f4"/>
|
||||
<path d="m 64.195312 74.0625 c -4.949218 0.003906 -8.964843 4.015625 -8.964843 8.96875 s 4.015625 8.96875 8.964843 8.96875 c 4.957032 0 8.972657 -4.015625 8.96875 -8.96875 c 0 -4.953125 -4.015624 -8.96875 -8.96875 -8.96875 z m 0 0" fill="url(#b)"/>
|
||||
<path d="m 64.03125 53.421875 c -8.753906 0 -17.507812 3.324219 -24.15625 9.972656 c -2.003906 2 -2.003906 5.246094 0 7.25 c 2 2 5.246094 2 7.25 0 c 9.378906 -9.382812 24.433594 -9.386719 33.816406 -0.003906 c 2 2 5.246094 2.003906 7.246094 0.003906 c 2.003906 -2.003906 2.003906 -5.25 0 -7.25 c -6.648438 -6.648437 -15.402344 -9.972656 -24.15625 -9.972656 z m 0 0" fill="url(#d)"/>
|
||||
<path d="m 64.03125 32.925781 c -14 -0.003906 -27.996094 5.324219 -38.648438 15.976563 c -2.003906 2 -2.003906 5.246094 0 7.246094 c 2 2.003906 5.246094 2 7.246094 0 c 17.386719 -17.386719 45.417969 -17.386719 62.804688 0 c 2 2 5.246094 2 7.246094 0 c 2.003906 -2 2.003906 -5.246094 0 -7.246094 c -10.648438 -10.652344 -24.648438 -15.980469 -38.648438 -15.976563 z m 0 0" fill="url(#e)"/>
|
||||
<path d="m 64.03125 30.921875 c -14 0 -27.996094 5.328125 -38.648438 15.980469 c -2.003906 2 -2.003906 5.246094 0 7.246094 c 2 2.003906 5.246094 2 7.246094 0 c 17.386719 -17.386719 45.417969 -17.386719 62.804688 0 c 2 2 5.246094 2 7.246094 0 c 2.003906 -2 2.003906 -5.246094 0 -7.246094 c -10.648438 -10.652344 -24.648438 -15.980469 -38.648438 -15.980469 z m 0 20.5 c -8.753906 0 -17.507812 3.324219 -24.15625 9.972656 c -2.003906 2 -2.003906 5.246094 0 7.246094 c 2 2.003906 5.246094 2.003906 7.25 0 c 9.378906 -9.378906 24.433594 -9.382813 33.816406 0 c 2 2 5.246094 2.003906 7.246094 0 c 2.003906 -2 2.003906 -5.246094 0 -7.246094 c -6.648438 -6.648437 -15.402344 -9.972656 -24.15625 -9.972656 z m 0.164062 20.640625 c -4.949218 0.003906 -8.964843 4.015625 -8.964843 8.96875 s 4.015625 8.96875 8.964843 8.96875 c 4.957032 0 8.972657 -4.015625 8.96875 -8.96875 c 0 -4.953125 -4.015624 -8.96875 -8.96875 -8.96875 z m 0 0" fill="#ffa348"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 5.3 KiB |
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#5e5c64">
|
||||
<path d="m 3.199219 7.960938 c -0.394531 0.398437 -0.394531 1.042968 0 1.441406 c 0.398437 0.394531 1.042969 0.398437 1.441406 0 c 1.867187 -1.867188 4.859375 -1.867188 6.726563 0 c 0.398437 0.398437 1.042968 0.398437 1.441406 0 c 0.398437 -0.398438 0.398437 -1.042969 0 -1.441406 c -2.644532 -2.644532 -6.964844 -2.644532 -9.609375 0 z m 0 0"/>
|
||||
<path d="m 0.320312 5.078125 c -0.398437 0.398437 -0.398437 1.042969 0 1.441406 c 0.394532 0.398438 1.039063 0.398438 1.4375 0 c 3.457032 -3.457031 9.035157 -3.457031 12.492188 0 c 0.398438 0.398438 1.042969 0.398438 1.441406 0 c 0.398438 -0.398437 0.398438 -1.042969 0 -1.441406 c -4.238281 -4.238281 -11.136718 -4.234375 -15.371094 0 z m 0 0"/>
|
||||
<path d="m 10 12 c 0 1.105469 -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 s 2 0.894531 2 2 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 998 B |
@@ -1,9 +1 @@
|
||||
excluded_icons=[]
|
||||
if not have_portal_helper
|
||||
excluded_icons += [
|
||||
'scalable/apps/org.gnome.Shell.CaptivePortal.svg',
|
||||
'symbolic/apps/org.gnome.Shell.CaptivePortal-symbolic.svg',
|
||||
]
|
||||
endif
|
||||
install_subdir('hicolor',
|
||||
install_dir: icondir, exclude_files: excluded_icons)
|
||||
install_subdir('hicolor', install_dir: icondir)
|
||||
|
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 6 0 c 0.265625 0 0.519531 0.105469 0.707031 0.292969 l 7 7 c 0.390625 0.390625 0.390625 1.023437 0 1.414062 l -7 7 c -0.390625 0.390625 -1.023437 0.390625 -1.414062 0 s -0.390625 -1.023437 0 -1.414062 l 6.292969 -6.292969 l -6.292969 -6.292969 c -0.390625 -0.390625 -0.390625 -1.023437 0 -1.414062 c 0.1875 -0.1875 0.441406 -0.292969 0.707031 -0.292969 z m 0 0"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 513 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 10 0 c -0.265625 0 -0.519531 0.105469 -0.707031 0.292969 l -7 7 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 l 7 7 c 0.390625 0.390625 1.023437 0.390625 1.414062 0 s 0.390625 -1.023437 0 -1.414062 l -6.292969 -6.292969 l 6.292969 -6.292969 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414062 c -0.1875 -0.1875 -0.441406 -0.292969 -0.707031 -0.292969 z m 0 0"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 516 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 8 0 c -0.550781 0 -1 0.449219 -1 1 v 0.238281 c 0 0.464844 -0.378906 0.902344 -0.820312 1.046875 c -0.023438 0.007813 -0.042969 0.011719 -0.0625 0.019532 c -0.445313 0.148437 -1.007813 0.015624 -1.28125 -0.359376 l -0.140626 -0.195312 c -0.15625 -0.214844 -0.390624 -0.359375 -0.652343 -0.398438 c -0.261719 -0.042968 -0.53125 0.019532 -0.742188 0.175782 c -0.449219 0.324218 -0.550781 0.949218 -0.222656 1.398437 l 0.140625 0.199219 c 0.277344 0.375 0.226562 0.953125 -0.050781 1.328125 c -0.011719 0.015625 -0.023438 0.035156 -0.035157 0.050781 c -0.273437 0.378906 -0.804687 0.601563 -1.25 0.457032 l -0.230468 -0.074219 c -0.523438 -0.171875 -1.089844 0.117187 -1.257813 0.640625 c -0.171875 0.527344 0.113281 1.089844 0.640625 1.261718 l 0.222656 0.074219 c 0.445313 0.144531 0.738282 0.636719 0.75 1.101563 v 0.070312 c 0.015626 0.464844 -0.304687 0.960938 -0.746093 1.105469 l -0.226563 0.070313 c -0.527344 0.171874 -0.8125 0.738281 -0.640625 1.261718 c 0.167969 0.523438 0.734375 0.8125 1.257813 0.640625 l 0.230468 -0.074219 c 0.445313 -0.144531 0.976563 0.078126 1.25 0.457032 c 0.011719 0.015625 0.027344 0.035156 0.039063 0.050781 c 0.277344 0.375 0.324219 0.953125 0.050781 1.328125 l -0.144531 0.203125 c -0.324219 0.445313 -0.226563 1.070313 0.222656 1.394531 c 0.445313 0.324219 1.070313 0.226563 1.394531 -0.21875 l 0.144532 -0.199218 c 0.273437 -0.378907 0.835937 -0.507813 1.277344 -0.359376 c 0.019531 0.007813 0.042968 0.011719 0.0625 0.019532 c 0.445312 0.140625 0.820312 0.578125 0.820312 1.046875 v 0.238281 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -0.238281 c 0 -0.46875 0.378906 -0.90625 0.820312 -1.046875 c 0.023438 -0.007813 0.042969 -0.015625 0.066407 -0.023438 c 0.441406 -0.144531 1.003906 -0.015625 1.277343 0.363282 l 0.144532 0.199218 c 0.324218 0.445313 0.949218 0.542969 1.394531 0.21875 c 0.445313 -0.324218 0.546875 -0.949218 0.222656 -1.394531 l -0.148437 -0.203125 c -0.273438 -0.375 -0.226563 -0.953125 0.050781 -1.328125 c 0.015625 -0.015625 0.027344 -0.035156 0.039063 -0.050781 c 0.273437 -0.378906 0.804687 -0.601563 1.25 -0.457032 l 0.234374 0.078126 c 0.523438 0.167968 1.085938 -0.121094 1.257813 -0.644532 c 0.171875 -0.523437 -0.117187 -1.089844 -0.640625 -1.257812 l -0.230469 -0.074219 c -0.445312 -0.144531 -0.734375 -0.640625 -0.746093 -1.105469 c 0 -0.023437 0 -0.046875 0 -0.070312 c -0.015626 -0.464844 0.300781 -0.957032 0.746093 -1.101563 l 0.230469 -0.074219 c 0.523438 -0.171874 0.8125 -0.734374 0.640625 -1.261718 c -0.171875 -0.523438 -0.734375 -0.8125 -1.257813 -0.640625 l -0.230468 0.074219 c -0.445313 0.144531 -0.980469 -0.078126 -1.253906 -0.457032 c -0.011719 -0.015625 -0.023438 -0.035156 -0.035157 -0.050781 c -0.277343 -0.375 -0.324219 -0.953125 -0.050781 -1.328125 l 0.144531 -0.199219 c 0.324219 -0.445312 0.226563 -1.074219 -0.222656 -1.398437 c -0.214844 -0.15625 -0.480469 -0.21875 -0.742187 -0.179688 c -0.265626 0.042969 -0.5 0.1875 -0.652344 0.402344 l -0.144532 0.195312 c -0.273437 0.378907 -0.835937 0.507813 -1.28125 0.363282 c -0.019531 -0.007813 -0.039062 -0.015625 -0.0625 -0.023438 c -0.441406 -0.140625 -0.820312 -0.578125 -0.820312 -1.046875 v -0.238281 c 0 -0.550781 -0.449219 -1 -1 -1 z m 0 4 c 0.871094 0 1.675781 0.273438 2.332031 0.742188 c 0.003907 0.007812 0.011719 0.015624 0.019531 0.023437 c 0.011719 0.003906 0.019532 0.007813 0.03125 0.015625 c 0.660157 0.484375 1.160157 1.171875 1.421876 1.976562 v 0.007813 s 0.003906 0.003906 0.003906 0.007813 c 0.292968 0.851562 0.15625 1.65625 0 2.457031 c 0 0 -0.003906 0.003906 -0.003906 0.007812 v 0.003907 c -0.261719 0.800781 -0.757813 1.488281 -1.414063 1.976562 c -0.015625 0.003906 -0.027344 0.011719 -0.039063 0.019531 c -0.007812 0.003907 -0.015624 0.011719 -0.019531 0.019531 c -0.65625 0.46875 -1.460937 0.742188 -2.332031 0.742188 c -0.855469 0 -1.644531 -0.265625 -2.289062 -0.714844 c -0.019532 -0.015625 -0.042969 -0.035156 -0.0625 -0.046875 c -0.011719 -0.007812 -0.023438 -0.015625 -0.035157 -0.019531 c -0.652343 -0.484375 -1.148437 -1.160156 -1.40625 -1.945312 c -0.003906 -0.015626 -0.007812 -0.023438 -0.011719 -0.035157 c -0.003906 -0.007812 -0.007812 -0.015625 -0.011718 -0.019531 c -0.285156 -0.847656 -0.148438 -1.644531 0 -2.4375 c 0.003906 -0.007812 0.007812 -0.011719 0.011718 -0.019531 c 0.003907 -0.011719 0.007813 -0.023438 0.011719 -0.039063 c 0.261719 -0.785156 0.757813 -1.460937 1.414063 -1.945312 c 0.007812 -0.003906 0.019531 -0.007813 0.027344 -0.015625 c 0.019531 -0.011719 0.042968 -0.03125 0.058593 -0.046875 c 0.648438 -0.449219 1.4375 -0.714844 2.292969 -0.714844 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.6 KiB |
@@ -1,94 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="5.4116011mm"
|
||||
height="5.1374583mm"
|
||||
viewBox="0 0 5.4116011 5.1374583"
|
||||
version="1.1"
|
||||
id="svg5595"
|
||||
inkscape:version="0.92.4 (unknown)"
|
||||
sodipodi:docname="color-pick.svg">
|
||||
<defs
|
||||
id="defs5589">
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
x="-0.10291173"
|
||||
width="1.2058235"
|
||||
y="-0.065432459"
|
||||
height="1.1308649"
|
||||
id="filter5601"
|
||||
style="color-interpolation-filters:sRGB">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="0.610872"
|
||||
id="feGaussianBlur5603" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="15.839192"
|
||||
inkscape:cx="39.387731"
|
||||
inkscape:cy="12.554326"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata5592">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-103.12753,-146.26461)">
|
||||
<circle
|
||||
r="8.4810486"
|
||||
cy="9.82623"
|
||||
cx="10.226647"
|
||||
id="circle7584"
|
||||
style="color:#000000;display:inline;overflow:visible;opacity:0.6;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter:url(#filter5601)"
|
||||
transform="matrix(0.26458333,0,0,0.26458333,103.12753,146.26461)" />
|
||||
<path
|
||||
style="color:#000000;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:0.26399338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
|
||||
d="m 108.07728,148.64122 c 0,1.2393 -1.00465,2.24394 -2.24395,2.24394 -1.23929,0 -2.24716,-1.00465 -2.25221,-2.24394 l -0.009,-2.24458 2.26136,6.4e-4 c 1.2393,3.4e-4 2.24395,1.00464 2.24395,2.24394 z"
|
||||
id="path7523-7"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ssscss" />
|
||||
<circle
|
||||
style="color:#000000;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#50dbb5;fill-opacity:1;stroke:none;stroke-width:0.36885914;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
|
||||
id="path7482-1"
|
||||
cx="105.83707"
|
||||
cy="148.64352"
|
||||
r="1.844296" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.7 KiB |
@@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 8 0 c -4.40625 0 -8 3.59375 -8 8 s 3.59375 8 8 8 s 8 -3.59375 8 -8 s -3.59375 -8 -8 -8 z m 0 1.941406 c 3.359375 0 6.058594 2.699219 6.058594 6.058594 s -2.699219 6.058594 -6.058594 6.058594 z m 0 0" fill="#222222"/></svg>
|
Before Width: | Height: | Size: 360 B |
@@ -1,37 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
height="16px"
|
||||
viewBox="0 0 16 16"
|
||||
width="16px"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
id="g456"
|
||||
transform="matrix(1,0,0,-1,392,1185.9336)"
|
||||
style="fill:#2e3436;fill-opacity:1">
|
||||
<g
|
||||
id="g143"
|
||||
transform="translate(0,-0.50051875)"
|
||||
style="fill:#2e3436;fill-opacity:1">
|
||||
<g
|
||||
id="g144"
|
||||
transform="translate(0,0.5)"
|
||||
style="fill:#2e3436;fill-opacity:1">
|
||||
<path
|
||||
d="m -388,1172.4341 c 0,-0.2656 0.1055,-0.5195 0.293,-0.707 0.3906,-0.3906 1.0234,-0.3906 1.414,0 l 2.293,2.293 2.293,-2.293 c 0.3906,-0.3906 1.0234,-0.3906 1.414,0 0.1875,0.1875 0.293,0.4414 0.293,0.707 0,0.2656 -0.1055,0.5195 -0.293,0.707 l -3,3 c -0.3906,0.3907 -1.0234,0.3907 -1.414,0 l -3,-3 c -0.1875,-0.1875 -0.293,-0.4414 -0.293,-0.707 z"
|
||||
fill="#2e3436"
|
||||
id="path177459-1"
|
||||
style="fill:#2e3436;fill-opacity:1" />
|
||||
<path
|
||||
d="m -388,1183.4342 c 0,0.2656 0.1055,0.5195 0.293,0.707 0.3906,0.3906 1.0234,0.3906 1.414,0 l 2.293,-2.293 2.293,2.293 c 0.3906,0.3906 1.0234,0.3906 1.414,0 0.1875,-0.1875 0.293,-0.4414 0.293,-0.707 0,-0.2656 -0.1055,-0.5195 -0.293,-0.707 l -3,-3 c -0.3906,-0.3907 -1.0234,-0.3907 -1.414,0 l -3,3 c -0.1875,0.1875 -0.293,0.4414 -0.293,0.707 z"
|
||||
fill="#2e3436"
|
||||
id="path142"
|
||||
style="fill:#2e3436;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#222" fill-rule="evenodd" d="m3.293 7.707 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 1 0-1.414-1.414L8 9.586 4.707 6.293a1 1 0 1 0-1.414 1.414"/></svg>
|
Before Width: | Height: | Size: 215 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 13.75 4.660156 c 0.175781 -0.199218 0.261719 -0.460937 0.246094 -0.726562 c -0.019532 -0.265625 -0.140625 -0.511719 -0.339844 -0.6875 c -0.199219 -0.175782 -0.460938 -0.261719 -0.726562 -0.246094 c -0.265626 0.019531 -0.511719 0.140625 -0.6875 0.339844 l -6.296876 7.195312 l -2.242187 -2.242187 c -0.390625 -0.390625 -1.023437 -0.390625 -1.414063 0 c -0.1875 0.1875 -0.292968 0.441406 -0.292968 0.707031 s 0.105468 0.519531 0.292968 0.707031 l 3 3 c 0.195313 0.195313 0.464844 0.304688 0.738282 0.292969 c 0.277344 -0.007812 0.539062 -0.132812 0.722656 -0.339844 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 739 B |
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 8 5 c 1.652344 0 3 1.34375 3 3 s -1.347656 3 -3 3 c -1.65625 0 -3 -1.34375 -3 -3 s 1.34375 -3 3 -3 z m 0 0" fill="#2e3436"/>
|
||||
<path d="m 7.992188 0 c 4.40625 0 8 3.59375 8 8 s -3.59375 8 -8 8 s -8.0000005 -3.59375 -8.0000005 -8 s 3.5937505 -8 8.0000005 -8 z m 0 2 c -3.320313 0 -6 2.679688 -6 6 s 2.679687 6 6 6 c 3.320312 0 6 -2.679688 6 -6 s -2.679688 -6 -6 -6 z m 0 0" fill="#2e3435" fill-opacity="0.2"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 560 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 7.992188 0 c 4.40625 0 8 3.59375 8 8 s -3.59375 8 -8 8 c -4.402344 0 -8.0000005 -3.59375 -8.0000005 -8 s 3.5976565 -8 8.0000005 -8 z m 0 2 c -3.320313 0 -6 2.679688 -6 6 s 2.679687 6 6 6 c 3.320312 0 6 -2.679688 6 -6 s -2.679688 -6 -6 -6 z m 0 0" fill="#2e3435" fill-opacity="0.2"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 432 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="20px" viewBox="0 0 20 20" width="20px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 1 0 v 19.707031 l 4.242188 -4.144531 c 0.589843 1.191406 1.160156 2.386719 1.761718 3.570312 c 1.105469 1.640626 4.15625 0.464844 3.898438 -1.496093 c 0.007812 -0.46875 -0.40625 -0.90625 -0.4375 -1.3125 l 0.78125 -0.761719 c 0.585937 1.191406 1.15625 2.386719 1.757812 3.570312 c 1.105469 1.640626 4.15625 0.464844 3.898438 -1.496093 c -0.195313 -0.902344 -0.71875 -1.695313 -1.070313 -2.546875 l -0.714843 -1.539063 h 4.828124 l -12.945312 -13.550781 v 6.242188 z m 1.5 3.726562 l 6 6.242188 v -6.242188 l 7.921875 8.324219 h -3.664063 c 0.886719 1.902344 1.785157 3.800781 2.65625 5.707031 c 0.007813 0.625 -1.226562 0.980469 -1.324218 0.207032 l -2.410156 -4.917969 l -3.0625 2.984375 c 0.261718 0.609375 0.597656 1.191406 0.816406 1.816406 c -0.183594 0.601563 -1.269532 0.835938 -1.367188 0.066406 l -2.386718 -4.867187 l -3.179688 3.101563 z m 0 0" fill="#241f31"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1021 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="20px" viewBox="0 0 20 20" width="20px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 10.925781 2.320312 c -0.835937 0.074219 -1.816406 -0.136718 -2.445312 0.574219 c -0.179688 0.503907 -0.394531 0.730469 -0.945313 0.617188 c -0.796875 -0.050781 -1.703125 0.054687 -2.1875 0.773437 c -0.554687 0.832032 -0.316406 1.859375 -0.367187 2.792969 v 1.503906 c -0.511719 -0.320312 -1.132813 -0.132812 -1.699219 -0.183593 c -0.445312 -0.019532 -0.882812 0.027343 -1.320312 0.09375 c 0.058593 2.683593 0.074218 5.371093 0.121093 8.058593 c 0.09375 1.300781 1.230469 2.402344 2.546875 2.421875 c 0.632813 0.015625 1.480469 0.007813 2.222656 0.011719 c 3.222657 -0.011719 6.445313 0.050781 9.667969 -0.054687 c 1.160157 -0.121094 2.210938 -1.1875 2.070313 -2.398438 v -9.480469 c -0.707032 -0.9375 -1.816406 -1.78125 -3.058594 -1.570312 c -0.300781 -0.453125 -0.488281 -1.472657 -1.226562 -1.796875 c -0.355469 -0.292969 -0.839844 -0.109375 -1.261719 -0.164063 c -0.296875 -0.070312 -0.855469 0.195313 -0.867188 -0.25 c -0.160156 -0.523437 -0.71875 -0.910156 -1.25 -0.949219 z m -0.105469 1.503907 c 0.164063 0.269531 0.183594 0.753906 0.21875 1.125 c 0.007813 0.007812 0.019532 0.003906 0.027344 0.011719 c -0.007812 0 -0.019531 0 -0.027344 0 l 0.496094 5.898437 l 0.664063 -5.839844 l 1.34375 0.003907 c 0.535156 0.390624 0.414062 1.140624 0.554687 1.722656 c -0.011718 0.066406 0.007813 0.09375 0.015625 0.136718 l 0.011719 0.085938 l 0.480469 3.863281 l 0.664062 -3.917969 c 0.574219 -0.039062 1.15625 0.039063 1.558594 0.5 c 0.410156 0.21875 0.214844 0.691407 0.261719 1.058594 v 8.34375 c -0.339844 0.964844 -1.601563 0.546875 -2.375 0.660156 c -3.371094 0.011719 -6.742188 0.035157 -10.113282 -0.015624 c -0.976562 -0.027344 -1.140624 -1.070313 -1.039062 -1.839844 c -0.011719 -1.90625 -0.046875 -3.816406 -0.078125 -5.722656 c 0.324219 0.007812 0.675781 -0.011719 0.988281 0.011718 c 0.492188 0.914063 0.484375 2 0.507813 3.015625 c 0.492187 -0.007812 1.042969 0.039063 1.5 0 c 0.007812 -2.519531 -0.019531 -5.039062 0.011719 -7.558593 c 0.105468 -0.519532 0.730468 -0.308594 1.113281 -0.355469 h 0.675781 l 0.488281 5.847656 l 0.667969 -5.875 h -0.003906 c 0.03125 -0.382813 -0.148438 -0.894531 0.25 -1.121094 z m 0 0" fill="#241f31"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.2 KiB |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="20px" viewBox="0 0 20 20" width="20px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 4 0 v 19.644531 l 4.242188 -4.140625 c 0.613281 1.214844 1.175781 2.460938 1.820312 3.65625 c 1.144531 1.476563 3.976562 0.390625 3.847656 -1.472656 c -0.09375 -0.824219 -0.59375 -1.523438 -0.898437 -2.277344 l -0.898438 -1.921875 h 5.269531 z m 1.5 3.726562 l 8.359375 8.261719 h -4.101563 c 0.886719 1.902344 1.78125 3.800781 2.660157 5.707031 c 0.035156 0.566407 -1.148438 0.988282 -1.28125 0.296876 l -2.457031 -5.011719 l -3.179688 3.105469 z m 0 0" fill="#241f31"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 621 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="20px" viewBox="0 0 20 20" width="20px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 16 0 v 19.769531 l -4.242188 -4.140625 c -0.613281 1.214844 -1.175781 2.460938 -1.820312 3.65625 c -1.144531 1.476563 -3.976562 0.390625 -3.847656 -1.472656 c 0.09375 -0.824219 0.59375 -1.523438 0.898437 -2.277344 l 0.898438 -1.921875 h -5.269531 z m -1.5 3.726562 l -8.359375 8.386719 h 4.101563 c -0.886719 1.902344 -1.78125 3.800781 -2.660157 5.707031 c -0.035156 0.566407 1.148438 0.988282 1.28125 0.296876 l 2.457031 -5.011719 l 3.179688 3.105469 z m 0 0" fill="#241f31"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 627 B |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="24px" viewBox="0 0 24 24" width="24px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 7 6 c -0.265625 0 -0.519531 0.105469 -0.707031 0.292969 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 l 4.292969 4.292969 l -4.292969 4.292969 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 s 1.023437 0.390625 1.414062 0 l 4.292969 -4.292969 l 4.292969 4.292969 c 0.390625 0.390625 1.023437 0.390625 1.414062 0 s 0.390625 -1.023437 0 -1.414062 l -4.292969 -4.292969 l 4.292969 -4.292969 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414062 c -0.1875 -0.1875 -0.441406 -0.292969 -0.707031 -0.292969 s -0.519531 0.105469 -0.707031 0.292969 l -4.292969 4.292969 l -4.292969 -4.292969 c -0.1875 -0.1875 -0.441406 -0.292969 -0.707031 -0.292969 z m 0 0" fill="#241f31"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 822 B |
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#2e3436">
|
||||
<path d="m 2.175781 0 h 3.648438 c 1.203125 0 2.175781 0.972656 2.175781 2.175781 v 2.648438 c 0 1.203125 -0.972656 2.175781 -2.175781 2.175781 h -3.648438 c -1.203125 0 -2.175781 -0.972656 -2.175781 -2.175781 v -2.648438 c 0 -1.203125 0.972656 -2.175781 2.175781 -2.175781 z m 0 0"/>
|
||||
<path d="m 7.796875 2.652344 l 2.050781 -1.523438 c 0.214844 -0.160156 0.503906 -0.1875 0.742188 -0.066406 c 0.242187 0.121094 0.394531 0.367188 0.394531 0.636719 v 3.605469 c 0 0.265624 -0.152344 0.511718 -0.394531 0.632812 c -0.238282 0.121094 -0.523438 0.09375 -0.742188 -0.066406 l -2.050781 -1.53125 c -0.265625 -0.199219 -0.421875 -0.511719 -0.421875 -0.84375 c 0 -0.332032 0.15625 -0.644532 0.421875 -0.84375 z m 0 0"/>
|
||||
<path d="m 9.042969 7 h 2.914062 c 0.574219 0 1.042969 0.449219 1.042969 1 s -0.46875 1 -1.042969 1 h -2.914062 c -0.574219 0 -1.042969 -0.449219 -1.042969 -1 s 0.46875 -1 1.042969 -1 z m 0 0"/>
|
||||
<path d="m 7.011719 8 c -1.113281 0 -2.011719 0.898438 -2.011719 2.011719 v 3.976562 c 0 1.113281 0.898438 2.011719 2.011719 2.011719 h 6.976562 c 1.113281 0 2.011719 -0.898438 2.011719 -2.011719 v -3.976562 c 0 -1.113281 -0.898438 -2.011719 -2.011719 -2.011719 z m 3.488281 1 c 1.378906 0 2.5 1.121094 2.5 2.5 s -1.121094 2.5 -2.5 2.5 s -2.5 -1.121094 -2.5 -2.5 s 1.121094 -2.5 2.5 -2.5 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#2e3436">
|
||||
<path d="m 6.929688 8.011719 h 4.140624 c 1.066407 0 1.929688 0.863281 1.929688 1.929687 v 3.140625 c 0 1.066407 -0.863281 1.929688 -1.929688 1.929688 h -4.140624 c -1.066407 0 -1.929688 -0.863281 -1.929688 -1.929688 v -3.140625 c 0 -1.066406 0.863281 -1.929687 1.929688 -1.929687 z m 0 0"/>
|
||||
<path d="m 12.796875 10.664062 l 2.050781 -1.523437 c 0.214844 -0.160156 0.503906 -0.1875 0.742188 -0.066406 c 0.242187 0.121093 0.394531 0.367187 0.394531 0.636719 v 3.605468 c 0 0.265625 -0.152344 0.511719 -0.394531 0.632813 c -0.238282 0.121093 -0.523438 0.09375 -0.742188 -0.066407 l -2.050781 -1.53125 c -0.265625 -0.199218 -0.421875 -0.511718 -0.421875 -0.84375 c 0 -0.332031 0.15625 -0.644531 0.421875 -0.84375 z m 0 0"/>
|
||||
<path d="m 0 4.011719 c 0 -1.652344 1.359375 -3.011719 3.011719 -3.011719 h 7.976562 c 1.652344 0 3.011719 1.359375 3.011719 3.011719 v 1.953125 c 0 0.554687 -0.449219 1 -1 1 s -1 -0.445313 -1 -1 v -1.953125 c 0 -0.578125 -0.433594 -1.011719 -1.011719 -1.011719 h -7.976562 c -0.578125 0 -1.011719 0.433594 -1.011719 1.011719 v 4.976562 c 0 0.578125 0.433594 1.011719 1.011719 1.011719 c 0.550781 0 1 0.449219 1 1 s -0.449219 1 -1 1 c -1.652344 0 -3.011719 -1.359375 -3.011719 -3.011719 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#2e3436" d="M4.5 3h7A1.5 1.5 0 0 1 13 4.5v7a1.5 1.5 0 0 1-1.5 1.5h-7A1.5 1.5 0 0 1 3 11.5v-7A1.5 1.5 0 0 1 4.5 3Z"/></svg>
|
Before Width: | Height: | Size: 197 B |
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#222222">
|
||||
<path d="m 10.042969 6 c -0.566407 0 -1.019531 0.425781 -1.039063 0.964844 h -0.992187 c -1.113281 0 -2.011719 0.898437 -2.011719 2.011718 v 4.011719 c 0 1.113281 0.898438 2.011719 2.011719 2.011719 h 5.976562 c 1.113281 0 2.011719 -0.898438 2.011719 -2.011719 v -4.011719 c 0 -1.113281 -0.898438 -2.011718 -2.011719 -2.011718 h -0.988281 c -0.019531 -0.539063 -0.476562 -0.964844 -1.042969 -0.964844 z m 0.957031 3 c 1.105469 0 2 0.894531 2 2 s -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 z m 0 0"/>
|
||||
<path d="m 3.007812 11.984375 h -0.316406 c -1.507812 0 -2.722656 -1.210937 -2.722656 -2.722656 v -0.269531 c 0 -0.550782 0.445312 -1 1 -1 c 0.550781 0 1 0.449218 1 1 v 0.269531 c 0 0.394531 0.328125 0.722656 0.722656 0.722656 h 0.316406 c 0.550782 0 1 0.449219 1 1 c 0 0.554687 -0.449218 1 -1 1 z m 0 0"/>
|
||||
<path d="m 14 3.039062 v -0.316406 c 0 -0.394531 -0.328125 -0.722656 -0.722656 -0.722656 h -0.269532 c -0.554687 0 -1 -0.449219 -1 -1 s 0.445313 -1 1 -1 h 0.269532 c 1.507812 0 2.722656 1.214844 2.722656 2.722656 v 0.316406 c 0 0.554688 -0.449219 1 -1 1 s -1 -0.445312 -1 -1 z m 0 0"/>
|
||||
<path d="m 0 3.039062 v -0.316406 c 0 -1.507812 1.214844 -2.722656 2.722656 -2.722656 h 0.269532 c 0.554687 0 1 0.449219 1 1 s -0.445313 1 -1 1 h -0.269532 c -0.394531 0 -0.722656 0.328125 -0.722656 0.722656 v 0.316406 c 0 0.554688 -0.449219 1 -1 1 s -1 -0.445312 -1 -1 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#2e3436">
|
||||
<path d="m 9.042969 6 h 1.914062 c 0.574219 0 1.042969 0.449219 1.042969 1 s -0.46875 1 -1.042969 1 h -1.914062 c -0.574219 0 -1.042969 -0.449219 -1.042969 -1 s 0.46875 -1 1.042969 -1 z m 0 0"/>
|
||||
<path d="m 7.011719 6.964844 c -1.113281 0 -2.011719 0.898437 -2.011719 2.011718 v 4.011719 c 0 1.113281 0.898438 2.011719 2.011719 2.011719 h 5.976562 c 1.113281 0 2.011719 -0.898438 2.011719 -2.011719 v -4.011719 c 0 -1.113281 -0.898438 -2.011718 -2.011719 -2.011718 z m 2.988281 2.035156 c 1.105469 0 2 0.894531 2 2 s -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 z m 0 0"/>
|
||||
<path d="m 0 4.011719 c 0 -1.652344 1.359375 -3.011719 3.011719 -3.011719 h 7.976562 c 1.652344 0 3.011719 1.359375 3.011719 3.011719 v 0.988281 c 0 0.550781 -0.449219 1 -1 1 s -1 -0.449219 -1 -1 v -0.988281 c 0 -0.578125 -0.433594 -1.011719 -1.011719 -1.011719 h -7.976562 c -0.578125 0 -1.011719 0.433594 -1.011719 1.011719 v 4.976562 c 0 0.578125 0.433594 1.011719 1.011719 1.011719 c 0.550781 0 1 0.449219 1 1 s -0.449219 1 -1 1 c -1.652344 0 -3.011719 -1.359375 -3.011719 -3.011719 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="32px" viewBox="0 0 32 32" width="32px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 3.5 2 c -1.929688 0.007812 -3.4921875 1.570312 -3.5 3.5 c 0 1.386719 0.820312 2.59375 2 3.15625 v 3.34375 h 2 v -3.035156 c 1.53125 -0.230469 2.734375 -1.433594 2.964844 -2.964844 h 2.035156 v -2 h -2.34375 c -0.578125 -1.21875 -1.808594 -1.996094 -3.15625 -2 z m 25 0 c -1.347656 0.003906 -2.578125 0.78125 -3.15625 2 h -2.34375 v 2 h 2.035156 c 0.230469 1.53125 1.433594 2.734375 2.964844 2.964844 v 3.035156 h 2 v -3.34375 c 1.21875 -0.578125 1.996094 -1.808594 2 -3.15625 c 0 -1.921875 -1.578125 -3.5 -3.5 -3.5 z m -25 2 c 0.839844 0 1.5 0.660156 1.5 1.5 s -0.660156 1.5 -1.5 1.5 s -1.5 -0.660156 -1.5 -1.5 s 0.660156 -1.5 1.5 -1.5 z m 7.5 0 v 2 h 4 v -2 z m 6 0 v 2 h 4 v -2 z m 11.5 0 c 0.839844 0 1.5 0.660156 1.5 1.5 s -0.660156 1.5 -1.5 1.5 s -1.5 -0.660156 -1.5 -1.5 s 0.660156 -1.5 1.5 -1.5 z m -26.5 10 v 4 h 2 v -4 z m 26 0 v 4 h 2 v -4 z m -26 6 v 3.34375 c -1.21875 0.578125 -1.99609375 1.808594 -2 3.15625 c 0 1.921875 1.578125 3.5 3.5 3.5 c 1.347656 -0.003906 2.578125 -0.78125 3.15625 -2 h 2.34375 v -2 h -2.035156 c -0.230469 -1.53125 -1.433594 -2.734375 -2.964844 -2.964844 v -3.035156 z m 26 0 v 3.035156 c -1.53125 0.230469 -2.734375 1.433594 -2.964844 2.964844 h -2.035156 v 2 h 2.34375 c 0.578125 1.21875 1.808594 1.996094 3.15625 2 c 1.921875 0 3.5 -1.578125 3.5 -3.5 c -0.003906 -1.347656 -0.78125 -2.578125 -2 -3.15625 v -3.34375 z m -24.5 5 c 0.839844 0 1.5 0.660156 1.5 1.5 s -0.660156 1.5 -1.5 1.5 s -1.5 -0.660156 -1.5 -1.5 s 0.660156 -1.5 1.5 -1.5 z m 25 0 c 0.839844 0 1.5 0.660156 1.5 1.5 s -0.660156 1.5 -1.5 1.5 s -1.5 -0.660156 -1.5 -1.5 s 0.660156 -1.5 1.5 -1.5 z m -17.5 1 v 2 h 4 v -2 z m 6 0 v 2 h 4 v -2 z m 0 0" fill="#241f31"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.8 KiB |
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="32px" viewBox="0 0 32 32" width="32px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m 5 3 c -2.265625 0 -4.09375 1.847656 -4.09375 4.074219 v 13.828125 c 0 2.230468 1.828125 4.074218 4.09375 4.074218 h 5.894531 v 2.46875 c 0 1.410157 1.132813 2.542969 2.542969 2.542969 h 5.414062 c 1.40625 0 2.542969 -1.132812 2.542969 -2.542969 v -2.46875 h 5.390625 c 2.265625 0 4.097656 -1.84375 4.097656 -4.074218 v -13.828125 c 0 -2.226563 -1.832031 -4.074219 -4.097656 -4.074219 z m 0 1.976562 h 21.785156 c 1.15625 0 2.074219 0.910157 2.074219 2.097657 v 13.828125 c 0 1.191406 -0.917969 2.097656 -2.074219 2.097656 h -21.785156 c -1.15625 0 -2.074219 -0.90625 -2.074219 -2.097656 v -13.828125 c 0 -1.1875 0.917969 -2.097657 2.074219 -2.097657 z m 7.890625 20 h 6.5 v 2.46875 c 0 0.304688 -0.238281 0.542969 -0.539063 0.542969 h -5.414062 c -0.304688 0 -0.546875 -0.238281 -0.546875 -0.542969 z m 0 0" fill="#241f31"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 974 B |