Merge feature/identity-desktoptheme-font
Bring the Shift identity, metadata, containment, KCM/KDED, and documentation updates into the main integration branch.
1
.gitignore
vendored
|
|
@ -24,3 +24,4 @@ build
|
|||
.preview-config/
|
||||
.preview-data/
|
||||
preview.sh
|
||||
.icon-gen/
|
||||
|
|
|
|||
11
.reuse/dep5
|
|
@ -11,3 +11,14 @@ Files: HACKING.md
|
|||
Copyright: Plasma-Mobile contributors
|
||||
License: CC-BY-SA-4.0
|
||||
|
||||
Files: icons/org.shift.icons/**/*.svg
|
||||
Copyright: 2023 Phosphor Icons
|
||||
2026 Shift contributors
|
||||
License: MIT
|
||||
Comment: SVG glyphs are adapted from Phosphor Icons regular 256px paths for the Shift icon theme.
|
||||
|
||||
Files: icons/org.shift.icons/index.theme
|
||||
icons/org.shift.icons/README.md
|
||||
Copyright: 2026 Marco Allegretti
|
||||
License: EUPL-1.2
|
||||
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ set_package_properties(KWinDBusInterface PROPERTIES DESCRIPTION "KWin DBus inter
|
|||
find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS Auth)
|
||||
set_package_properties(KF6::AuthCore PROPERTIES
|
||||
TYPE REQUIRED
|
||||
PURPOSE "Allows Plasma Mobile to configure Waydroid"
|
||||
PURPOSE "Allows SHIFT to configure Waydroid"
|
||||
)
|
||||
|
||||
if(PLASMA_MOBILE_LOCAL_KAUTH_INSTALL)
|
||||
|
|
@ -149,6 +149,7 @@ plasma_install_package(${SHIFT_SHELL_PACKAGE_DIR} org.kde.plasma.mobileshell she
|
|||
|
||||
add_subdirectory(bin)
|
||||
add_subdirectory(color-schemes)
|
||||
add_subdirectory(fonts)
|
||||
add_subdirectory(icons)
|
||||
add_subdirectory(wallpapers)
|
||||
add_subdirectory(components)
|
||||
|
|
@ -165,7 +166,8 @@ if(BUILD_TESTING)
|
|||
add_subdirectory(tests)
|
||||
endif()
|
||||
|
||||
install(FILES org.kde.plasma.mobileshell.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
|
||||
install(CODE "file(REMOVE \"\$ENV{DESTDIR}${KDE_INSTALL_FULL_METAINFODIR}/org.kde.plasma.mobileshell.metainfo.xml\")")
|
||||
install(FILES org.shift.mobile.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
|
||||
|
||||
find_program(PlasmaOpenSettings plasma-open-settings)
|
||||
set_package_properties(PlasmaOpenSettings PROPERTIES
|
||||
|
|
|
|||
16
HACKING.md
|
|
@ -1,6 +1,6 @@
|
|||
# Hacking on Shift
|
||||
|
||||
Shift is a convergent Plasma Mobile shell. This guide covers
|
||||
Shift is a convergent shell built on Plasma Mobile components. This guide covers
|
||||
building and testing it locally without polluting your host system.
|
||||
|
||||
The approach: keep every build dependency inside a **distrobox** container
|
||||
|
|
@ -89,8 +89,8 @@ sudo zypper install --no-confirm \
|
|||
|
||||
### Runtime dependencies (needed for preview, not for compilation)
|
||||
|
||||
The nested preview runs the system `plasmashell` binary. It needs a
|
||||
complete Plasma Mobile runtime so all QML imports resolve:
|
||||
The nested preview runs the system `plasmashell` binary. It needs the
|
||||
complete runtime from the Plasma Mobile stack so all QML imports resolve:
|
||||
|
||||
```bash
|
||||
sudo zypper install --no-confirm \
|
||||
|
|
@ -204,6 +204,7 @@ export EGL_PLATFORM=wayland
|
|||
export QT_QUICK_CONTROLS_STYLE=org.kde.breeze
|
||||
export QT_QUICK_CONTROLS_MOBILE=true
|
||||
export PLASMA_PLATFORM=phone:handset
|
||||
# Compatibility note: the runtime shell package id intentionally remains upstream.
|
||||
export PLASMA_DEFAULT_SHELL=org.kde.plasma.mobileshell
|
||||
export QT_FORCE_STDERR_LOGGING=1
|
||||
exec plasmashell --replace -p org.kde.plasma.mobileshell
|
||||
|
|
@ -212,7 +213,8 @@ ENDSCRIPT
|
|||
|
||||
# Expose the project prefix to the host kwin_wayland so it can find
|
||||
# KWin scripts (convergentwindows) and their QML dependencies.
|
||||
# Also overlay ~/.config/plasma-mobile so KWin reads the mobile kwinrc
|
||||
# Also overlay ~/.config/plasma-mobile so KWin reads the mobile kwinrc.
|
||||
# That path is intentionally preserved for compatibility with existing config handling.
|
||||
# (envmanager writes convergentwindowsEnabled, Placement, etc. there).
|
||||
export XDG_DATA_DIRS="$PREFIX/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
|
||||
export XDG_CONFIG_DIRS="$HOME/.config/plasma-mobile:${XDG_CONFIG_DIRS:-/etc/xdg}"
|
||||
|
|
@ -234,9 +236,9 @@ Make it executable: `chmod +x preview.sh`.
|
|||
1. `dbus-run-session` spins up an isolated D-Bus session so the nested
|
||||
compositor doesn't clash with your running desktop.
|
||||
2. Four environment exports give the **host** `kwin_wayland` access to
|
||||
the project's `.prefix` (KWin scripts, QML plugins) and to
|
||||
`~/.config/plasma-mobile` (where envmanager writes convergence
|
||||
settings like `convergentwindowsEnabled`, `Placement`, etc.).
|
||||
the project's `.prefix` (KWin scripts, QML plugins) and to
|
||||
`~/.config/plasma-mobile` (the preserved compatibility path where envmanager writes convergence
|
||||
settings like `convergentwindowsEnabled`, `Placement`, etc.).
|
||||
3. `kwin_wayland` opens a window on your current desktop and creates a
|
||||
Wayland socket named `shift-kwin`. Because of the exports it can
|
||||
load the `convergentwindows` script, which handles maximising
|
||||
|
|
|
|||
43
LICENSES/OFL-1.1.txt
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
SIL OPEN FONT LICENSE
|
||||
|
||||
Version 1.1 - 26 February 2007
|
||||
|
||||
PREAMBLE
|
||||
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
|
||||
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting, or substituting — in part or in whole — any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
|
||||
This license becomes null and void if any of the above conditions are not met.
|
||||
|
||||
DISCLAIMER
|
||||
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
13
OVERVIEW.md
|
|
@ -1,11 +1,8 @@
|
|||
# Shift
|
||||
|
||||
A fork of KDE Plasma Mobile that adds a desktop-class convergence mode.
|
||||
|
||||
Plasma Mobile is a phone shell. It doesn't try to be anything else.
|
||||
Shift picks up where it leaves off: when you connect a monitor, keyboard,
|
||||
or mouse, the same device should feel like a desktop. No second OS, no
|
||||
separate session — one shell that adapts.
|
||||
Shift is a fork of KDE Plasma Mobile focused on convergence.
|
||||
When you connect a monitor, keyboard, or mouse, the same shell should still
|
||||
work as a desktop-style environment. No second OS, no separate session.
|
||||
|
||||
## What's different from upstream
|
||||
|
||||
|
|
@ -15,6 +12,10 @@ that still works. Shift adds a **convergence mode** layer on top — toggled
|
|||
via `plasmamobilerc` — that swaps in desktop-oriented behaviour without
|
||||
replacing the phone UI underneath.
|
||||
|
||||
Compatibility-sensitive runtime identifiers such as
|
||||
`org.kde.plasma.mobileshell` remain upstream-looking for now. The product is
|
||||
SHIFT; the preserved identifiers are part of the current compatibility layer.
|
||||
|
||||
Key changes so far:
|
||||
|
||||
- **Unified dock** replacing the navigation panel in convergence mode,
|
||||
|
|
|
|||
11
README.md
|
|
@ -1,6 +1,6 @@
|
|||
# Shift
|
||||
|
||||
SHIFT is an open source shell built on KDE Plasma Mobile, designed to adapt fluidly to your computing needs across devices
|
||||
SHIFT is an independent shell fork focused on convergence. It builds on KDE Plasma Mobile, keeps the upstream phone UI available, and layers desktop-oriented behaviour on top of the same session.
|
||||
|
||||
### Desktop demos
|
||||
|
||||
|
|
@ -8,8 +8,8 @@
|
|||

|
||||

|
||||
|
||||
Shift is a fork of [plasma-mobile](https://invent.kde.org/plasma/plasma-mobile).
|
||||
The upstream phone UI is untouched; convergence adds a layer on top.
|
||||
SHIFT tracks [plasma-mobile](https://invent.kde.org/plasma/plasma-mobile) as its upstream base.
|
||||
The upstream phone UI remains intact; convergence-specific behaviour is added on top.
|
||||
|
||||
### What convergence mode changes
|
||||
|
||||
|
|
@ -43,6 +43,10 @@ cmake --build build
|
|||
cmake --install build
|
||||
```
|
||||
|
||||
Compatibility-sensitive identifiers such as `org.kde.plasma.mobileshell`
|
||||
are intentionally preserved in the runtime and build instructions. They are
|
||||
part of the current compatibility boundary, not the public product name.
|
||||
|
||||
### Disclaimer
|
||||
|
||||
SHIFT is an independent project based on KDE Plasma Mobile.
|
||||
|
|
@ -61,7 +65,6 @@ SHIFT is not intended as a direct contribution to KDE Plasma Mobile.
|
|||
|
||||
However, if parts of this project are considered useful, contributions or ideas may be proposed upstream in a collaborative manner.
|
||||
|
||||
|
||||
See [pm_README.md](pm_README.md) for the original Plasma Mobile README.
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -5,86 +5,6 @@
|
|||
Exec=@CMAKE_INSTALL_FULL_LIBEXECDIR@/plasma-dbus-run-session-if-needed @CMAKE_INSTALL_FULL_LIBEXECDIR@/startplasmamobile-dev.sh
|
||||
Type=Application
|
||||
DesktopNames=KDE
|
||||
Name=Plasma Mobile (Development)
|
||||
Name[ar]=بلازما الجوال (التطوير)
|
||||
Name[az]=Plasma Mobil (Tərtibat)
|
||||
Name[ca]=Plasma Mobile (Desenvolupament)
|
||||
Name[ca@valencia]=Plasma Mobile (desenvolupament)
|
||||
Name[cs]=Plasma Mobile (Vývojová)
|
||||
Name[de]=Plasma Mobile (Entwicklung)
|
||||
Name[en_GB]=Plasma Mobile (Development)
|
||||
Name[eo]=Plasma Poŝtelefono (Evoluo)
|
||||
Name[es]=Plasma Mobile (desarrollo)
|
||||
Name[eu]=Plasma Mugikorra (Garapena)
|
||||
Name[fi]=Plasma Mobile (kehitys)
|
||||
Name[fr]=Plasma Mobile (Développement)
|
||||
Name[gl]=Plasma Mobile (desenvolvemento)
|
||||
Name[he]=פלזמה לניידים (פיתוח)
|
||||
Name[hu]=Plasma Mobile (fejlesztői)
|
||||
Name[ia]=Plasma Mobile (Disveloppamento)
|
||||
Name[is]=Plasma Mobile (þróunarútgáfa)
|
||||
Name[it]=Plasma Mobile (sviluppo)
|
||||
Name[ka]=Plasma Mobile (ბეტა)
|
||||
Name[ko]=Plasma 모바일(개발)
|
||||
Name[lv]=Plasma Mobile (izstrādē)
|
||||
Name[nl]=Plasma Mobile (ontwikkeling)
|
||||
Name[nn]=Plasma Mobile (utvikling)
|
||||
Name[pa]=ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ (ਵਿਕਾਸ)
|
||||
Name[pl]=Przenośna Plazma (Rozwój)
|
||||
Name[pt]=Plasma Mobile (Desenvolvimento)
|
||||
Name[pt_BR]=Plasma Mobile (desenvolvimento)
|
||||
Name[ru]=Plasma Mobile (разработка)
|
||||
Name[sa]=प्लाज्मा मोबाईल (विकास)
|
||||
Name[sk]=Plasma Mobile (Vývoj)
|
||||
Name[sl]=Plasma Mobile (Razvoj)
|
||||
Name[sv]=Plasma mobil (utvecklingsversion)
|
||||
Name[ta]=பிளாஸ்மா கைபேசி (நிரலாக்கம்)
|
||||
Name[tr]=Plasma Cep (Geliştirme)
|
||||
Name[uk]=Мобільна Плазма (версія у розробці)
|
||||
Name[zh_CN]=Plasma Mobile (开发)
|
||||
Name[zh_TW]=Plasma 行動(開發)
|
||||
Comment=Plasma Mobile by KDE
|
||||
Comment[ar]=بلازما الجوال من كيدي
|
||||
Comment[az]=KDE Plasma Mobil
|
||||
Comment[ca]=Plasma Mobile, creat per la comunitat KDE
|
||||
Comment[ca@valencia]=Plasma Mobile, creat per la comunitat KDE
|
||||
Comment[cs]=Plasma Mobile od KDE
|
||||
Comment[da]=Plasma Mobile fra KDE
|
||||
Comment[de]=Plasma Mobile von KDE
|
||||
Comment[en_GB]=Plasma Mobile by KDE
|
||||
Comment[eo]=Plasma Mobile de KDE
|
||||
Comment[es]=Plasma Mobile creado por KDE
|
||||
Comment[et]=KDE Plasma Mobile
|
||||
Comment[eu]=Plasma Mugikorra KDEk egina
|
||||
Comment[fi]=KDE:n Plasma Mobile
|
||||
Comment[fr]=Plasma Mobile par KDE
|
||||
Comment[gl]=Plasma Mobile de KDE.
|
||||
Comment[he]=פלזמה לניידים מבית KDE
|
||||
Comment[hi]=केडीइ द्वारा प्लाज़्मा मोबाइल
|
||||
Comment[hu]=Plasma Mobile a KDE-től
|
||||
Comment[ia]=Plasma Mobile per KDE
|
||||
Comment[id]=Plasma Mobile oleh KDE
|
||||
Comment[is]=Plasma Mobile frá KDE
|
||||
Comment[it]=Plasma Mobile creato da KDE
|
||||
Comment[ka]=მობილური Plasma, KDE-სგან
|
||||
Comment[ko]=KDE의 Plasma 모바일
|
||||
Comment[lt]=Plasma mobilioji sąsaja pagal KDE
|
||||
Comment[lv]=KDE „Plasma Mobile“
|
||||
Comment[nl]=Plasma Mobile door KDE
|
||||
Comment[nn]=Plasma Mobile frå KDE
|
||||
Comment[pa]=KDE ਵਲੋਂ ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ
|
||||
Comment[pl]=Plazma Mobile stworzona przez KDE
|
||||
Comment[pt]=Plasma Mobile do KDE
|
||||
Comment[pt_BR]=Plasma Mobile do KDE
|
||||
Comment[ro]=Plasma Mobile, de către KDE
|
||||
Comment[ru]=KDE Plasma Mobile
|
||||
Comment[sa]=केडीई द्वारा प्लाज्मा मोबाईल
|
||||
Comment[sk]=Plasma Mobile od KDE
|
||||
Comment[sl]=Plasma Mobile od KDE
|
||||
Comment[sv]=Plasma mobil av KDE
|
||||
Comment[ta]=கே.டீ.யீ. வழங்கும் பிளாஸ்மா கைபேசி
|
||||
Comment[tr]=KDE tarafından yapılan Plasma Cep
|
||||
Comment[uk]=Мобільна Плазма від KDE
|
||||
Comment[zh_CN]=KDE Plasma Mobile
|
||||
Comment[zh_TW]=來自 KDE 的 Plasma 行動作業系統
|
||||
Name=SHIFT (Development)
|
||||
Comment=Convergent SHIFT shell session with development DBus setup
|
||||
X-KDE-PluginInfo-Version=${PROJECT_VERSION}
|
||||
|
|
|
|||
|
|
@ -6,92 +6,6 @@ Exec=@CMAKE_INSTALL_FULL_LIBEXECDIR@/plasma-dbus-run-session-if-needed ${CMAKE_I
|
|||
TryExec=${CMAKE_INSTALL_FULL_BINDIR}/startplasmamobile
|
||||
Type=Application
|
||||
DesktopNames=KDE
|
||||
Name=Plasma Mobile
|
||||
Name[ar]=بلازما الجوال
|
||||
Name[az]=Plasma Mobil
|
||||
Name[ca]=Plasma Mobile
|
||||
Name[ca@valencia]=Plasma Mobile
|
||||
Name[cs]=Plasma Mobile
|
||||
Name[da]=Plasma Mobile
|
||||
Name[de]=Plasma Mobile
|
||||
Name[en_GB]=Plasma Mobile
|
||||
Name[eo]=Plasma Poŝtelefono
|
||||
Name[es]=Plasma Mobile
|
||||
Name[et]=Plasma Mobile
|
||||
Name[eu]=Plasma Mugikorra
|
||||
Name[fi]=Plasma Mobile
|
||||
Name[fr]=Plasma Mobile
|
||||
Name[gl]=Plasma Mobile
|
||||
Name[he]=פלזמה לניידים
|
||||
Name[hi]=प्लाज़्मा मोबाइल
|
||||
Name[hu]=Plasma Mobile
|
||||
Name[ia]=Plasma Mobile
|
||||
Name[id]=Plasma Mobile
|
||||
Name[is]=Plasma Mobile
|
||||
Name[it]=Plasma Mobile
|
||||
Name[ka]=Plasma Mobile
|
||||
Name[ko]=Plasma 모바일
|
||||
Name[lt]=Plasma mobilioji sąsaja
|
||||
Name[lv]=Plasma Mobile
|
||||
Name[nl]=Plasma Mobile
|
||||
Name[nn]=Plasma Mobile
|
||||
Name[pa]=ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ
|
||||
Name[pl]=Przenośna Plazma
|
||||
Name[pt]=Plasma Mobile
|
||||
Name[pt_BR]=Plasma Mobile
|
||||
Name[ro]=Plasma Mobile
|
||||
Name[ru]=Plasma Mobile
|
||||
Name[sa]=प्लाज्मा मोबाईल
|
||||
Name[sk]=Plasma Mobile
|
||||
Name[sl]=Plasma Mobile
|
||||
Name[sv]=Plasma mobil
|
||||
Name[ta]=பிளாஸ்மா கைபேசி
|
||||
Name[tr]=Plasma Cep
|
||||
Name[uk]=Мобільна Плазма
|
||||
Name[zh_CN]=Plasma Mobile
|
||||
Name[zh_TW]=Plasma 行動
|
||||
Comment=Plasma Mobile by KDE
|
||||
Comment[ar]=بلازما الجوال من كيدي
|
||||
Comment[az]=KDE Plasma Mobil
|
||||
Comment[ca]=Plasma Mobile, creat per la comunitat KDE
|
||||
Comment[ca@valencia]=Plasma Mobile, creat per la comunitat KDE
|
||||
Comment[cs]=Plasma Mobile od KDE
|
||||
Comment[da]=Plasma Mobile fra KDE
|
||||
Comment[de]=Plasma Mobile von KDE
|
||||
Comment[en_GB]=Plasma Mobile by KDE
|
||||
Comment[eo]=Plasma Mobile de KDE
|
||||
Comment[es]=Plasma Mobile creado por KDE
|
||||
Comment[et]=KDE Plasma Mobile
|
||||
Comment[eu]=Plasma Mugikorra KDEk egina
|
||||
Comment[fi]=KDE:n Plasma Mobile
|
||||
Comment[fr]=Plasma Mobile par KDE
|
||||
Comment[gl]=Plasma Mobile de KDE.
|
||||
Comment[he]=פלזמה לניידים מבית KDE
|
||||
Comment[hi]=केडीइ द्वारा प्लाज़्मा मोबाइल
|
||||
Comment[hu]=Plasma Mobile a KDE-től
|
||||
Comment[ia]=Plasma Mobile per KDE
|
||||
Comment[id]=Plasma Mobile oleh KDE
|
||||
Comment[is]=Plasma Mobile frá KDE
|
||||
Comment[it]=Plasma Mobile creato da KDE
|
||||
Comment[ka]=მობილური Plasma, KDE-სგან
|
||||
Comment[ko]=KDE의 Plasma 모바일
|
||||
Comment[lt]=Plasma mobilioji sąsaja pagal KDE
|
||||
Comment[lv]=KDE „Plasma Mobile“
|
||||
Comment[nl]=Plasma Mobile door KDE
|
||||
Comment[nn]=Plasma Mobile frå KDE
|
||||
Comment[pa]=KDE ਵਲੋਂ ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ
|
||||
Comment[pl]=Plazma Mobile stworzona przez KDE
|
||||
Comment[pt]=Plasma Mobile do KDE
|
||||
Comment[pt_BR]=Plasma Mobile do KDE
|
||||
Comment[ro]=Plasma Mobile, de către KDE
|
||||
Comment[ru]=KDE Plasma Mobile
|
||||
Comment[sa]=केडीई द्वारा प्लाज्मा मोबाईल
|
||||
Comment[sk]=Plasma Mobile od KDE
|
||||
Comment[sl]=Plasma Mobile od KDE
|
||||
Comment[sv]=Plasma mobil av KDE
|
||||
Comment[ta]=கே.டீ.யீ. வழங்கும் பிளாஸ்மா கைபேசி
|
||||
Comment[tr]=KDE tarafından yapılan Plasma Cep
|
||||
Comment[uk]=Мобільна Плазма від KDE
|
||||
Comment[zh_CN]=KDE Plasma Mobile
|
||||
Comment[zh_TW]=來自 KDE 的 Plasma 行動作業系統
|
||||
Name=SHIFT
|
||||
Comment=Convergent SHIFT shell session
|
||||
X-KDE-PluginInfo-Version=${PROJECT_VERSION}
|
||||
|
|
|
|||
|
|
@ -60,6 +60,8 @@ Item {
|
|||
Layout.preferredWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
Layout.preferredHeight: width
|
||||
source: "low-brightness"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.Slider {
|
||||
|
|
@ -105,6 +107,8 @@ Item {
|
|||
Layout.preferredWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
Layout.preferredHeight: width
|
||||
source: "high-brightness"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,6 +90,10 @@ QuickSettingsDelegate {
|
|||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: width
|
||||
source: root.icon
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
|
|
|
|||
|
|
@ -86,6 +86,10 @@ QuickSettingsDelegate {
|
|||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: width
|
||||
source: root.icon
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -142,6 +142,10 @@ Item {
|
|||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: implicitWidth
|
||||
source: root.icon
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
// Indicator bar
|
||||
|
|
@ -235,6 +239,10 @@ Item {
|
|||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: implicitWidth
|
||||
source: "go-next-symbolic"
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
opacity: 0.5
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,6 +64,10 @@ QQC2.Popup {
|
|||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: implicitWidth
|
||||
source: "preferences-desktop-notification-symbolic"
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
|
|
@ -167,6 +171,10 @@ QQC2.Popup {
|
|||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: implicitWidth
|
||||
source: model.iconName ? model.iconName : (model.icon ? model.icon : "")
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
|
|
@ -194,6 +202,10 @@ QQC2.Popup {
|
|||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: implicitWidth
|
||||
source: "go-next-symbolic"
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
opacity: 0.45
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,6 +135,8 @@ Controls.Drawer {
|
|||
width: Kirigami.Units.iconSizes.large
|
||||
height: width
|
||||
source: "view-preview"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
visible: !walliePreview.visible
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -146,6 +146,8 @@ Window {
|
|||
transformOrigin: Item.Center
|
||||
rotation: root.angle
|
||||
source: root.iconSource
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -195,6 +195,8 @@ Window {
|
|||
Layout.preferredWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
Layout.preferredHeight: Kirigami.Units.iconSizes.smallMedium
|
||||
source: "settings-configure"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
PlasmaComponents.Label {
|
||||
text: i18n("Open audio settings")
|
||||
|
|
|
|||
|
|
@ -227,6 +227,10 @@ Item {
|
|||
source: 'arrow-down'
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ Item {
|
|||
width: Math.min(parent.width, parent.height)
|
||||
height: width
|
||||
anchors.centerIn: parent
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
Controls.ToolTip.text: model.toolTipTitle ? model.toolTipTitle : (model.title ? model.title : "")
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import org.kde.kirigami as Kirigami
|
|||
import org.kde.kitemmodels
|
||||
|
||||
import org.kde.plasma.components 3.0 as PlasmaComponents
|
||||
import org.kde.plasma.workspace.components 2.0 as PW
|
||||
import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings
|
||||
import org.kde.plasma.private.mobileshell as MobileShell
|
||||
import org.kde.plasma.private.battery // needed for charging state
|
||||
|
|
@ -21,6 +20,35 @@ import org.kde.plasma.private.battery // needed for charging state
|
|||
RowLayout {
|
||||
property real textPixelSize: Kirigami.Units.gridUnit * 0.6
|
||||
|
||||
function batteryIconName(percent, charging) {
|
||||
let name;
|
||||
if (percent >= 95) {
|
||||
name = "battery-100";
|
||||
} else if (percent >= 85) {
|
||||
name = "battery-090";
|
||||
} else if (percent >= 75) {
|
||||
name = "battery-080";
|
||||
} else if (percent >= 65) {
|
||||
name = "battery-070";
|
||||
} else if (percent >= 55) {
|
||||
name = "battery-060";
|
||||
} else if (percent >= 45) {
|
||||
name = "battery-050";
|
||||
} else if (percent >= 35) {
|
||||
name = "battery-040";
|
||||
} else if (percent >= 25) {
|
||||
name = "battery-030";
|
||||
} else if (percent >= 15) {
|
||||
name = "battery-020";
|
||||
} else if (percent > 5) {
|
||||
name = "battery-010";
|
||||
} else {
|
||||
name = "battery-000";
|
||||
}
|
||||
|
||||
return charging ? name + "-charging" : name;
|
||||
}
|
||||
|
||||
visible: MobileShell.BatteryInfo.isVisible
|
||||
|
||||
ListView {
|
||||
|
|
@ -51,16 +79,17 @@ RowLayout {
|
|||
|
||||
height: batteryRepeater.height
|
||||
|
||||
PW.BatteryIcon {
|
||||
Kirigami.Icon {
|
||||
id: battery
|
||||
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Layout.fillHeight: true
|
||||
width: batteryLabel.height
|
||||
|
||||
hasBattery: PluggedIn
|
||||
percent: Percent
|
||||
pluggedIn: ChargeState === BatteryControlModel.Charging
|
||||
source: PluggedIn ? batteryIconName(Percent, ChargeState === BatteryControlModel.Charging) : "battery-missing"
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PlasmaComponents.Label {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ Kirigami.Icon {
|
|||
id: connectionIcon
|
||||
|
||||
source: MobileShell.BluetoothInfo.icon
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
|
||||
visible: MobileShell.BluetoothInfo.isVisible
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,10 @@ Item {
|
|||
anchors.fill: parent
|
||||
visible: !connectingIndicator.visible
|
||||
source: connectionIcon.icon
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
// Connecting indicator
|
||||
|
|
|
|||
|
|
@ -33,6 +33,10 @@ Item {
|
|||
height: parent.height
|
||||
|
||||
source: MobileShell.SignalStrengthInfo.icon
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
|
||||
// don't show mobile indicator icon if the networkmanager one is already showing
|
||||
visible: (!isInternetIndicatorMobileData || wirelessStatus.hotspotSSID.length !== 0) && MobileShell.SignalStrengthInfo.showIndicator
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@ Kirigami.Icon {
|
|||
id: paIcon
|
||||
|
||||
source: MobileShell.AudioInfo.icon
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Window
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
|
||||
visible: MobileShell.AudioInfo.isVisible
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
# Folio Homescreen
|
||||
|
||||
This is the paged homescreen for Plasma Mobile.
|
||||
This is the paged homescreen for SHIFT.
|
||||
|
||||
### How it works
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@
|
|||
"Name[uk]": "Фоліо",
|
||||
"Name[zh_CN]": "Folio",
|
||||
"Name[zh_TW]": "Folio",
|
||||
"Website": "https://plasma-mobile.org"
|
||||
"Website": "https://invent.kde.org/marcoa/shift-shell"
|
||||
},
|
||||
"X-Plasma-API-Minimum-Version": "6.0",
|
||||
"X-Plasma-ContainmentType": "Desktop",
|
||||
|
|
|
|||
|
|
@ -50,11 +50,13 @@ Item {
|
|||
anchors.rightMargin: Kirigami.Units.gridUnit + Kirigami.Units.largeSpacing
|
||||
anchors.fill: parent
|
||||
|
||||
Kirigami.SearchField {
|
||||
QQC2.TextField {
|
||||
id: searchField
|
||||
onTextChanged: folio.ApplicationListSearchModel.setFilterFixedString(text)
|
||||
Layout.maximumWidth: Kirigami.Units.gridUnit * 30
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
leftPadding: Kirigami.Units.iconSizes.small + Kirigami.Units.largeSpacing * 2
|
||||
rightPadding: clearSearchArea.visible ? clearSearchArea.width + Kirigami.Units.largeSpacing : Kirigami.Units.largeSpacing
|
||||
|
||||
background: Rectangle {
|
||||
radius: Kirigami.Units.cornerRadius
|
||||
|
|
@ -76,6 +78,42 @@ Item {
|
|||
|
||||
font.weight: Font.Bold
|
||||
|
||||
Kirigami.Icon {
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: Kirigami.Units.largeSpacing
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: Kirigami.Units.iconSizes.small
|
||||
height: width
|
||||
source: "search"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
opacity: 0.65
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: clearSearchArea
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Kirigami.Units.smallSpacing
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: Kirigami.Units.iconSizes.smallMedium
|
||||
height: width
|
||||
visible: searchField.text.length > 0
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
|
||||
onClicked: searchField.clear()
|
||||
|
||||
Kirigami.Icon {
|
||||
anchors.centerIn: parent
|
||||
width: Kirigami.Units.iconSizes.small
|
||||
height: width
|
||||
source: "window-close-symbolic"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
opacity: clearSearchArea.containsMouse ? 0.9 : 0.65
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: folio.HomeScreenState
|
||||
function onViewStateChanged(): void {
|
||||
|
|
|
|||
|
|
@ -157,6 +157,8 @@ Rectangle {
|
|||
height: width
|
||||
source: tile.catIcon
|
||||
active: tileArea.containsMouse || tile.isActive
|
||||
isMask: true
|
||||
color: tile.isActive ? Kirigami.Theme.highlightColor : Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PlasmaComponents.Label {
|
||||
|
|
|
|||
|
|
@ -330,6 +330,8 @@ MouseArea {
|
|||
height: width
|
||||
source: "start-here-shift"
|
||||
active: homeMouseArea.containsMouse
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
|
|
@ -400,6 +402,8 @@ MouseArea {
|
|||
height: width
|
||||
source: "user-desktop"
|
||||
active: desktopMouseArea.containsMouse || WindowPlugin.WindowUtil.isShowingDesktop
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.ToolTip {
|
||||
|
|
@ -508,6 +512,8 @@ MouseArea {
|
|||
height: width
|
||||
source: "activities"
|
||||
active: overviewMouseArea.containsMouse
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
|
|
@ -574,6 +580,8 @@ MouseArea {
|
|||
height: width
|
||||
source: "search"
|
||||
active: searchMouseArea.containsMouse
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.ToolTip {
|
||||
|
|
@ -899,6 +907,8 @@ MouseArea {
|
|||
height: width
|
||||
source: trashFilesModel.count > 0 ? "user-trash-full" : "user-trash"
|
||||
active: trashMouseArea.containsMouse
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.ToolTip {
|
||||
|
|
@ -1595,7 +1605,16 @@ MouseArea {
|
|||
|
||||
Kirigami.Icon {
|
||||
anchors.fill: parent
|
||||
source: "window-close"
|
||||
source: "window-close-symbolic"
|
||||
isMask: true
|
||||
color: "white"
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
radius: width / 2
|
||||
color: Qt.rgba(0, 0, 0, 0.55)
|
||||
z: -1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -513,6 +513,8 @@ Item {
|
|||
source: 'arrow-up'
|
||||
Kirigami.Theme.inherit: false
|
||||
Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
|
|
|
|||
|
|
@ -53,6 +53,8 @@ MouseArea {
|
|||
height: width
|
||||
source: button.iconName
|
||||
active: button.containsMouse || button.checked
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.ToolTip {
|
||||
|
|
|
|||
|
|
@ -599,6 +599,8 @@ Window {
|
|||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
source: "system-run"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.Label {
|
||||
|
|
@ -1022,6 +1024,8 @@ Window {
|
|||
source: "starred"
|
||||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1036,6 +1040,8 @@ Window {
|
|||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
source: "input-gaming"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
Repeater {
|
||||
|
|
|
|||
|
|
@ -201,6 +201,8 @@ Window {
|
|||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
isMask: true
|
||||
color: "white"
|
||||
}
|
||||
|
||||
QQC2.Label {
|
||||
|
|
|
|||
|
|
@ -319,6 +319,8 @@ Item {
|
|||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: Kirigami.Units.iconSizes.smallMedium
|
||||
source: "low-brightness"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.Slider {
|
||||
|
|
@ -380,6 +382,8 @@ Item {
|
|||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: Kirigami.Units.iconSizes.smallMedium
|
||||
source: "high-brightness"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -403,6 +407,8 @@ Item {
|
|||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: Kirigami.Units.iconSizes.smallMedium
|
||||
source: "audio-volume-low"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.Slider {
|
||||
|
|
@ -462,6 +468,8 @@ Item {
|
|||
implicitWidth: Kirigami.Units.iconSizes.smallMedium
|
||||
implicitHeight: Kirigami.Units.iconSizes.smallMedium
|
||||
source: "audio-volume-high"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -555,6 +563,8 @@ Item {
|
|||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
source: "games-achievements"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
PC3.Label {
|
||||
text: GamingShell.GameModeControl.active
|
||||
|
|
@ -659,6 +669,8 @@ Item {
|
|||
implicitWidth: Kirigami.Units.iconSizes.small
|
||||
implicitHeight: Kirigami.Units.iconSizes.small
|
||||
source: "input-gaming"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
PC3.Label {
|
||||
|
|
|
|||
|
|
@ -583,6 +583,8 @@ ContainmentItem {
|
|||
height: width
|
||||
source: "window-close-symbolic"
|
||||
active: closeArea.containsMouse
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
PlasmaComponents.ToolTip {
|
||||
text: i18n("Close")
|
||||
|
|
@ -633,6 +635,8 @@ ContainmentItem {
|
|||
height: width
|
||||
source: "system-lock-screen"
|
||||
active: lockArea.containsMouse
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
PlasmaComponents.ToolTip {
|
||||
text: i18n("Lock Screen")
|
||||
|
|
@ -665,6 +669,8 @@ ContainmentItem {
|
|||
height: width
|
||||
source: "system-reboot"
|
||||
active: rebootArea.containsMouse
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
PlasmaComponents.ToolTip {
|
||||
text: i18n("Restart")
|
||||
|
|
@ -697,6 +703,8 @@ ContainmentItem {
|
|||
height: width
|
||||
source: "system-shutdown"
|
||||
active: shutdownArea.containsMouse
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
PlasmaComponents.ToolTip {
|
||||
text: i18n("Shut Down")
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ PC3.ToolButton {
|
|||
implicitHeight: Kirigami.Units.iconSizes.smallMedium
|
||||
Layout.fillHeight: true
|
||||
source: iconName
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
|
||||
QQC2.Label {
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@
|
|||
"Name[uk]": "Альціон",
|
||||
"Name[zh_CN]": "Halcyon",
|
||||
"Name[zh_TW]": "Halcyon",
|
||||
"Website": "https://plasma-mobile.org"
|
||||
"Website": "https://invent.kde.org/marcoa/shift-shell"
|
||||
},
|
||||
"X-Plasma-API-Minimum-Version": "6.0",
|
||||
"X-Plasma-ContainmentType": "Desktop",
|
||||
|
|
|
|||
|
|
@ -44,43 +44,7 @@
|
|||
}
|
||||
],
|
||||
"Category": "Containments",
|
||||
"Description": "Top panel for Plasma Mobile",
|
||||
"Description[ar]": "اللوحة العلوية لبلازما الجوال",
|
||||
"Description[ca@valencia]": "Quadro superior per a Plasma Mobile",
|
||||
"Description[ca]": "Plafó superior per al Plasma Mobile",
|
||||
"Description[cs]": "Horní panel pro Plasma Mobile",
|
||||
"Description[de]": "Obere Kontrollleiste für Plasma Mobile",
|
||||
"Description[en_GB]": "Top panel for Plasma Mobile",
|
||||
"Description[eo]": "Supra panelo por Plasma Mobile",
|
||||
"Description[es]": "Panel superior para Plasma Mobile",
|
||||
"Description[eu]": "Plasma Mugikorrerako goiko panela",
|
||||
"Description[fi]": "Yläpaneeli Plasma Mobileen",
|
||||
"Description[fr]": "Panneau supérieur pour Plasma Mobile",
|
||||
"Description[gl]": "Panel superior para Plasma Mobile.",
|
||||
"Description[he]": "לוח עליון לפלזמה לניידים",
|
||||
"Description[hu]": "Felső panel a Plasma Mobile-hoz",
|
||||
"Description[ia]": "Pannello in alto per Plasma Mobile",
|
||||
"Description[is]": "Toppspjald fyrir Plasma Mobile",
|
||||
"Description[it]": "Pannello superiore per Plasma Mobile",
|
||||
"Description[ka]": "Plasma Mobile-ის ზედა პანელი",
|
||||
"Description[ko]": "Plasma 모바일의 최상위 패널",
|
||||
"Description[lv]": "„Plasma Mobile“ augšējais panelis",
|
||||
"Description[nl]": "Hoofdpaneel voor Plasma Mobile",
|
||||
"Description[nn]": "Toppanel for Plasma Mobile",
|
||||
"Description[pa]": "ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ ਲਈ ਸਿਖਰਲਾ ਪੈਨਲ",
|
||||
"Description[pl]": "Górny panel dla Przenośnej Plazmy",
|
||||
"Description[pt]": "Painel de topo do Plasma Mobile",
|
||||
"Description[pt_BR]": "Painel superior do Plasma Mobile",
|
||||
"Description[ru]": "Верхняя панель Plasma Mobile",
|
||||
"Description[sa]": "प्लाज्मा मोबाईलस्य कृते शीर्षपटलम्",
|
||||
"Description[sk]": "Horný panel pre Plasma Mobile",
|
||||
"Description[sl]": "Vrhnja plošča za Plasma Mobile",
|
||||
"Description[sv]": "Överpanel för Plasma mobil",
|
||||
"Description[ta]": "பிளாஸ்மா கைபேசிக்கான மேலோரப் பலகை",
|
||||
"Description[tr]": "Plasma Cep için üst panel",
|
||||
"Description[uk]": "Верхня панель для мобільної Плазми",
|
||||
"Description[zh_CN]": "Plasma Mobile 的顶部面板",
|
||||
"Description[zh_TW]": "Plasma 行動的頂部面板",
|
||||
"Description": "Top panel for SHIFT",
|
||||
"License": "GPLv2+",
|
||||
"Name": "Phone Panel",
|
||||
"Name[ar]": "لوحة الهاتف",
|
||||
|
|
@ -126,7 +90,7 @@
|
|||
"Name[uk]": "Панель телефону",
|
||||
"Name[zh_CN]": "手机面板",
|
||||
"Name[zh_TW]": "手機面板",
|
||||
"Website": "https://plasma-mobile.org"
|
||||
"Website": "https://invent.kde.org/marcoa/shift-shell"
|
||||
},
|
||||
"X-Plasma-API-Minimum-Version": "6.0",
|
||||
"X-Plasma-ContainmentType": "Panel"
|
||||
|
|
|
|||
|
|
@ -44,43 +44,7 @@
|
|||
}
|
||||
],
|
||||
"Category": "Containments",
|
||||
"Description": "Navigation panel for Plasma Mobile",
|
||||
"Description[ar]": "لوحة التنقل لبلازما الجوال",
|
||||
"Description[ca@valencia]": "Quadro de navegació per a Plasma Mobile",
|
||||
"Description[ca]": "Plafó de navegació per al Plasma Mobile",
|
||||
"Description[cs]": "Navigační panel pro Plasma Mobile",
|
||||
"Description[de]": "Navigationsleiste für Plasma Mobile",
|
||||
"Description[en_GB]": "Navigation panel for Plasma Mobile",
|
||||
"Description[eo]": "Navigada panelo por Plasma Mobile",
|
||||
"Description[es]": "Panel de navegación para Plasma Mobile",
|
||||
"Description[eu]": "Plasma Mugikorrerako nabigazio-panela",
|
||||
"Description[fi]": "Navigointipaneeli Plasma Mobilelle",
|
||||
"Description[fr]": "Panneau de navigation pour Plasma Mobile",
|
||||
"Description[gl]": "Panel de navegación para Plasma Mobile.",
|
||||
"Description[he]": "לוח ניווט לפלזמה לניידים",
|
||||
"Description[hu]": "Navigációs panel a Plasma Mobile-hoz",
|
||||
"Description[ia]": "Pannello de Navigation per Plasma Mobile",
|
||||
"Description[is]": "Flakkspjald fyrir Plasma Mobile",
|
||||
"Description[it]": "Pannello di navigazione per Plasma Mobile",
|
||||
"Description[ka]": "Plasma Mobile-ის ნავიგაციის პანელი",
|
||||
"Description[ko]": "Plasma 모바일의 탐색 패널",
|
||||
"Description[lv]": "„Plasma Mobile“ navigācijas panelis",
|
||||
"Description[nl]": "Navigatiepaneel voor Plasma Mobile",
|
||||
"Description[nn]": "Navigasjonspanel for Plasma Mobile",
|
||||
"Description[pa]": "ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ ਲਈ ਨੇਵੀਗੇਸ਼ਨ ਪੈਨਲ",
|
||||
"Description[pl]": "Pasek poruszania się dla Przenośnej Plazmy",
|
||||
"Description[pt]": "Painel de navegação do Plasma Mobile",
|
||||
"Description[pt_BR]": "Painel de navegação do Plasma Mobile",
|
||||
"Description[ru]": "Панель навигации Plasma Mobile",
|
||||
"Description[sa]": "प्लाज्मा मोबाईलस्य कृते नेविगेशन पैनल",
|
||||
"Description[sk]": "Navigačný panel pre Plasma Mobile",
|
||||
"Description[sl]": "Krmilna plošča za Plasma Mobile",
|
||||
"Description[sv]": "Navigeringspanel för Plasma mobil",
|
||||
"Description[ta]": "பிளாஸ்மா கைபேசிக்கான உலாவல் பலகை",
|
||||
"Description[tr]": "Plasma Cep için dolaşım paneli",
|
||||
"Description[uk]": "Панель навігації для мобільної Плазми",
|
||||
"Description[zh_CN]": "Plasma 移动版导航面板",
|
||||
"Description[zh_TW]": "Plasma 行動的導覽面板",
|
||||
"Description": "Navigation panel for SHIFT",
|
||||
"License": "GPLv2+",
|
||||
"Name": "Phone Task panel",
|
||||
"Name[ar]": "لوحة مهمة الهاتف",
|
||||
|
|
@ -126,7 +90,7 @@
|
|||
"Name[uk]": "Панель завдань телефону",
|
||||
"Name[zh_CN]": "手机任务面板",
|
||||
"Name[zh_TW]": "手機工作面板",
|
||||
"Website": "https://plasma-mobile.org"
|
||||
"Website": "https://invent.kde.org/marcoa/shift-shell"
|
||||
},
|
||||
"X-Plasma-API-Minimum-Version": "6.0",
|
||||
"X-Plasma-ContainmentType": "Panel"
|
||||
|
|
|
|||
12
fonts/AtkinsonHyperlegibleMono/AUTHORS.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# This is the official list of project authors for copyright purposes. The first name in the list (if there are several authors), will appear as "Principal design" in the "about" section of the font specimen on Google Fonts.
|
||||
# This file is distinct from the CONTRIBUTORS.txt file.
|
||||
# See the latter for an explanation.
|
||||
#
|
||||
# Names should be added to this file as:
|
||||
# Name or Organization <email address>
|
||||
|
||||
Elliott Scott
|
||||
Megan Eiswerth
|
||||
Linus Boman
|
||||
Theodore Petrosky
|
||||
Letters from Sweden
|
||||
2
fonts/AtkinsonHyperlegibleMono/AUTHORS.txt.license
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2020-2024 The Atkinson Hyperlegible Project Authors
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2020-2024 The Atkinson Hyperlegible Project Authors
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2020-2024 The Atkinson Hyperlegible Project Authors
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
93
fonts/AtkinsonHyperlegibleMono/OFL.txt
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
Copyright 2020-2024 The Atkinson Hyperlegible Mono Project Authors (https://github.com/googlefonts/atkinson-hyperlegible-next-mono)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
2
fonts/AtkinsonHyperlegibleMono/OFL.txt.license
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2020-2024 The Atkinson Hyperlegible Project Authors
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
12
fonts/AtkinsonHyperlegibleNext/AUTHORS.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# This is the official list of project authors for copyright purposes. The first name in the list (if there are several authors), will appear as "Principal design" in the "about" section of the font specimen on Google Fonts.
|
||||
# This file is distinct from the CONTRIBUTORS.txt file.
|
||||
# See the latter for an explanation.
|
||||
#
|
||||
# Names should be added to this file as:
|
||||
# Name or Organization <email address>
|
||||
|
||||
Elliott Scott
|
||||
Megan Eiswerth
|
||||
Linus Boman
|
||||
Theodore Petrosky
|
||||
Letters from Sweden
|
||||
2
fonts/AtkinsonHyperlegibleNext/AUTHORS.txt.license
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2020-2024 The Atkinson Hyperlegible Project Authors
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2020-2024 The Atkinson Hyperlegible Project Authors
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2020-2024 The Atkinson Hyperlegible Project Authors
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
93
fonts/AtkinsonHyperlegibleNext/OFL.txt
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
Copyright 2020-2024 The Atkinson Hyperlegible Next Project Authors (https://github.com/googlefonts/atkinson-hyperlegible-next)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
2
fonts/AtkinsonHyperlegibleNext/OFL.txt.license
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2020-2024 The Atkinson Hyperlegible Project Authors
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
22
fonts/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# SPDX-FileCopyrightText: 2026 SHIFT Contributors
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Install bundled font files (if any are present) into the system font dir
|
||||
# so the shell session can render the configured default font even on
|
||||
# distributions that do not package it.
|
||||
#
|
||||
# Drop OFL-licensed font files into fonts/AtkinsonHyperlegibleNext/ and
|
||||
# fonts/AtkinsonHyperlegibleMono/ alongside their SPDX .license sidecars.
|
||||
|
||||
file(GLOB SHIFT_FONT_FILES
|
||||
LIST_DIRECTORIES false
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/*/*.ttf"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/*/*.otf"
|
||||
)
|
||||
|
||||
if(SHIFT_FONT_FILES)
|
||||
install(
|
||||
FILES ${SHIFT_FONT_FILES}
|
||||
DESTINATION ${KDE_INSTALL_DATADIR}/fonts/shift
|
||||
)
|
||||
endif()
|
||||
36
fonts/README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<!--
|
||||
SPDX-FileCopyrightText: 2026 SHIFT Contributors
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
||||
# Shift bundled fonts
|
||||
|
||||
Drop the Atkinson Hyperlegible Next and Atkinson Hyperlegible Mono font files
|
||||
here, organised one family per subdirectory:
|
||||
|
||||
```
|
||||
fonts/
|
||||
AtkinsonHyperlegibleNext/
|
||||
AtkinsonHyperlegibleNext-*.ttf
|
||||
AtkinsonHyperlegibleNext-*.ttf.license
|
||||
AtkinsonHyperlegibleMono/
|
||||
AtkinsonHyperlegibleMono-*.ttf
|
||||
AtkinsonHyperlegibleMono-*.ttf.license
|
||||
```
|
||||
|
||||
Sources:
|
||||
- https://www.brailleinstitute.org/freefont (Atkinson Hyperlegible Next + Mono)
|
||||
|
||||
License: SIL Open Font License 1.1. Add a `.license` sidecar next to each
|
||||
binary file with:
|
||||
|
||||
```
|
||||
SPDX-FileCopyrightText: 2024 Braille Institute of America, Inc.
|
||||
SPDX-License-Identifier: OFL-1.1
|
||||
```
|
||||
|
||||
The build globs every `*.ttf`/`*.otf` under these subdirectories at configure
|
||||
time, so adding files later does not require editing CMake. If no fonts are
|
||||
present, the install step is skipped silently — `lookandfeel/contents/defaults`
|
||||
still requests the family, and the system falls back to whatever fontconfig
|
||||
resolves "Atkinson Hyperlegible Next" to (e.g. a distro package).
|
||||
|
|
@ -8,3 +8,9 @@ ecm_install_icons(
|
|||
DESTINATION ${KDE_INSTALL_ICONDIR}
|
||||
THEME hicolor
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY org.shift.icons
|
||||
DESTINATION ${KDE_INSTALL_ICONDIR}
|
||||
PATTERN README.md EXCLUDE
|
||||
)
|
||||
|
|
|
|||
37
icons/org.shift.icons/README.md
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Shift Icon Theme
|
||||
|
||||
`org.shift.icons` is the icon theme selected by `lookandfeel/contents/defaults`.
|
||||
It inherits only `hicolor`, so shell-owned glyphs used by the Shift UI need to exist in this theme or in the local hicolor source icon set.
|
||||
The SVG glyphs are adapted from Phosphor Icons and licensed through the scoped REUSE metadata in `.reuse/dep5`.
|
||||
|
||||
Theme paths used here:
|
||||
|
||||
- `actions/symbolic/`: symbolic shell glyphs used by QML controls, status indicators, quick settings, window controls, and category icons.
|
||||
- `places/symbolic/`: symbolic place glyphs used by the dock and shell surfaces.
|
||||
- `apps/scalable/`: colored launcher icons for desktop-file app icon names that are part of the default Shift UI.
|
||||
- `preferences/scalable/`: colored System Settings category and module icons for names that should not fall back to monochrome action glyphs.
|
||||
|
||||
Keep `preferences/scalable` before `actions/symbolic` in `index.theme`. System Settings looks up category and KCM module icons by name, and the icon theme specification searches theme directories in order. If symbolic action aliases come first, names such as `preferences-desktop-sound`, `preferences-system-time`, or `network-wireless-symbolic` resolve to dark monochrome SVGs instead of colored preference icons.
|
||||
|
||||
When a QML icon is owned by the shell, render it as a masked icon with an explicit theme color:
|
||||
|
||||
```qml
|
||||
Kirigami.Icon {
|
||||
source: "icon-name"
|
||||
isMask: true
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
```
|
||||
|
||||
Use the same pattern for shell button properties such as `iconName` and `iconSource`. Do not force `isMask` for dynamic application icons from task, notification, applet, or launcher models; those can be colored app icons.
|
||||
|
||||
If a required icon name is only an alias for an existing glyph, keep it as a same-directory symbolic link, for example `rotation-allowed-symbolic.svg -> rotation-allowed.svg`.
|
||||
|
||||
Run the coverage guard after adding or renaming shell icon sources:
|
||||
|
||||
```sh
|
||||
bash tests/check-shift-icon-theme.sh
|
||||
```
|
||||
|
||||
The same check is registered with CTest as `shift-icon-theme-coverage`.
|
||||
When Plasma packages are installed, the guard also scans their desktop metadata and QML icon fields so desktop shell, KCM, and applet icon names do not silently fall back to Breeze-only glyphs.
|
||||
10
icons/org.shift.icons/actions/symbolic/accessibility.svg
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<circle cx="128" cy="44" r="16"/>
|
||||
<path d="M72,88c18.67-8,37.33-12,56-12s37.33,4,56,12" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
<line x1="128" y1="76" x2="128" y2="212" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
<line x1="128" y1="120" x2="84" y2="212" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
<line x1="128" y1="120" x2="172" y2="212" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 834 B |
6
icons/org.shift.icons/actions/symbolic/activities.svg
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 824 B |
|
|
@ -0,0 +1 @@
|
|||
view-grid-symbolic.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/application-menu.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
view-grid-symbolic.svg
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<rect x="48" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="144" y="144" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 824 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<polyline points="64 88 16 128 64 168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="192 88 240 128 192 168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="40" x2="96" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 641 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M48,216a24,24,0,0,1,24-24H208V32H72A24,24,0,0,0,48,56Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 216 48 224 192 224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 526 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<line x1="152" y1="104" x2="176" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="72" y1="104" x2="104" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="88" x2="88" y2="120" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M105.91,152,63.8,199.8a28,28,0,0,1-47.37-24.66L32.79,91a52,52,0,0,1,51.1-43H172a52,52,0,1,1,0,104Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M150.09,152l42.11,47.8a28,28,0,0,0,47.37-24.66L223.21,91" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1,018 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M16,216H92a52,52,0,1,0-52-52C40,200,16,216,16,216Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M112.41,116.16C131.6,90.29,179.46,32,224,32c0,44.54-58.29,92.4-84.16,111.59" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M133,90.64a84.39,84.39,0,0,1,32.41,32.41" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 718 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,128c0,64-40,96-40,96s-40-32-40-96,40-96,40-96S168,64,168,128Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="37.46" y1="96" x2="218.54" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="37.46" y1="160" x2="218.54" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 822 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<circle cx="180" cy="164" r="28" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="52" cy="196" r="28" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="80 196 80 56 208 24 208 164" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 632 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M200,224H56a8,8,0,0,1-8-8V40a8,8,0,0,1,8-8h96l56,56V216A8,8,0,0,1,200,224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="152 32 152 88 208 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="136" x2="160" y2="136" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="168" x2="160" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 827 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<circle cx="128" cy="128" r="12"/><circle cx="196" cy="128" r="12"/><circle cx="60" cy="128" r="12"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 321 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<line x1="88" y1="32" x2="168" y2="32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M152,32V99.14l62.85,104.74A8,8,0,0,1,208,216H48a8,8,0,0,1-6.86-12.12L104,99.14V32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M71.63,153.08c13.23-2.48,32-1.41,56.37,10.92,32.25,16.33,54.75,12.91,67.5,7.65" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 740 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<circle cx="128" cy="128" r="40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M41.43,178.09A99.14,99.14,0,0,1,31.36,153.8l16.78-21a81.59,81.59,0,0,1,0-9.64l-16.77-21a99.43,99.43,0,0,1,10.05-24.3l26.71-3a81,81,0,0,1,6.81-6.81l3-26.7A99.14,99.14,0,0,1,102.2,31.36l21,16.78a81.59,81.59,0,0,1,9.64,0l21-16.77a99.43,99.43,0,0,1,24.3,10.05l3,26.71a81,81,0,0,1,6.81,6.81l26.7,3a99.14,99.14,0,0,1,10.07,24.29l-16.78,21a81.59,81.59,0,0,1,0,9.64l16.77,21a99.43,99.43,0,0,1-10,24.3l-26.71,3a81,81,0,0,1-6.81,6.81l-3,26.7a99.14,99.14,0,0,1-24.29,10.07l-21-16.78a81.59,81.59,0,0,1-9.64,0l-21,16.77a99.43,99.43,0,0,1-24.3-10l-3-26.71a81,81,0,0,1-6.81-6.81Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1 KiB |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M104,126.94a64,64,0,0,1,80-90.29L144,80l5.66,26.34L176,112l43.35-40a64,64,0,0,1-90.29,80L73,217A24,24,0,0,1,39,183Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 446 B |
1
icons/org.shift.icons/actions/symbolic/arrow-down-symbolic.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
arrow-down.svg
|
||||
6
icons/org.shift.icons/actions/symbolic/arrow-down.svg
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<line x1="128" y1="40" x2="128" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 144 128 216 200 144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 503 B |
6
icons/org.shift.icons/actions/symbolic/arrow-left.svg
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<line x1="216" y1="128" x2="40" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="112 56 40 128 112 200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 502 B |
7
icons/org.shift.icons/actions/symbolic/arrow-right.svg
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
<polyline points="144 56 216 128 144 200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 503 B |
1
icons/org.shift.icons/actions/symbolic/arrow-up-symbolic.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
arrow-up.svg
|
||||
6
icons/org.shift.icons/actions/symbolic/arrow-up.svg
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<line x1="128" y1="216" x2="128" y2="40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="56 112 128 40 200 112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 502 B |
|
|
@ -0,0 +1,9 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
|
||||
<rect x="88" y="24" width="80" height="128" rx="40"/>
|
||||
<path d="M48 112a80 80 0 0 0 160 0"/>
|
||||
<line x1="128" y1="192" x2="128" y2="232"/>
|
||||
<line x1="88" y1="232" x2="168" y2="232"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 476 B |
|
|
@ -0,0 +1 @@
|
|||
audio-volume-high.svg
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,106.85a32,32,0,0,1,0,42.3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M221.67,80a72,72,0,0,1,0,96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 804 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,106.85a32,32,0,0,1,0,42.3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 666 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,106.85a32,32,0,0,1,0,42.3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M221.67,80a72,72,0,0,1,0,96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 804 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="104" x2="192" y2="152" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="240" y1="152" x2="192" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 809 B |
6
icons/org.shift.icons/actions/symbolic/audio-volume.svg
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
|
||||
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #232629; }</style>
|
||||
<g class="ColorScheme-Text" fill="currentColor">
|
||||
<path d="M80,168H32a8,8,0,0,1-8-8V96a8,8,0,0,1,8-8H80l72-56V224Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="88" x2="80" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M192,106.85a32,32,0,0,1,0,42.3" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M221.67,80a72,72,0,0,1,0,96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 804 B |
1
icons/org.shift.icons/actions/symbolic/battery-000-charging.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-000.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-010-charging.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-010.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-020-charging.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-020.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-030-charging.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-030.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-040-charging.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-040.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-050-charging.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||
1
icons/org.shift.icons/actions/symbolic/battery-050.svg
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
battery.svg
|
||||