Compare commits

..

27 Commits

Author SHA1 Message Date
Bruce Leidl
d85bd654a3 Don't display label on full-screen windows 2021-12-13 14:21:01 -05:00
Bruce Leidl
7d08587000 Ensure that Main.overview._overview exists before accessing it. 2021-12-13 11:30:43 -05:00
Bruce Leidl
c93e5e6431 Citadel changes to gnome-shell 2021-12-03 14:04:05 -05:00
Florian Müllner
a1b537eebf Bump version to 41.1
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2022>
2021-11-04 14:09:52 +01:00
Florian Müllner
d3c6dd75bb Revert !1999
The changes introduce crashes, so back out until we
figure those out.

This reverts commits ceee53aa0a and 5d5bfe492c.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2022>
2021-11-04 14:08:05 +01:00
Florian Müllner
a369371519 Revert "layout: Exclude hidden actors from struts"
The change unvealed a series of mutter bugs that for most
users are worse than the issue that was fixed. So revert
the change on stable branches until the mutter side is
fixed.

This reverts commit cd1102ff30.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2022>
2021-11-03 23:50:32 +01:00
Christian Kirbach
03a3ce062a Update German translation 2021-11-03 20:33:48 +00:00
Aleksandr Melman
6456fa0df4 Update Russian translation 2021-11-03 17:53:21 +00:00
Hugo Carvalho
1ec0f01cfc Update Portuguese translation 2021-11-03 11:50:26 +00:00
Kukuh Syafaat
0512d1fff4 Update Indonesian translation 2021-11-03 10:04:19 +00:00
Rafael Fontenelle
ba32dcc16b Update Brazilian Portuguese translation 2021-11-03 01:19:46 +00:00
Anders Jonsson
edcee44c72 Update Swedish translation 2021-11-02 21:05:16 +00:00
Matej Urbančič
be32cab39b Update Slovenian translation 2021-11-02 16:54:37 +00:00
Yuri Chornoivan
f8cdac49c6 Update Ukrainian translation 2021-11-02 16:31:49 +00:00
Florian Müllner
b6b9e755c7 dbusServices/extensions: Only allow one dialog at a time
Showing multiple preference dialogs at the same time (for instance
by repeated `gnome-extensions prefs` calls) may or may not work as
expected, depending on whether any of the dialogs is modal or not
(read: opened via the Extensions app).

The easiest way to address this is to disallow more than a single
dialog at the time. It's arguably also the more predictable behavior,
and means extensions don't have to deal with inconsistent state
caused by multiple dialogs.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
(cherry picked from commit b93342f72e)
2021-11-02 15:39:08 +01:00
Florian Müllner
1297d8dc30 dbusServices/extensions: Fix shutdown after showing prefs
GTK4 relies entirely on refcounting for cleanup (that is,
there is no longer a destroy() method that forces a dispose
run regardless of the refcount).

Unfortunately that makes cleanup harder in (some) language
bindings, where an object may be kept alive implicitly by
closures etc.

Address this by releasing the hold count when the window
is closed rather than when it is destroyed.

This isn't the most elegant, but it ensure that the service
doesn't get stuck if an extension doesn't carefully clean
up everything in its prefs widget.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
(cherry picked from commit 4d2b008966)
2021-11-02 15:39:08 +01:00
Florian Müllner
fd60591bb3 extensions-tool/prefs: Log D-Bus errors
We currently ignore any error that may occur when calling the
OpenExtensionPrefs D-Bus method. Right now such an error is highly
unlikely, given that we already checked that we are running under
gnome-shell and the extension in question exists and has prefs.

We'll soon make sure that only one dialog is shown at any time,
which is an error that we can realistically expect, so handle that
properly.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
(cherry picked from commit 09ed1c533c)
2021-11-02 15:39:08 +01:00
Florian Müllner
1b5ff77d02 extensions-tool: Add missing newline
Unlike g_warning() and friends, g_printerr() does not append
a trailing newline.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
(cherry picked from commit 79f448958b)
2021-11-02 15:39:08 +01:00
Sebastian Keller
488fb46edf shell/app: Don't move all workspace windows to their startup workspace
Windows from some applications, such as guake, are created as showing on
all workspaces. When these windows are put on the workspaces via
set_workspace_state() during construction, the first time the window is
added to a workspace in the loop triggers the shell app tracker which
then tries to move the window to its startup workspace. This makes the
window unsticky which triggers another set_workspace_state() which
tries to remove the window from all workspaces, but currently it is only
on the first one and then adds it to the startup workspace. Once that is
finished, the first set_workspace_state() continues adding the window
to the remaining workspaces, despite the window now no longer having
on_all_workspaces set to true.

When the window is now unmanaged, the window according to its internal
state is only found on the startup workspace, so it will only be removed
from that. This causes the assertion to fail that checks that the window
is no longer present on any workspace after this.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2014>
(cherry picked from commit bc32a52108)
2021-11-02 15:38:54 +01:00
Carlos Garnacho
ddf03b5d94 Revert "st: Only use clutter_actor_invalidate_paint_volume() if the API exists"
Since we are past the 40 API change hurdle, it is safe to revert this
commit.

This reverts commit 1cefd589da.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2010>
(cherry picked from commit ff4ff66498)
2021-11-02 15:38:35 +01:00
Florian Müllner
fc680556f5 environment: Apply autoReverse/repeatCount to all transitions
Like the old Tweener API, ease() allows to transition multiple
properties at once. If autoReverse or repeatCount are specified,
they should apply to all transitions, but right now we only set
them for the first one.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2007>
(cherry picked from commit cc5cc0d653)
2021-11-02 15:38:20 +01:00
Carlos Garnacho
a2f6efa5e1 inputMethod: Do not reset invisible preedit on focus_out
If the preedit is in invisible state, the last preedit string that
was sent around is already null, so there is no need to clear the preedit
in that case.

(Cherry-picked from commit 0177560952)
2021-11-01 18:34:57 +01:00
Carlos Garnacho
62fce73aee inputMethod: Do not communicate preedit text change on reset
This is now done in the ClutterInputFocus for us, since
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1940. There
is no need to duplicate this call, and it happens to cause undesired
scrolling to content in some cases when this reset happens during
a change in the IM focused client state.

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

(Cherry-picked from commit 047691b0d3)
2021-11-01 18:34:46 +01:00
Carlos Garnacho
b1538fcb20 inputMethod: Equate empty preedit string to null
If we get '' from the IM as the preedit string, it is pretty safe
to handle it as "no preedit" altogether.

(Cherry-picked from commit 286cfdc6d4)
2021-11-01 18:34:27 +01:00
eshagh shahidani
025588b89a Update Persian translation 2021-10-25 20:42:25 +00:00
Rūdolfs Mazurs
ce2ae0642f Update Latvian translation 2021-10-25 17:56:42 +00:00
Selyan Slimane AMIRI
8c5d552cc2 Update Kabyle translation 2021-10-16 14:35:12 +00:00
908 changed files with 134882 additions and 246854 deletions

View File

@@ -1,23 +0,0 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
trim_trailing_whitespace = true
[*.js]
indent_size = 4
[*.[ch]]
indent_size = 2
[*.gresource.xml]
indent_size = 2
[*.ui]
indent_size = 2
[meson.build]
indent_size = 2

View File

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

82
.gitignore vendored
View File

@@ -1,10 +1,84 @@
*.la
*.lo
*.o
.deps
.libs
ABOUT-NLS
ChangeLog
INSTALL
aclocal.m4
autom4te.cache
data/.osk-layout-workbench
data/org.gnome.Shell.desktop
data/org.gnome.Shell.desktop.in
data/gnome-shell-extension-prefs.desktop
data/gnome-shell-extension-prefs.desktop.in
data/gnome-shell-theme.gresource
data/gschemas.compiled
data/perf-background.xml
data/org.gnome.shell.gschema.xml
data/org.gnome.shell.gschema.valid
data/org.gnome.Shell.PortalHelper.desktop
data/org.gnome.Shell.PortalHelper.service
data/theme/.sass-cache
data/theme/gnome-shell*.css.map
data/theme/gnome-shell*.css
docs/reference/*/*.args
docs/reference/*/*.bak
docs/reference/*/*.hierarchy
docs/reference/*/*.interfaces
docs/reference/*/*.prerequisites
docs/reference/*/*.sgml
docs/reference/*/*.signals
docs/reference/*/*.stamp
docs/reference/*/*.txt
docs/reference/*/*.types
docs/reference/*/html/
docs/reference/*/xml/
docs/reference/shell/doc-gen-*
js/misc/config.js
js/js-resources.c
js/js-resources.h
man/gnome-shell.1
omf.make
po/*.gmo
po/gnome-shell.pot
subprojects/gvc
subprojects/jasmine-gjs
po/*.header
po/*.sed
po/*.sin
po/.intltool-merge-cache
po/Makevars.template
po/POTFILES
po/Rules-quot
po/stamp-it
scripts/launcher.pyc
src/*.gir
src/*.typelib
src/*-enum-types.[ch]
src/*-marshal.[ch]
src/calendar-server/evolution-calendar.desktop
src/calendar-server/org.gnome.Shell.CalendarServer.service
src/gnome-shell
src/gnome-shell-calendar-server
src/gnome-shell-extension-tool
src/gnome-shell-hotplug-sniffer
src/gnome-shell-perf-helper
src/gnome-shell-perf-tool
src/gnome-shell-portal-helper
src/hotplug-sniffer/org.gnome.Shell.HotplugSniffer.service
src/org-gtk-application.[ch]
src/run-js-test
src/test-recorder
src/test-recorder.ogg
src/test-theme
src/st.h
src/stamp-st.h
src/stamp-st.h.tmp
src/st-scroll-view-fade-generated.c
src/stamp-st-scroll-view-fade-generated.c
stamp-h1
tests/run-test.sh
*~
*.patch
*.sw?
.buildconfig
.eslintcache
.vscode

View File

@@ -1,53 +1,45 @@
include:
- project: 'GNOME/citemplates'
file: 'templates/default-rules.yml'
- project: 'GNOME/citemplates'
file: 'flatpak/flatpak_ci_initiative.yml'
- project: 'Infrastructure/freedesktop-ci-templates'
file: 'templates/fedora.yml'
ref: '057b052e682d8e5a20c1eb2dd60d5b87d2b56856'
- project: 'Infrastructure/freedesktop-ci-templates'
file: 'templates/ci-fairy.yml'
ref: 'bc70242ffb8402243e934659ecc1a2d1c89eca2b'
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
job-stage: deploy
dist-job-name: "dist-tarball"
tarball-artifact-path: $TARBALL_ARTIFACT_PATH
- component: gitlab.gnome.org/GNOME/citemplates/gnomeos-build-sysext@1.0.0-alpha.1
inputs:
meson-options:
-Dextensions_app=false
-Dextensions-tool:bash_completion=disabled
build-sysext:
tags:
- x86_64_v3
before_script:
- .gitlab-ci/install-gnomeos-sysext-dependencies.sh $CI_PROJECT_DIR/extension
- remote: 'https://gitlab.gnome.org/GNOME/citemplates/raw/HEAD/flatpak/flatpak_ci_initiative.yml'
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/ci-fairy.yml'
stages:
- pre-review
- pre_review
- prep
- review
- build
- test
- analyze
- docs
- deploy
default:
image: $MUTTER_CI_IMAGE
# 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'
variables:
MUTTER_CI_IMAGE: registry.gitlab.gnome.org/gnome/mutter/fedora/42:x86_64-2025-03-31.0
FDO_UPSTREAM_REPO: GNOME/gnome-shell
BUNDLE: "extensions-git.flatpak"
JS_LOG: "js-report.txt"
LINT_LOG: "eslint-report.xml"
LINT_MR_LOG: "eslint-mr-report.xml"
TARBALL_ARTIFACT_PATH: build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
.pipeline-guard:
image: registry.gitlab.gnome.org/gnome/mutter/fedora/34:x86_64-2021-09-04.1
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'
@@ -55,40 +47,34 @@ variables:
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
- when: 'manual'
.gnome-shell.fedora:
.gnome-shell.fedora:34:
variables:
FDO_DISTRIBUTION_VERSION: 42
FDO_DISTRIBUTION_TAG: '2025-04-01.0'
FDO_DISTRIBUTION_PACKAGES:
gjs
nodejs
npm
meson
git
'pkgconfig(gobject-introspection-1.0)'
'pkgconfig(gio-2.0)'
'pkgconfig(gio-unix-2.0)'
'pkgconfig(gnome-autoar-0)'
'pkgconfig(json-glib-1.0)'
FDO_DISTRIBUTION_VERSION: 34
FDO_DISTRIBUTION_TAG: '2021-08-12.0'
FDO_DISTRIBUTION_PACKAGES: >
findutils mozjs78-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@^8.0.0 eslint-plugin-jsdoc@^46.0.0 &&
npm install -g eslint eslint-plugin-jsdoc &&
dnf group install -y 'Development Tools' \
'C Development Tools and Libraries' &&
./.gitlab-ci/install-meson-project.sh \
https://gitlab.gnome.org/World/javascript/gjs-ci-tools.git \
main &&
./.gitlab-ci/install-meson-project.sh \
--subdir subprojects/extensions-tool/ \
--prepare ./generate-translations.sh \
-Dman=false \
https://gitlab.gnome.org/GNOME/gnome-shell.git \
main
3.38.0 \
subprojects/extensions-tool/ \
./generate-translations.sh &&
check-commit-log:
dnf clean all
check_commit_log:
extends:
- .fdo.ci-fairy
stage: pre-review
stage: pre_review
variables:
GIT_DEPTH: "100"
script:
@@ -98,8 +84,7 @@ check-commit-log:
else
echo "Not a merge request" ;
fi
rules:
- !reference [.pipeline-guard, rules]
<<: *pipeline_guard
artifacts:
expire_in: 1 week
paths:
@@ -110,7 +95,7 @@ check-commit-log:
check-merge-request:
extends:
- .fdo.ci-fairy
stage: pre-review
stage: pre_review
script:
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
then
@@ -118,8 +103,7 @@ check-merge-request:
else
echo "Not a merge request" ;
fi
rules:
- !reference [.pipeline-guard, rules]
<<: *pipeline_guard
artifacts:
expire_in: 1 week
paths:
@@ -130,85 +114,92 @@ check-merge-request:
build-fedora-container:
extends:
- .fdo.container-build@fedora@x86_64
- .gnome-shell.fedora
- .gnome-shell.fedora:34
stage: prep
js-check:
js_check:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora
- .gnome-shell.fedora:34
stage: review
script:
- gjs-check-syntax
- find js -name '*.js' $(printf "! -wholename %s " $(cat .jscheckignore)) -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG)
artifacts:
reports:
junit: gjs-check-syntax.junit.xml
paths:
- ${JS_LOG}
when: on_failure
eslint:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora
- .gnome-shell.fedora:34
stage: review
script:
- export NODE_PATH=$(npm root -g)
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit --stdout
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit
artifacts:
reports:
junit: ${LINT_LOG}
when: always
eslint-doc:
eslint_mr:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora
- .gnome-shell.fedora:34
stage: review
script:
- export NODE_PATH=$(npm root -g)
- ./.gitlab-ci/eslint-coding-style.sh
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- HACKING.md
- .eslintrc.yml
- lint/*
- ./.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-c-check:
potfile_c_check:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora
- .gnome-shell.fedora:34
stage: review
script:
- ./.gitlab-ci/check-potfiles.sh
potfile-js-check:
potfile_js_check:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora
- .gnome-shell.fedora:34
stage: review
script:
- gjs-check-potfiles
artifacts:
reports:
junit: gjs-check-potfiles.junit.xml
- js78 -m .gitlab-ci/check-potfiles.js
no_template_check:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell.fedora:34
stage: review
script:
- ./.gitlab-ci/check-template-strings.sh
build:
stage: build
needs: ["check-commit-log"]
needs: ["check_commit_log"]
before_script:
- .gitlab-ci/checkout-mutter.sh
- meson mutter mutter/build --prefix=/usr
- sudo meson install -C mutter/build
- meson install -C mutter/build
script:
- meson setup . build -Dbuildtype=debugoptimized -Dman=false -Dgtk_doc=true --werror --fatal-meson-warnings
- meson . build -Dbuildtype=debugoptimized -Dman=false --werror
- meson compile -C build
- sudo meson install -C build
- meson install -C build
artifacts:
expire_in: 1 day
paths:
- mutter
- build
- subprojects/gvc
- subprojects/jasmine-gjs
test:
stage: test
@@ -217,11 +208,9 @@ test:
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
NO_AT_BRIDGE: "1"
before_script:
- sudo meson install -C mutter/build
- mkdir -m 700 $XDG_RUNTIME_DIR
- mkdir -m 1777 /tmp/.X11-unix
- meson install -C mutter/build
script:
- dbus-run-session -- meson test -C build --no-rebuild --timeout-multiplier 5
- dbus-run-session -- xvfb-run meson test -C build --no-rebuild
artifacts:
expire_in: 1 day
paths:
@@ -239,7 +228,7 @@ test-coverity:
stage: analyze
allow_failure: true
before_script:
- sudo meson install -C mutter/build
- meson install -C mutter/build
script:
- .gitlab-ci/download-coverity-tarball.sh
- CC=clang meson coverity-build -Dman=false
@@ -256,7 +245,7 @@ test-coverity:
flatpak:
stage: build
needs: ["check-commit-log"]
needs: ["check_commit_log"]
variables:
SUBPROJECT: "subprojects/extensions-app"
# Your manifest path
@@ -268,8 +257,8 @@ flatpak:
nightly:
extends: '.publish_nightly'
needs:
- flatpak
variables:
BUNDLES: '$BUNDLE'
dist:
variables:
@@ -278,57 +267,22 @@ dist:
stage: deploy
needs: ["build"]
before_script:
- sudo meson install -C mutter/build
- meson install -C mutter/build
- mkdir -m 700 $XDG_RUNTIME_DIR
- mkdir -m 1777 /tmp/.X11-unix
script:
- dbus-run-session meson dist -C build --include-subprojects
- 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
needs:
- build
artifacts:
expose_as: 'Get tarball here'
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- $TARBALL_ARTIFACT_PATH
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
rules:
- if: '$CI_COMMIT_TAG'
reference:
stage: docs
needs: ["build"]
script:
- mkdir -p reference/
- mv build/docs/reference/{shell/shell,st/st} reference/
artifacts:
paths:
- reference
pages:
stage: deploy
needs: ['reference']
script:
- mv reference/ public/
artifacts:
paths:
- public
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME"'
build-toolbox:
image: quay.io/freedesktop.org/ci-templates:container-build-base-2021-07-29.0
stage: deploy
needs: []
script:
- .gitlab-ci/build-toolbox-image.sh $MUTTER_CI_IMAGE
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "GNOME"'
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/ && $CI_PROJECT_NAMESPACE == "GNOME"'

View File

@@ -1,99 +0,0 @@
#!/bin/bash
# vi: sw=2 ts=4
set -e
die() {
echo "$@" >&2
exit 1
}
check_image_base() {
local base=$(
skopeo inspect docker://$TOOLBOX_IMAGE 2>/dev/null |
jq -r '.Labels["org.opencontainers.image.base.name"]')
[[ "$base" == "$MUTTER_CI_IMAGE" ]]
}
build_container() {
echo Building $TOOLBOX_IMAGE from $MUTTER_CI_IMAGE
export BUILDAH_ISOLATION=chroot
export BUILDAH_FORMAT=docker
local build_cntr=$(buildah from $MUTTER_CI_IMAGE)
local build_mnt=$(buildah mount $build_cntr)
[[ -n "$build_mnt" && -n "$build_cntr" ]] || die "Failed to mount the container"
local extra_packages=(
passwd # needed by toolbox
gdb
gnome-console # can't do without *some* terminal
flatpak-spawn # run host commands
flatpak # for host apps
nautilus # FileChooser portal
adwaita-fonts-all # system fonts
gnome-backgrounds # no blank background!
)
local debug_packages=(
glib2 # makes gdb much more useful
)
buildah run $build_cntr dnf config-manager setopt '*-openh264.enabled=0'
buildah run $build_cntr dnf install -y "${extra_packages[@]}"
buildah run $build_cntr dnf debuginfo-install -y "${debug_packages[@]}"
buildah run $build_cntr dnf clean all
buildah run $build_cntr rm -rf /var/lib/cache/dnf
# disable gnome-keyring activation:
# it either asks for unlocking the login keyring on startup, or it detects
# the running host daemon and doesn't export the object on the bus, which
# blocks the activating service until it hits the timeout
buildah run $build_cntr rm /usr/share/dbus-1/services/org.freedesktop.secrets.service
local srcdir=$(realpath $(dirname $0))
buildah copy --chmod 755 $build_cntr $srcdir/install-meson-project.sh /usr/libexec
# include convenience script for updating mutter dependency
local update_mutter=$(mktemp)
cat > $update_mutter <<-EOF
#!/bin/sh
TOOLBOX=\$(. /run/.containerenv; echo \$name)
/usr/libexec/install-meson-project.sh \\
--destdir=/ --destdir=/var/lib/extensions/\$TOOLBOX \\
https://gitlab.gnome.org/GNOME/mutter.git $MUTTER_BRANCH
EOF
buildah copy --chmod 755 $build_cntr $update_mutter /usr/bin/update-mutter
buildah config --env HOME- \
--label com.github.containers.toolbox=true \
--label org.opencontainers.image.base.name=$MUTTER_CI_IMAGE \
$build_cntr
buildah commit $build_cntr $TOOLBOX_IMAGE
}
MUTTER_CI_IMAGE=$1
MUTTER_BRANCH=${2:-$CI_COMMIT_BRANCH}
TOOLBOX_IMAGE=$CI_REGISTRY_IMAGE/toolbox:${MUTTER_BRANCH#gnome-}
[[ -n "$MUTTER_CI_IMAGE" && -n "$MUTTER_BRANCH" ]] ||
die "Usage: $(basename $0) MUTTER_CI_IMAGE [MUTTER_BRANCH]"
if [[ -z "$FORCE_REBUILD" ]]; then
if check_image_base; then
echo Image $TOOLBOX_IMAGE exists and is up to date.
exit 0
fi
fi
[[ -n "$CI_REGISTRY" && -n "$CI_REGISTRY_USER" && -n "$CI_REGISTRY_PASSWORD" ]] ||
die "Insufficient information to log in."
podman login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
build_container
podman push $TOOLBOX_IMAGE

View File

@@ -0,0 +1,202 @@
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 'CallExpression':
case 'NewExpression':
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"
desktopdirs="data subprojects/extensions-app/ subprojects/extensions-tool"
# find source files that contain gettext keywords
files=$(grep -lR --include='*.c' '\(gettext\|[^I_)]_\)(' $srcdirs)
# find ui files that contain translatable string
files="$files "$(grep -lRi --include='*.ui' 'translatable="[ty1]' $uidirs)
# find .desktop files
files="$files "$(find $desktopdirs -name '*.desktop*')
# filter out excluded files
if [ -f po/POTFILES.skip ]; then
files=$(for f in $files; do ! grep -q ^$f po/POTFILES.skip && echo $f; done)

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

@@ -41,30 +41,15 @@ if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
fi
if [ -z "$mutter_target" ]; then
ref_remote=${CI_PROJECT_URL//gnome-shell/mutter}
echo -n Looking for $CI_COMMIT_REF_NAME on remote ...
if fetch $ref_remote $CI_COMMIT_REF_NAME; then
if fetch origin $CI_COMMIT_REF_NAME; then
echo \ found
mutter_target=FETCH_HEAD
else
echo \ not found
mutter_target=HEAD
echo Using $mutter_target instead
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
echo Using $mutter_target instead
fi
git checkout -q $mutter_target

View File

@@ -1,5 +1,7 @@
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
@@ -12,7 +14,3 @@ patterns:
- regex: '([^.]\.|[:,;])\s*$'
message: Commit message subject should not end with punctuation
where: subject
- regex: '^[Cc]lose[sd]?:?\s*#[0-9]+'
message: Closes instructions must be a full link
- regex: '^[Ff]ix(e[sd]?)?:?\s*(#[0-9]+|https://)'
message: \"Fixes\" should be used with commits, use \"Closes\" for issues

View File

@@ -1,43 +0,0 @@
#!/bin/bash
SRCDIR=$(realpath $(dirname $0)/..)
OUTDIR=$(mktemp --directory --tmpdir=$SRCDIR)
trap "rm -rf $OUTDIR" EXIT
# Turn ```javascript``` code snippets in the
# style guide into .js files in $OUTDIR
cat <<'EOF' | python3 - docs/js-coding-style.md $OUTDIR
import sys
import re
def extract_js_snippets(input_file, output_dir):
with open(input_file, 'r') as file:
content = file.read()
# Find all JavaScript code blocks using regex
js_blocks = re.findall(r'```javascript\n(.*?)\n?```', content, flags=re.DOTALL)
for i, (match) in enumerate(js_blocks):
js_code = match
# Remove one level of indent
js_code = re.sub(r'^ {4}', '', js_code, flags=re.MULTILINE)
# The following are class snippets, turn them
# into functions to not confuse eslint
js_code = re.sub(r'^moveActor', 'function moveActor', js_code)
js_code = re.sub(r'^desaturateActor', 'function desaturateActor', js_code)
# Finally, create a .js file in the output directory
output_filename = f'{output_dir}/{i}.js'
with open(output_filename, 'w') as out_file:
out_file.write(f'{js_code}\n')
input_file, output_dir = sys.argv[1:]
extract_js_snippets(input_file, output_dir)
EOF
eslint \
--rule 'no-undef: off' \
--rule 'no-unused-vars: off' \
--rule 'no-invalid-this: off' $OUTDIR/*.js

View File

@@ -1,31 +0,0 @@
#!/bin/bash
#
# This script ensures that all dependencies required to build and run
# a GNOME Shell system extension are present in:
#
# The building environment, by installing these dependencies to the container.
# The running environment, by bundling these dependencies with the extension.
#
set -e
# Install dependencies to $SYSEXT_DEST_DIR to bundle these with the extension.
SYSEXT_DEST_DIR="$(realpath $1)"
# Ensure that we're building against (and bundling) the right mutter branch
# and its dependencies:
SCRIPT_DIR="$(dirname $0)"
$SCRIPT_DIR/checkout-mutter.sh
./mutter/.gitlab-ci/install-gnomeos-sysext-dependencies.sh $SYSEXT_DEST_DIR
meson setup mutter/build mutter --prefix=/usr --libdir="lib/$(gcc -print-multiarch)"
meson compile -C mutter/build
meson install -C mutter/build --destdir $SYSEXT_DEST_DIR
sudo meson install -C mutter/build
# Ensure that any other dependency missing in GNOME OS is installed and bundled
# here as it was done with mutter:

View File

@@ -2,106 +2,33 @@
set -e
usage() {
cat <<-EOF
Usage: $(basename $0) [OPTION…] REPO_URL COMMIT
Check out and install a meson project
Options:
-Dkey=val Option to pass on to meson
--subdir=DIR Build subdirectory instead of whole project
--prepare=SCRIPT Script to run before build
--libdir=DIR Setup the project with a different libdir
--destdir=DIR Install the project to DIR, can be used
several times to install to multiple destdirs
-h, --help Display this help
EOF
}
TEMP=$(getopt \
--name=$(basename $0) \
--options='D:h' \
--longoptions='subdir:' \
--longoptions='prepare:' \
--longoptions='libdir:' \
--longoptions='destdir:' \
--longoptions='help' \
-- "$@")
eval set -- "$TEMP"
unset TEMP
MESON_OPTIONS=()
SUBDIR=.
PREPARE=:
DESTDIRS=()
while true; do
case "$1" in
-D)
MESON_OPTIONS+=( -D$2 )
shift 2
;;
--subdir)
SUBDIR=$2
shift 2
;;
--prepare)
PREPARE=$2
shift 2
;;
--libdir)
MESON_OPTIONS+=( --libdir=$2 )
shift 2
;;
--destdir)
DESTDIRS+=( $2 )
shift 2
;;
-h|--help)
usage
exit 0
;;
--)
shift
break
;;
esac
done
if [[ $# -lt 2 ]]; then
usage
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"
[[ ${#DESTDIRS[@]} == 0 ]] && DESTDIRS+=( / )
REPO_DIR="$(basename ${REPO_URL%.git})"
CHECKOUT_DIR=$(mktemp --directory)
trap "rm -rf $CHECKOUT_DIR" EXIT
git clone --depth 1 "$REPO_URL" -b "$COMMIT" "$CHECKOUT_DIR"
pushd "$CHECKOUT_DIR/$SUBDIR"
git clone --depth 1 "$REPO_URL" -b "$COMMIT"
pushd "$REPO_DIR"
pushd "$SUBDIR"
sh -c "$PREPARE"
meson setup --prefix=/usr _build "${MESON_OPTIONS[@]}"
# Install it to all specified dest dirs
for destdir in "${DESTDIRS[@]}"; do
# don't use --destdir when installing to root,
# so post-install hooks are run
[[ $destdir == / ]] && destdir=
sudo meson install -C _build ${destdir:+--destdir=$destdir}
done
meson --prefix=/usr _build "${MESON_OPTIONS[@]}"
meson install -C _build
popd
popd
rm -rf "$REPO_DIR"

View File

@@ -1,14 +1,81 @@
#!/usr/bin/env node
const {ESLint} = require('eslint');
console.log(`Running ESLint version ${ESLint.version}...`);
const { ESLint } = require('eslint');
const fs = require('fs');
const path = require('path');
const { spawn } = require('child_process');
function hasOption(...names) {
return process.argv.some(arg => names.includes(arg));
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) {
@@ -28,26 +95,33 @@ function getOption(...names) {
const sourceDir = path.dirname(process.argv[1]);
process.chdir(path.resolve(sourceDir, '..'));
const sources = ['js', 'subprojects/extensions-app/js', 'tests'];
const eslint = new ESLint({cache: true});
const remote = getOption('--remote') || 'origin';
const branch = getOption('--branch', '-b');
const results = await eslint.lintFiles(sources);
const formatter = await eslint.loadFormatter(getOption('--format', '-f'));
const resultText = formatter.format(results);
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);
if (hasOption('--stdout')) {
const consoleFormatter = await eslint.loadFormatter();
console.log(consoleFormatter.format(results));
}
} else {
console.log(resultText);
}
process.exitCode = results.some(r => r.errorCount > 0) ? 1 : 0;
process.exitCode = commonResults.some(r => r.errorCount > 0) ? 1 : 0;
})().catch((error) => {
process.exitCode = 1;
console.error(error);

View File

@@ -1,5 +1,5 @@
<!--
Please read https://gitlab.gnome.org/GNOME/gnome-shell/-/tree/main#reporting-bugs
<!--
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
first to ensure that you create a clear and specific issue.
-->
@@ -8,15 +8,8 @@ first to ensure that you create a clear and specific issue.
<!--
Provide at least the following information:
* Your OS and version
* Affected GNOME Shell version (see https://release.gnome.org/calendar/
for currently supported versions)
* Affected GNOME Shell version (see https://wiki.gnome.org/Schedule for currently supported versions)
* Does this issue appear in XOrg and/or Wayland
* Does this issue happen without extensions (please follow instructions below)
To properly disable extensions you can use gnome-extensions-app and then restart
your session. Disabling extensions without a restart is not sufficient to rule
out extensions as cause of a bug. If an issue can only be reproduced with a
certain extension, please file a bug report against that extension first.
-->
### Bug summary
@@ -54,7 +47,7 @@ screenshots or screencasts related, please provide them here.
If the bug is a crash, please obtain a stack trace with installed debug
symbols (at least for GNOME Shell and Mutter) and attach it to
this issue following the instructions on
https://handbook.gnome.org/issues/stack-traces.html.
https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces.
-->

View File

@@ -1,5 +1,5 @@
<!--
Please read https://gitlab.gnome.org/GNOME/gnome-shell/-/tree/main#reporting-bugs
<!--
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
first to ensure that you create a clear and specific issue.
-->

3
.gitmodules vendored Normal file
View File

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

View File

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

11
.settings/.jsdtscope Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>

View File

@@ -1,4 +1,4 @@
# JS Coding Style
# Coding guide
Our goal is to have all JavaScript code in GNOME follow a consistent style. In
a dynamic language like JavaScript, it is essential to be rigorous about style
@@ -28,7 +28,7 @@ what to do.
else
bar = do_thing(b);
if (bar === 5) {
if (var == 5) {
for (let i = 0; i < 10; i++)
print(i);
} else {
@@ -66,7 +66,7 @@ library. These headers are not installed, distributed or introspected.
Use UpperCamelCase when importing modules to distinguish them from ordinary
variables, e.g.
```javascript
import GLib from 'gi://GLib';
const GLib = imports.gi.GLib;
```
Imports should be categorized into one of two places. The top-most import block
should contain only "environment imports". These are either modules from
@@ -74,18 +74,16 @@ gobject-introspection or modules added by gjs itself.
The second block of imports should contain only "application imports". These
are the JS code that is in the gnome-shell codebase,
e.g. `'./popupMenu.js'`.
e.g. `imports.ui.popupMenu`.
Each import block should be sorted alphabetically. Don't import modules you
don't use.
```javascript
import GLib from 'gi://GLib';
import Gio from 'gi://Gio';
import St from 'gi://St';
const { GLib, Gio, St } = imports.gi;
import * as Main from './main.js';
import * as Params from '../misc/params.js';
import * as Util from '../misc/util.js';
const Main = imports.ui.main;
const Params = imports.misc.params;
const Util = imports.misc.util;
```
The alphabetical ordering should be done independently of the location of the
location. Never reference `imports` in actual code.
@@ -103,13 +101,12 @@ under the imports:
Always use either `const` or `let` when defining a variable.
```javascript
// Iterating over an array
for (let i = 0; i < arr.length; ++i) {
const item = arr[i];
}
for (let i = 0; i < arr.length; ++i)
let item = arr[i];
// Iterating over an object's properties
for (const prop in someobj) {
const val = someobj[prop];
for (let prop in someobj) {
...
}
```
@@ -121,26 +118,26 @@ See [What's new in JavaScript 1.7](https://developer.mozilla.org/en/JavaScript/N
There are many approaches to classes in JavaScript. We use standard ES6 classes
whenever possible, that is when not inheriting from GObjects.
```javascript
export class IconLabelMenuItem extends PopupMenu.PopupMenuBaseItem {
var IconLabelMenuItem = class extends PopupMenu.PopupMenuBaseItem {
constructor(icon, label) {
super({reactive: false});
super({ reactive: false });
this.actor.add_child(icon);
this.actor.add_child(label);
}
open() {
log('menu opened!');
log("menu opened!");
}
}
};
```
For GObject inheritance, we use the GObject.registerClass() function provided
by gjs.
```javascript
export const MyActor = GObject.registerClass(
var MyActor = GObject.registerClass(
class MyActor extends Clutter.Actor {
constructor(params) {
super(params);
_init(params) {
super._init(params);
this.name = 'MyCustomActor';
}
@@ -153,27 +150,28 @@ GObject Introspection is a powerful feature that allows us to have native
bindings for almost any library built around GObject. If a library requires
you to inherit from a type to use it, you can do so:
```javascript
export const MyClutterActor = GObject.registerClass(
var MyClutterActor = GObject.registerClass(
class MyClutterActor extends Clutter.Actor {
vfunc_get_preferred_width(forHeight) {
return [100, 100];
return [100, 100];
}
vfunc_get_preferred_height(forWidth) {
return [100, 100];
return [100, 100];
}
vfunc_paint(paintContext) {
let framebuffer = paintContext.get_framebuffer();
let coglContext = framebuffer.get_context();
let alloc = this.get_allocation_box();
let framebuffer = paintContext.get_framebuffer();
let coglContext = framebuffer.get_context();
let alloc = this.get_allocation_box();
let pipeline = Cogl.Pipeline.new(coglContext);
pipeline.set_color4ub(255, 0, 0, 255);
let pipeline = new Cogl.Pipeline(coglContext);
pipeline.set_color4ub(255, 0, 0, 255);
framebuffer.draw_rectangle(pipeline,
alloc.x1, alloc.y1,
alloc.x2, alloc.y2);
framebuffer.draw_rectangle(pipeline,
alloc.x1, alloc.y1,
alloc.x2, alloc.y2);
}
});
```
@@ -187,6 +185,11 @@ explicitly import it. This is done through some magic in the
file. If you can't find a method that's used, it's probably either in gjs itself
or installed on the global object from the Environment.
Use 'single quotes' for programming strings that should not be translated
and "double quotes" for strings that the user may see. This allows us to
quickly find untranslated or mistranslated strings by grepping through the
sources for double quotes without a gettext call around them.
## `actor` (deprecated) and `_delegate`
gjs allows us to set so-called "expando properties" on introspected objects,
@@ -198,10 +201,10 @@ wrapper class the "delegate".
We sometimes use expando properties to set a property called `_delegate` on
the actor itself:
```javascript
export const MyActor = GObject.registerClass(
var MyActor = GObject.registerClass(
class MyActor extends Clutter.Actor {
constructor(params) {
super(params);
_init(params) {
super._init(params);
this._delegate = this;
}
});
@@ -209,18 +212,18 @@ the actor itself:
Or using the deprecated `actor`:
```javascript
export class MyClass {
var MyClass = class {
constructor() {
this.actor = new St.Button({text: 'This is a button'});
this.actor = new St.Button({ text: "This is a button" });
this.actor._delegate = this;
this.actor.connect('clicked', this._onClicked.bind(this));
}
_onClicked(actor) {
actor.set_label('You clicked the button!');
actor.set_label("You clicked the button!");
}
}
};
```
The 'delegate' property is important for anything which trying to get the
@@ -254,10 +257,10 @@ notation.
A more realistic example would be connecting to a signal on a method of a
prototype:
```javascript
import * as FnorbLib from './fborbLib.js';
const FnorbLib = imports.fborbLib;
export class MyClass {
constructor() {
var MyClass = class {
_init() {
let fnorb = new FnorbLib.Fnorb();
fnorb.connect('frobate', this._onFnorbFrobate.bind(this));
}
@@ -265,30 +268,30 @@ prototype:
_onFnorbFrobate(fnorb) {
this._updateFnorb();
}
}
};
```
## Object literal syntax
In JavaScript, these are equivalent:
```javascript
foo = {'bar': 42};
foo = {bar: 42};
foo = { 'bar': 42 };
foo = { bar: 42 };
```
and so are these:
```javascript
b = foo['bar'];
b = foo.bar;
var b = foo['bar'];
var b = foo.bar;
```
If your usage of an object is like an object, then you're defining "member
variables." For member variables, use the no-quotes no-brackets syntax:
`{bar: 42}` `foo.bar`.
variables." For member variables, use the no-quotes no-brackets syntax: `{ bar:
42 }` `foo.bar`.
If your usage of an object is like a hash table (and thus conceptually the keys
can have special chars in them), don't use quotes, but use brackets:
`{bar: 42}`, `foo['bar']`.
can have special chars in them), don't use quotes, but use brackets: `{ bar: 42
}`, `foo['bar']`.
## Animations
@@ -301,7 +304,7 @@ are animatable, which means they can use implicit animations:
x,
y,
duration: 500, // ms
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
});
}
```
@@ -317,7 +320,7 @@ be preferred over the more verbose:
actor.set_easing_mode(Clutter.AnimationMode.EASE_OUT_QUAD);
actor.set({
x,
y,
y
});
actor.restore_easing_state();
@@ -332,7 +335,7 @@ actor (or actor meta) properties that cannot use implicit animations:
let factor = desaturate ? 1.0 : 0.0;
actor.ease_property('@effects.desaturate.factor', factor, {
duration: 500, // ms
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
mode: Clutter.AnimationMode.EASE_OUT_QUAD
});
}
```

1128
NEWS

File diff suppressed because it is too large Load Diff

137
README.md
View File

@@ -1,136 +1,43 @@
# GNOME Shell
GNOME Shell provides core user interface functions for the GNOME desktop,
like switching to windows and launching applications. GNOME Shell takes
advantage of the capabilities of modern graphics hardware and introduces
innovative user interface concepts to provide a visually attractive and
easy to use experience.
All interactions with the project should follow the [Code of Conduct][conduct].
For more information about GNOME Shell, including instructions on how
to build GNOME Shell from source and how to get involved with the project,
see the [project wiki][project-wiki].
[conduct]: https://conduct.gnome.org/
## Supported versions
Upstream gnome-shell only supports the most recent stable release series,
the previous stable release series, and the current development release
series. Any older stable release series are no longer supported, although
they may still receive backported security updates in long-term support
distributions. Such support is up to the distributions, though.
Please refer to the [schedule] to see when a new version will be released.
[schedule]: https://release.gnome.org/calendar
## Reporting bugs
Bugs should be reported to the [issue tracking system][bug-tracker].
The [GNOME handbook][bug-handbook] has useful information for creating
effective issue reports.
If you are using extensions, please confirm that an issue still happens
without extensions. To properly disable extensions you can use the
[extensions-app] and then restart your session. Disabling extensions
without a restart is not sufficient to rule out extensions as the
cause of a bug. If an issue can only be reproduced with a certain
extension, please file an issue report against that extension first.
Please note that the issue tracker is meant to be used for
actionable issues only.
For support questions, feedback on changes or general discussions,
you can use:
- the [#gnome-shell matrix room][matrix-room]
- the `Desktop` category or `shell` tag on [GNOME Discourse][discourse]
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell/issues
[bug-handbook]: https://handbook.gnome.org/issues/reporting.html
[extensions-app]: https://apps.gnome.org/Extensions
[matrix-room]: https://matrix.to/#/#gnome-shell:gnome.org
[discourse]: https://discourse.gnome.org
## Feature requests
gnome-shell is a core compoment of the GNOME desktop experience.
As such, any changes in behavior or appearance only happen in
accordance with the [GNOME design team][design-team].
For major changes, it is best to start a discussion on [discourse]
and reach out on the [#gnome-design matrix room][design-room],
and only involve the issue tracker once agreement has been reached.
In particular mockups must be approved by the design team to be
considered for implementation.
For enhancements that are limited in scope and well-defined,
it is acceptable to directly open a feature request.
When in doubt, it is better to ask before opening an issue.
[design-team]: https://gitlab.gnome.org/Teams/Design
[discourse]: https://discourse.gnome.org
[design-room]: https://matrix.to/#/#gnome-design:gnome.org
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
Please refer to the [*Schedule* wiki page][schedule] to see the supported versions.
## Contributing
To contribute, open merge requests at https://gitlab.gnome.org/GNOME/gnome-shell.
It can be useful to first look at the [GNOME handbook][mr-handbook].
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.
If a change likely requires discussion beyond code review, it is probably better to
open an issue first, or follow the process for [feature requests](#feature-requests).
Otherwise, creating a separate issue is not required.
## Default branch
The following guidelines will help your change to be successfully merged:
* Keep the change as small as possible. If you can split it into multiple
merge requests, please do so.
* Use multiple commits. This makes it easier to review and helps to diagnose
bugs in the future.
* Use clear commit messages following the [conventions][commit-messages].
* Pay attention to the CI results. Merge requests cannot be merged until the
CI passes.
There's also a [small guide for newcomers][newcomers-contribution-guide] with
a few more basic tips and tricks.
[mr-handbook]: https://handbook.gnome.org/development/change-submission.html
[commit-messages]: docs/commit-messages.md
[newcomers-contribution-guide]: docs/newcomers-contribution-guide.md
## Documentation
* [Coding style and conventions for javascript][js-style]
* [Coding style and conventions for C code][c-style]
* [The GJS Developer Guide][gjs-guide]
* [Building and Running][building]
* [Debugging][debugging]
[js-style]: docs/js-coding-style.md
[c-style]: docs/c-coding-style.md
[gjs-guide]: https://gjs.guide
[building]: docs/building-and-running.md
[debugging]: docs/debugging.md
## API Reference
* [Meta][meta-docs]: Display server and window manager
* [St][st-docs]: Shell toolkit
* [Clutter][clutter-docs]: OpenGL based scene graph
* [Shell][shell-docs]: Non-ui shell objects and utilities
* See the [mutter page][mutter-docs] for additional documentation
[st-docs]: <https://gnome.pages.gitlab.gnome.org/gnome-shell/st/>
[shell-docs]: <https://gnome.pages.gitlab.gnome.org/gnome-shell/shell/>
[clutter-docs]: <https://mutter.gnome.org/clutter/>
[meta-docs]: <https://mutter.gnome.org/meta/>
[mutter-docs]: <https://mutter.gnome.org>
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

@@ -22,26 +22,14 @@
/* Define if we have NetworkManager */
#mesondefine HAVE_NETWORKMANAGER
/* Define if we have Pipewire */
#mesondefine HAVE_PIPEWIRE
/* Define if we have systemd */
#mesondefine HAVE_SYSTEMD
/* Define if _NL_TIME_FIRST_WEEKDATE is available */
#mesondefine HAVE__NL_TIME_FIRST_WEEKDAY
/* Define if you have the `g_desktop_app_info_launch_uris_as_manager_with_fds` function */
#mesondefine HAVE_GIO_DESKTOP_LAUNCH_URIS_WITH_FDS
/* Define if fdwalk is available in libc */
#mesondefine HAVE_FDWALK
/* Define if polkit defines autocleanup functions */
#mesondefine HAVE_POLKIT_AUTOCLEANUP
/* Define to 1 if the <elf.h> and <link.h> header file exist. */
#mesondefine HAVE_EXE_INTROSPECTION
/* Whether GNOME Shell is built with X11 support */
#mesondefine HAVE_X11
/* Whether GNOME Shell is built with X11 clients support */
#mesondefine HAVE_X11_CLIENT

View File

@@ -6,75 +6,39 @@
package="gnome-shell">
<KeyListEntry name="switch-to-application-1"
description="Activate pinned app 1"
description="Activate favorite application 1"
hidden="true"/>
<KeyListEntry name="switch-to-application-2"
description="Activate pinned app 2"
description="Activate favorite application 2"
hidden="true"/>
<KeyListEntry name="switch-to-application-3"
description="Activate pinned app 3"
description="Activate favorite application 3"
hidden="true"/>
<KeyListEntry name="switch-to-application-4"
description="Activate pinned app 4"
description="Activate favorite application 4"
hidden="true"/>
<KeyListEntry name="switch-to-application-5"
description="Activate pinned app 5"
description="Activate favorite application 5"
hidden="true"/>
<KeyListEntry name="switch-to-application-6"
description="Activate pinned app 6"
description="Activate favorite application 6"
hidden="true"/>
<KeyListEntry name="switch-to-application-7"
description="Activate pinned app 7"
description="Activate favorite application 7"
hidden="true"/>
<KeyListEntry name="switch-to-application-8"
description="Activate pinned app 8"
description="Activate favorite application 8"
hidden="true"/>
<KeyListEntry name="switch-to-application-9"
description="Activate pinned app 9"
hidden="true"/>
<KeyListEntry name="open-new-window-application-1"
description="Open new window of pinned app 1"
hidden="true"/>
<KeyListEntry name="open-new-window-application-2"
description="Open new window of pinned app 2"
hidden="true"/>
<KeyListEntry name="open-new-window-application-3"
description="Open new window of pinned app 3"
hidden="true"/>
<KeyListEntry name="open-new-window-application-4"
description="Open new window of pinned app 4"
hidden="true"/>
<KeyListEntry name="open-new-window-application-5"
description="Open new window of pinned app 5"
hidden="true"/>
<KeyListEntry name="open-new-window-application-6"
description="Open new window of pinned app 6"
hidden="true"/>
<KeyListEntry name="open-new-window-application-7"
description="Open new window of pinned app 7"
hidden="true"/>
<KeyListEntry name="open-new-window-application-8"
description="Open new window of pinned app 8"
hidden="true"/>
<KeyListEntry name="open-new-window-application-9"
description="Open new window of pinned app 9"
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

@@ -8,9 +8,6 @@
<KeyListEntry name="toggle-message-tray"
description="Show the notification list"/>
<KeyListEntry name="toggle-quick-settings"
description="Open the quick settings menu"/>
<KeyListEntry name="focus-active-notification"
description="Focus the active notification"/>
@@ -18,7 +15,10 @@
description="Show the overview"/>
<KeyListEntry name="toggle-application-view"
description="Show all apps"/>
description="Show all applications"/>
<KeyListEntry name="open-application-menu"
description="Open the application menu"/>
</KeyListEntries>

View File

@@ -1,84 +1,33 @@
Gnome-shell OSK layouts are extracted from CLDR layout definitions:
https://www.unicode.org/cldr/charts/latest/keyboards/layouts/index.html
To add new layouts from CLDR:
Updating these involves several steps:
1) Downloading and unzipping the tarball found at:
http://www.unicode.org/Public/cldr/latest/keyboards.zip
This file contains XML files describing the keyboard layouts.
2) Cloning the cldr2json script at:
git://repo.or.cz/cldr2json.git
It will be used to convert the XML files into JSON that can be
directly consumed by gnome-shell.
3) Running the script to produce the files:
./cldr2json <input-directory> <output-directory>
We shall usually use the "android" folder, since that's most
complete, and similar to our UI and target sizes. And the target
directory must be data/osk-layouts in this repository.
4) Modify gnome-shell-osk-layouts.gresource.xml to include the files
5) Do git add on the updated/new files, and git commit.
Or alternatively:
1) Run update-osk-layouts.sh
2) Modify JSON files to add extra keys, tweak appearance...
2) Do git add and git commit
JSON file format
================
Each JSON file describes a keymap for a certain language and layout,
it has the following structure:
- Root (Object)
Root object of a layout, has the following properties:
- levels (Array of Level): Levels in the keymap
- locale (String): Locale name for this keymap
- name (String): Human readable name for this keymap
- Level (Object)
A level defines the keys available on a keyboard level,
these are the key panels visible at a time. E.g. to type
uppercase levels or symbols.
Levels have the following properties:
- level (String): Name of the level, common names are
"", "shift", "opt" and "opt+shift".
- mode (String): Mode for this level, common modes are
"default", "latched" and "locked".
- rows (Array of Row): Array of rows of keys.
- Row (Array)
A row is an Array of Key.
- Key (Object)
A keyboard key. Keys have the following properties:
- iconName (String): Icon name to show on the key.
Keys with an icon name do not have a label.
- label (String): Label to show on the key.
- strings (Array of String): Strings to commit. If
label property does not exist, the first element
will be also the label. Extra elements are shown
in the extra keys popover.
- keyval (String): Hexadecimal keyval to emit as
emulated key presses. Committed strings are
preferred.
- leftOffset (Double): If set, the left offset of
this key, relative to the key immediately to the
left, or the start of the row. If not set, the key
will be implicitly located at the right of the
previous key in the row. Multiples of 0.5 are
accepted.
- width (Double): Relative width of the key in the
row. 1 is for a square key. Multiples of 0.5 are
accepted. The implicit default value is 1.
- height (Double): Relative height of the key in
the grid. The key will overflow downwards. Multiples
of 0.5 are accepted. The implicit default value is 1.
- level (Integer): Level that the key switches to.
See the levelSwitch action.
- action (string): Action performed by the key,
accepted actions are:
- hide: Hides the OSK
- languageMenu: Pops up the language selection
menu
- emoji: Switches to the emoji selection panel
- modifier: Handles the keyval as a modifier
key. This handles e.g. Ctrl+A as a sequence
of Ctrl press, A press, A release, Ctrl
release.
- delete: Deletes text backwards
- levelSwitch: Switches OSK to a different level

View File

@@ -1,3 +0,0 @@
[Desktop Entry]
Name=System
Type=Directory

View File

@@ -1,3 +0,0 @@
[Desktop Entry]
Name=Utilities
Type=Directory

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

View File

@@ -4,7 +4,6 @@ dbus_interfaces = [
'org.gnome.Shell.PadOsd.xml',
'org.gnome.Shell.Screencast.xml',
'org.gnome.Shell.Screenshot.xml',
'org.gnome.Shell.ScreenTime.xml',
'org.gnome.ShellSearchProvider.xml',
'org.gnome.ShellSearchProvider2.xml'
]

View File

@@ -0,0 +1,76 @@
<!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

@@ -31,9 +31,5 @@
<arg type="u"/>
<arg type="s"/>
</signal>
<signal name="ActivationToken">
<arg type="u"/>
<arg type="s"/>
</signal>
</interface>
</node>

View File

@@ -1,147 +0,0 @@
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
<!--
org.freedesktop.UPower.PowerProfiles:
@short_description: Power Profiles daemon
The power-profiles-daemon API is meant to be used by parts of the OS or
desktop environment to switch system power profiles based on user choice,
or user intent.
OS components would typically use the "Profiles" property to construct
their UI (2 or 3 profiles available), and monitor the "ActiveProfile"
and the "PerformanceDegraded" properties to update that UI. The UI
would try to set the "ActiveProfile" property if the user selected
a different one.
Note that the reason why the project exists and how it is different from
existing projects is explained <ulink href=" https://gitlab.freedesktop.org/hadess/power-profiles-daemon/-/blob/master/README.md">
in the project's README file</ulink>.
The object path will be "/org/freedesktop/UPower/PowerProfiles".
-->
<interface name="org.freedesktop.UPower.PowerProfiles">
<!--
HoldProfile:
This forces the passed profile (either 'power-saver' or 'performance')
to be activated until either the caller quits, "ReleaseProfile" is
called, or the "ActiveProfile" is changed by the user.
This should be used programmatically by OS components when, eg. high-
performance workloads are started with the "performance" profile, or
battery will soon be critically low with the "power-saver" profile.
When conflicting profiles are requested to be held, the 'power-saver' profile
will be activated in preference to the 'performance' profile.
Those holds will be automatically cancelled if the user manually switches
to another profile, and the "ProfileReleased" signal will be emitted.
-->
<method name="HoldProfile">
<arg name="profile" type="s" direction="in"/>
<arg name="reason" type="s" direction="in"/>
<arg name="application_id" type="s" direction="in" />
<arg name="cookie" type="u" direction="out"/>
</method>
<!--
ReleaseProfile:
This removes the hold that was set on a profile.
-->
<method name="ReleaseProfile">
<arg name="cookie" type="u" direction="in"/>
</method>
<!--
ProfileReleased:
This signal will be emitted if the profile is released because the
"ActiveProfile" was manually changed. The signal will only be emitted
to the process that originally called "HoldProfile".
-->
<signal name="ProfileReleased">
<arg name="cookie" type="u" direction="out"/>
</signal>
<!--
ActiveProfile:
The type of the currently active profile. It might change automatically
if a profile is held, using the "HoldProfile" function.
-->
<property name="ActiveProfile" type="s" access="readwrite"/>
<!--
PerformanceInhibited:
This property is deprecated, and unused since version 0.9.
-->
<property name="PerformanceInhibited" type="s" access="read"/>
<!--
PerformanceDegraded:
This will be set if the performance power profile is running in degraded
mode, with the value being used to identify the reason for that degradation.
As new reasons can be added, it is recommended that front-ends show a generic
reason if they do not recognise the value. Possible values are:
- "lap-detected" (the computer is sitting on the user's lap)
- "high-operating-temperature" (the computer is close to overheating)
- "" (the empty string, if not performance is not degraded)
-->
<property name="PerformanceDegraded" type="s" access="read"/>
<!--
Profiles:
An array of key-pair values representing each profile. The key named
"Driver" (s) identifies the power-profiles-daemon backend code used to
implement the profile.
The key named "Profile" (s) will be one of:
- "power-saver" (battery saving profile)
- "balanced" (the default profile)
- "performance" (a profile that does not care about noise or battery consumption)
Only one of each type of profile will be listed, with the daemon choosing the
more appropriate "driver" for each profile type.
This list is guaranteed to be sorted in the same order that the profiles
are listed above.
-->
<property name="Profiles" type="aa{sv}" access="read"/>
<!--
Actions:
An array of strings listing each one of the "actions" implemented in
the running daemon. This is used by API users to figure out whether
particular functionality is available in a version of the daemon.
-->
<property name="Actions" type="as" access="read"/>
<!--
ActiveProfileHolds:
A list of dictionaries representing the current profile holds.
The keys in the dict are "ApplicationId", "Profile" and "Reason",
and correspond to the "application_id", "profile" and "reason" arguments
passed to the HoldProfile() method.
-->
<property name="ActiveProfileHolds" type="aa{sv}" access="read"/>
<!--
Version:
The version of the power-profiles-daemon software.
-->
<property name="Version" type="s" access="read"/>
</interface>
</node>

View File

@@ -1,64 +0,0 @@
<?xml version="1.0"?>
<!--
Copyright (C) 2022 Endless OS Foundation, LLC
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
Author: Georges Basile Stavracas Neto <georges@endlessos.org>
-->
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
<!--
org.freedesktop.background.Monitor:
@short_description: Background applications monitor
This interface provides APIs related to applications
that are running in the background.
This documentation describes version 1 of this interface.
-->
<interface name="org.freedesktop.background.Monitor">
<!--
BackgroundApps:
The list of applications that are considered to be running in
background. The following keys are supported:
<variablelist>
<varlistentry>
<term>app_id s</term>
<listitem><para>
App id of the application.
</para></listitem>
</varlistentry>
<varlistentry>
<term>instance s</term>
<listitem><para>
The Flatpak instance of the application.
</para></listitem>
</varlistentry>
<varlistentry>
<term>message s</term>
<listitem><para>
Status message reported by the application. Optional.
</para></listitem>
</varlistentry>
</variablelist>
-->
<property name="BackgroundApps" type="aa{sv}" access="read"/>
<property name="version" type="u" access="read"/>
</interface>
</node>

View File

@@ -13,13 +13,6 @@
<arg name="app_permissions" type="a{sas}" direction="in"/>
<arg name="data" type="v" direction="in"/>
</method>
<method name="SetPermission">
<arg name='table' type='s' direction='in'/>
<arg name='create' type='b' direction='in'/>
<arg name='id' type='s' direction='in'/>
<arg name='app' type='s' direction='in'/>
<arg name='permissions' type='as' direction='in'/>
</method>
<signal name="Changed">
<arg name="table" type="s" direction="out"/>
<arg name="id" type="s" direction="out"/>

View File

@@ -17,10 +17,6 @@
<arg type="s" direction="in"/>
<arg type="o" direction="out"/>
</method>
<method name="GetUser">
<arg type="u" direction="in"/>
<arg type="o" direction="out"/>
</method>
<method name="ListSessions">
<arg name="sessions" type="a(susso)" direction="out"/>
</method>

View File

@@ -5,10 +5,9 @@
<property name="Active" type="b" access="read"/>
<property name="Class" type="s" access="read"/>
<property name="Id" type="s" access="read"/>
<property name="Name" type="s" access="read"/>
<property name="Remote" type="b" access="read"/>
<property name="State" type="s" access="read"/>
<property name="Type" type="s" access="read"/>
<property name="State" type="s" access="read"/>
<method name="SetLockedHint">
<arg type="b" direction="in"/>
</method>

View File

@@ -1,8 +1,6 @@
<node>
<interface name="org.freedesktop.login1.User">
<property name="Display" type="(so)" access="read"/>
<property name="IdleHint" type="b" access="read"/>
<property name="Sessions" type="a(so)" access="read"/>
<property name="State" type="s" access="read"/>
</interface>
</node>

View File

@@ -1,7 +0,0 @@
<node>
<interface name='org.gnome.SettingsDaemon.Power.Keyboard'>
<property name='Brightness' type='i' access='readwrite'/>
<property name='Steps' type='i' access='read'/>
</interface>
</node>

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

@@ -6,7 +6,7 @@
<arg type="b" name="force_reload" direction="in"/>
</method>
<signal name="EventsAddedOrUpdated">
<arg type="a(ssxxa{sv})" name="events" direction="out"/>
<arg type="a(ssbxxa{sv})" name="events" direction="out"/>
</signal>
<signal name="EventsRemoved">
<arg type="as" name="ids" direction="out"/>

View File

@@ -71,14 +71,12 @@
<listitem><para>
The state the extension is in:
<simplelist>
<member>1: ACTIVE</member>
<member>2: INACTIVE</member>
<member>1: ENABLED</member>
<member>2: DISABLED</member>
<member>3: ERROR</member>
<member>4: OUT_OF_DATE</member>
<member>5: DOWNLOADING</member>
<member>6: INITIALIZED</member>
<member>7: DEACTIVATING</member>
<member>8: ACTIVATING</member>
<member>99: UNINSTALLED</member>
</simplelist>
</para></listitem>
@@ -107,11 +105,6 @@
<listitem><para>The extension version</para></listitem>
</varlistentry>
<varlistentry>
<term>version-name s</term>
<listitem><para>The extension version name</para></listitem>
</varlistentry>
<varlistentry>
<term>url s</term>
<listitem><para>The URL to the extension homepage or repository</para></listitem>

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

View File

@@ -1,13 +1,11 @@
<node>
<interface name="org.gnome.Shell.PerfHelper">
<method name="Exit"/>
<method name="CreateWindow">
<arg type="i" direction="in"/>
<arg type="i" direction="in"/>
<arg type="b" direction="in"/>
<arg type="b" direction="in"/>
<arg type="b" direction="in"/>
<arg type="b" direction="in"/>
</method>
<method name="WaitWindows"/>
<method name="DestroyWindows"/>

View File

@@ -1,38 +0,0 @@
<!DOCTYPE node PUBLIC
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
<!--
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-FileCopyrightText: 2024 GNOME Foundation, Inc.
-->
<node>
<!--
org.gnome.Shell.ScreenTime:
@short_description: Screen Time interface
The interface used to access Screen Time and Break Reminders usage data.
-->
<interface name="org.gnome.Shell.ScreenTime">
<!--
State:
The state of the break manager.
- 0: Break reminders are disabled.
- 1: Break reminders are enabled, user is active, no break is needed yet.
- 2: A break is needed and the user is taking it.
- 3: A break is needed but the user is still active.
-->
<property name="State" type="u" access="read"/>
<!--
LastBreakEndTime:
The time (in wall clock seconds since the Unix epoch) when the most
recent break ended. If there have been no breaks so far, zero is
returned.
-->
<property name="LastBreakEndTime" type="t" access="read"/>
</interface>
</node>

View File

@@ -10,7 +10,6 @@
The interface used to record screen contents.
-->
<interface name="org.gnome.Shell.Screencast">
<property name="ScreencastSupported" type="b" access="read"/>
<!--
Screencast:
@@ -92,10 +91,5 @@
<arg type="b" direction="out" name="success"/>
</method>
<signal name="Error">
<arg type="s" name="name"/>
<arg type="s" name="message"/>
</signal>
</interface>
</node>

View File

@@ -11,22 +11,6 @@
-->
<interface name="org.gnome.Shell.Screenshot">
<!--
InteractiveScreenshot:
@success: whether the screenshot was captured
@uri: the file where the screenshot was saved
Shows Shell's interactive screenshot dialog, and lets the
user take an interactive screenshot, which is then returned
in @filename as png image. It returns a boolean indicating
whether the operation was successful or not. The URI of the
screenshot will be returned in @uri.
-->
<method name="InteractiveScreenshot">
<arg type="b" direction="out" name="success"/>
<arg type="s" direction="out" name="uri"/>
</method>
<!--
Screenshot:
@filename: The filename for the screenshot

View File

@@ -35,15 +35,10 @@
<arg type="au" direction="in" name="action"/>
<arg type="b" direction="out" name="success"/>
</method>
<method name="ScreenTransition"/>
<signal name="AcceleratorActivated">
<arg name="action" type="u"/>
<arg name="parameters" type="a{sv}"/>
</signal>
<signal name="AcceleratorDeactivated">
<arg name="action" type="u"/>
<arg name="parameters" type="a{sv}"/>
</signal>
<property name="Mode" type="s" access="read"/>
<property name="OverviewActive" type="b" access="readwrite"/>
<property name="ShellVersion" type="s" access="read"/>

View File

@@ -1,20 +1,13 @@
<node>
<interface name="org.gtk.Notifications">
<method name="AddNotification">
<arg name="app_id" type="s" direction="in"/>
<arg name="id" type="s" direction="in"/>
<arg name="notification" type="a{sv}" direction="in"/>
<arg type="s" direction="in"/>
<arg type="s" direction="in"/>
<arg type="a{sv}" direction="in"/>
</method>
<method name="RemoveNotification">
<arg name="app_id" type="s" direction="in"/>
<arg name="id" type="s" direction="in"/>
<arg type="s" direction="in"/>
<arg type="s" direction="in"/>
</method>
<signal name="ActionInvoked">
<arg name="app_id" type="s"/>
<arg name="id" type="s"/>
<arg name="action" type="s"/>
<arg name="parameter" type="av"/>
<arg name="platform_data" type="a{sv}"/>
</signal>
</interface>
</node>

View File

@@ -3,6 +3,5 @@
<method name="Raise"/>
<property name="CanRaise" type="b" access="read"/>
<property name="DesktopEntry" type="s" access="read"/>
<property name="Identity" type="s" access="read"/>
</interface>
</node>

View File

@@ -1,17 +0,0 @@
org.gnome.Geary.desktop
org.gnome.Contacts.desktop
org.gnome.Weather.desktop
org.gnome.clocks.desktop
org.gnome.Maps.desktop
org.gnome.Music.desktop
simple-scan.desktop
org.gnome.Settings.desktop
org.gnome.Boxes.desktop
org.gnome.Totem.desktop
org.gnome.Snapshot.desktop
org.gnome.Characters.desktop
Utilities # folder
System # folder
org.gnome.Console.desktop
org.gnome.Tour.desktop
yelp.desktop

View File

@@ -1,6 +0,0 @@
org.gnome.Epiphany.desktop
org.gnome.Calendar.desktop
org.gnome.Nautilus.desktop
org.gnome.Software.desktop
org.gnome.TextEditor.desktop
org.gnome.Calculator.desktop

View File

@@ -1,10 +0,0 @@
nm-connection-editor.desktop # Advanced Network Configuration
org.gnome.DejaDup.desktop # Backups
org.gnome.baobab.desktop # Disk Usage Analyzer
org.gnome.DiskUtility.desktop # Disks
org.gnome.Logs.desktop # Logs
org.freedesktop.MalcontentControl.desktop # Parental Controls
org.freedesktop.GnomeAbrt.desktop # Problem Reporting
org.gnome.tweaks.desktop # Tweaks
org.gnome.Sysprof.desktop # Sysprof
org.gnome.SystemMonitor.desktop # System Monitor

View File

@@ -1,8 +0,0 @@
# Sorted by name as shown in menus, not filename
org.gnome.Decibels # Audio Player
org.gnome.Connections.desktop # Connections
org.gnome.Evince.desktop # Document Viewer
org.gnome.FileRoller.desktop # File Roller
org.gnome.font-viewer.desktop # Fonts
org.gnome.Loupe.desktop # Image Viewer
org.gnome.seahorse.Application.desktop # Passwords and Keys

View File

@@ -1,11 +1,11 @@
<?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">org.freedesktop.Application.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.background.Monitor.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Device.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.DBus.xml</file>
@@ -29,7 +29,6 @@
<file preprocess="xml-stripblanks">org.freedesktop.realmd.Service.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.UPower.Device.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.UPower.xml</file>
<file preprocess="xml-stripblanks">org.freedesktop.UPower.PowerProfiles.xml</file>
<file preprocess="xml-stripblanks">org.gnome.Mutter.ScreenCast.xml</file>
<file preprocess="xml-stripblanks">org.gnome.ScreenSaver.xml</file>
<file preprocess="xml-stripblanks">org.gnome.SessionManager.EndSessionDialog.xml</file>
@@ -37,7 +36,6 @@
<file preprocess="xml-stripblanks">org.gnome.SessionManager.Presence.xml</file>
<file preprocess="xml-stripblanks">org.gnome.SessionManager.xml</file>
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Color.xml</file>
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Power.Keyboard.xml</file>
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Power.Screen.xml</file>
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Rfkill.xml</file>
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Wacom.xml</file>
@@ -51,7 +49,6 @@
<file preprocess="xml-stripblanks">org.gnome.Shell.PortalHelper.xml</file>
<file preprocess="xml-stripblanks">org.gnome.Shell.Screencast.xml</file>
<file preprocess="xml-stripblanks">org.gnome.Shell.Screenshot.xml</file>
<file preprocess="xml-stripblanks">org.gnome.Shell.ScreenTime.xml</file>
<file preprocess="xml-stripblanks">org.gnome.Shell.Wacom.PadOsd.xml</file>
<file preprocess="xml-stripblanks">org.gnome.Shell.WeatherIntegration.xml</file>
<file preprocess="xml-stripblanks">org.gnome.Shell.xml</file>

View File

@@ -1,65 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/icons">
<file preprocess="xml-stripblanks">scalable/actions/color-pick.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/carousel-arrow-next-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/carousel-arrow-previous-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/cog-wheel-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/dark-mode-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/group-collapse-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/notification-expand-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/ornament-check-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/ornament-dot-checked-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/ornament-dot-unchecked-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/pointer-double-click-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/pointer-drag-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/pointer-primary-click-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/pointer-secondary-click-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/preview-close-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/record-screen-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/screencast-recorded-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/screencast-stop-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/screenshooter-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/screenshot-ui-area-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/screenshot-ui-display-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/screenshot-ui-show-pointer-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/screenshot-ui-window-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/screenshot-recorded-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-display-built-in-only-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-display-extend-all-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-display-external-only-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-display-mirror-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-app-grid-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-dash-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-dash-symbolic-rtl.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-desktop-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-desktop-symbolic-rtl.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-search-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-top-bar-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-top-bar-symbolic-rtl.svg</file>
<file preprocess="xml-stripblanks">scalable/actions/shell-focus-windows-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/background-app-ghost-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/check-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/keyboard-brightness-high-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/keyboard-brightness-medium-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/keyboard-brightness-off-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/message-indicator-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/no-notifications-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/osk-caps-lock-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/osk-delete-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/osk-emoji-picker-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/osk-enter-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/osk-hide-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/osk-layout-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/osk-shift-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/osk-zwnj-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/screen-privacy-disabled-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/screen-privacy-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/switch-off-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/switch-on-symbolic.svg</file>
<file preprocess="xml-stripblanks">scalable/status/wellbeing-symbolic.svg</file>
</gresource>
</gresources>

View File

@@ -3,19 +3,14 @@
<gresource prefix="/org/gnome/shell/osk-layouts">
<file>am.json</file>
<file>ara.json</file>
<file>at.json</file>
<file>be.json</file>
<file>bg.json</file>
<file>by.json</file>
<file>ca.json</file>
<file>ch.json</file>
<file>ch+fr.json</file>
<file>cz.json</file>
<file>de.json</file>
<file>digits.json</file>
<file>dk.json</file>
<file>ee.json</file>
<file>email.json</file>
<file>epo.json</file>
<file>es+cat.json</file>
<file>es.json</file>
@@ -35,7 +30,6 @@
<file>ke.json</file>
<file>kg.json</file>
<file>kh.json</file>
<file>kr.json</file>
<file>la.json</file>
<file>latam.json</file>
<file>lt.json</file>
@@ -45,9 +39,7 @@
<file>my.json</file>
<file>nl.json</file>
<file>no.json</file>
<file>number.json</file>
<file>ph.json</file>
<file>phone.json</file>
<file>pl.json</file>
<file>pt.json</file>
<file>ro.json</file>
@@ -60,12 +52,9 @@
<file>tr.json</file>
<file>ua.json</file>
<file>uk.json</file>
<file>url.json</file>
<file>us.json</file>
<file>us-extended.json</file>
<file>vn.json</file>
<file>za.json</file>
<file>za-extended.json</file>
<file>emoji.json</file>
</gresource>
</gresources>

View File

@@ -0,0 +1,5 @@
[Desktop Entry]
Type=Application
Name=GNOME settings overrides migration
NoDisplay=true
Exec=@libexecdir@/gnome-shell-overrides-migration.sh

View File

@@ -2,12 +2,41 @@
<gresources>
<gresource prefix="/org/gnome/shell/theme">
<file>calendar-today.svg</file>
<file>calendar-today-light.svg</file>
<file>gnome-shell-dark.css</file>
<file>gnome-shell-light.css</file>
<file alias="icons/scalable/status/carousel-arrow-next-24-symbolic.svg">carousel-arrow-next-24-symbolic.svg</file>
<file alias="icons/scalable/status/carousel-arrow-back-24-symbolic.svg">carousel-arrow-back-24-symbolic.svg</file>
<file>checkbox-focused.svg</file>
<file>checkbox-off-focused.svg</file>
<file>checkbox-off.svg</file>
<file>checkbox.svg</file>
<file alias="icons/scalable/actions/color-pick.svg">color-pick.svg</file>
<file>gnome-shell.css</file>
<file>gnome-shell-high-contrast.css</file>
<file>gnome-shell-start.svg</file>
<file alias="icons/scalable/status/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/scalable/status/eye-open-negative-filled-symbolic.svg">eye-open-negative-filled-symbolic.svg</file>
<file alias="icons/scalable/status/eye-not-looking-symbolic.svg">eye-not-looking-symbolic.svg</file>
<file alias="icons/scalable/actions/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
<file alias="icons/scalable/actions/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
<file alias="icons/scalable/actions/pointer-primary-click-symbolic.svg">pointer-primary-click-symbolic.svg</file>
<file alias="icons/scalable/actions/pointer-secondary-click-symbolic.svg">pointer-secondary-click-symbolic.svg</file>
<file alias="icons/scalable/actions/preview-close-symbolic.svg">window-close-24-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-caps-lock-filled-symbolic.svg">keyboard-caps-lock-filled-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-enter-symbolic.svg">keyboard-enter-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-hide-symbolic.svg">keyboard-hide-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-layout-filled-symbolic.svg">keyboard-layout-filled-symbolic.svg</file>
<file alias="icons/scalable/status/keyboard-shift-filled-symbolic.svg">keyboard-shift-filled-symbolic.svg</file>
<file>process-working.svg</file>
<file alias="icons/scalable/status/screen-privacy-disabled-symbolic.svg">screen-privacy-disabled-symbolic.svg</file>
<file alias="icons/scalable/status/screen-privacy-symbolic.svg">screen-privacy-symbolic.svg</file>
<file>toggle-off.svg</file>
<file>toggle-off-dark.svg</file>
<file>toggle-off-hc.svg</file>
<file>toggle-on.svg</file>
<file>toggle-on-dark.svg</file>
<file>toggle-on-hc.svg</file>
<file>workspace-placeholder.svg</file>
</gresource>
</gresources>

4
data/gnome-shell.portal Normal file
View File

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

View File

@@ -1,46 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="128px" viewBox="0 0 128 128" width="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientTransform="matrix(0.409876 -0.0955931 0.0955931 0.409876 54.804951 57.342529)" gradientUnits="userSpaceOnUse" x1="-129.163696" x2="129.993073" y1="64.190842" y2="124.632477">
<stop offset="0" stop-color="#b6b6b9"/>
<stop offset="0.0880388" stop-color="#77767b"/>
<stop offset="0.404541" stop-color="#77767b"/>
<stop offset="0.5" stop-color="#aaaaad"/>
<stop offset="0.605913" stop-color="#5c5b5f"/>
<stop offset="0.897286" stop-color="#616064"/>
<stop offset="0.9648" stop-color="#c8c8c9"/>
<stop offset="1" stop-color="#77767b"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse" x1="24" x2="104.182137" y1="72" y2="72">
<stop offset="0" stop-color="#e66100"/>
<stop offset="0.0650497" stop-color="#e66100"/>
<stop offset="0.114985" stop-color="#e66100"/>
<stop offset="0.185686" stop-color="#e66100"/>
<stop offset="0.242855" stop-color="#e66100"/>
<stop offset="0.317234" stop-color="#e66100"/>
<stop offset="0.44832" stop-color="#e66100"/>
<stop offset="0.502445" stop-color="#ffb780"/>
<stop offset="0.563268" stop-color="#e66100"/>
<stop offset="0.719163" stop-color="#e66100"/>
<stop offset="0.796271" stop-color="#e66100"/>
<stop offset="0.857009" stop-color="#e66100"/>
<stop offset="1" stop-color="#e66100"/>
</linearGradient>
<linearGradient id="c" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#bb5e00"/>
<stop offset="0.0530386" stop-color="#ffa954"/>
<stop offset="0.117718" stop-color="#eb7400"/>
<stop offset="0.25693" stop-color="#9a4c00"/>
<stop offset="0.592964" stop-color="#ff9d40"/>
<stop offset="0.874885" stop-color="#d36900"/>
<stop offset="0.934563" stop-color="#ffc080"/>
<stop offset="1" stop-color="#ae5700"/>
</linearGradient>
<linearGradient id="d" x1="38.373528" x2="89.688972" xlink:href="#c" y1="56" y2="56"/>
<linearGradient id="e" x1="25.382807" x2="104" xlink:href="#c" y1="54.150375" y2="56"/>
<path d="m 110.65625 99.722656 l -37.371094 21.601563 c -5.785156 3.34375 -12.917968 3.351562 -18.714844 0.023437 l -36.867187 -21.164062 c -5.796875 -3.328125 -9.382813 -9.492188 -9.414063 -16.175782 l -0.179687 -39.480468 c -0.03125 -6.683594 3.5 -12.878906 9.269531 -16.257813 l 36.679688 -21.488281 c 5.769531 -3.378906 12.898437 -3.429688 18.714844 -0.132812 l 37.554687 21.273437 c 5.8125 3.292969 9.417969 9.441406 9.445313 16.121094 l 0.183593 39.480469 c 0.027344 6.675781 -3.519531 12.859374 -9.300781 16.199218 z m 0 0" fill="url(#a)"/>
<path d="m 110.65625 95.722656 l -37.371094 21.601563 c -5.785156 3.34375 -12.917968 3.351562 -18.714844 0.023437 l -36.867187 -21.164062 c -5.796875 -3.328125 -9.382813 -9.492188 -9.414063 -16.175782 l -0.179687 -39.480468 c -0.03125 -6.683594 3.5 -12.878906 9.269531 -16.257813 l 36.679688 -21.488281 c 5.769531 -3.378906 12.898437 -3.429688 18.714844 -0.132812 l 37.554687 21.273437 c 5.8125 3.292969 9.417969 9.441406 9.445313 16.121094 l 0.183593 39.480469 c 0.027344 6.675781 -3.519531 12.859374 -9.300781 16.199218 z m 0 0" fill="#f6f5f4"/>
<path d="m 64.195312 74.0625 c -4.949218 0.003906 -8.964843 4.015625 -8.964843 8.96875 s 4.015625 8.96875 8.964843 8.96875 c 4.957032 0 8.972657 -4.015625 8.96875 -8.96875 c 0 -4.953125 -4.015624 -8.96875 -8.96875 -8.96875 z m 0 0" fill="url(#b)"/>
<path d="m 64.03125 53.421875 c -8.753906 0 -17.507812 3.324219 -24.15625 9.972656 c -2.003906 2 -2.003906 5.246094 0 7.25 c 2 2 5.246094 2 7.25 0 c 9.378906 -9.382812 24.433594 -9.386719 33.816406 -0.003906 c 2 2 5.246094 2.003906 7.246094 0.003906 c 2.003906 -2.003906 2.003906 -5.25 0 -7.25 c -6.648438 -6.648437 -15.402344 -9.972656 -24.15625 -9.972656 z m 0 0" fill="url(#d)"/>
<path d="m 64.03125 32.925781 c -14 -0.003906 -27.996094 5.324219 -38.648438 15.976563 c -2.003906 2 -2.003906 5.246094 0 7.246094 c 2 2.003906 5.246094 2 7.246094 0 c 17.386719 -17.386719 45.417969 -17.386719 62.804688 0 c 2 2 5.246094 2 7.246094 0 c 2.003906 -2 2.003906 -5.246094 0 -7.246094 c -10.648438 -10.652344 -24.648438 -15.980469 -38.648438 -15.976563 z m 0 0" fill="url(#e)"/>
<path d="m 64.03125 30.921875 c -14 0 -27.996094 5.328125 -38.648438 15.980469 c -2.003906 2 -2.003906 5.246094 0 7.246094 c 2 2.003906 5.246094 2 7.246094 0 c 17.386719 -17.386719 45.417969 -17.386719 62.804688 0 c 2 2 5.246094 2 7.246094 0 c 2.003906 -2 2.003906 -5.246094 0 -7.246094 c -10.648438 -10.652344 -24.648438 -15.980469 -38.648438 -15.980469 z m 0 20.5 c -8.753906 0 -17.507812 3.324219 -24.15625 9.972656 c -2.003906 2 -2.003906 5.246094 0 7.246094 c 2 2.003906 5.246094 2.003906 7.25 0 c 9.378906 -9.378906 24.433594 -9.382813 33.816406 0 c 2 2 5.246094 2.003906 7.246094 0 c 2.003906 -2 2.003906 -5.246094 0 -7.246094 c -6.648438 -6.648437 -15.402344 -9.972656 -24.15625 -9.972656 z m 0.164062 20.640625 c -4.949218 0.003906 -8.964843 4.015625 -8.964843 8.96875 s 4.015625 8.96875 8.964843 8.96875 c 4.957032 0 8.972657 -4.015625 8.96875 -8.96875 c 0 -4.953125 -4.015624 -8.96875 -8.96875 -8.96875 z m 0 0" fill="#ffa348"/>
</svg>

Before

Width:  |  Height:  |  Size: 5.3 KiB

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="#5e5c64">
<path d="m 3.199219 7.960938 c -0.394531 0.398437 -0.394531 1.042968 0 1.441406 c 0.398437 0.394531 1.042969 0.398437 1.441406 0 c 1.867187 -1.867188 4.859375 -1.867188 6.726563 0 c 0.398437 0.398437 1.042968 0.398437 1.441406 0 c 0.398437 -0.398438 0.398437 -1.042969 0 -1.441406 c -2.644532 -2.644532 -6.964844 -2.644532 -9.609375 0 z m 0 0"/>
<path d="m 0.320312 5.078125 c -0.398437 0.398437 -0.398437 1.042969 0 1.441406 c 0.394532 0.398438 1.039063 0.398438 1.4375 0 c 3.457032 -3.457031 9.035157 -3.457031 12.492188 0 c 0.398438 0.398438 1.042969 0.398438 1.441406 0 c 0.398438 -0.398437 0.398438 -1.042969 0 -1.441406 c -4.238281 -4.238281 -11.136718 -4.234375 -15.371094 0 z m 0 0"/>
<path d="m 10 12 c 0 1.105469 -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 s 2 0.894531 2 2 z m 0 0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 998 B

View File

@@ -1,9 +1 @@
excluded_icons=[]
if not have_portal_helper
excluded_icons += [
'scalable/apps/org.gnome.Shell.CaptivePortal.svg',
'symbolic/apps/org.gnome.Shell.CaptivePortal-symbolic.svg',
]
endif
install_subdir('hicolor',
install_dir: icondir, exclude_files: excluded_icons)
install_subdir('hicolor', install_dir: icondir)

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 6 0 c 0.265625 0 0.519531 0.105469 0.707031 0.292969 l 7 7 c 0.390625 0.390625 0.390625 1.023437 0 1.414062 l -7 7 c -0.390625 0.390625 -1.023437 0.390625 -1.414062 0 s -0.390625 -1.023437 0 -1.414062 l 6.292969 -6.292969 l -6.292969 -6.292969 c -0.390625 -0.390625 -0.390625 -1.023437 0 -1.414062 c 0.1875 -0.1875 0.441406 -0.292969 0.707031 -0.292969 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 513 B

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 10 0 c -0.265625 0 -0.519531 0.105469 -0.707031 0.292969 l -7 7 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 l 7 7 c 0.390625 0.390625 1.023437 0.390625 1.414062 0 s 0.390625 -1.023437 0 -1.414062 l -6.292969 -6.292969 l 6.292969 -6.292969 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414062 c -0.1875 -0.1875 -0.441406 -0.292969 -0.707031 -0.292969 z m 0 0"/>
</svg>

Before

Width:  |  Height:  |  Size: 516 B

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 8 0 c -0.550781 0 -1 0.449219 -1 1 v 0.238281 c 0 0.464844 -0.378906 0.902344 -0.820312 1.046875 c -0.023438 0.007813 -0.042969 0.011719 -0.0625 0.019532 c -0.445313 0.148437 -1.007813 0.015624 -1.28125 -0.359376 l -0.140626 -0.195312 c -0.15625 -0.214844 -0.390624 -0.359375 -0.652343 -0.398438 c -0.261719 -0.042968 -0.53125 0.019532 -0.742188 0.175782 c -0.449219 0.324218 -0.550781 0.949218 -0.222656 1.398437 l 0.140625 0.199219 c 0.277344 0.375 0.226562 0.953125 -0.050781 1.328125 c -0.011719 0.015625 -0.023438 0.035156 -0.035157 0.050781 c -0.273437 0.378906 -0.804687 0.601563 -1.25 0.457032 l -0.230468 -0.074219 c -0.523438 -0.171875 -1.089844 0.117187 -1.257813 0.640625 c -0.171875 0.527344 0.113281 1.089844 0.640625 1.261718 l 0.222656 0.074219 c 0.445313 0.144531 0.738282 0.636719 0.75 1.101563 v 0.070312 c 0.015626 0.464844 -0.304687 0.960938 -0.746093 1.105469 l -0.226563 0.070313 c -0.527344 0.171874 -0.8125 0.738281 -0.640625 1.261718 c 0.167969 0.523438 0.734375 0.8125 1.257813 0.640625 l 0.230468 -0.074219 c 0.445313 -0.144531 0.976563 0.078126 1.25 0.457032 c 0.011719 0.015625 0.027344 0.035156 0.039063 0.050781 c 0.277344 0.375 0.324219 0.953125 0.050781 1.328125 l -0.144531 0.203125 c -0.324219 0.445313 -0.226563 1.070313 0.222656 1.394531 c 0.445313 0.324219 1.070313 0.226563 1.394531 -0.21875 l 0.144532 -0.199218 c 0.273437 -0.378907 0.835937 -0.507813 1.277344 -0.359376 c 0.019531 0.007813 0.042968 0.011719 0.0625 0.019532 c 0.445312 0.140625 0.820312 0.578125 0.820312 1.046875 v 0.238281 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -0.238281 c 0 -0.46875 0.378906 -0.90625 0.820312 -1.046875 c 0.023438 -0.007813 0.042969 -0.015625 0.066407 -0.023438 c 0.441406 -0.144531 1.003906 -0.015625 1.277343 0.363282 l 0.144532 0.199218 c 0.324218 0.445313 0.949218 0.542969 1.394531 0.21875 c 0.445313 -0.324218 0.546875 -0.949218 0.222656 -1.394531 l -0.148437 -0.203125 c -0.273438 -0.375 -0.226563 -0.953125 0.050781 -1.328125 c 0.015625 -0.015625 0.027344 -0.035156 0.039063 -0.050781 c 0.273437 -0.378906 0.804687 -0.601563 1.25 -0.457032 l 0.234374 0.078126 c 0.523438 0.167968 1.085938 -0.121094 1.257813 -0.644532 c 0.171875 -0.523437 -0.117187 -1.089844 -0.640625 -1.257812 l -0.230469 -0.074219 c -0.445312 -0.144531 -0.734375 -0.640625 -0.746093 -1.105469 c 0 -0.023437 0 -0.046875 0 -0.070312 c -0.015626 -0.464844 0.300781 -0.957032 0.746093 -1.101563 l 0.230469 -0.074219 c 0.523438 -0.171874 0.8125 -0.734374 0.640625 -1.261718 c -0.171875 -0.523438 -0.734375 -0.8125 -1.257813 -0.640625 l -0.230468 0.074219 c -0.445313 0.144531 -0.980469 -0.078126 -1.253906 -0.457032 c -0.011719 -0.015625 -0.023438 -0.035156 -0.035157 -0.050781 c -0.277343 -0.375 -0.324219 -0.953125 -0.050781 -1.328125 l 0.144531 -0.199219 c 0.324219 -0.445312 0.226563 -1.074219 -0.222656 -1.398437 c -0.214844 -0.15625 -0.480469 -0.21875 -0.742187 -0.179688 c -0.265626 0.042969 -0.5 0.1875 -0.652344 0.402344 l -0.144532 0.195312 c -0.273437 0.378907 -0.835937 0.507813 -1.28125 0.363282 c -0.019531 -0.007813 -0.039062 -0.015625 -0.0625 -0.023438 c -0.441406 -0.140625 -0.820312 -0.578125 -0.820312 -1.046875 v -0.238281 c 0 -0.550781 -0.449219 -1 -1 -1 z m 0 4 c 0.871094 0 1.675781 0.273438 2.332031 0.742188 c 0.003907 0.007812 0.011719 0.015624 0.019531 0.023437 c 0.011719 0.003906 0.019532 0.007813 0.03125 0.015625 c 0.660157 0.484375 1.160157 1.171875 1.421876 1.976562 v 0.007813 s 0.003906 0.003906 0.003906 0.007813 c 0.292968 0.851562 0.15625 1.65625 0 2.457031 c 0 0 -0.003906 0.003906 -0.003906 0.007812 v 0.003907 c -0.261719 0.800781 -0.757813 1.488281 -1.414063 1.976562 c -0.015625 0.003906 -0.027344 0.011719 -0.039063 0.019531 c -0.007812 0.003907 -0.015624 0.011719 -0.019531 0.019531 c -0.65625 0.46875 -1.460937 0.742188 -2.332031 0.742188 c -0.855469 0 -1.644531 -0.265625 -2.289062 -0.714844 c -0.019532 -0.015625 -0.042969 -0.035156 -0.0625 -0.046875 c -0.011719 -0.007812 -0.023438 -0.015625 -0.035157 -0.019531 c -0.652343 -0.484375 -1.148437 -1.160156 -1.40625 -1.945312 c -0.003906 -0.015626 -0.007812 -0.023438 -0.011719 -0.035157 c -0.003906 -0.007812 -0.007812 -0.015625 -0.011718 -0.019531 c -0.285156 -0.847656 -0.148438 -1.644531 0 -2.4375 c 0.003906 -0.007812 0.007812 -0.011719 0.011718 -0.019531 c 0.003907 -0.011719 0.007813 -0.023438 0.011719 -0.039063 c 0.261719 -0.785156 0.757813 -1.460937 1.414063 -1.945312 c 0.007812 -0.003906 0.019531 -0.007813 0.027344 -0.015625 c 0.019531 -0.011719 0.042968 -0.03125 0.058593 -0.046875 c 0.648438 -0.449219 1.4375 -0.714844 2.292969 -0.714844 z m 0 0" fill="#2e3436"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

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,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16px"
viewBox="0 0 16 16"
width="16px"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="g456"
transform="matrix(1,0,0,-1,392,1185.9336)"
style="fill:#2e3436;fill-opacity:1">
<g
id="g143"
transform="translate(0,-0.50051875)"
style="fill:#2e3436;fill-opacity:1">
<g
id="g144"
transform="translate(0,0.5)"
style="fill:#2e3436;fill-opacity:1">
<path
d="m -388,1172.4341 c 0,-0.2656 0.1055,-0.5195 0.293,-0.707 0.3906,-0.3906 1.0234,-0.3906 1.414,0 l 2.293,2.293 2.293,-2.293 c 0.3906,-0.3906 1.0234,-0.3906 1.414,0 0.1875,0.1875 0.293,0.4414 0.293,0.707 0,0.2656 -0.1055,0.5195 -0.293,0.707 l -3,3 c -0.3906,0.3907 -1.0234,0.3907 -1.414,0 l -3,-3 c -0.1875,-0.1875 -0.293,-0.4414 -0.293,-0.707 z"
fill="#2e3436"
id="path177459-1"
style="fill:#2e3436;fill-opacity:1" />
<path
d="m -388,1183.4342 c 0,0.2656 0.1055,0.5195 0.293,0.707 0.3906,0.3906 1.0234,0.3906 1.414,0 l 2.293,-2.293 2.293,2.293 c 0.3906,0.3906 1.0234,0.3906 1.414,0 0.1875,-0.1875 0.293,-0.4414 0.293,-0.707 0,-0.2656 -0.1055,-0.5195 -0.293,-0.707 l -3,-3 c -0.3906,-0.3907 -1.0234,-0.3907 -1.414,0 l -3,3 c -0.1875,0.1875 -0.293,0.4414 -0.293,0.707 z"
fill="#2e3436"
id="path142"
style="fill:#2e3436;fill-opacity:1" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#222" fill-rule="evenodd" d="m3.293 7.707 4 4a1 1 0 0 0 1.414 0l4-4a1 1 0 1 0-1.414-1.414L8 9.586 4.707 6.293a1 1 0 1 0-1.414 1.414"/></svg>

Before

Width:  |  Height:  |  Size: 215 B

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 13.75 4.660156 c 0.175781 -0.199218 0.261719 -0.460937 0.246094 -0.726562 c -0.019532 -0.265625 -0.140625 -0.511719 -0.339844 -0.6875 c -0.199219 -0.175782 -0.460938 -0.261719 -0.726562 -0.246094 c -0.265626 0.019531 -0.511719 0.140625 -0.6875 0.339844 l -6.296876 7.195312 l -2.242187 -2.242187 c -0.390625 -0.390625 -1.023437 -0.390625 -1.414063 0 c -0.1875 0.1875 -0.292968 0.441406 -0.292968 0.707031 s 0.105468 0.519531 0.292968 0.707031 l 3 3 c 0.195313 0.195313 0.464844 0.304688 0.738282 0.292969 c 0.277344 -0.007812 0.539062 -0.132812 0.722656 -0.339844 z m 0 0" fill="#2e3436"/>
</svg>

Before

Width:  |  Height:  |  Size: 739 B

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<path d="m 8 5 c 1.652344 0 3 1.34375 3 3 s -1.347656 3 -3 3 c -1.65625 0 -3 -1.34375 -3 -3 s 1.34375 -3 3 -3 z m 0 0" fill="#2e3436"/>
<path d="m 7.992188 0 c 4.40625 0 8 3.59375 8 8 s -3.59375 8 -8 8 s -8.0000005 -3.59375 -8.0000005 -8 s 3.5937505 -8 8.0000005 -8 z m 0 2 c -3.320313 0 -6 2.679688 -6 6 s 2.679687 6 6 6 c 3.320312 0 6 -2.679688 6 -6 s -2.679688 -6 -6 -6 z m 0 0" fill="#2e3435" fill-opacity="0.2"/>
</svg>

Before

Width:  |  Height:  |  Size: 560 B

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 7.992188 0 c 4.40625 0 8 3.59375 8 8 s -3.59375 8 -8 8 c -4.402344 0 -8.0000005 -3.59375 -8.0000005 -8 s 3.5976565 -8 8.0000005 -8 z m 0 2 c -3.320313 0 -6 2.679688 -6 6 s 2.679687 6 6 6 c 3.320312 0 6 -2.679688 6 -6 s -2.679688 -6 -6 -6 z m 0 0" fill="#2e3435" fill-opacity="0.2"/>
</svg>

Before

Width:  |  Height:  |  Size: 432 B

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 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#2e3436" d="M4.5 3h7A1.5 1.5 0 0 1 13 4.5v7a1.5 1.5 0 0 1-1.5 1.5h-7A1.5 1.5 0 0 1 3 11.5v-7A1.5 1.5 0 0 1 4.5 3Z"/></svg>

Before

Width:  |  Height:  |  Size: 197 B

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="#222222">
<path d="m 10.042969 6 c -0.566407 0 -1.019531 0.425781 -1.039063 0.964844 h -0.992187 c -1.113281 0 -2.011719 0.898437 -2.011719 2.011718 v 4.011719 c 0 1.113281 0.898438 2.011719 2.011719 2.011719 h 5.976562 c 1.113281 0 2.011719 -0.898438 2.011719 -2.011719 v -4.011719 c 0 -1.113281 -0.898438 -2.011718 -2.011719 -2.011718 h -0.988281 c -0.019531 -0.539063 -0.476562 -0.964844 -1.042969 -0.964844 z m 0.957031 3 c 1.105469 0 2 0.894531 2 2 s -0.894531 2 -2 2 s -2 -0.894531 -2 -2 s 0.894531 -2 2 -2 z m 0 0"/>
<path d="m 3.007812 11.984375 h -0.316406 c -1.507812 0 -2.722656 -1.210937 -2.722656 -2.722656 v -0.269531 c 0 -0.550782 0.445312 -1 1 -1 c 0.550781 0 1 0.449218 1 1 v 0.269531 c 0 0.394531 0.328125 0.722656 0.722656 0.722656 h 0.316406 c 0.550782 0 1 0.449219 1 1 c 0 0.554687 -0.449218 1 -1 1 z m 0 0"/>
<path d="m 14 3.039062 v -0.316406 c 0 -0.394531 -0.328125 -0.722656 -0.722656 -0.722656 h -0.269532 c -0.554687 0 -1 -0.449219 -1 -1 s 0.445313 -1 1 -1 h 0.269532 c 1.507812 0 2.722656 1.214844 2.722656 2.722656 v 0.316406 c 0 0.554688 -0.449219 1 -1 1 s -1 -0.445312 -1 -1 z m 0 0"/>
<path d="m 0 3.039062 v -0.316406 c 0 -1.507812 1.214844 -2.722656 2.722656 -2.722656 h 0.269532 c 0.554687 0 1 0.449219 1 1 s -0.445313 1 -1 1 h -0.269532 c -0.394531 0 -0.722656 0.328125 -0.722656 0.722656 v 0.316406 c 0 0.554688 -0.449219 1 -1 1 s -1 -0.445312 -1 -1 z m 0 0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

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 5 3 c -2.265625 0 -4.09375 1.847656 -4.09375 4.074219 v 13.828125 c 0 2.230468 1.828125 4.074218 4.09375 4.074218 h 5.894531 v 2.46875 c 0 1.410157 1.132813 2.542969 2.542969 2.542969 h 5.414062 c 1.40625 0 2.542969 -1.132812 2.542969 -2.542969 v -2.46875 h 5.390625 c 2.265625 0 4.097656 -1.84375 4.097656 -4.074218 v -13.828125 c 0 -2.226563 -1.832031 -4.074219 -4.097656 -4.074219 z m 0 1.976562 h 21.785156 c 1.15625 0 2.074219 0.910157 2.074219 2.097657 v 13.828125 c 0 1.191406 -0.917969 2.097656 -2.074219 2.097656 h -21.785156 c -1.15625 0 -2.074219 -0.90625 -2.074219 -2.097656 v -13.828125 c 0 -1.1875 0.917969 -2.097657 2.074219 -2.097657 z m 7.890625 20 h 6.5 v 2.46875 c 0 0.304688 -0.238281 0.542969 -0.539063 0.542969 h -5.414062 c -0.304688 0 -0.546875 -0.238281 -0.546875 -0.542969 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 974 B

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,5 +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 12.105469 1 c -2.265625 0 -4.097657 1.847656 -4.097657 4.078125 v 9.832031 c 0 2.230469 1.832032 4.078125 4.097657 4.078125 h 3.894531 v 1.46875 c 0 1.40625 1.132812 2.542969 2.542969 2.542969 h 3.414062 c 1.410157 0 2.546875 -1.136719 2.546875 -2.542969 v -1.46875 h 3.390625 c 2.265625 0 4.097657 -1.847656 4.097657 -4.078125 v -9.832031 c 0 -2.230469 -1.832032 -4.078125 -4.097657 -4.078125 z m 0 1.980469 h 15.789062 c 1.15625 0 2.078125 0.90625 2.078125 2.097656 v 9.832031 c 0 1.191406 -0.921875 2.097656 -2.078125 2.097656 h -15.789062 c -1.15625 0 -2.078125 -0.90625 -2.078125 -2.097656 v -9.832031 c 0 -1.191406 0.921875 -2.097656 2.078125 -2.097656 z m 5.894531 16.007812 h 4.5 v 1.46875 c 0 0.300781 -0.242188 0.542969 -0.542969 0.542969 h -3.414062 c -0.300781 0 -0.542969 -0.242188 -0.542969 -0.542969 z m 0 0" fill="#242032" fill-opacity="0.2"/>
<path d="m 4 21 c -1.644531 0 -3 1.355469 -3 3 v 5.585938 l -0.707031 0.707031 c -0.2851565 0.285156 -0.371094 0.714843 -0.214844 1.089843 c 0.152344 0.375 0.515625 0.617188 0.921875 0.617188 h 14 c 0.40625 0 0.769531 -0.242188 0.921875 -0.617188 c 0.15625 -0.375 0.070313 -0.804687 -0.214844 -1.089843 l -0.707031 -0.707031 v -5.585938 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 2 h 8 c 0.570312 0 1 0.429688 1 1 v 5 h -10 v -5 c 0 -0.570312 0.429688 -1 1 -1 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,7 +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">
<g fill="#241f31">
<path d="m 4 21 c -1.644531 0 -3 1.355469 -3 3 v 5.585938 l -0.707031 0.707031 c -0.2851565 0.285156 -0.371094 0.714843 -0.214844 1.089843 c 0.152344 0.375 0.515625 0.617188 0.921875 0.617188 h 14 c 0.40625 0 0.769531 -0.242188 0.921875 -0.617188 c 0.15625 -0.375 0.070313 -0.804687 -0.214844 -1.089843 l -0.707031 -0.707031 v -5.585938 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 2 h 8 c 0.570312 0 1 0.429688 1 1 v 5 h -10 v -5 c 0 -0.570312 0.429688 -1 1 -1 z m 0 0"/>
<path d="m 12.105469 1.007812 c -2.261719 0 -4.09375 1.847657 -4.09375 4.078126 v 9.828124 c 0 2.230469 1.832031 4.074219 4.09375 4.074219 h 3.894531 v 1.46875 c 0 1.410157 1.132812 2.542969 2.542969 2.542969 h 3.414062 c 1.410157 0 2.542969 -1.132812 2.542969 -2.542969 v -1.46875 h 3.394531 c 2.261719 0 4.09375 -1.84375 4.09375 -4.074219 v -9.828124 c 0 -2.230469 -1.832031 -4.078126 -4.09375 -4.078126 z m 0 1.980469 h 15.789062 c 1.152344 0 2.074219 0.90625 2.074219 2.097657 v 9.828124 c 0 1.191407 -0.921875 2.09375 -2.074219 2.09375 h -15.789062 c -1.152344 0 -2.074219 -0.902343 -2.074219 -2.09375 v -9.828124 c 0 -1.191407 0.921875 -2.097657 2.074219 -2.097657 z m 5.894531 16 h 4.5 v 1.46875 c 0 0.300781 -0.242188 0.542969 -0.542969 0.542969 h -3.414062 c -0.300781 0 -0.542969 -0.242188 -0.542969 -0.542969 z m 0 0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1,5 +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 12 1 c -2.265625 0 -4.09375 1.847656 -4.09375 4.074219 v 9.832031 c 0 2.226562 1.828125 4.074219 4.09375 4.074219 h 3.894531 v 1.46875 c 0 1.40625 1.132813 2.539062 2.542969 2.539062 h 3.414062 c 1.40625 0 2.542969 -1.132812 2.542969 -2.539062 v -1.46875 h 3.390625 c 2.265625 0 4.097656 -1.847657 4.097656 -4.074219 v -9.832031 c 0 -2.226563 -1.832031 -4.074219 -4.097656 -4.074219 z m 0 1.980469 h 15.785156 c 1.15625 0 2.078125 0.90625 2.078125 2.09375 v 9.832031 c 0 1.1875 -0.921875 2.09375 -2.078125 2.09375 h -15.785156 c -1.15625 0 -2.074219 -0.90625 -2.074219 -2.09375 v -9.832031 c 0 -1.1875 0.917969 -2.09375 2.074219 -2.09375 z m 5.894531 16 h 4.5 v 1.46875 c 0 0.300781 -0.242187 0.539062 -0.542969 0.539062 h -3.414062 c -0.304688 0 -0.542969 -0.238281 -0.542969 -0.539062 z m 0 0" fill="#241f31"/>
<path d="m 4 21 c -1.644531 0 -3 1.355469 -3 3 v 5.585938 l -0.707031 0.707031 c -0.2851565 0.285156 -0.371094 0.714843 -0.214844 1.089843 c 0.152344 0.375 0.515625 0.617188 0.921875 0.617188 h 14 c 0.40625 0 0.769531 -0.242188 0.921875 -0.617188 c 0.15625 -0.375 0.070313 -0.804687 -0.214844 -1.089843 l -0.707031 -0.707031 v -5.585938 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 2 h 8 c 0.570312 0 1 0.429688 1 1 v 5 h -10 v -5 c 0 -0.570312 0.429688 -1 1 -1 z m 0 0" fill="#242032" fill-opacity="0.2"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 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 7 4.945312 c -2.199219 0 -4 1.800782 -4 4 l -0.003906 11.054688 c 0 2.199219 1.800781 4 4 4 h 2.003906 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 h -2.003906 c -1.125 0 -2 -0.875 -2 -2 l 0.003906 -11.054688 c 0 -1.125 0.875 -2 2 -2 h 18 c 1.125 0 2 0.875 2 2 l -0.003906 11.054688 c 0 1.125 -0.871094 2 -2 2 h -1.996094 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 1.996094 c 2.199218 0 4 -1.800781 4 -4 l 0.003906 -11.054688 c 0 -2.199218 -1.800781 -4 -4 -4 z m 9 14.0625 c -0.484375 0 -0.972656 0.214844 -1.265625 0.644532 l -3.523437 5.136718 c -0.609376 0.890626 0.085937 2.210938 1.164062 2.210938 h 7.257812 c 1.078126 0 1.773438 -1.320312 1.164063 -2.210938 l -3.53125 -5.136718 c -0.296875 -0.429688 -0.78125 -0.644532 -1.265625 -0.644532 z m 0 2.332032 l 2.515625 3.660156 h -5.023437 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 982 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 7.988281 6 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m 8 0 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m 8 0 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m -16 8 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m 8 0 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m 8 0 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m -16 8 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m 8 0 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m 8 0 c -1.109375 0 -2 0.890625 -2 2 s 0.890625 2 2 2 s 2 -0.890625 2 -2 s -0.890625 -2 -2 -2 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1,7 +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">
<g fill="#241f31">
<path d="m 32 3 v 2 h -25 c -2.789062 0 -5 2.210938 -5 5 v 12 c 0 2.789062 2.210938 5 5 5 h 25 v 2 h -25 c -3.859375 0 -7 -3.140625 -7 -7 v -12 c 0 -3.859375 3.140625 -7 7 -7 z m -15 8 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m -4 0 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m -4 0 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m 8 4 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m -4 0 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m -4 0 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m 8 4 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m -4 0 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m -4 0 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 s -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m 0 0"/>
<path d="m 32 7 v 18 h -5 c -1.660156 0 -3 -1.339844 -3 -3 v -12 c 0 -1.660156 1.339844 -3 3 -3 z m 0 0" fill-opacity="0.2"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,7 +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">
<g fill="#241f31">
<path d="m 0 3 v 2 h 25 c 2.789062 0 5 2.210938 5 5 v 12 c 0 2.789062 -2.210938 5 -5 5 h -25 v 2 h 25 c 3.859375 0 7 -3.140625 7 -7 v -12 c 0 -3.859375 -3.140625 -7 -7 -7 z m 15 8 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m 4 0 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m 4 0 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m -8 4 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m 4 0 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m 4 0 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m -8 4 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m 4 0 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m 4 0 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 s 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m 0 0"/>
<path d="m 0 7 v 18 h 5 c 1.660156 0 3 -1.339844 3 -3 v -12 c 0 -1.660156 -1.339844 -3 -3 -3 z m 0 0" fill-opacity="0.2"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,9 +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.660156 0 -3 1.339844 -3 3 v 19 c 0 1.660156 1.339844 3 3 3 h 26 c 1.660156 0 3 -1.339844 3 -3 v -19 c 0 -1.660156 -1.339844 -3 -3 -3 z m 0 3 h 26 c 0.554688 0 1 0.445312 1 1 v 18 c 0 0.554688 -0.445312 1 -1 1 h -26 c -0.554688 0 -1 -0.445312 -1 -1 v -18 c 0 -0.554688 0.445312 -1 1 -1 z m 0 0" fill="#241f31"/>
<g fill="#231e2d" fill-opacity="0.2">
<path d="m 25.75 8 h 1.5 c 0.414062 0 0.75 0.335938 0.75 0.75 v 1.5 c 0 0.414062 -0.335938 0.75 -0.75 0.75 h -1.5 c -0.414062 0 -0.75 -0.335938 -0.75 -0.75 v -1.5 c 0 -0.414062 0.335938 -0.75 0.75 -0.75 z m 0 0"/>
<path d="m 25.75 12 h 1.5 c 0.414062 0 0.75 0.335938 0.75 0.75 v 1.5 c 0 0.414062 -0.335938 0.75 -0.75 0.75 h -1.5 c -0.414062 0 -0.75 -0.335938 -0.75 -0.75 v -1.5 c 0 -0.414062 0.335938 -0.75 0.75 -0.75 z m 0 0"/>
<path d="m 25.75 16 h 1.5 c 0.414062 0 0.75 0.335938 0.75 0.75 v 1.5 c 0 0.414062 -0.335938 0.75 -0.75 0.75 h -1.5 c -0.414062 0 -0.75 -0.335938 -0.75 -0.75 v -1.5 c 0 -0.414062 0.335938 -0.75 0.75 -0.75 z m 0 0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,9 +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.660156 0 -3 1.339844 -3 3 v 19 c 0 1.660156 1.339844 3 3 3 h 26 c 1.660156 0 3 -1.339844 3 -3 v -19 c 0 -1.660156 -1.339844 -3 -3 -3 z m 0 3 h 26 c 0.554688 0 1 0.445312 1 1 v 18 c 0 0.554688 -0.445312 1 -1 1 h -26 c -0.554688 0 -1 -0.445312 -1 -1 v -18 c 0 -0.554688 0.445312 -1 1 -1 z m 0 0" fill="#241f31"/>
<g fill="#231e2d" fill-opacity="0.2">
<path d="m 4.75 8 h 1.5 c 0.414062 0 0.75 0.335938 0.75 0.75 v 1.5 c 0 0.414062 -0.335938 0.75 -0.75 0.75 h -1.5 c -0.414062 0 -0.75 -0.335938 -0.75 -0.75 v -1.5 c 0 -0.414062 0.335938 -0.75 0.75 -0.75 z m 0 0"/>
<path d="m 4.75 12 h 1.5 c 0.414062 0 0.75 0.335938 0.75 0.75 v 1.5 c 0 0.414062 -0.335938 0.75 -0.75 0.75 h -1.5 c -0.414062 0 -0.75 -0.335938 -0.75 -0.75 v -1.5 c 0 -0.414062 0.335938 -0.75 0.75 -0.75 z m 0 0"/>
<path d="m 4.75 16 h 1.5 c 0.414062 0 0.75 0.335938 0.75 0.75 v 1.5 c 0 0.414062 -0.335938 0.75 -0.75 0.75 h -1.5 c -0.414062 0 -0.75 -0.335938 -0.75 -0.75 v -1.5 c 0 -0.414062 0.335938 -0.75 0.75 -0.75 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 13.5 3 c -5.789062 0 -10.5 4.710938 -10.5 10.5 s 4.710938 10.5 10.5 10.5 c 2.621094 0 4.953125 -1.0625 6.792969 -2.65625 c -0.019531 0.117188 -0.023438 0.242188 0 0.363281 l 6 6 c 0.253906 0.246094 0.621093 0.339844 0.960937 0.25 c 0.734375 -0.203125 0.984375 -1.117187 0.453125 -1.664062 l -6 -6 c -0.121093 -0.023438 -0.246093 -0.019531 -0.367187 0.003906 c 1.597656 -1.84375 2.660156 -4.175781 2.660156 -6.796875 c 0 -5.789062 -4.710938 -10.5 -10.5 -10.5 z m 0 2 c 4.707031 0 8.5 3.792969 8.5 8.5 s -3.792969 8.5 -8.5 8.5 s -8.5 -3.792969 -8.5 -8.5 s 3.792969 -8.5 8.5 -8.5 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 752 B

View File

@@ -1,7 +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">
<g fill="#241f31">
<path d="m 30 3 c 2 0 2 1.714844 2 2 v 22 h -2 v -17 c 0 -1 -1 -1 -1 -1 h -29 v -6 z m -2 2 h -4 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 h 4 c 0.554688 0 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m -7 0.25 c -0.414062 0 -0.75 0.335938 -0.75 0.75 s 0.335938 0.75 0.75 0.75 s 0.75 -0.335938 0.75 -0.75 s -0.335938 -0.75 -0.75 -0.75 z m 0 0"/>
<path d="m 21 5 h -1 c -0.554688 0 -1 0.445312 -1 1 s 0.445312 1 1 1 h 1 c 0.554688 0 1 -0.445312 1 -1 s -0.445312 -1 -1 -1 z m 0 0" fill-opacity="0.34902"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 687 B

View File

@@ -1,7 +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">
<g fill="#241f31">
<path d="m 2 3 c -2 0 -2 1.714844 -2 2 v 22 h 2 v -17 c 0 -1 1 -1 1 -1 h 29 v -6 z m 2 2 h 4 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 h -4 c -0.554688 0 -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m 7 0.25 c 0.414062 0 0.75 0.335938 0.75 0.75 s -0.335938 0.75 -0.75 0.75 s -0.75 -0.335938 -0.75 -0.75 s 0.335938 -0.75 0.75 -0.75 z m 0 0"/>
<path d="m 11 5 h 1 c 0.554688 0 1 0.445312 1 1 s -0.445312 1 -1 1 h -1 c -0.554688 0 -1 -0.445312 -1 -1 s 0.445312 -1 1 -1 z m 0 0" fill-opacity="0.34902"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 682 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 20.996094 30 c 1.644531 0 2.996094 -1.355469 3 -3 l 0.003906 -2 h -2 l -0.003906 2 c 0 0.570312 -0.429688 1 -1 1 h -17.996094 c -0.570312 0 -1 -0.429688 -1 -1 v -13 c 0 -0.570312 0.429688 -1 1 -1 h 3 v -3 h -3 c -1.644531 0 -3 1.355469 -3 3 v 14 c 0 1.644531 1.355469 3 3 3 z m 8 -7 c 1.644531 0 3 -1.355469 3 -3 v -14 c 0 -1.644531 -1.355469 -3 -3 -3 h -18 c -1.644532 0 -3 1.355469 -3 3 v 14 c 0 1.644531 1.355468 3 3 3 z m 0 -2 h -18 c -0.570313 0 -1 -0.429688 -1 -1 v -13 c 0 -0.570312 0.429687 -1 1 -1 h 18 c 0.570312 0 1 0.429688 1 1 v 13 c 0 0.570312 -0.429688 1 -1 1 z m 0 0" fill="#241f31"/>
</svg>

Before

Width:  |  Height:  |  Size: 750 B

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