Compare commits

..

33 Commits

Author SHA1 Message Date
Georges Basile Stavracas Neto
a6783692c5 animation: Set size through CSS
Pretty much the same case of the previous commit: we want this size
to be scale-dependant, and using the width and height properties of
ClutterActor doesn't automatically update.

Use CSS to set the width and height.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1176
2020-04-06 14:37:35 -03:00
Georges Basile Stavracas Neto
1c27b68bcc appDisplay: Set the folder icon geometry through CSS
The CSS engine is scale-aware, whereas simply setting the
width and height properties directly isn't.

Use CSS to set the folder icon.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1176
2020-04-06 14:37:35 -03:00
Georges Basile Stavracas Neto
717c05a288 st/theme-node: Use the node's scale factor
Each node stores the scale factor in place when it was created.
Creating nodes with the same style, but with different scale
factors, yields different nodes.

Use the node's scale factor instead of retrieving the context's
one.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1176
2020-04-06 14:37:35 -03:00
Georges Basile Stavracas Neto
e68604b1aa st/theme-node: Consider scale factor when comparing
The CSS engine of St is scale-aware, which means every length
and size it produces is multiplied by the current scale factor.

However, the individual nodes aren't aware of the scale factor
when they compare to each other.

Store and compare the scale factors in the nodes themselves.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1635

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1176
2020-04-06 14:37:35 -03:00
Georges Basile Stavracas Neto
0368ad29e9 st/theme-context: Add a getter for the scale-factor property
Will be used by the next commit to avoid going through the GObject
machinery when retrieving the scale factor.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1176
2020-04-06 14:37:35 -03:00
Jonas Dreßler
b982ce394e shell-app: Use container widget for fallback X11 app icons
Just like StIcon does, we should use a container widget for the fallback
app icon that we get using the cairo surface property. It's needed
because the widget returned by shell_app_create_icon_texture() can be
resized freely, while we want the aspect ratio of the actual texture to
remain the same.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2578


(cherry picked from commit 85846d88f0)
2020-04-06 15:00:05 +00:00
Jonas Dreßler
025647f585 st/theme-context: Also invalidate root node on stylesheet changes
Since commit 6a42d77261 we invalidate the
cached properties for each theme node on stylesheet changes by iterating
over the hashtable of the theme context instead of listening to the
signal in each individual theme node.

That commit forgot one particular node though that's not stored in the
hashtable, but using the `priv->root_node` property instead: The theme
node that belongs to the stage.

So make sure we also invalidate the cached properties of the stage theme
node on stylesheet changes. This fixes various crashes that happened
with extensions providing custom stylesheets (emitting the
"custom-stylesheets-changed" signal on every extension enable/disable),
trying to access an already freed CSS property of the stage.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2584


(cherry picked from commit bc973b80d7)
2020-04-06 14:59:45 +00:00
Florian Müllner
7125b726ad data: Add extension-portal desktop file
Now that the extension preference dialog is opened by a separate
D-Bus service rather than the Extensions app, it can be opened
without a parent window that provides name and icon.

Fix this by adding back a hidden .desktop file.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2562


(cherry picked from commit 6b7c85b079)
2020-04-05 13:48:39 +00:00
Florian Müllner
aebfab7207 extensions-app: Add category in .desktop file
Predefined categories aren't a great way for organizing installed
applications, but they have their use in "stores" like Software
or flathub.

Not listing any category means we fall through the cracks, so
pick the (hopefully) least inappropriate one ...

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1160


(cherry picked from commit 360f5b1642)
2020-04-05 12:46:11 +00:00
Jonas Dreßler
698bd5b3a9 st/icon: Use a static GIcon for the missing-image icon
Don't create a new GIcon for the "missing-image" texture but simply
create it once statically instead and always use that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1179


(cherry picked from commit 1ca39e8586)
2020-04-04 19:40:10 +00:00
Jonas Dreßler
51e9f19f2f st/icon: Always show empty texture if both gicons are NULL
Commit 7ff7fb5d3b forgot to clear the
`priv->icon_texture` actor when returning from st_icon_update(), which
means we don't always switch to an empty icon if both gicon properties
are set to NULL.

Fix this and destroy the actor before returning early from
st_icon_update().

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1178


(cherry picked from commit 07deda593a)
2020-04-04 19:30:49 +00:00
Rūdolfs Mazurs
6d38a4a7b3 Update Latvian translation 2020-04-04 16:14:40 +00:00
Florian Müllner
dfcc5ffb1e screenShield: Wake up on deactivate()
Usually the screen is woken up before the shield is deactivated, but
it is also possible to unlock the session programmatically via the
org.gnome.ScreenSaver D-Bus API.

The intention is very likely not to unlock a turned off screen in
that case. Nor does it seem like a good idea to change the lock
state without any indication.

Waking up the screen is more likely to meet expectations and is
more reasonable too, so do that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1158


(cherry picked from commit fbe2e30f38)
2020-04-03 15:09:24 +00:00
Florian Müllner
8b80a4cf4d screenShield: Switch lightboxes off before unlock transition
There is no point in animating a transition with fullscreen black
rectangles stacked on top, so switch them off before rather than
after the transition.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1158


(cherry picked from commit fb6ead2881)
2020-04-03 15:08:58 +00:00
Andre Moreira Magalhaes
01e894c028 st/icon: Only load default fallback icon if an icon was set and failed to load
Commit c89d6a633 introduced a default fallback icon that would be displayed in
case the main gicon or the fallback gicon wasn't set or failed to load.

This broke the use case where a StIcon is created but no main icon or
fallback icon are set on purpose, for example the appindicator extension
which always creates a StIcon to represent icons in menu items but the
actual icons are only set if the application provides one, leaving the
menu showing the default fallback ("image-missing") icon for all menu
entries that don't actually have an icon provided by the application.

Fix that by only using the default fallback icon if the provided one
failed to load.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1173

(cherry picked from commit 7ff7fb5d3b)
2020-04-03 17:00:30 +02:00
Florian Müllner
856adfd1f1 extensionUtils: Add openPrefs() convenience method
Opening their own preferences is a reasonable desire for extensions,
so make up for breaking it by adding a convenience method for that
action.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1163

(cherry picked from commit 8030d9ad32)
2020-04-03 17:00:07 +02:00
Florian Müllner
efee3aa749 extensionSystem: Add method for opening extension prefs
Extension that want to expose their own preferences (for example as menu
items) do that by passing their UUID to gnome-shell-extension-prefs.

But since 3.36.1 the app is optional and no longer accepts arguments on
the command line. To adjust, extensions now need to make a D-Bus call
the extensions portal, just like the app and gnome-shell.

We will add a convenience method for that purpose, so it makes
sense to share the existing code. As it's extension-related, the
extension manager looks like the right place ...

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1163

(cherry picked from commit 45bc850715)
2020-04-03 16:58:15 +02:00
Florian Müllner
15e72da648 workspace: Fix chaining up
Gah, accidentally dropped the 'vfunc' prefix :-(

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1172
2020-04-03 15:47:01 +02:00
Florian Müllner
3f8bd1db25 extensions-app: Do not expand headerbar switch
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2563
2020-04-03 15:47:01 +02:00
Florian Müllner
3a863ee341 js: Account for promisified call() method
A promisified method expects the callback parameter to be either
a function (in which case the original method is called normally)
or omitted altogether (in which case a Promise is returned).

The call to open application details in Software does neither and
passes null instead, which will result in a warning (because no
function argument means a promise will be used, but not omitting
the parameter means we end up with too many arguments).

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2551
2020-04-03 02:03:18 +00:00
Florian Müllner
654a7af929 environment: Move g_dbus_connection_call() promisification
Commit 83c6b2ab promisified the method in endSessionDialog, which means
that after the module is imported, every caller will get the promisifed
version. That can be a bit surprising in completely unrelated modules,
so commit 764527c8 (on master) moved the promisification of more common
methods into environment, as that's initialized early and expected to be
shared between anything else.

Do the same for the call() method on the stable branch.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2551
2020-04-03 02:03:18 +00:00
Andre Moreira Magalhaes
8dd9cbac7f app-cache: Fix cache for folder translations
The app-cache code currently stores the folder translations in a hash
that can be accessed via shell_util_get_translated_folder_name().
This hash uses the filename (inc. extension) for the "desktop-directory"
as key which causes an issue when trying to find the translation
on AppDisplay._findBestFolderName() which gets categories (folder names)
from the app info which doesn't contain the ".directory" extension.

Fix that by storing the filename without extension as the hash key for
the cached folder translations.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1168


(cherry picked from commit 343b3351f1)
2020-04-03 00:40:34 +00:00
Jonas Ådahl
331db650dd appDisplay: Don't clear signal handler id before emitting
Otherwise we won't clear the 'view-loaded' handler after it was emitted.

Also move field initialization to the correct place, i.e. the init
function of the base class.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1169


(cherry picked from commit a9df4e7516)
2020-04-02 21:10:30 +00:00
Марко Костић
428d38179d Update Serbian translation 2020-04-02 19:43:03 +00:00
Ibai Oihanguren Sala
fe9708ebd8 Update Basque translation 2020-04-02 16:15:32 +00:00
Jiri Grönroos
8398769321 Update Finnish translation 2020-04-02 09:44:36 +00:00
Marco Trevisan (Treviño)
768c08ba9d main: Don't override DesktopAppInfo desktop if already GNOME
During the shell initialization we call the (deprecated) function to
override the Desktop environment in Gio DesktopAppInfo to make sure that
applications are correctly shown (as per commit b2fbf5a2), however this
might break the cases in which $XDG_CURRENT_DESKTOP is already set and
contains GNOME (given that is now a list).

In Ubuntu this is in fact set to: ubuntu:GNOME.
Now, if an application contains NotShowIn=ubuntu, the key will be ignored by
the shell, and the application is still listed everywhere.

So, override the DesktopAppInfo desktop environment only in the case that
the current desktop is not already GNOME.

At the current date I think we could just safely get rid of this override at
all, but there could be still cases where it still might be useful, like when
running as nested in some other environment, so keeping it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1156


(cherry picked from commit a0def23940)
2020-04-01 03:58:56 +00:00
Danial Behzadi
69426cbfda Update Persian translation 2020-04-01 01:42:46 +00:00
Jonas Ådahl
9f968e7378 appDisplay: Clear animateLater callbacks when unmapping
In some situations we could end up not with lingering 'view-loaded'
handler. This could result in delayed spring animate-in being initiated,
e.g. after a minute after the activities overview was already closed.

Fix this by removing any lingering signal or later handlers when
unmapping.

Fixes: 5c33fe4a0a

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1155


(cherry picked from commit f49b58cf97)
2020-03-31 17:12:35 +00:00
Cheng-Chia Tseng
1ab5e6973a Update Chinese (Taiwan) translation 2020-03-31 16:07:19 +00:00
Fabio Tomat
1dea3341ec Update Friulian translation 2020-03-31 11:14:15 +00:00
Florian Müllner
8fda054dc5 Bump version to 3.36.1
Update NEWS.
2020-03-31 00:27:47 +02:00
Florian Müllner
e989684602 extensions-app/metainfo: Point screenshots to stable branch 2020-03-30 21:32:17 +02:00
656 changed files with 103745 additions and 184412 deletions

View File

@@ -1,8 +1,3 @@
extends:
- ./lint/eslintrc-gjs.yml
- ./lint/eslintrc-shell.yml
overrides:
- files:
- js/ui/init.js
parserOptions:
sourceType: module

1
.gitignore vendored
View File

@@ -60,6 +60,7 @@ 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-prefs
src/gnome-shell-extension-tool
src/gnome-shell-hotplug-sniffer
src/gnome-shell-perf-helper

View File

@@ -1,289 +1,137 @@
include:
- remote: 'https://gitlab.gnome.org/GNOME/citemplates/raw/HEAD/flatpak/flatpak_ci_initiative.yml'
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/34f4ade99434043f88e164933f570301fd18b125/templates/fedora.yml'
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/34f4ade99434043f88e164933f570301fd18b125/templates/ci-fairy.yml'
include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
stages:
- pre_review
- prep
- review
- build
- test
- analyze
- deploy
default:
image: registry.gitlab.gnome.org/gnome/mutter/fedora/36:x86_64-2022-09-01.0
# Cancel jobs if newer commits are pushed to the branch
interruptible: true
# Auto-retry jobs in case of infra failures
retry:
max: 1
when:
- 'runner_system_failure'
- 'stuck_or_timeout_failure'
- 'scheduler_failure'
- 'api_failure'
- review
- build
- test
- deploy
variables:
FDO_UPSTREAM_REPO: GNOME/gnome-shell
BUNDLE: "extensions-git.flatpak"
JS_LOG: "js-report.txt"
LINT_LOG: "eslint-report.xml"
LINT_MR_LOG: "eslint-mr-report.xml"
BUNDLE: "extensions-git.flatpak"
JS_LOG: "js-report.txt"
POT_LOG: "pot-update.txt"
workflow:
rules:
- if: '$CI_MERGE_REQUEST_IID'
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH'
.pipeline_guard: &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'
.gnome-shell.fedora:35:
variables:
FDO_DISTRIBUTION_VERSION: 35
FDO_DISTRIBUTION_TAG: '2022-01-18.0'
FDO_DISTRIBUTION_PACKAGES:
findutils
mozjs91-devel
nodejs
npm
meson
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 eslint-plugin-jsdoc &&
dnf group install -y 'Development Tools' \
'C Development Tools and Libraries' &&
./.gitlab-ci/install-meson-project.sh \
-Dman=false \
https://gitlab.gnome.org/GNOME/gnome-shell.git \
main \
subprojects/extensions-tool/ \
./generate-translations.sh &&
dnf clean all
.only_default: &only_default
only:
- branches
- tags
- merge_requests
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
<<: *pipeline_guard
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
<<: *pipeline_guard
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:35
stage: prep
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
js_check:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora:35
stage: review
script:
- find js -name '*.js' $(printf "! -wholename %s " $(cat .jscheckignore)) -exec js91 -c '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG)
artifacts:
paths:
- ${JS_LOG}
when: on_failure
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:35
stage: review
script:
- export NODE_PATH=$(npm root -g)
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit
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_mr:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora:35
stage: review
script:
- export NODE_PATH=$(npm root -g)
- ./.gitlab-ci/run-eslint --output-file ${LINT_MR_LOG} --format junit
--remote ${CI_MERGE_REQUEST_PROJECT_URL}.git
--branch ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
only:
- merge_requests
artifacts:
reports:
junit: ${LINT_MR_LOG}
when: always
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:35
stage: review
script:
- ./.gitlab-ci/check-potfiles.sh
potfile_js_check:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora:35
stage: review
script:
- js91 -m .gitlab-ci/check-potfiles.js
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"]
variables:
GIT_SUBMODULE_STRATEGY: normal
before_script:
- .gitlab-ci/checkout-mutter.sh
- meson mutter mutter/build --prefix=/usr
- meson install -C mutter/build
script:
- meson . build -Dbuildtype=debugoptimized -Dman=false --werror
- meson compile -C build
- meson install -C build
artifacts:
expire_in: 1 day
paths:
- mutter
- build
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:
GIT_SUBMODULE_STRATEGY: normal
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
NO_AT_BRIDGE: "1"
before_script:
- meson install -C mutter/build
script:
- dbus-run-session -- xvfb-run meson test -C build --no-rebuild
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
variables:
GIT_SUBMODULE_STRATEGY: normal
before_script:
- 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'
dist:
variables:
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
NO_AT_BRIDGE: "1"
GIT_SUBMODULE_STRATEGY: normal
stage: deploy
needs: ["build"]
before_script:
- meson install -C mutter/build
- mkdir -m 700 $XDG_RUNTIME_DIR
script:
- dbus-run-session xvfb-run meson dist -C build
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- "**/meson.build"
- meson/*
dist-tarball:
extends: dist
artifacts:
expose_as: 'Get tarball here'
paths:
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
rules:
- if: '$CI_COMMIT_TAG'
BUNDLES: '$BUNDLE'

View 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

31
.gitlab-ci/check-commit-log.sh Executable file
View 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

View File

@@ -1,207 +0,0 @@
const gettextFuncs = new Set([
'_',
'N_',
'C_',
'NC_',
'dcgettext',
'dgettext',
'dngettext',
'dpgettext',
'gettext',
'ngettext',
'pgettext',
]);
function dirname(file) {
const split = file.split('/');
split.pop();
return split.join('/');
}
const scriptDir = dirname(import.meta.url);
const root = dirname(scriptDir);
const excludedFiles = new Set();
const foundFiles = new Set()
function addExcludes(filename) {
const contents = os.file.readFile(filename);
const lines = contents.split('\n')
.filter(l => l && !l.startsWith('#'));
lines.forEach(line => excludedFiles.add(line));
}
addExcludes(`${root}/po/POTFILES.in`);
addExcludes(`${root}/po/POTFILES.skip`);
function walkAst(node, func) {
func(node);
nodesToWalk(node).forEach(n => walkAst(n, func));
}
function findGettextCalls(node) {
switch(node.type) {
case 'CallExpression':
if (node.callee.type === 'Identifier' &&
gettextFuncs.has(node.callee.name))
throw new Error();
if (node.callee.type === 'MemberExpression' &&
node.callee.object.type === 'Identifier' &&
node.callee.object.name === 'Gettext' &&
node.callee.property.type === 'Identifier' &&
gettextFuncs.has(node.callee.property.name))
throw new Error();
break;
}
return true;
}
function nodesToWalk(node) {
switch(node.type) {
case 'ArrayPattern':
case 'BreakStatement':
case 'CallSiteObject': // i.e. strings passed to template
case 'ContinueStatement':
case 'DebuggerStatement':
case 'EmptyStatement':
case 'Identifier':
case 'Literal':
case 'MetaProperty': // i.e. new.target
case 'Super':
case 'ThisExpression':
return [];
case 'ArrowFunctionExpression':
case 'FunctionDeclaration':
case 'FunctionExpression':
return [...node.defaults, node.body].filter(n => !!n);
case 'AssignmentExpression':
case 'BinaryExpression':
case 'ComprehensionBlock':
case 'LogicalExpression':
return [node.left, node.right];
case 'ArrayExpression':
case 'TemplateLiteral':
return node.elements.filter(n => !!n);
case 'BlockStatement':
case 'Program':
return node.body;
case 'StaticClassBlock':
return [node.body];
case 'ClassField':
return [node.name, node.init];
case 'CallExpression':
case 'NewExpression':
case 'OptionalCallExpression':
case 'TaggedTemplate':
return [node.callee, ...node.arguments];
case 'CatchClause':
return [node.body, node.guard].filter(n => !!n);
case 'ClassExpression':
case 'ClassStatement':
return [...node.body, node.superClass].filter(n => !!n);
case 'ClassMethod':
return [node.name, node.body];
case 'ComprehensionExpression':
case 'GeneratorExpression':
return [node.body, ...node.blocks, node.filter].filter(n => !!n);
case 'ComprehensionIf':
return [node.test];
case 'ComputedName':
return [node.name];
case 'ConditionalExpression':
case 'IfStatement':
return [node.test, node.consequent, node.alternate].filter(n => !!n);
case 'DoWhileStatement':
case 'WhileStatement':
return [node.body, node.test];
case 'ExportDeclaration':
return [node.declaration, node.source].filter(n => !!n);
case 'ImportDeclaration':
return [...node.specifiers, node.source];
case 'LetStatement':
return [...node.head, node.body];
case 'ExpressionStatement':
return [node.expression];
case 'ForInStatement':
case 'ForOfStatement':
return [node.body, node.left, node.right];
case 'ForStatement':
return [node.init, node.test, node.update, node.body].filter(n => !!n);
case 'LabeledStatement':
return [node.body];
case 'MemberExpression':
return [node.object, node.property];
case 'ObjectExpression':
case 'ObjectPattern':
return node.properties;
case 'OptionalExpression':
return [node.expression];
case 'OptionalMemberExpression':
return [node.object, node.property];
case 'Property':
case 'PrototypeMutation':
return [node.value];
case 'ReturnStatement':
case 'ThrowStatement':
case 'UnaryExpression':
case 'UpdateExpression':
case 'YieldExpression':
return node.argument ? [node.argument] : [];
case 'SequenceExpression':
return node.expressions;
case 'SpreadExpression':
return [node.expression];
case 'SwitchCase':
return [node.test, ...node.consequent].filter(n => !!n);
case 'SwitchStatement':
return [node.discriminant, ...node.cases];
case 'TryStatement':
return [node.block, node.handler, node.finalizer].filter(n => !!n);
case 'VariableDeclaration':
return node.declarations;
case 'VariableDeclarator':
return node.init ? [node.init] : [];
case 'WithStatement':
return [node.object, node.body];
default:
print(`Ignoring ${node.type}, you should probably fix this in the script`);
}
}
function walkDir(dir) {
os.file.listDir(dir).forEach(child => {
if (child.startsWith('.'))
return;
const path = os.path.join(dir, child);
const relativePath = path.replace(`${root}/`, '');
if (excludedFiles.has(relativePath))
return;
if (!child.endsWith('.js')) {
try {
walkDir(path);
} catch (e) {
// not a directory
}
return;
}
try {
const script = os.file.readFile(path);
const ast = Reflect.parse(script);
walkAst(ast, findGettextCalls);
} catch (e) {
foundFiles.add(path);
}
});
}
walkDir(root);
if (foundFiles.size === 0)
quit(0);
print('The following files are missing from po/POTFILES.in:')
foundFiles.forEach(f => print(` ${f}`));
quit(1);

View File

@@ -1,18 +1,10 @@
#!/usr/bin/env bash
srcdirs="src subprojects/extensions-tool"
uidirs="js subprojects/extensions-app"
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)
# 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)

View 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

View File

@@ -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,46 +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
echo -n Looking for $CI_COMMIT_REF_NAME on remote ...
if fetch origin $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

View File

@@ -1,16 +0,0 @@
patterns:
deny:
- regex: '^$CI_MERGE_REQUEST_PROJECT_URL/(-/)?merge_requests/$CI_MERGE_REQUEST_IID$'
message: Commit message must not contain a link to its own merge request
- 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

View File

@@ -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

View File

@@ -1,34 +0,0 @@
#!/bin/bash
set -e
if [[ $# -lt 4 ]]; then
echo Usage: $0 [options] [repo-url] [commit] [subdir]
echo Options:
echo -Dkey=val
exit 1
fi
MESON_OPTIONS=()
while [[ $1 =~ ^-D ]]; do
MESON_OPTIONS+=( "$1" )
shift
done
REPO_URL="$1"
COMMIT="$2"
SUBDIR="$3"
PREPARE="$4"
REPO_DIR="$(basename ${REPO_URL%.git})"
git clone --depth 1 "$REPO_URL" -b "$COMMIT"
pushd "$REPO_DIR"
pushd "$SUBDIR"
sh -c "$PREPARE"
meson --prefix=/usr _build "${MESON_OPTIONS[@]}"
meson install -C _build
popd
popd
rm -rf "$REPO_DIR"

View File

@@ -1,128 +0,0 @@
#!/usr/bin/env node
const { ESLint } = require('eslint');
const fs = require('fs');
const path = require('path');
const { spawn } = require('child_process');
function createConfig(config) {
const options = {
cache: true,
cacheLocation: `.eslintcache-${config}`,
};
if (config === 'legacy')
options.overrideConfigFile='lint/eslintrc-legacy.yml';
return new ESLint(options);
}
function git(...args) {
const git = spawn('git', args, { stdio: ['ignore', null, 'ignore'] });
git.stdout.setEncoding('utf8');
return new Promise(resolve => {
let out = '';
git.stdout.on('data', chunk => out += chunk);
git.stdout.on('end', () => resolve(out.trim()));
});
}
function createCommon(report1, report2, ignoreColumn=false) {
return report1.map(result => {
const { filePath, messages } = result;
const match =
report2.find(r => r.filePath === filePath) || { messages: [] };
const filteredMessages = messages.filter(
msg => match.messages.some(
m => m.line === msg.line && (ignoreColumn || m.column === msg.column)));
const [errorCount, warningCount] = filteredMessages.reduce(
([e, w], msg) => {
return [
e + Number(msg.severity === 2),
w + Number(msg.severity === 1)];
}, [0, 0]);
return {
filePath,
messages: filteredMessages,
errorCount,
warningCount,
};
});
}
async function getMergeRequestChanges(remote, branch) {
await git('fetch', remote, branch);
const branchPoint = await git('merge-base', 'HEAD', 'FETCH_HEAD');
const diff = await git('diff', '-U0', `${branchPoint}...HEAD`);
const report = [];
let messages = null;
for (const line of diff.split('\n')) {
if (line.startsWith('+++ b/')) {
const filePath = path.resolve(line.substring(6));
messages = filePath.endsWith('.js') ? [] : null;
if (messages)
report.push({ filePath, messages });
} else if (messages && line.startsWith('@@ ')) {
[, , changes] = line.split(' ');
[start, count] = `${changes},1`.split(',').map(i => parseInt(i));
for (let i = start; i < start + count; i++)
messages.push({ line: i });
}
}
return report;
}
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 remote = getOption('--remote') || 'origin';
const branch = getOption('--branch', '-b');
const sources = ['js', 'subprojects/extensions-app/js'];
const regular = createConfig('regular');
const ops = [];
ops.push(regular.lintFiles(sources));
if (branch)
ops.push(getMergeRequestChanges(remote, branch));
else
ops.push(createConfig('legacy').lintFiles(sources));
const results = await Promise.all(ops);
const commonResults = createCommon(...results, branch !== undefined);
const formatter = await regular.loadFormatter(getOption('--format', '-f'));
const resultText = formatter.format(commonResults);
if (outputPath) {
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
fs.writeFileSync(outputPath, resultText);
} else {
console.log(resultText);
}
process.exitCode = commonResults.some(r => r.errorCount > 0) ? 1 : 0;
})().catch((error) => {
process.exitCode = 1;
console.error(error);
});

114
.gitlab-ci/run-eslint.sh Executable file
View 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

View File

@@ -8,7 +8,7 @@ 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://wiki.gnome.org/Schedule for currently supported versions)
* Affected GNOME Shell version
* Does this issue appear in XOrg and/or Wayland
-->

2
.gitmodules vendored
View File

@@ -1,3 +1,3 @@
[submodule "subprojects/gvc"]
path = subprojects/gvc
url = ../../GNOME/libgnome-volume-control.git
url = https://gitlab.gnome.org/GNOME/libgnome-volume-control.git

View File

@@ -1 +0,0 @@
js/ui/init.js

View File

@@ -131,7 +131,7 @@ whenever possible, that is when not inheriting from GObjects.
};
```
For GObject inheritance, we use the GObject.registerClass() function provided
For GObject inheritence, we use the GObject.registerClass() function provided
by gjs.
```javascript
var MyActor = GObject.registerClass(

990
NEWS

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
# 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
@@ -10,7 +10,6 @@ to build GNOME Shell from source and how to get involved with the project,
see the [project wiki][project-wiki].
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
Please refer to the [*Schedule* wiki page][schedule] to see the supported versions.
## Contributing
@@ -20,24 +19,10 @@ 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.
## Default branch
The default development branch is `main`. If you still have a local
checkout under the old name, use:
```sh
git checkout master
git branch -m master main
git fetch
git branch --unset-upstream
git branch -u origin/main
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
```
## 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
[schedule]: https://wiki.gnome.org/Schedule
[license]: COPYING

View File

@@ -13,9 +13,6 @@
/* 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
@@ -33,6 +30,3 @@
/* Define if fdwalk is available in libc */
#mesondefine HAVE_FDWALK
/* Define if polkit defines autocleanup functions */
#mesondefine HAVE_POLKIT_AUTOCLEANUP

View File

@@ -1,45 +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 favorite application 1"
hidden="true"/>
<KeyListEntry name="switch-to-application-2"
description="Activate favorite application 2"
hidden="true"/>
<KeyListEntry name="switch-to-application-3"
description="Activate favorite application 3"
hidden="true"/>
<KeyListEntry name="switch-to-application-4"
description="Activate favorite application 4"
hidden="true"/>
<KeyListEntry name="switch-to-application-5"
description="Activate favorite application 5"
hidden="true"/>
<KeyListEntry name="switch-to-application-6"
description="Activate favorite application 6"
hidden="true"/>
<KeyListEntry name="switch-to-application-7"
description="Activate favorite application 7"
hidden="true"/>
<KeyListEntry name="switch-to-application-8"
description="Activate favorite application 8"
hidden="true"/>
<KeyListEntry name="switch-to-application-9"
description="Activate favorite application 9"
hidden="true"/>
</KeyListEntries>

View File

@@ -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>

View File

@@ -1,75 +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.
- width (Double): Relative width of the key in the
row. 1 is for a square key. Multiples of 0.5 are
accepted.
- 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

View File

@@ -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:

View File

@@ -1,76 +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>
<!--
net.hadess.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 "PerformanceInhibited" 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 "/net/hadess/PowerProfiles".
-->
<interface name="net.hadess.PowerProfiles">
<!--
ActiveProfile:
The type of the currently active profile. It might change automatically
if the "performance" profile was selected but it got inhibited, in which
case the "PerformanceInhibited" property will reflect the reason.
-->
<property name="ActiveProfile" type="s" access="readwrite"/>
<!--
PerformanceInhibited:
This will be set if the performance power profile is unavailable, with
the value being used to identify the reason for unavailability. 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 inhibited)
-->
<property name="PerformanceInhibited" 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.
-->
<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"/>
</interface>
</node>

View File

@@ -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>

View File

@@ -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>

View File

@@ -20,12 +20,6 @@
<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>

View 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>

View 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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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"/>

View File

@@ -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>

View File

@@ -180,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:
@@ -192,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:

View File

@@ -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>

View File

@@ -35,7 +35,6 @@
<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}"/>

View File

@@ -1,13 +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>
</interface>
</node>

View File

@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/dbus-interfaces">
<file preprocess="xml-stripblanks">net.hadess.PowerProfiles.xml</file>
<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.bolt1.Device.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>
@@ -29,7 +27,8 @@
<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.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>

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/icons">
<file>scalable/actions/color-pick.svg</file>
<file>scalable/actions/carousel-arrow-next-symbolic.svg</file>
<file>scalable/actions/carousel-arrow-previous-symbolic.svg</file>
<file>scalable/actions/dark-mode-symbolic.svg</file>
<file>scalable/actions/pointer-double-click-symbolic.svg</file>
<file>scalable/actions/pointer-drag-symbolic.svg</file>
<file>scalable/actions/pointer-primary-click-symbolic.svg</file>
<file>scalable/actions/pointer-secondary-click-symbolic.svg</file>
<file>scalable/actions/preview-close-symbolic.svg</file>
<file>scalable/actions/screenshot-ui-area-symbolic.svg</file>
<file>scalable/actions/screenshot-ui-display-symbolic.svg</file>
<file>scalable/actions/screenshot-ui-show-pointer-symbolic.svg</file>
<file>scalable/actions/screenshot-ui-window-symbolic.svg</file>
<file>scalable/actions/record-screen-symbolic.svg</file>
<file>scalable/actions/screencast-recorded-symbolic.svg</file>
<file>scalable/actions/screenshot-recorded-symbolic.svg</file>
<file>scalable/status/keyboard-caps-lock-symbolic.svg</file>
<file>scalable/status/keyboard-enter-symbolic.svg</file>
<file>scalable/status/keyboard-hide-symbolic.svg</file>
<file>scalable/status/keyboard-layout-symbolic.svg</file>
<file>scalable/status/keyboard-shift-symbolic.svg</file>
<file>scalable/status/message-indicator-symbolic.svg</file>
<file>scalable/status/no-events-symbolic.svg</file>
<file>scalable/status/no-notifications-symbolic.svg</file>
<file>scalable/status/screen-privacy-disabled-symbolic.svg</file>
<file>scalable/status/screen-privacy-symbolic.svg</file>
<file>scalable/status/stop-symbolic.svg</file>
</gresource>
</gresources>

View File

@@ -3,13 +3,10 @@
<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>dk.json</file>
@@ -33,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>
@@ -57,7 +53,6 @@
<file>ua.json</file>
<file>uk.json</file>
<file>us.json</file>
<file>us-extended.json</file>
<file>vn.json</file>
<file>za.json</file>
<file>emoji.json</file>

View 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

View File

@@ -2,24 +2,34 @@
<gresources>
<gresource prefix="/org/gnome/shell/theme">
<file>calendar-today.svg</file>
<file>calendar-today-light.svg</file>
<file>checkbox.svg</file>
<file>checkbox-focused.svg</file>
<file>checkbox-off-focused-light.svg</file>
<file>checkbox-off-focused.svg</file>
<file>checkbox-off-light.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 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-off-light.svg</file>
<file>toggle-on.svg</file>
<file>toggle-on-dark.svg</file>
<file>toggle-on-hc.svg</file>
<file>toggle-on-light.svg</file>
<file>workspace-placeholder.svg</file>
</gresource>
</gresources>

View File

@@ -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,21 +13,18 @@ Requisite=gnome-session-initialized.target
PartOf=gnome-session-initialized.target
Before=gnome-session-initialized.target
# The units already conflict because they use the same BusName
#Conflicts=gnome-shell-x11.service
[Service]
Slice=session.slice
Type=notify
# NOTE: This can be replaced with ConditionEnvironment=XDG_SESSION_TYPE=%I in
# the [Unit] section with systemd >= 246. Also, the current solution is
# kind of painful as systemd had a bug where it retries the condition.
# Only start if the template instance matches the session type.
ExecCondition=/bin/sh -c 'test "$XDG_SESSION_TYPE" = "%I" || exit 2'
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

View 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

View File

@@ -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,24 +13,18 @@ Requisite=gnome-session-initialized.target
PartOf=gnome-session-initialized.target
Before=gnome-session-initialized.target
# 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
# NOTE: This can be replaced with ConditionEnvironment=XDG_SESSION_TYPE=%I in
# the [Unit] section with systemd >= 246. Also, the current solution is
# kind of painful as systemd had a bug where it retries the condition.
# Only start if the template instance matches the session type.
ExecCondition=/bin/sh -c 'test "$XDG_SESSION_TYPE" = "%I" || exit 2'
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

View File

@@ -1,10 +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=org.gnome.Shell@wayland.service
Wants=org.gnome.Shell@x11.service
Requires=gnome-shell-x11.service
After=gnome-shell-x11.service

View File

@@ -1,4 +1,4 @@
[portal]
DBusName=org.gnome.Shell.Portal
DBusName=org.freedesktop.impl.portal.desktop.gnome
Interfaces=org.freedesktop.impl.portal.Access
UseIn=gnome

View File

@@ -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 10.832031 1.039062 c 0.386719 0.085938 0.722657 0.324219 0.9375 0.660157 l 6 9.5 c 0.339844 0.558593 0.308594 1.113281 0 1.601562 l -6 9.5 c -0.445312 0.699219 -1.371093 0.910157 -2.070312 0.46875 c -0.699219 -0.445312 -0.90625 -1.371093 -0.464844 -2.070312 l 5.492187 -8.699219 l -5.492187 -8.699219 c -0.441406 -0.699219 -0.234375 -1.625 0.464844 -2.070312 c 0.335937 -0.210938 0.742187 -0.28125 1.132812 -0.191407 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 592 B

View File

@@ -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 13.167969 1.035156 c -0.386719 0.089844 -0.722657 0.328125 -0.9375 0.664063 l -6 9.5 c -0.308594 0.488281 -0.308594 1.113281 0 1.601562 l 6 9.5 c 0.445312 0.699219 1.371093 0.910157 2.070312 0.464844 c 0.699219 -0.441406 0.90625 -1.367187 0.464844 -2.066406 l -5.492187 -8.699219 l 5.492187 -8.699219 c 0.441406 -0.699219 0.234375 -1.625 -0.464844 -2.070312 c -0.335937 -0.210938 -0.742187 -0.28125 -1.132812 -0.195313 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 594 B

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 4 4 c -1.660156 0 -3 1.339844 -3 3 v 14 c 0 1.660156 1.339844 3 3 3 h 10 v 3 h -3 c -1.09375 -0.003906 -2 0.90625 -2 2 h 14 c 0 -1.09375 -0.910156 -2 -2 -2 h -3 v -3 h 10 c 1.660156 0 3 -1.339844 3 -3 v -14 c 0 -1.660156 -1.339844 -3 -3 -3 z m 0 2 h 24 c 0.554688 0 1 0.445312 1 1 v 14 c 0 0.554688 -0.445312 1 -1 1 h -24 c -0.554688 0 -1 -0.445312 -1 -1 v -14 c 0 -0.554688 0.445312 -1 1 -1 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 567 B

View File

@@ -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 2.953125 1.074219 l 2.417969 13.210937 l 3.238281 -2.398437 l 2.054687 2.648437 c 1.03125 1.433594 3.148438 -0.210937 2.011719 -1.5625 l -2.015625 -2.59375 l 2.984375 -2.175781 z m 0 0" fill="#2e3436"/>
</svg>

Before

Width:  |  Height:  |  Size: 352 B

View File

@@ -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 3 c -1.644531 0 -3 1.355469 -3 3 v 14 c 0 1.644531 1.355469 3 3 3 h 4 v 3 c 0 1.644531 1.351562 3 3 3 h 18.996094 c 1.644531 0 3 -1.355469 3 -3 v -14 c 0 -1.644531 -1.355469 -3 -3 -3 h -4 v -3 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 2 h 18.996094 c 0.570312 0 1 0.429688 1 1 v 3 h -12.996094 c -1.648438 0 -3 1.355469 -3 3 v 9 h -4 c -0.570312 0 -1 -0.429688 -1 -1 v -14 c 0 -0.570312 0.429688 -1 1 -1 z m 7 6 h 18.996094 c 0.570312 0 1 0.429688 1 1 v 14 c 0 0.570312 -0.429688 1 -1 1 h -18.996094 c -0.574219 0 -1 -0.429688 -1 -1 v -14 c 0 -0.570312 0.425781 -1 1 -1 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 744 B

View File

@@ -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 12 2 l -7.5 8 h 4.5 v 5 h 6 v -5 h 4.5 z m -3 16 v 3 h 6 v -3 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 237 B

View File

@@ -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 19 6 v 6.003906 c 0.007812 0.996094 -1 0.996094 -1 0.996094 h -11.585938 l 1.292969 -1.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 -3 3 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 l 3 3 c 0.390625 0.390625 1.023437 0.390625 1.414062 0 s 0.390625 -1.023437 0 -1.414062 l -1.289062 -1.292969 h 11.582031 c 3.007812 0 3 -3 3 -3 v -6 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 627 B

View File

@@ -1,5 +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 2.49705,2.00665 c -0.554,0 -1,0.446 -1,1 v 11 c 0,0.554 0.446,1 1,1 h 19.0059 c 0.554,0 1,-0.446 1,-1 v -11 c 0,-0.554 -0.446,-1 -1,-1 z m 1.3653,2 h 1.6562 v 2 h -2 v -1.6074 c 0,-0.218 0.1538,-0.3926 0.3438,-0.3926 z m 2.6562,0 h 2 v 2 h -2 z m 3,0 h 2 v 2 h -2 z m 3,0 h 1.6563 c 0.19,0 0.3437,0.1746 0.3437,0.3926 v 1.6074 h -2 z m 2.9844,0 h 2 v 2 h -2 z m 3,0 h 2 v 2 h -2 z m -13.9844,3 h 2 v 2 h -2 z m 3,0 h 2 v 2 h -2 z m 3,0 h 2 v 2 h -2 z m 2.9844,0 h 2 v 2 h -2 z m 3,0 h 2 v 2 h -2 z m -9.6621,4 h 10.3125 c 0.19,0 0.3437,0.1746 0.3437,0.3926 v 1.2148 c 0,0.218 -0.1537,0.3926 -0.3437,0.3926 H 6.84085 c -0.19,0 -0.3438,-0.1746 -0.3438,-0.3926 v -1.2148 c 0,-0.218 0.1538,-0.3926 0.3438,-0.3926 z" fill="#241f31"/>
<path d="m 17,17.99335 -4.99512,4 -5.00488,-4 z" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 948 B

View File

@@ -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 2985,-2801.6382 c -0.2187,0 -0.4414,0.012 -0.6562,0.031 l -0.4063,2.0938 c -0.332,0.07 -0.6562,0.1758 -0.9687,0.3125 l -1.5313,-1.4648 c -0.3867,0.2265 -0.7266,0.5117 -1.0625,0.8085 l 0.9063,1.9063 c -0.2227,0.25 -0.4219,0.5234 -0.5938,0.8125 l -2.0937,-0.2773 c -0.1758,0.4101 -0.3125,0.8398 -0.4063,1.2773 l 1.8438,1 c -0.02,0.168 -0.027,0.332 -0.031,0.5 0,0.1719 0.016,0.332 0.031,0.5 l -1.8438,1 c 0.098,0.4453 0.2266,0.8711 0.4063,1.2812 l 2.0937,-0.2812 c 0.1719,0.2891 0.3711,0.5625 0.5938,0.8125 l -0.9063,1.9062 c 0.3359,0.3008 0.6758,0.5821 1.0625,0.8125 l 1.5313,-1.4687 c 0.3046,0.1367 0.6328,0.2383 0.9687,0.3125 l 0.4063,2.0937 c 0.4375,0.043 0.875,0.043 1.3125,0 l 0.4062,-2.0937 c 0.3359,-0.074 0.6641,-0.1758 0.9688,-0.3125 l 1.5312,1.4687 c 0.3867,-0.2304 0.7266,-0.5117 1.0625,-0.8125 l -0.9062,-1.9062 c 0.2226,-0.25 0.4218,-0.5234 0.5937,-0.8125 l 2.0938,0.2812 c 0.1757,-0.414 0.3125,-0.8398 0.4062,-1.2812 l -1.8437,-1 c 0.016,-0.168 0.031,-0.3281 0.031,-0.5 0,-0.1719 -0.016,-0.332 -0.031,-0.5 l 1.8437,-1 c -0.094,-0.4375 -0.2305,-0.8672 -0.4062,-1.2813 l -2.0938,0.2813 c -0.1719,-0.2891 -0.3672,-0.5625 -0.5937,-0.8125 l 0.9062,-1.9063 c -0.3359,-0.2968 -0.6758,-0.582 -1.0625,-0.8125 l -1.5312,1.4688 c -0.3125,-0.1367 -0.6368,-0.2422 -0.9688,-0.3125 l -0.4062,-2.0938 c -0.2188,-0.019 -0.4375,-0.031 -0.6563,-0.031 z m 0,4 c 1.6563,0 3,1.3437 3,3 0,1.6562 -1.3437,3 -3,3 -1.6562,0 -3,-1.3438 -3,-3 0,-1.6563 1.3438,-3 3,-3 z m 0,0" transform="matrix(1.5,0,0,1.5,-4465.5,4203.9569)" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -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 12 4 l -7.5 8 h 4.5 v 7 h 6 v -7 h 4.5 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 214 B

View File

@@ -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 12 8 c 0 2.210938 -1.789062 4 -4 4 s -4 -1.789062 -4 -4 s 1.789062 -4 4 -4 s 4 1.789062 4 4 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 267 B

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="64px" viewBox="0 0 64 64" width="64px" xmlns="http://www.w3.org/2000/svg">
<g fill="#241f31">
<path d="m 12 4 c -4.210938 0 -8 3.378906 -8 7.75 v 40.5 c 0 4.371094 3.789062 7.75 8 7.75 h 40 c 4.210938 0 8 -3.378906 8 -7.75 v -40.5 c 0 -4.371094 -3.789062 -7.75 -8 -7.75 z m -2 18 h 12 v 8 h -12 z m 16.125 0 h 11.875 v 8 h -11.875 z m 15.875 0 h 12 v 8 h -12 z m -32 12 h 12 v 8 h -12 z m 16.125 0 h 11.875 v 8 h -11.875 z m 15.875 0 h 12 v 8 h -12 z m -32 12 h 12 v 8 h -12 z m 16.125 0 h 11.875 v 8 h -11.875 z m 15.875 0 h 12 v 8 h -12 z m 0 0" fill-opacity="0.35"/>
<path d="m 42 34 h 12 v 8 h -12 z m 0 0" fill-opacity="0.1"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 720 B

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="64px" viewBox="0 0 64 64" width="64px" xmlns="http://www.w3.org/2000/svg">
<path d="m 32 0 c -3.3125 0 -6 2.6875 -6 6 c 0 0.304688 0.023438 0.601562 0.066406 0.894531 c -8.148437 2.527344 -14.066406 10.125 -14.066406 19.105469 v 18 h -2 c -2.203125 0 -4 1.796875 -4 4 s 1.796875 4 4 4 h 44 c 2.203125 0 4 -1.796875 4 -4 s -1.796875 -4 -4 -4 h -2 v -18 c 0 -8.980469 -5.917969 -16.578125 -14.066406 -19.105469 c 0.042968 -0.292969 0.066406 -0.589843 0.066406 -0.894531 c 0 -3.3125 -2.6875 -6 -6 -6 z m -8 56 c 0 2.859375 1.53125 5.5 4 6.921875 c 2.46875 1.4375 5.53125 1.4375 8 0 c 2.46875 -1.421875 4 -4.0625 4 -6.921875 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 710 B

View File

@@ -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 1.53125 0.46875 l -1.0625 1.0625 l 14 14 l 1.0625 -1.0625 l -1.945312 -1.945312 c 0.847656 -0.527344 1.414062 -1.449219 1.414062 -2.523438 v -6 c 0 -1.660156 -1.339844 -3 -3 -3 h -8 c -0.554688 0 -1.070312 0.160156 -1.515625 0.421875 z m 2.53125 2.53125 h 0.199219 l -0.097657 0.097656 z m 2.675781 0 h 0.699219 l -1.6875 1.6875 l -0.351562 -0.351562 z m 2.824219 0 h 1.230469 l -3.367188 3.363281 l -0.613281 -0.613281 z m 2.609375 0.035156 c 0.316406 0.054688 0.578125 0.246094 0.714844 0.523438 l -4.132813 4.132812 l -0.617187 -0.617187 z m -11.171875 1.023438 v 5.941406 c 0 1.660156 1.339844 3 3 3 h 5.941406 l -2 -2 h -1.785156 l 0.894531 -0.894531 l -0.355469 -0.355469 l -1.25 1.25 h -1.238281 l 1.867188 -1.867188 l -0.707031 -0.707031 l -2.160157 2.15625 c -0.121093 -0.164062 -0.207031 -0.359375 -0.207031 -0.582031 v -0.4375 l 1.75 -1.75 l -1.0625 -1.0625 l -0.6875 0.6875 v -0.699219 l 0.339844 -0.339843 z m 12 0.09375 v 5.847656 c 0 0.535156 -0.417969 0.960938 -0.949219 0.988281 l -2.941406 -2.941406 z m -5 9.847656 c -5 0 -5 1 -5 1 c 0 1 1 1 1 1 h 8 c 0.328125 0 0.539062 -0.109375 0.6875 -0.253906 l -1.542969 -1.546875 c -0.730469 -0.113281 -1.71875 -0.199219 -3.144531 -0.199219 z m 0 0" fill="#241f31" fill-rule="evenodd"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -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 4 1 c -1.660156 0 -3 1.339844 -3 3 v 6 c 0 1.660156 1.339844 3 3 3 h 8 c 1.660156 0 3 -1.339844 3 -3 v -6 c 0 -1.660156 -1.339844 -3 -3 -3 z m 0 2 h 0.261719 l -1.261719 1.261719 v -0.261719 c 0 -0.554688 0.445312 -1 1 -1 z m 2.738281 0 h 0.699219 l -4.4375 4.4375 v -0.699219 z m 2.824219 0 h 1.230469 l -7.585938 7.582031 c -0.121093 -0.164062 -0.207031 -0.359375 -0.207031 -0.582031 v -0.4375 z m 2.609375 0.035156 c 0.316406 0.054688 0.578125 0.246094 0.714844 0.523438 l -7.441407 7.441406 h -1.238281 z m 0.828125 1.121094 v 5.84375 c 0 0.554688 -0.445312 1 -1 1 h -5.84375 z m -5 9.84375 c -5 0 -5 1 -5 1 c 0 1 1 1 1 1 h 8 c 1 0 1 -1 1 -1 s 0 -1 -5 -1 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 834 B

View File

@@ -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 4 4 h 8 v 8 h -8 z m 0 0" fill="#2e3436"/></svg>

Before

Width:  |  Height:  |  Size: 186 B

View File

@@ -16,7 +16,7 @@ desktopconf.set('bindir', bindir)
desktopconf.set('systemd_hidden', have_systemd ? 'true' : 'false')
foreach desktop_file : desktop_files
i18n.merge_file(
i18n.merge_file('desktop',
input: configure_file(
input: desktop_file + '.in.in',
output: desktop_file + '.in',
@@ -41,27 +41,22 @@ foreach service_file : service_files
)
endforeach
theme_deps = []
subdir('dbus-interfaces')
subdir('icons')
subdir('theme')
data_resources = [
{'name': 'dbus-interfaces'},
{'name': 'icons'},
{'name': 'osk-layouts'},
{'name': 'theme', 'deps': theme_deps}
['dbus-interfaces', []],
['osk-layouts', []],
['theme', theme_deps]
]
foreach resource : data_resources
name = resource.get('name')
deps = resource.get('deps', [])
gnome.compile_resources(
'gnome-shell-' + name,
'gnome-shell-@0@.gresource.xml'.format(name),
source_dir: name,
dependencies: deps,
'gnome-shell-' + resource[0],
'gnome-shell-@0@.gresource.xml'.format(resource[0]),
source_dir: resource[0],
dependencies: resource[1],
gresource_bundle: true,
install: true,
install_dir: pkgdatadir
@@ -77,14 +72,9 @@ configure_file(
install_dir: pkgdatadir
)
keybinding_files = [
'50-gnome-shell-launchers.xml',
'50-gnome-shell-screenshots.xml',
'50-gnome-shell-system.xml',
]
install_data('gnome-shell.portal', install_dir: portaldir)
install_data(keybinding_files, install_dir: keysdir)
install_data('50-gnome-shell-system.xml', install_dir: keysdir)
schemaconf = configuration_data()
@@ -111,21 +101,22 @@ if have_systemd
unitconf.set('bindir', bindir)
configure_file(
input: 'org.gnome.Shell@x11.service.in',
output: 'org.gnome.Shell@x11.service',
input: 'gnome-shell-x11.service.in',
output: 'gnome-shell-x11.service',
configuration: unitconf,
install_dir: systemduserunitdir
)
configure_file(
input: 'org.gnome.Shell@wayland.service.in',
output: 'org.gnome.Shell@wayland.service',
input: 'gnome-shell-wayland.service.in',
output: 'gnome-shell-wayland.service',
configuration: unitconf,
install_dir: systemduserunitdir
)
units = files('org.gnome.Shell.target',
'org.gnome.Shell-disable-extensions.service')
units = files('gnome-shell-x11.target',
'gnome-shell-wayland.target',
'gnome-shell-disable-extensions.service')
install_data(units, install_dir: systemduserunitdir)
endif
@@ -136,3 +127,5 @@ custom_target('compile-schemas',
output: 'gschemas.compiled',
command: [find_program('glib-compile-schemas'), meson.current_build_dir()],
build_by_default: true)
install_data('gnome-shell-overrides.convert', install_dir: convertdir)

View File

@@ -1,511 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
viewBox="0 0 64 64"
id="svg2"
version="1.1"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="org.gnome.Shell-symbolic.Source.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="51.5"
inkscape:cy="258"
inkscape:document-units="px"
inkscape:current-layer="layer2"
showgrid="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-intersection-paths="false"
inkscape:object-paths="true"
inkscape:object-nodes="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true"
inkscape:bbox-nodes="false"
inkscape:snap-global="true"
inkscape:pagecheckerboard="false"
showborder="false"
inkscape:snap-nodes="true"
inkscape:snap-others="false">
<inkscape:grid
type="xygrid"
id="grid4514"
empspacing="4"
color="#5e57ff"
opacity="0.1254902"
empcolor="#5e57ff"
empopacity="0.25098039" />
</sodipodi:namedview>
<g
inkscape:label="status"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-161.53331)">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;fill:#241f31;fill-opacity:1;stroke:none"
x="-4"
y="145.53331"
id="text12175"><tspan
sodipodi:role="line"
id="tspan12173"
x="-4"
y="145.53331"
style="font-size:16px;fill:#241f31;fill-opacity:1">status</tspan></text>
<g
id="g16183"
transform="translate(-288,-312)"
inkscape:label="notifications alerts calendar events">
<title
id="title20651">no-notifications</title>
<path
id="path81"
d="m 320,473.53331 c -3.3125,0 -6,2.6875 -6,6 0,0.30385 0.0228,0.60279 0.0664,0.89453 C 305.91768,482.95558 300,490.55273 300,499.53331 v 18 h -2 c -2.20312,0 -4,1.79688 -4,4 0,2.20312 1.79688,4 4,4 h 44 c 2.20312,0 4,-1.79688 4,-4 0,-2.20312 -1.79688,-4 -4,-4 h -2 v -18 c 0,-8.98058 -5.91768,-16.57773 -14.06641,-19.10547 0.0436,-0.29174 0.0664,-0.59068 0.0664,-0.89453 0,-3.3125 -2.6875,-6 -6,-6 z m -8,56 c 0,2.85938 1.53125,5.5 4,6.92188 2.46875,1.43749 5.53125,1.43749 8,0 2.46875,-1.42188 4,-4.0625 4,-6.92188 z"
style="fill:#241f31;fill-opacity:1" />
<rect
transform="scale(-1,1)"
y="473.53333"
x="-352"
height="64"
width="64"
id="rect15794"
style="fill:none" />
</g>
<g
id="g21075"
transform="translate(0,-320)"
inkscape:label="notifications alerts calendar events">
<title
id="title36429">message-indicator</title>
<rect
transform="scale(-1,1)"
y="601.53333"
x="-16"
height="16"
width="16"
id="rect20973"
style="fill:none" />
<path
d="M 12,609.53332 A 3.9999999,3.9999999 0 0 1 8.0000002,613.53331 3.9999999,3.9999999 0 0 1 4.0000003,609.53332 3.9999999,3.9999999 0 0 1 8.0000002,605.53334 3.9999999,3.9999999 0 0 1 12,609.53332 Z"
id="path4485"
style="fill:#241f31;fill-opacity:1;stroke-width:3.77953" />
</g>
<g
id="g36685"
inkscape:label="screen shield privacy active"
transform="translate(-40,-382)">
<title
id="title41631">screen-privacy</title>
<rect
transform="scale(-1,1)"
y="663.53333"
x="-76"
height="16"
width="16"
id="rect36558"
style="fill:none" />
<path
id="path113"
style="fill:#241f31;fill-opacity:1"
d="m 64,664.53331 c -1.660156,0 -3,1.33984 -3,3 v 6 c 0,1.66016 1.339844,3 3,3 h 8 c 1.660156,0 3,-1.33984 3,-3 v -6 c 0,-1.66016 -1.339844,-3 -3,-3 z m 0,2 h 0.261719 L 63,667.79503 v -0.26172 c 0,-0.55469 0.445312,-1 1,-1 z m 2.738281,0 H 67.4375 L 63,670.97081 v -0.69922 z m 2.824219,0 h 1.230469 l -7.585938,7.58203 C 63.085938,673.95128 63,673.75597 63,673.53331 v -0.4375 z m 2.609375,0.0352 c 0.316406,0.0547 0.578125,0.24609 0.714844,0.52343 l -7.441407,7.44141 H 64.207031 Z M 73,667.68956 v 5.84375 c 0,0.55469 -0.445312,1 -1,1 h -5.84375 z m -5,9.84375 c -5,0 -5,1 -5,1 0,1 1,1 1,1 h 8 c 1,0 1,-1 1,-1 0,0 0,-1 -5,-1 z" />
</g>
<g
id="g41416"
inkscape:label="status"
transform="translate(-40,-382)">
<title
id="title41633">screen-privacy-disabled</title>
<rect
transform="scale(-1,1)"
y="663.53333"
x="-96"
height="16"
width="16"
id="rect36687"
style="fill:none" />
<path
d="m 81.53125,664.00213 -1.0625,1.0625 14,14 1.0625,-1.0625 -1.945312,-1.94531 C 94.433594,675.52947 95,674.6076 95,673.53338 v -6 c 0,-1.66016 -1.339844,-3 -3,-3 h -8 c -0.554688,0 -1.070312,0.16016 -1.515625,0.42188 z m 2.53125,2.53125 h 0.199219 l -0.09766,0.0977 z m 2.675781,0 H 87.4375 l -1.6875,1.6875 -0.351562,-0.35156 z m 2.824219,0 h 1.230469 l -3.367188,3.36328 -0.613281,-0.61328 z m 2.609375,0.0352 c 0.316406,0.0547 0.578125,0.24609 0.714844,0.52343 l -4.132813,4.13282 -0.617187,-0.61719 z M 81,667.59197 v 5.94141 c 0,1.66016 1.339844,3 3,3 h 5.941406 l -2,-2 H 86.15625 l 0.894531,-0.89453 -0.355469,-0.35547 -1.25,1.25 h -1.238281 l 1.867188,-1.86719 -0.707031,-0.70703 -2.160157,2.15625 C 83.085938,673.95135 83,673.75604 83,673.53338 v -0.4375 l 1.75,-1.75 -1.0625,-1.0625 -0.6875,0.6875 v -0.69922 l 0.339844,-0.33984 z m 12,0.0937 v 5.84766 c 0,0.53516 -0.417969,0.96094 -0.949219,0.98828 l -2.941406,-2.9414 z m -5,9.84766 c -5,0 -5,1 -5,1 0,1 1,1 1,1 h 8 c 0.328125,0 0.539062,-0.10937 0.6875,-0.25391 l -1.542969,-1.54687 C 90.414062,677.61927 89.425781,677.53333 88,677.53333 Z m 0,0"
fill="#2e3436"
fill-rule="evenodd"
id="path113-6"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g53379"
inkscape:label="notifications alerts calendar events"
transform="translate(0,-360)">
<title
id="title58232">no-events</title>
<rect
transform="scale(-1,1)"
y="521.53333"
x="-144"
height="64"
width="64"
id="rect53237"
style="fill:none" />
<path
d="m 92,525.53331 c -4.20948,0 -8,3.38032 -8,7.75 v 40.5 c 0,4.36968 3.79052,7.75 8,7.75 h 40 c 4.20948,0 8,-3.38032 8,-7.75 v -40.5 c 0,-4.36968 -3.79052,-7.75 -8,-7.75 z m -2,18 h 12 v 8 H 90 Z m 16.125,0 H 118 v 8 h -11.875 z m 15.875,0 h 12 v 8 h -12 z m -32,12 h 12 v 8 H 90 Z m 16.125,0 H 118 v 8 h -11.875 z m 15.875,0 h 12 v 8 h -12 z m -32,12 h 12 v 8 H 90 Z m 16.125,0 H 118 v 8 h -11.875 z m 15.875,0 h 12 v 8 h -12 z"
id="path19157"
style="fill:#241f31;fill-opacity:0.35" />
<rect
height="7.9999971"
id="rect19159"
width="11.999997"
x="121.99993"
y="555.53333"
style="fill:#241f31;fill-opacity:0.1" />
</g>
<g
id="g8970"
transform="translate(-24,-194.46669)"
inkscape:label="on-screen keyboard keys">
<title
id="title14941">keyboard-shift</title>
<rect
width="23.999996"
height="23.999996"
x="23.99999"
y="443.99997"
id="rect8636"
style="fill:none" />
<path
d="m 36,448 -7.5,8 H 33 v 7 h 6 v -7 h 4.5 z"
id="path1150"
style="fill:#241f31;fill-opacity:1;stroke-width:0.666667" />
</g>
<g
id="g8978"
transform="translate(8,-194.46669)"
inkscape:label="on-screen keyboard keys">
<title
id="title14939">keyboard-caps-lock</title>
<rect
width="23.999996"
height="23.999996"
x="23.99999"
y="443.99997"
id="rect8972"
style="fill:none" />
<path
id="path8974"
d="m 36,446 -7.5,8 H 33 v 5 h 6 v -5 h 4.5 z m -3,16 v 3 h 6 v -3 z"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g13560"
inkscape:label="on-screen keyboard keys"
transform="translate(-40,-214.46669)">
<title
id="title14945">keyboard-layout</title>
<rect
width="23.999996"
height="23.999996"
x="103.99999"
y="463.99997"
id="rect13441"
style="fill:none" />
<path
d="m 109,467 v 19 h 2 v -8 h 4.383 l 0.722,1.447 c 0.16942,0.33905 0.51597,0.55318 0.895,0.553 h 7 c 0.55228,0 1,-0.44772 1,-1 v -9 c 0,-0.55228 -0.44772,-1 -1,-1 h -5.383 l -0.722,-1.447 C 117.72558,467.21395 117.37903,466.99982 117,467 h -7 z"
id="path1085"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g13678"
inkscape:label="keyboard keys hide "
transform="translate(-40,-214.46669)">
<title
id="title14947">keyboard-hide</title>
<path
d="m 139.99985,472 a 1,1 0 0 0 -0.70703,0.29297 1,1 0 0 0 0,1.41406 l 8,8 a 1.0001,1.0001 0 0 0 1.41406,0 l 8,-8 a 1,1 0 0 0 0,-1.41406 1,1 0 0 0 -1.41406,0 l -7.29297,7.29297 -7.29297,-7.29297 A 1,1 0 0 0 139.99985,472 Z"
id="path4931"
style="fill:#241f31;fill-opacity:1" />
<rect
width="23.999996"
height="23.999996"
x="-487.99997"
y="-159.99998"
id="rect13562"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:none" />
</g>
<g
id="g13796"
inkscape:label="on-screen keyboard keys"
transform="translate(-40,-214.46669)">
<title
id="title14943">keyboard-enter</title>
<rect
width="23.999996"
height="23.999996"
x="-487.99997"
y="-191.99998"
id="rect13680"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:none" />
<path
id="path955"
style="fill:#241f31;fill-opacity:1"
d="m 187,470 v 6.00391 c 0.006,0.996 -1,0.99609 -1,0.99609 h -11.58594 l 1.29297,-1.29297 a 1,1 0 0 0 0,-1.41406 A 1,1 0 0 0 175,474 a 1,1 0 0 0 -0.70703,0.29297 l -3,3 a 1.0001,1.0001 0 0 0 0,1.41406 l 3,3 a 1,1 0 0 0 1.41406,0 1,1 0 0 0 0,-1.41406 L 174.41602,479 H 186 c 3.006,0 3,-3 3,-3 v -6 z" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="actions">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:16px;line-height:1.25;font-family:sans-serif;fill:#241f31;fill-opacity:1;stroke:none"
x="-4"
y="184"
id="text12715"><tspan
sodipodi:role="line"
id="tspan12713"
x="-4"
y="184"
style="font-size:16px;fill:#241f31;fill-opacity:1">actions</tspan></text>
<g
id="g13433"
inkscape:label="overview previous left backward"
transform="translate(-40,-240)">
<title
id="title15448">carousel-arrow-previous</title>
<path
d="m 53.169107,497.03665 a 1.5,1.5 0 0 0 -0.9375,0.66211 l -6,9.5 a 1.50015,1.50015 0 0 0 0,1.60156 l 6,9.5 a 1.5,1.5 0 0 0 2.068359,0.4668 1.5,1.5 0 0 0 0.466797,-2.06836 l -5.49414,-8.69922 5.49414,-8.69922 a 1.5,1.5 0 0 0 -0.466797,-2.06836 1.5,1.5 0 0 0 -1.130859,-0.19531 z"
id="path13468"
style="fill:#241f31;fill-opacity:1" />
<rect
width="23.999996"
height="23.999996"
x="39.999992"
y="495.99997"
id="rect12821"
style="fill:none" />
</g>
<g
id="g13439"
transform="matrix(-1,0,0,1,95.99998,-240)"
inkscape:label="overview next right forward">
<title
id="title15446">carousel-arrow-next</title>
<rect
width="23.999996"
height="23.999996"
x="39.999992"
y="495.99997"
id="rect13435"
style="fill:none" />
<path
d="m 53.169235,497.03711 c -0.387918,0.0877 -0.725132,0.32585 -0.9375,0.66211 l -6,9.5 c -0.34001,0.56012 -0.308809,1.11236 0,1.60156 l 6,9.5 c 0.442487,0.69974 1.368227,0.90867 2.068359,0.4668 0.69974,-0.44249 0.908665,-1.36823 0.466797,-2.06836 L 49.272751,508 l 5.49414,-8.69922 c 0.441868,-0.70013 0.232943,-1.62587 -0.466797,-2.06836 -0.336162,-0.21243 -0.742919,-0.28268 -1.130859,-0.19531 z"
id="path13468-5"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g29998"
inkscape:label="mouse pointer dwell click"
transform="translate(28,-344)">
<title
id="title39373">pointer-secondary-click</title>
<path
d="m 16,640 v 19.77148 l -4.24414,-4.14258 c -0.612408,1.21538 -1.173049,2.46023 -1.819709,3.6561 -1.141947,1.47628 -3.975266,0.38901 -3.846009,-1.47361 0.09413,-0.82252 0.594755,-1.52142 0.899969,-2.2776 l 0.896608,-1.92051 H 2.617188 Z m -1.5,3.72656 -8.359375,8.38672 h 4.101563 c -0.885072,1.9032 -1.781799,3.80152 -2.659622,5.70774 -0.0349,0.56609 1.149057,0.98883 1.282093,0.29797 l 2.455699,-5.01348 3.179687,3.10351 z"
id="path5851"
style="fill:#241f31;fill-opacity:1" />
<rect
width="20"
height="20"
x="-7.6293945e-06"
y="640"
id="rect1156"
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:1.781;marker:none;enable-background:new" />
</g>
<g
id="g29992"
inkscape:label="mouse pointer dwell click"
transform="translate(-28,-344)">
<title
id="title39371">pointer-primary-click</title>
<rect
width="20"
height="20"
x="27.999992"
y="640"
id="rect1244"
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:1.781;marker:none;enable-background:new" />
<path
d="m 32,640 v 19.64648 l 4.24414,-4.14257 c 0.612408,1.21537 1.173049,2.46022 1.819709,3.65609 1.141947,1.47628 3.975266,0.38901 3.846009,-1.47361 -0.09413,-0.82252 -0.594755,-1.52142 -0.899969,-2.2776 l -0.896608,-1.92051 h 5.269531 z m 1.5,3.72656 8.359375,8.26172 h -4.101563 c 0.885072,1.9032 1.781799,3.80152 2.659622,5.70774 0.0349,0.56609 -1.149057,0.98883 -1.282093,0.29798 l -2.455699,-5.01349 -3.179687,3.10352 z"
id="path5565"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g14643"
inkscape:label="mouse pointer dwell click drag"
transform="translate(0,-344)">
<title
id="title39369">pointer-drag</title>
<rect
width="20"
height="20"
x="55.999992"
y="640"
id="rect9430"
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:1.781;marker:none;enable-background:new" />
<path
d="m 66.92607,642.31969 c -0.836524,0.0747 -1.818151,-0.13657 -2.447266,0.57617 -0.179249,0.5031 -0.39107,0.72969 -0.945312,0.61718 -0.793816,-0.0511 -1.701912,0.0538 -2.1875,0.77344 -0.554908,0.83096 -0.313681,1.85623 -0.367187,2.79297 v 1.50195 c -0.509721,-0.31797 -1.13192,-0.13205 -1.699219,-0.18164 -0.442833,-0.0207 -0.881113,0.0252 -1.31836,0.0918 0.05693,2.68593 0.07373,5.37334 0.121094,8.05859 0.09369,1.3023 1.232044,2.40482 2.544922,2.42383 0.632949,0.0151 1.48233,0.007 2.224609,0.0117 3.221817,-0.0121 6.446114,0.0498 9.666016,-0.0566 1.162213,-0.12022 2.213268,-1.18845 2.070313,-2.39648 v -9.48047 c -0.706809,-0.94069 -1.815276,-1.78087 -3.058594,-1.57032 -0.299549,-0.45356 -0.486118,-1.47311 -1.226563,-1.79882 -0.354855,-0.29104 -0.839588,-0.10977 -1.259765,-0.16211 -0.297442,-0.0727 -0.8559,0.19254 -0.869141,-0.25196 -0.157351,-0.52152 -0.715235,-0.90856 -1.248047,-0.94921 z m -0.105469,1.5039 c 0.164522,0.27146 0.182773,0.75372 0.21875,1.125 0.0066,0.007 0.0198,0.006 0.02734,0.0117 -0.0091,-1.7e-4 -0.01824,1.7e-4 -0.02734,0 l 0.494141,5.90039 0.664062,-5.8418 1.345704,0.004 c 0.536079,0.38955 0.412986,1.14048 0.554687,1.72266 -0.01113,0.0675 0.0064,0.096 0.01563,0.13672 -6.5e-4,-10e-6 -0.0013,0 -0.002,0 l 0.01172,0.0859 0.482422,3.86524 0.664062,-3.91993 c 0.574035,-0.0371 1.157689,0.0385 1.558594,0.50196 0.40964,0.21686 0.215641,0.68897 0.259766,1.05859 v 8.3418 c -0.337059,0.96368 -1.599977,0.54827 -2.375,0.66016 -3.370517,0.0131 -6.742137,0.0338 -10.111329,-0.0137 -0.975625,-0.0283 -1.141898,-1.06997 -1.040974,-1.84179 -0.01164,-1.90706 -0.04474,-3.81393 -0.07813,-5.72071 0.326364,0.006 0.675958,-0.0127 0.988281,0.01 0.493884,0.91523 0.484615,2.00119 0.507813,3.01563 0.492636,-0.007 1.043381,0.0398 1.5,0 0.0091,-2.51961 -0.01844,-5.04003 0.01367,-7.5586 0.104898,-0.5199 0.730745,-0.30916 1.111329,-0.35352 h 0.675781 l 0.488281,5.84766 0.669922,-5.87695 h -0.0039 c 0.03095,-0.38284 -0.150626,-0.89584 0.24805,-1.11914 z"
id="path5630"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g30454"
inkscape:label="mouse pointer dwell click double"
transform="translate(0,-344)">
<title
id="title39367">pointer-double-click</title>
<rect
width="20"
height="20"
x="83.999992"
y="640"
id="rect14651"
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:1.781;marker:none;enable-background:new" />
<path
d="m 85,640 v 19.70898 l 4.24414,-4.14453 c 0.5882,1.18866 1.158389,2.38656 1.758464,3.56913 1.108631,1.64026 4.157538,0.46513 3.89799,-1.49586 0.01057,-0.47022 -0.405577,-0.90844 -0.434651,-1.31364 l 0.778203,-0.75963 c 0.5882,1.18866 1.158389,2.38656 1.758464,3.56913 1.108631,1.64026 4.15754,0.46513 3.89799,-1.49586 -0.19232,-0.9043 -0.71785,-1.69802 -1.068629,-2.54897 l -0.716725,-1.53797 h 4.830074 L 91,640 v 6.24414 z m 1.5,3.72656 6,6.24414 v -6.24414 l 7.92188,8.32422 h -3.662115 c 0.883468,1.90344 1.781983,3.80027 2.656081,5.70782 0.0065,0.62278 -1.227555,0.98057 -1.325116,0.20712 l -2.412991,-4.92076 -3.060547,2.98633 c 0.263642,0.60805 0.596803,1.19246 0.814693,1.81614 -0.182662,0.60103 -1.26833,0.8373 -1.365856,0.0679 l -2.388284,-4.87037 -3.177734,3.10156 z"
id="path5565-5"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g1429"
transform="translate(-132,-248)"
inkscape:label="screenshooter capture area ">
<title
id="title1423">screenshot-ui-area</title>
<rect
width="31.999998"
height="31.999998"
x="-491.99994"
y="-163.99998"
id="rect1425"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:none;stroke-width:1" />
<path
d="m 135.5,462 a 3.515,3.515 0 0 0 -3.5,3.5 c 0,1.385 0.822,2.593 2,3.158 V 472 h 2 v -3.037 A 3.521,3.521 0 0 0 138.963,466 H 141 v -2 h -2.342 a 3.516,3.516 0 0 0 -3.158,-2 z m 25,0 a 3.516,3.516 0 0 0 -3.158,2 H 155 v 2 h 2.037 A 3.521,3.521 0 0 0 160,468.963 V 472 h 2 v -3.342 a 3.516,3.516 0 0 0 2,-3.158 c 0,-1.921 -1.579,-3.5 -3.5,-3.5 z m -25,2 c 0.84,0 1.5,0.66 1.5,1.5 0,0.84 -0.66,1.5 -1.5,1.5 -0.84,0 -1.5,-0.66 -1.5,-1.5 0,-0.84 0.66,-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.84,0 1.5,0.66 1.5,1.5 0,0.84 -0.66,1.5 -1.5,1.5 -0.84,0 -1.5,-0.66 -1.5,-1.5 0,-0.84 0.66,-1.5 1.5,-1.5 z M 134,474 v 4 h 2 v -4 z m 26,0 v 4 h 2 v -4 z m -26,6 v 3.342 a 3.516,3.516 0 0 0 -2,3.158 c 0,1.921 1.579,3.5 3.5,3.5 a 3.516,3.516 0 0 0 3.158,-2 H 141 v -2 h -2.037 A 3.521,3.521 0 0 0 136,483.037 V 480 Z m 26,0 v 3.037 A 3.521,3.521 0 0 0 157.037,486 H 155 v 2 h 2.342 a 3.516,3.516 0 0 0 3.158,2 c 1.921,0 3.5,-1.579 3.5,-3.5 a 3.516,3.516 0 0 0 -2,-3.158 V 480 Z m -24.5,5 c 0.84,0 1.5,0.66 1.5,1.5 0,0.84 -0.66,1.5 -1.5,1.5 -0.84,0 -1.5,-0.66 -1.5,-1.5 0,-0.84 0.66,-1.5 1.5,-1.5 z m 25,0 c 0.84,0 1.5,0.66 1.5,1.5 0,0.84 -0.66,1.5 -1.5,1.5 -0.84,0 -1.5,-0.66 -1.5,-1.5 0,-0.84 0.66,-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"
id="path2-3"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g4349"
transform="translate(-92,-248)"
inkscape:label="screenshooter capture display screen ">
<title
id="title4343">screenshot-ui-display</title>
<rect
width="31.999998"
height="31.999998"
x="-491.99994"
y="-163.99998"
id="rect4345"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:none;stroke-width:1" />
<path
id="path9443"
d="m 136,464 c -1.662,0 -3,1.338 -3,3 v 14 c 0,1.662 1.338,3 3,3 h 10 v 2.99805 h -3.00195 c -1.0901,-7e-5 -1.99805,0.90995 -1.99805,2 H 142.99805 153 155 C 155,487.908 154.09,487.00007 153,487 h -2.99805 v -3 H 160 c 1.662,0 3,-1.338 3,-3 v -14 c 0,-1.662 -1.338,-3 -3,-3 z m 0,2 h 24 c 0.554,0 1,0.446 1,1 v 14 c 0,0.554 -0.446,1 -1,1 h -24 c -0.554,0 -1,-0.446 -1,-1 v -14 c 0,-0.554 0.446,-1 1,-1 z"
style="fill:#241f31;fill-opacity:1" />
</g>
<g
id="g4445"
transform="translate(-52,-248)"
inkscape:label="screenshooter capture windows">
<title
id="title4439">screenshot-ui-window</title>
<path
id="rect28516"
d="m 135,463 c -1.6447,0 -3,1.3553 -3,3 v 14 c 0,1.6447 1.3553,3 3,3 h 3.99805 v 3 c 0,1.6447 1.3553,3 3,3 h 18.99804 c 1.6447,0 3,-1.3553 3,-3 v -14 c 0,-1.6447 -1.3553,-3 -3,-3 h -4 v -3 c 0,-1.6447 -1.3553,-3 -3,-3 z m 0,2 h 18.99609 c 0.5713,0 1,0.4287 1,1 v 3 h -12.99804 c -1.6447,0 -3,1.3553 -3,3 v 9 H 135 c -0.5713,0 -1,-0.4287 -1,-1 v -14 c 0,-0.5713 0.4287,-1 1,-1 z m 6.99805,6 h 18.99804 c 0.5713,0 1,0.4287 1,1 v 14 c 0,0.5713 -0.4287,1 -1,1 h -18.99804 c -0.5713,0 -1,-0.4287 -1,-1 v -14 c 0,-0.5713 0.4287,-1 1,-1 z"
style="fill:#241f31;fill-opacity:1" />
<rect
width="31.999998"
height="31.999998"
x="-491.99994"
y="-163.99998"
id="rect4441"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:none;stroke-width:1" />
</g>
<g
id="g42319"
transform="translate(-12,-248)"
inkscape:label="screenshooter capture windows">
<title
id="title42313">screenshot-ui-window</title>
<path
id="path42315"
d="m 135,463 c -1.6447,0 -3,1.3553 -3,3 v 14 c 0,1.6447 1.3553,3 3,3 h 3.99805 v 3 c 0,1.6447 1.3553,3 3,3 h 18.99804 c 1.6447,0 3,-1.3553 3,-3 v -14 c 0,-1.6447 -1.3553,-3 -3,-3 h -4 v -3 c 0,-1.6447 -1.3553,-3 -3,-3 z m 0,2 h 18.99609 c 0.5713,0 1,0.4287 1,1 v 3 h -12.99804 c -1.6447,0 -3,1.3553 -3,3 v 9 H 135 c -0.5713,0 -1,-0.4287 -1,-1 v -14 c 0,-0.5713 0.4287,-1 1,-1 z m 6.99805,6 h 18.99804 c 0.5713,0 1,0.4287 1,1 v 14 c 0,0.5713 -0.4287,1 -1,1 h -18.99804 c -0.5713,0 -1,-0.4287 -1,-1 v -14 c 0,-0.5713 0.4287,-1 1,-1 z"
style="fill:#241f31;fill-opacity:1" />
<rect
width="31.999998"
height="31.999998"
x="-491.99994"
y="-163.99998"
id="rect42317"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:none;stroke-width:1" />
</g>
<g
id="g42429"
inkscape:label="screenshooter capture display screen "
transform="translate(-80,-335.53331)">
<title
id="title42423">screenshot-ui-show-pointer</title>
<rect
transform="scale(-1,1)"
y="663.53333"
x="-96"
height="16"
width="16"
id="rect42425"
style="fill:none" />
<path
d="m 82.95312,664.60753 2.41797,13.21094 3.23828,-2.39844 2.05469,2.64844 c 1.03125,1.43359 3.14844,-0.21094 2.01172,-1.5625 l -2.01562,-2.59375 2.98437,-2.17579 z m 0,0"
fill="#2e3436"
id="path2-35" />
</g>
<g
id="g14227"
transform="translate(-71.999987,-207.99997)"
inkscape:label="overview window close">
<title
id="title15444">preview-close</title>
<rect
width="23.999996"
height="23.999996"
x="-487.99997"
y="-159.99998"
id="rect14223"
transform="matrix(0,-1,-1,0,0,0)"
style="fill:none" />
</g>
<path
id="path986"
d="M 71 262 A 1 1 0 0 0 70.292969 262.29297 A 1 1 0 0 0 70.292969 263.70703 L 74.585938 268 L 70.292969 272.29297 A 1 1 0 0 0 70.292969 273.70703 A 1 1 0 0 0 71.707031 273.70703 L 76 269.41406 L 80.292969 273.70703 A 1 1 0 0 0 81.707031 273.70703 A 1 1 0 0 0 81.707031 272.29297 L 77.414062 268 L 81.707031 263.70703 A 1 1 0 0 0 81.707031 262.29297 A 1 1 0 0 0 81 262 A 1 1 0 0 0 80.292969 262.29297 L 76 266.58594 L 71.707031 262.29297 A 1 1 0 0 0 71 262 z "
style="fill:#241f31;fill-opacity:1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -41,7 +41,7 @@
</description>
</key>
<key name="disable-extension-version-validation" type="b">
<default>false</default>
<default>true</default>
<summary>Disables the validation of extension version compatibility</summary>
<description>
GNOME Shell will only load extensions that claim to support the current
@@ -50,13 +50,20 @@
</description>
</key>
<key name="favorite-apps" type="as">
<default>[ 'org.gnome.Epiphany.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
<default>[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
<summary>List of desktop file IDs for favorite applications</summary>
<description>
The applications corresponding to these identifiers
will be displayed in the favorites area.
</description>
</key>
<key name="app-picker-view" type="u">
<default>0</default>
<summary>App Picker View</summary>
<description>
Index of the currently selected view in the application picker.
</description>
</key>
<key name="command-history" type="as">
<default>[]</default>
<summary>History for command (Alt-F2) dialog</summary>
@@ -94,58 +101,12 @@
adapter is ever seen not to have devices associated to it.
</description>
</key>
<key name="last-selected-power-profile" type="s">
<default>"power-saver"</default>
<summary>The last selected non-default power profile</summary>
<key name="introspect" type="b">
<default>false</default>
<summary>Enable introspection API</summary>
<description>
Some systems support more than two power profiles. In order to still support
toggling between two profiles, this key records the last selected non-default
profile.
</description>
</key>
<key name="welcome-dialog-last-shown-version" type="s">
<default>''</default>
<summary>The last version the “Welcome to GNOME” dialog was shown for</summary>
<description>
This key determines for which version the “Welcome to GNOME” dialog was
last shown. An empty string represents the oldest possible version, and
a huge number will represent versions that do not exist yet. This huge
number can be used to effectively disable the dialog.
</description>
</key>
<key name="app-picker-layout" type="aa{sv}">
<default><![CDATA[
[{
'org.gnome.Geary.desktop': <{'position': <0>}>,
'org.gnome.Contacts.desktop': <{'position': <1>}>,
'org.gnome.Weather.desktop': <{'position': <2>}>,
'org.gnome.clocks.desktop': <{'position': <3>}>,
'org.gnome.Maps.desktop': <{'position': <4>}>,
'org.gnome.Books.desktop': <{'position': <5>}>,
'org.gnome.Photos.desktop': <{'position': <6>}>,
'org.gnome.Totem.desktop': <{'position': <7>}>,
'org.gnome.Calculator.desktop': <{'position': <8>}>,
'org.gnome.gedit.desktop': <{'position': <9>}>,
'simple-scan.desktop': <{'position': <10>}>,
'org.gnome.Settings.desktop': <{'position': <11>}>,
'gnome-system-monitor.desktop': <{'position': <12>}>,
'org.gnome.Boxes.desktop': <{'position': <13>}>,
'org.gnome.Terminal.desktop': <{'position': <14>}>,
'Utilities': <{'position': <15>}>,
'org.gnome.Characters.desktop': <{'position': <16>}>,
'yelp.desktop': <{'position': <17>}>,
'org.gnome.Screenshot.desktop': <{'position': <18>}>,
'org.gnome.Cheese.desktop': <{'position': <19>}>,
'org.gnome.font-viewer.desktop': <{'position': <20>}>
}]
]]></default>
<summary>Layout of the app picker</summary>
<description>
Layout of the app picker. Each entry in the array is a page. Pages are
stored in the order they appear in GNOME Shell. Each page contains an
“application id” → 'data' pair. Currently, the following values are
stored as 'data':
• “position”: the position of the application icon in the page
Enables a D-Bus API that allows to introspect the application state of
the shell.
</description>
</key>
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
@@ -160,20 +121,6 @@
Keybinding to open the application menu.
</description>
</key>
<key name="shift-overview-up" type="as">
<default>["&lt;Super&gt;&lt;Alt&gt;Up"]</default>
<summary>Keybinding to shift between overview states</summary>
<description>
Keybinding to shift between session, window picker and app grid
</description>
</key>
<key name="shift-overview-down" type="as">
<default>["&lt;Super&gt;&lt;Alt&gt;Down"]</default>
<summary>Keybinding to shift between overview states</summary>
<description>
Keybinding to shift between app grid, window picker and session
</description>
</key>
<key name="toggle-application-view" type="as">
<default>["&lt;Super&gt;a"]</default>
<summary>Keybinding to open the “Show Applications” view</summary>
@@ -239,30 +186,6 @@
<default>["&lt;Super&gt;9"]</default>
<summary>Switch to application 9</summary>
</key>
<key name="switch-realm" type="as">
<default>["&lt;Primary&gt;Tab"]</default>
<summary>Open Realm Switcher</summary>
</key>
<key name="switch-realm-backward" type="as">
<default>["&lt;Shift&gt;&lt;Primary&gt;Tab"]</default>
<summary>Open Realm Switcher Backwards</summary>
</key>
<key name="show-screenshot-ui" type="as">
<default>["Print"]</default>
<summary>Take a screenshot interactively</summary>
</key>
<key name="show-screen-recording-ui" type="as">
<default>["&lt;Ctrl&gt;&lt;Shift&gt;&lt;Alt&gt;R"]</default>
<summary>Record a screencast interactively</summary>
</key>
<key name="screenshot-window" type="as">
<default>["&lt;Alt&gt;Print"]</default>
<summary>Take a screenshot of a window</summary>
</key>
<key name="screenshot" type="as">
<default>["&lt;Shift&gt;Print"]</default>
<summary>Take a screenshot</summary>
</key>
</schema>
<schema id="org.gnome.shell.app-switcher"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,978 +0,0 @@
{
"levels": [
{
"level": "",
"mode": "default",
"rows": [
[
{
"strings": [
"q"
]
},
{
"strings": [
"w"
]
},
{
"strings": [
"e",
"é",
"è",
"ê",
"ë",
"ė"
]
},
{
"strings": [
"r"
]
},
{
"strings": [
"t"
]
},
{
"strings": [
"z"
]
},
{
"strings": [
"u",
"ü",
"û",
"ù",
"ú",
"ū"
]
},
{
"strings": [
"i"
]
},
{
"strings": [
"o",
"ö",
"ô",
"ò",
"ó",
"õ",
"œ",
"ø",
"ō"
]
},
{
"strings": [
"p"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"a",
"ä",
"â",
"à",
"á",
"æ",
"ã",
"å",
"ā"
]
},
{
"strings": [
"s",
"ß",
"ś",
"š"
]
},
{
"strings": [
"d"
]
},
{
"strings": [
"f"
]
},
{
"strings": [
"g"
]
},
{
"strings": [
"h"
]
},
{
"strings": [
"j"
]
},
{
"strings": [
"k"
]
},
{
"strings": [
"l"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 1
},
{
"strings": [
"y"
]
},
{
"strings": [
"x"
]
},
{
"strings": [
"c"
]
},
{
"strings": [
"v"
]
},
{
"strings": [
"b"
]
},
{
"strings": [
"n",
"ñ",
"ń"
]
},
{
"strings": [
"m"
]
},
{
"strings": [
","
]
},
{
"strings": [
".",
"#",
"!",
",",
"?",
"-",
":",
"'",
"@"
]
},
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 1,
"width": 1.5
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"action": "emoji",
"iconName": "face-smile-symbolic",
"width": 1.5
},
{
"strings": [
" "
],
"width": 5
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic",
"width": 1.5
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic",
"width": 2
}
]
]
},
{
"level": "shift",
"mode": "latched",
"rows": [
[
{
"strings": [
"Q"
]
},
{
"strings": [
"W"
]
},
{
"strings": [
"E",
"É",
"È",
"Ê",
"Ë",
"Ė"
]
},
{
"strings": [
"R"
]
},
{
"strings": [
"T"
]
},
{
"strings": [
"Z"
]
},
{
"strings": [
"U",
"Ü",
"Û",
"Ù",
"Ú",
"Ū"
]
},
{
"strings": [
"I"
]
},
{
"strings": [
"O",
"Ö",
"Ô",
"Ò",
"Ó",
"Õ",
"Œ",
"Ø",
"Ō"
]
},
{
"strings": [
"P"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"A",
"Ä",
"Â",
"À",
"Á",
"Æ",
"Ã",
"Å",
"Ā"
]
},
{
"strings": [
"S",
"SS",
"Ś",
"Š"
]
},
{
"strings": [
"D"
]
},
{
"strings": [
"F"
]
},
{
"strings": [
"G"
]
},
{
"strings": [
"H"
]
},
{
"strings": [
"J"
]
},
{
"strings": [
"K"
]
},
{
"strings": [
"L"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 0
},
{
"strings": [
"Y"
]
},
{
"strings": [
"X"
]
},
{
"strings": [
"C"
]
},
{
"strings": [
"V"
]
},
{
"strings": [
"B"
]
},
{
"strings": [
"N",
"Ñ",
"Ń"
]
},
{
"strings": [
"M"
]
},
{
"strings": [
","
]
},
{
"strings": [
".",
"#",
"!",
",",
"?",
"-",
":",
"'",
"@"
]
},
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 0,
"width": 1.5
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"action": "emoji",
"iconName": "face-smile-symbolic",
"width": 1.5
},
{
"strings": [
" "
],
"width": 5
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic",
"width": 1.5
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic",
"width": 2
}
]
]
},
{
"level": "opt",
"mode": "locked",
"rows": [
[
{
"strings": [
"1",
"¹",
"½",
"⅓",
"¼",
"⅛"
]
},
{
"strings": [
"2",
"²",
"⅔"
]
},
{
"strings": [
"3",
"³",
"¾",
"⅜"
]
},
{
"strings": [
"4",
"⁴"
]
},
{
"strings": [
"5",
"⅝"
]
},
{
"strings": [
"6"
]
},
{
"strings": [
"7",
"⅞"
]
},
{
"strings": [
"8"
]
},
{
"strings": [
"9"
]
},
{
"strings": [
"0",
"ⁿ",
"∅"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"@"
]
},
{
"strings": [
"#"
]
},
{
"strings": [
"€",
"¢",
"£",
"$",
"¥",
"₱"
]
},
{
"strings": [
"%",
"‰"
]
},
{
"strings": [
"&"
]
},
{
"strings": [
"-",
"_",
"",
"—",
"·"
]
},
{
"strings": [
"+",
"±"
]
},
{
"strings": [
"(",
"<",
"{",
"["
]
},
{
"strings": [
")",
">",
"}",
"]"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"label": "=/<",
"level": 3,
"width": 1.5
},
{
"strings": [
"*",
"†",
"‡",
"★"
]
},
{
"strings": [
"\"",
"“",
"”",
"«",
"»"
]
},
{
"strings": [
"'",
"",
"",
"",
""
]
},
{
"strings": [
":"
]
},
{
"strings": [
";"
]
},
{
"strings": [
"!",
"¡"
]
},
{
"strings": [
"?",
"¿"
]
},
{
"action": "levelSwitch",
"label": "=/<",
"level": 3,
"width": 3
}
],
[
{
"action": "levelSwitch",
"label": "ABC",
"level": 0,
"width": 1.5
},
{
"strings": [
"_"
]
},
{
"strings": [
"/"
]
},
{
"strings": [
" "
],
"width": 3
},
{
"strings": [
","
]
},
{
"strings": [
".",
"…"
]
},
{
"action": "emoji",
"iconName": "face-smile-symbolic"
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic"
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic"
}
]
]
},
{
"level": "opt+shift",
"mode": "locked",
"rows": [
[
{
"strings": [
"~"
]
},
{
"strings": [
"`"
]
},
{
"strings": [
"|"
]
},
{
"strings": [
"•",
"♪",
"♥",
"♠",
"♦",
"♣"
]
},
{
"strings": [
"√"
]
},
{
"strings": [
"Π",
"π"
]
},
{
"strings": [
"÷"
]
},
{
"strings": [
"×"
]
},
{
"strings": [
"¶",
"§"
]
},
{
"strings": [
"∆"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"£"
]
},
{
"strings": [
"¥"
]
},
{
"strings": [
"$",
"¢"
]
},
{
"strings": [
"¢"
]
},
{
"strings": [
"^",
"↑",
"↓",
"←",
"→"
]
},
{
"strings": [
"°",
"",
"″"
]
},
{
"strings": [
"=",
"≠",
"≈",
"∞"
]
},
{
"strings": [
"{"
]
},
{
"strings": [
"}"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"strings": [
"\\"
]
},
{
"strings": [
"©"
]
},
{
"strings": [
"®"
]
},
{
"strings": [
"™"
]
},
{
"strings": [
"℅"
]
},
{
"strings": [
"["
]
},
{
"strings": [
"]"
]
},
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 3
}
],
[
{
"action": "levelSwitch",
"label": "ABC",
"level": 0,
"width": 1.5
},
{
"strings": [
"<",
"",
"≤",
"«"
]
},
{
"strings": [
">",
"",
"≥",
"»"
]
},
{
"strings": [
" "
],
"width": 3
},
{
"strings": [
","
]
},
{
"strings": [
".",
"…"
]
},
{
"action": "emoji",
"iconName": "face-smile-symbolic"
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic"
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic"
}
]
]
}
],
"locale": "de-AT",
"name": "Austrian German"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,978 +0,0 @@
{
"levels": [
{
"level": "",
"mode": "default",
"rows": [
[
{
"strings": [
"q"
]
},
{
"strings": [
"w"
]
},
{
"strings": [
"e",
"é",
"è",
"ê",
"ë",
"ė"
]
},
{
"strings": [
"r"
]
},
{
"strings": [
"t"
]
},
{
"strings": [
"z"
]
},
{
"strings": [
"u",
"ü",
"û",
"ù",
"ú",
"ū"
]
},
{
"strings": [
"i"
]
},
{
"strings": [
"o",
"ö",
"ô",
"ò",
"ó",
"õ",
"œ",
"ø",
"ō"
]
},
{
"strings": [
"p"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"a",
"ä",
"â",
"à",
"á",
"æ",
"ã",
"å",
"ā"
]
},
{
"strings": [
"s",
"ß",
"ś",
"š"
]
},
{
"strings": [
"d"
]
},
{
"strings": [
"f"
]
},
{
"strings": [
"g"
]
},
{
"strings": [
"h"
]
},
{
"strings": [
"j"
]
},
{
"strings": [
"k"
]
},
{
"strings": [
"l"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 1
},
{
"strings": [
"y"
]
},
{
"strings": [
"x"
]
},
{
"strings": [
"c"
]
},
{
"strings": [
"v"
]
},
{
"strings": [
"b"
]
},
{
"strings": [
"n",
"ñ",
"ń"
]
},
{
"strings": [
"m"
]
},
{
"strings": [
","
]
},
{
"strings": [
".",
"#",
"!",
",",
"?",
"-",
":",
"'",
"@"
]
},
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 1,
"width": 1.5
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"action": "emoji",
"iconName": "face-smile-symbolic",
"width": 1.5
},
{
"strings": [
" "
],
"width": 5
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic",
"width": 1.5
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic",
"width": 2
}
]
]
},
{
"level": "shift",
"mode": "latched",
"rows": [
[
{
"strings": [
"Q"
]
},
{
"strings": [
"W"
]
},
{
"strings": [
"E",
"É",
"È",
"Ê",
"Ë",
"Ė"
]
},
{
"strings": [
"R"
]
},
{
"strings": [
"T"
]
},
{
"strings": [
"Z"
]
},
{
"strings": [
"U",
"Ü",
"Û",
"Ù",
"Ú",
"Ū"
]
},
{
"strings": [
"I"
]
},
{
"strings": [
"O",
"Ö",
"Ô",
"Ò",
"Ó",
"Õ",
"Œ",
"Ø",
"Ō"
]
},
{
"strings": [
"P"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"A",
"Ä",
"Â",
"À",
"Á",
"Æ",
"Ã",
"Å",
"Ā"
]
},
{
"strings": [
"S",
"SS",
"Ś",
"Š"
]
},
{
"strings": [
"D"
]
},
{
"strings": [
"F"
]
},
{
"strings": [
"G"
]
},
{
"strings": [
"H"
]
},
{
"strings": [
"J"
]
},
{
"strings": [
"K"
]
},
{
"strings": [
"L"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 0
},
{
"strings": [
"Y"
]
},
{
"strings": [
"X"
]
},
{
"strings": [
"C"
]
},
{
"strings": [
"V"
]
},
{
"strings": [
"B"
]
},
{
"strings": [
"N",
"Ñ",
"Ń"
]
},
{
"strings": [
"M"
]
},
{
"strings": [
","
]
},
{
"strings": [
".",
"#",
"!",
",",
"?",
"-",
":",
"'",
"@"
]
},
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 0,
"width": 1.5
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"action": "emoji",
"iconName": "face-smile-symbolic",
"width": 1.5
},
{
"strings": [
" "
],
"width": 5
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic",
"width": 1.5
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic",
"width": 2
}
]
]
},
{
"level": "opt",
"mode": "locked",
"rows": [
[
{
"strings": [
"1",
"¹",
"½",
"⅓",
"¼",
"⅛"
]
},
{
"strings": [
"2",
"²",
"⅔"
]
},
{
"strings": [
"3",
"³",
"¾",
"⅜"
]
},
{
"strings": [
"4",
"⁴"
]
},
{
"strings": [
"5",
"⅝"
]
},
{
"strings": [
"6"
]
},
{
"strings": [
"7",
"⅞"
]
},
{
"strings": [
"8"
]
},
{
"strings": [
"9"
]
},
{
"strings": [
"0",
"ⁿ",
"∅"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"@"
]
},
{
"strings": [
"#"
]
},
{
"strings": [
"€",
"¢",
"£",
"$",
"¥",
"₱"
]
},
{
"strings": [
"%",
"‰"
]
},
{
"strings": [
"&"
]
},
{
"strings": [
"-",
"_",
"",
"—",
"·"
]
},
{
"strings": [
"+",
"±"
]
},
{
"strings": [
"(",
"<",
"{",
"["
]
},
{
"strings": [
")",
">",
"}",
"]"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"label": "=/<",
"level": 3,
"width": 1.5
},
{
"strings": [
"*",
"†",
"‡",
"★"
]
},
{
"strings": [
"\"",
"“",
"”",
"«",
"»"
]
},
{
"strings": [
"'",
"",
"",
"",
""
]
},
{
"strings": [
":"
]
},
{
"strings": [
";"
]
},
{
"strings": [
"!",
"¡"
]
},
{
"strings": [
"?",
"¿"
]
},
{
"action": "levelSwitch",
"label": "=/<",
"level": 3,
"width": 3
}
],
[
{
"action": "levelSwitch",
"label": "ABC",
"level": 0,
"width": 1.5
},
{
"strings": [
"_"
]
},
{
"strings": [
"/"
]
},
{
"strings": [
" "
],
"width": 3
},
{
"strings": [
","
]
},
{
"strings": [
".",
"…"
]
},
{
"action": "emoji",
"iconName": "face-smile-symbolic"
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic"
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic"
}
]
]
},
{
"level": "opt+shift",
"mode": "locked",
"rows": [
[
{
"strings": [
"~"
]
},
{
"strings": [
"`"
]
},
{
"strings": [
"|"
]
},
{
"strings": [
"•",
"♪",
"♥",
"♠",
"♦",
"♣"
]
},
{
"strings": [
"√"
]
},
{
"strings": [
"Π",
"π"
]
},
{
"strings": [
"÷"
]
},
{
"strings": [
"×"
]
},
{
"strings": [
"¶",
"§"
]
},
{
"strings": [
"∆"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"£"
]
},
{
"strings": [
"¥"
]
},
{
"strings": [
"$",
"¢"
]
},
{
"strings": [
"¢"
]
},
{
"strings": [
"^",
"↑",
"↓",
"←",
"→"
]
},
{
"strings": [
"°",
"",
"″"
]
},
{
"strings": [
"=",
"≠",
"≈",
"∞"
]
},
{
"strings": [
"{"
]
},
{
"strings": [
"}"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"strings": [
"\\"
]
},
{
"strings": [
"©"
]
},
{
"strings": [
"®"
]
},
{
"strings": [
"™"
]
},
{
"strings": [
"℅"
]
},
{
"strings": [
"["
]
},
{
"strings": [
"]"
]
},
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 3
}
],
[
{
"action": "levelSwitch",
"label": "ABC",
"level": 0,
"width": 1.5
},
{
"strings": [
"<",
"",
"≤",
"«"
]
},
{
"strings": [
">",
"",
"≥",
"»"
]
},
{
"strings": [
" "
],
"width": 3
},
{
"strings": [
","
]
},
{
"strings": [
".",
"…"
]
},
{
"action": "emoji",
"iconName": "face-smile-symbolic"
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic"
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic"
}
]
]
}
],
"locale": "fr-CH",
"name": "Swiss French"
}

View File

@@ -1,978 +0,0 @@
{
"levels": [
{
"level": "",
"mode": "default",
"rows": [
[
{
"strings": [
"q"
]
},
{
"strings": [
"w"
]
},
{
"strings": [
"e",
"é",
"è",
"ê",
"ë",
"ė"
]
},
{
"strings": [
"r"
]
},
{
"strings": [
"t"
]
},
{
"strings": [
"z"
]
},
{
"strings": [
"u",
"ü",
"û",
"ù",
"ú",
"ū"
]
},
{
"strings": [
"i"
]
},
{
"strings": [
"o",
"ö",
"ô",
"ò",
"ó",
"õ",
"œ",
"ø",
"ō"
]
},
{
"strings": [
"p"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"a",
"ä",
"â",
"à",
"á",
"æ",
"ã",
"å",
"ā"
]
},
{
"strings": [
"s",
"ß",
"ś",
"š"
]
},
{
"strings": [
"d"
]
},
{
"strings": [
"f"
]
},
{
"strings": [
"g"
]
},
{
"strings": [
"h"
]
},
{
"strings": [
"j"
]
},
{
"strings": [
"k"
]
},
{
"strings": [
"l"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 1
},
{
"strings": [
"y"
]
},
{
"strings": [
"x"
]
},
{
"strings": [
"c"
]
},
{
"strings": [
"v"
]
},
{
"strings": [
"b"
]
},
{
"strings": [
"n",
"ñ",
"ń"
]
},
{
"strings": [
"m"
]
},
{
"strings": [
","
]
},
{
"strings": [
".",
"#",
"!",
",",
"?",
"-",
":",
"'",
"@"
]
},
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 1,
"width": 1.5
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"action": "emoji",
"iconName": "face-smile-symbolic",
"width": 1.5
},
{
"strings": [
" "
],
"width": 5
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic",
"width": 1.5
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic",
"width": 2
}
]
]
},
{
"level": "shift",
"mode": "latched",
"rows": [
[
{
"strings": [
"Q"
]
},
{
"strings": [
"W"
]
},
{
"strings": [
"E",
"É",
"È",
"Ê",
"Ë",
"Ė"
]
},
{
"strings": [
"R"
]
},
{
"strings": [
"T"
]
},
{
"strings": [
"Z"
]
},
{
"strings": [
"U",
"Ü",
"Û",
"Ù",
"Ú",
"Ū"
]
},
{
"strings": [
"I"
]
},
{
"strings": [
"O",
"Ö",
"Ô",
"Ò",
"Ó",
"Õ",
"Œ",
"Ø",
"Ō"
]
},
{
"strings": [
"P"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"A",
"Ä",
"Â",
"À",
"Á",
"Æ",
"Ã",
"Å",
"Ā"
]
},
{
"strings": [
"S",
"SS",
"Ś",
"Š"
]
},
{
"strings": [
"D"
]
},
{
"strings": [
"F"
]
},
{
"strings": [
"G"
]
},
{
"strings": [
"H"
]
},
{
"strings": [
"J"
]
},
{
"strings": [
"K"
]
},
{
"strings": [
"L"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 0
},
{
"strings": [
"Y"
]
},
{
"strings": [
"X"
]
},
{
"strings": [
"C"
]
},
{
"strings": [
"V"
]
},
{
"strings": [
"B"
]
},
{
"strings": [
"N",
"Ñ",
"Ń"
]
},
{
"strings": [
"M"
]
},
{
"strings": [
","
]
},
{
"strings": [
".",
"#",
"!",
",",
"?",
"-",
":",
"'",
"@"
]
},
{
"action": "levelSwitch",
"iconName": "keyboard-shift-symbolic",
"level": 0,
"width": 1.5
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"action": "emoji",
"iconName": "face-smile-symbolic",
"width": 1.5
},
{
"strings": [
" "
],
"width": 5
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic",
"width": 1.5
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic",
"width": 2
}
]
]
},
{
"level": "opt",
"mode": "locked",
"rows": [
[
{
"strings": [
"1",
"¹",
"½",
"⅓",
"¼",
"⅛"
]
},
{
"strings": [
"2",
"²",
"⅔"
]
},
{
"strings": [
"3",
"³",
"¾",
"⅜"
]
},
{
"strings": [
"4",
"⁴"
]
},
{
"strings": [
"5",
"⅝"
]
},
{
"strings": [
"6"
]
},
{
"strings": [
"7",
"⅞"
]
},
{
"strings": [
"8"
]
},
{
"strings": [
"9"
]
},
{
"strings": [
"0",
"ⁿ",
"∅"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"@"
]
},
{
"strings": [
"#"
]
},
{
"strings": [
"€",
"¢",
"£",
"$",
"¥",
"₱"
]
},
{
"strings": [
"%",
"‰"
]
},
{
"strings": [
"&"
]
},
{
"strings": [
"-",
"_",
"",
"—",
"·"
]
},
{
"strings": [
"+",
"±"
]
},
{
"strings": [
"(",
"<",
"{",
"["
]
},
{
"strings": [
")",
">",
"}",
"]"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"label": "=/<",
"level": 3,
"width": 1.5
},
{
"strings": [
"*",
"†",
"‡",
"★"
]
},
{
"strings": [
"\"",
"“",
"”",
"«",
"»"
]
},
{
"strings": [
"'",
"",
"",
"",
""
]
},
{
"strings": [
":"
]
},
{
"strings": [
";"
]
},
{
"strings": [
"!",
"¡"
]
},
{
"strings": [
"?",
"¿"
]
},
{
"action": "levelSwitch",
"label": "=/<",
"level": 3,
"width": 3
}
],
[
{
"action": "levelSwitch",
"label": "ABC",
"level": 0,
"width": 1.5
},
{
"strings": [
"_"
]
},
{
"strings": [
"/"
]
},
{
"strings": [
" "
],
"width": 3
},
{
"strings": [
","
]
},
{
"strings": [
".",
"…"
]
},
{
"action": "emoji",
"iconName": "face-smile-symbolic"
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic"
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic"
}
]
]
},
{
"level": "opt+shift",
"mode": "locked",
"rows": [
[
{
"strings": [
"~"
]
},
{
"strings": [
"`"
]
},
{
"strings": [
"|"
]
},
{
"strings": [
"•",
"♪",
"♥",
"♠",
"♦",
"♣"
]
},
{
"strings": [
"√"
]
},
{
"strings": [
"Π",
"π"
]
},
{
"strings": [
"÷"
]
},
{
"strings": [
"×"
]
},
{
"strings": [
"¶",
"§"
]
},
{
"strings": [
"∆"
]
},
{
"action": "delete",
"iconName": "edit-clear-symbolic",
"width": 1.5
}
],
[
{
"strings": [
"£"
]
},
{
"strings": [
"¥"
]
},
{
"strings": [
"$",
"¢"
]
},
{
"strings": [
"¢"
]
},
{
"strings": [
"^",
"↑",
"↓",
"←",
"→"
]
},
{
"strings": [
"°",
"",
"″"
]
},
{
"strings": [
"=",
"≠",
"≈",
"∞"
]
},
{
"strings": [
"{"
]
},
{
"strings": [
"}"
]
},
{
"iconName": "keyboard-enter-symbolic",
"keyval": "0xff0d",
"width": 2
}
],
[
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 1.5
},
{
"strings": [
"\\"
]
},
{
"strings": [
"©"
]
},
{
"strings": [
"®"
]
},
{
"strings": [
"™"
]
},
{
"strings": [
"℅"
]
},
{
"strings": [
"["
]
},
{
"strings": [
"]"
]
},
{
"action": "levelSwitch",
"label": "?123",
"level": 2,
"width": 3
}
],
[
{
"action": "levelSwitch",
"label": "ABC",
"level": 0,
"width": 1.5
},
{
"strings": [
"<",
"",
"≤",
"«"
]
},
{
"strings": [
">",
"",
"≥",
"»"
]
},
{
"strings": [
" "
],
"width": 3
},
{
"strings": [
","
]
},
{
"strings": [
".",
"…"
]
},
{
"action": "emoji",
"iconName": "face-smile-symbolic"
},
{
"action": "languageMenu",
"iconName": "keyboard-layout-symbolic"
},
{
"action": "hide",
"iconName": "keyboard-hide-symbolic"
}
]
]
}
],
"locale": "de-CH",
"name": "Swiss German"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More