Compare commits

..

No commits in common. "847e516fcfd22b130bf816ea5ab1589e8fa50cf9" and "f09a1db84ae4c0ba419eb789f65cc55d4a94721e" have entirely different histories.

146 changed files with 639 additions and 1331 deletions

View file

@ -2,6 +2,12 @@
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
![Desktop overview](screenshots/quick_DesktopDemo.webm)
![Docked mode](screenshots/quick_DesktopDemo_docked.webm)
![Tiling](screenshots/quick_DesktopDemo_tiling.webm)
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.

View file

@ -18,6 +18,9 @@ GameModeControl::GameModeControl(QObject *parent)
, m_iface(new QDBusInterface(s_service, s_path, s_iface, QDBusConnection::sessionBus(), this))
{
m_available = m_iface->isValid();
if (!m_available) {
qDebug() << "GameModeControl: Feral GameMode not available";
}
}
bool GameModeControl::available() const

View file

@ -25,6 +25,8 @@ PowerProfileControl::PowerProfileControl(QObject *parent)
// Subscribe to property changes
QDBusConnection::systemBus()
.connect(s_service, s_path, s_propIface, QStringLiteral("PropertiesChanged"), this, SLOT(onPropertiesChanged(QString, QVariantMap, QStringList)));
} else {
qDebug() << "PowerProfileControl: power-profiles-daemon not available";
}
}

View file

@ -71,8 +71,6 @@ Item {
MobileShell.NotificationsWidget {
id: notificationWidget
readonly property bool isConvergence: ShellSettings.Settings.convergenceModeEnabled
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
anchors.fill: parent
anchors.topMargin: root.topMargin + (isConvergence ? Kirigami.Units.gridUnit : 0)
anchors.rightMargin: actionDrawer.mode == MobileShell.ActionDrawer.Portrait ? 0 : (isConvergence ? Kirigami.Units.gridUnit : Math.max(root.width - Kirigami.Units.gridUnit * 25, 0))

View file

@ -29,12 +29,12 @@ Item {
required property QS.QuickSettingsModel quickSettingsModel
readonly property int columns: Math.max(1, Math.round(Math.min(6, Math.max(ShellSettings.Settings.quickSettingsColumns, width / intendedColumnWidth))))
readonly property real columnWidth: Math.max(1, Math.floor(width / columns))
readonly property int minimizedColumns: Math.max(1, Math.round(Math.min(8, Math.max(5, width / intendedMinimizedColumnWidth))))
readonly property real minimizedColumnWidth: Math.max(1, Math.floor(width / minimizedColumns))
readonly property real columns: Math.round(Math.min(6, Math.max(ShellSettings.Settings.quickSettingsColumns, width / intendedColumnWidth)))
readonly property real columnWidth: Math.floor(width / columns)
readonly property int minimizedColumns: Math.round(Math.min(8, Math.max(5, width / intendedMinimizedColumnWidth)))
readonly property real minimizedColumnWidth: Math.floor(width / minimizedColumns)
readonly property real rowHeight: Math.max(1, columnWidth * 0.7)
readonly property real rowHeight: columnWidth * 0.7
readonly property real fullHeight: fullView.implicitHeight
readonly property real intendedColumnWidth: Kirigami.Units.gridUnit * 7
@ -43,17 +43,16 @@ Item {
property real fullViewProgress: 1
readonly property int columnCount: Math.max(1, Math.floor(width / columnWidth))
readonly property int columnCount: Math.floor(width/columnWidth)
readonly property int rowCount: {
let totalRows = Math.ceil(quickSettingsCount / columnCount);
let maxRows = root.isConvergence ? 3 : 5; // more than 5 is just disorienting
let targetRows = Math.max(1, Math.floor(Window.height * (root.isConvergence ? 0.42 : 0.65) / rowHeight));
let targetRows = Math.floor(Window.height * (root.isConvergence ? 0.42 : 0.65) / rowHeight);
return Math.max(1, Math.min(maxRows, Math.min(totalRows, targetRows)));
}
readonly property int pageSize: Math.max(1, rowCount * columnCount)
readonly property int quickSettingsCount: Math.max(0, quickSettingsModel.count)
readonly property int pageCount: Math.max(1, Math.ceil(quickSettingsCount / pageSize))
readonly property int pageSize: rowCount * columnCount
readonly property int quickSettingsCount: quickSettingsModel.count
// Management tiles promoted to full-width status rows in convergence.
readonly property var __managementCommands: ({
@ -280,7 +279,7 @@ Item {
Layout.maximumHeight: visible ? rowCount * rowHeight : 0
Repeater {
model: root.isConvergence ? 0 : root.pageCount
model: Math.ceil(quickSettingsCount / pageSize)
delegate: Flow {
id: flow
spacing: 0

View file

@ -26,6 +26,7 @@ MobileShell.BaseItem {
required property string text
required property string status
required property string icon
required property bool enabled
required property string settingsCommand
required property var toggleFunction

View file

@ -18,6 +18,7 @@ Item {
required property string text
required property string status
required property string icon
required property bool enabled
required property var toggleFunction
property bool compact: false

View file

@ -32,19 +32,12 @@ Controls.AbstractButton {
property string type // sink, source, source-output
property bool onlyOne: false
property bool useVolumeObject: true
// Whether this item is selected
readonly property bool supportsSelection: (baseItem.type == "sink" || baseItem.type == "source")
readonly property bool hasPulseObject: model.PulseObject !== null && model.PulseObject !== undefined
readonly property bool hasVolumeObject: useVolumeObject && hasPulseObject
readonly property bool selected: supportsSelection && hasPulseObject && (model.PulseObject.hasOwnProperty("default") ? model.PulseObject.default : false)
readonly property bool selected: supportsSelection && (model.PulseObject.hasOwnProperty("default") ? model.PulseObject.default : false)
onClicked: {
if (!hasPulseObject || !model.PulseObject.hasOwnProperty("default")) {
return;
}
// Set as the default audio device
model.PulseObject.default = true
}
@ -182,7 +175,7 @@ Controls.AbstractButton {
visible: model.HasVolume !== false // Devices always have volume but Streams don't necessarily
enabled: model.VolumeWritable
muted: model.Muted
volumeObject: baseItem.hasVolumeObject ? model.PulseObject : null
volumeObject: model.PulseObject
activeFocusOnTab: false // access from delegate
value: to, model.Volume
@ -222,7 +215,7 @@ Controls.AbstractButton {
}
PlasmaComponents.Label {
id: percentText
readonly property real value: baseItem.hasVolumeObject && model.PulseObject.volume > slider.to ? model.PulseObject.volume : slider.value
readonly property real value: model.PulseObject.volume > slider.to ? model.PulseObject.volume : slider.value
readonly property real displayValue: Math.round(value / PulseAudio.NormalVolume * 100.0)
Layout.alignment: Qt.AlignHCenter
Layout.minimumWidth: percentMetrics.advanceWidth

View file

@ -15,7 +15,6 @@ ListItemBase {
property QtObject devicesModel
readonly property bool isEventStream: Name == "sink-input-by-media-role:event"
useVolumeObject: !isEventStream
label: {
if (isEventStream) {

View file

@ -157,13 +157,11 @@ Window {
anchors.leftMargin: Kirigami.Units.smallSpacing * 2
anchors.rightMargin: Kirigami.Units.smallSpacing
readonly property bool hasSink: PreferredDevice.sink !== null
property int volumePercent: hasSink ? PreferredDevice.sink.volume / PulseAudio.NormalVolume * 100.0 : 0
property int volumePercent: PreferredDevice.sink.volume / PulseAudio.NormalVolume * 100.0
PlasmaComponents.ToolButton {
enabled: containerLayout.hasSink
icon.name: containerLayout.hasSink ? (PreferredDevice.sink.muted ? "audio-volume-muted" : MobileShell.AudioInfo.icon) : "audio-volume-muted"
text: containerLayout.hasSink && PreferredDevice.sink.muted ? i18n("Unmute") : i18n("Mute")
icon.name: !PreferredDevice.sink || (PreferredDevice.sink.muted ? "audio-volume-muted" : MobileShell.AudioInfo.icon)
text: !PreferredDevice.sink || (PreferredDevice.sink.muted ? i18n("Unmute") : i18n("Mute"))
display: Controls.AbstractButton.IconOnly
Layout.alignment: Qt.AlignVCenter
Layout.preferredWidth: Kirigami.Units.iconSizes.medium
@ -171,9 +169,6 @@ Window {
Layout.rightMargin: Kirigami.Units.smallSpacing
onClicked: {
if (!containerLayout.hasSink) {
return;
}
hideTimer.restart();
PreferredDevice.sink.muted = !PreferredDevice.sink.muted;
}
@ -190,15 +185,11 @@ Window {
to: PulseAudio.NormalVolume
stepSize: to / (to / PulseAudio.NormalVolume * 100.0)
enabled: containerLayout.hasSink
volumeObject: containerLayout.hasSink ? PreferredDevice.sink : null
muted: containerLayout.hasSink ? PreferredDevice.sink.muted : false
value: containerLayout.hasSink ? PreferredDevice.sink.volume : PulseAudio.MinimalVolume
volumeObject: PreferredDevice.sink
muted: PreferredDevice.sink.muted
value: PreferredDevice.sink.volume
onMoved: {
if (!containerLayout.hasSink) {
return;
}
PreferredDevice.sink.volume = value;
PreferredDevice.sink.muted = value === 0;
}
@ -211,7 +202,7 @@ Window {
// Otherwise it might be that the slider is at v10
// whereas PA rejected the volume change and is
// still at v15 (e.g.).
value = Qt.binding(() => containerLayout.hasSink ? PreferredDevice.sink.volume : PulseAudio.MinimalVolume);
value = Qt.binding(() => PreferredDevice.sink.volume);
hideTimer.restart();
}
}

View file

@ -201,7 +201,7 @@ Window {
}
PlasmaComponents.Label {
text: i18n("Open audio settings")
Layout.alignment: Qt.AlignVCenter
anchors.verticalCenter: parent.verticalCenter
}
}
}

View file

@ -119,7 +119,7 @@ QHash<int, QByteArray> PaginateModel::roleNames() const
int PaginateModel::rowsByPageSize(int size) const
{
return d->m_hasStaticRowCount ? qMax(size, 0) : !d->m_sourceModel ? 0 : qMax(qMin(d->m_sourceModel->rowCount() - d->m_firstItem, size), 0);
return d->m_hasStaticRowCount ? size : !d->m_sourceModel ? 0 : qMin(d->m_sourceModel->rowCount() - d->m_firstItem, size);
}
int PaginateModel::rowCount(const QModelIndex &parent) const

View file

@ -90,6 +90,7 @@ void RaiseLockscreen::setOverlay()
// Add event filter to listen for when wayland window appears, and try again
m_window->installEventFilter(this);
setInitialized(false);
qCWarning(LOGGING_CATEGORY) << "Unable to set overlay: unable to get wayland window";
return;
}
@ -98,11 +99,13 @@ void RaiseLockscreen::setOverlay()
connect(waylandWindow, &QNativeInterface::Private::QWaylandWindow::surfaceRoleCreated, this, [this, waylandWindow]() {
m_implementation->allow(waylandWindow->surface());
setInitialized(true);
qCDebug(LOGGING_CATEGORY) << "Initialized overlay successfully";
});
if (waylandWindow->surface()) {
m_implementation->allow(waylandWindow->surface());
setInitialized(true);
qCDebug(LOGGING_CATEGORY) << "Initialized overlay successfully";
}
}

View file

@ -6,16 +6,11 @@
#include <QDBusPendingCallWatcher>
#include <QDBusPendingReply>
namespace
{
const QString SOLID_POWER_MANAGEMENT_SERVICE = QStringLiteral("org.kde.Solid.PowerManagement");
}
ScreenBrightnessUtil::ScreenBrightnessUtil(QObject *parent)
: QObject{parent}
{
m_brightnessInterface =
new org::kde::Solid::PowerManagement::Actions::BrightnessControl(SOLID_POWER_MANAGEMENT_SERVICE,
new org::kde::Solid::PowerManagement::Actions::BrightnessControl(QStringLiteral("org.kde.Solid.PowerManagement"),
QStringLiteral("/org/kde/Solid/PowerManagement/Actions/BrightnessControl"),
QDBusConnection::sessionBus(),
this);
@ -29,14 +24,14 @@ ScreenBrightnessUtil::ScreenBrightnessUtil(QObject *parent)
this,
&ScreenBrightnessUtil::fetchMaxBrightness);
if (brightnessAvailable()) {
fetchBrightness();
fetchMaxBrightness();
}
// watch for brightness interface
m_brightnessInterfaceWatcher =
new QDBusServiceWatcher(SOLID_POWER_MANAGEMENT_SERVICE, QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this);
m_brightnessInterfaceWatcher = new QDBusServiceWatcher(QStringLiteral("org.kde.Solid.PowerManagement.Actions.BrightnessControl"),
QDBusConnection::sessionBus(),
QDBusServiceWatcher::WatchForOwnerChange,
this);
connect(m_brightnessInterfaceWatcher, &QDBusServiceWatcher::serviceRegistered, this, [this]() -> void {
fetchBrightness();
@ -56,10 +51,6 @@ int ScreenBrightnessUtil::brightness() const
void ScreenBrightnessUtil::setBrightness(int brightness)
{
if (!brightnessAvailable()) {
return;
}
m_brightnessInterface->setBrightness(brightness);
}
@ -75,10 +66,6 @@ bool ScreenBrightnessUtil::brightnessAvailable() const
void ScreenBrightnessUtil::fetchBrightness()
{
if (!brightnessAvailable()) {
return;
}
QDBusPendingReply<int> reply = m_brightnessInterface->brightness();
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
@ -96,10 +83,6 @@ void ScreenBrightnessUtil::fetchBrightness()
void ScreenBrightnessUtil::fetchMaxBrightness()
{
if (!brightnessAvailable()) {
return;
}
QDBusPendingReply<int> reply = m_brightnessInterface->brightnessMax();
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);

View file

@ -12,7 +12,6 @@ target_link_libraries(shellsettingsplugin PRIVATE
Qt::DBus
Qt::Gui
Qt::Quick
KF6::ConfigCore
Plasma::KWaylandClient
KF6::Service
KF6::Package

View file

@ -15,163 +15,16 @@
#include <QDBusMessage>
#include <QDBusPendingCall>
#include <QDebug>
#include <QDir>
#include <QFile>
#include <QProcess>
#include <QStandardPaths>
#include <QtMath>
const QString CONFIG_FILE = QStringLiteral("plasmamobilerc");
const QString GENERAL_CONFIG_GROUP = QStringLiteral("General");
const QString KDE_GLOBALS_CONFIG_GROUP = QStringLiteral("General");
const QString LOCKSCREEN_CONFIG_GROUP = QStringLiteral("Lockscreen");
const QString QUICKSETTINGS_CONFIG_GROUP = QStringLiteral("QuickSettings");
const QString WALLPAPER_THEME_MANUAL_DARK_KEY = QStringLiteral("wallpaperThemeManualDarkTheme");
const QString SHIFT_DARK_COLOR_SCHEME = QStringLiteral("ShiftDark");
const QString SHIFT_LIGHT_COLOR_SCHEME = QStringLiteral("ShiftLight");
const QString SHIFT_WALLPAPER_DARK_COLOR_SCHEME = QStringLiteral("ShiftWallpaperDark");
const QString SHIFT_WALLPAPER_LIGHT_COLOR_SCHEME = QStringLiteral("ShiftWallpaperLight");
const QString SHIFT_DARK_PLASMA_THEME = QStringLiteral("shift-dark");
const QString SHIFT_LIGHT_PLASMA_THEME = QStringLiteral("shift-light");
constexpr qreal MIN_NORMAL_CONTRAST = 4.5;
constexpr qreal MIN_INACTIVE_CONTRAST = 3.0;
constexpr qreal MIN_LINK_CONTRAST = 3.5;
namespace
{
QString baseColorSchemeName(bool dark)
{
return dark ? SHIFT_DARK_COLOR_SCHEME : SHIFT_LIGHT_COLOR_SCHEME;
}
QString wallpaperColorSchemeName(bool dark)
{
return dark ? SHIFT_WALLPAPER_DARK_COLOR_SCHEME : SHIFT_WALLPAPER_LIGHT_COLOR_SCHEME;
}
QString wallpaperColorSchemeDisplayName(bool dark)
{
return dark ? QStringLiteral("SHIFT Wallpaper Dark") : QStringLiteral("SHIFT Wallpaper Light");
}
QString rgbString(const QColor &color)
{
return QStringLiteral("%1,%2,%3").arg(color.red()).arg(color.green()).arg(color.blue());
}
qreal relativeLuminance(const QColor &color)
{
return 0.2126 * color.redF() + 0.7152 * color.greenF() + 0.0722 * color.blueF();
}
qreal linearizedChannel(qreal channel)
{
return channel <= 0.04045 ? channel / 12.92 : qPow((channel + 0.055) / 1.055, 2.4);
}
qreal wcagLuminance(const QColor &color)
{
return 0.2126 * linearizedChannel(color.redF()) + 0.7152 * linearizedChannel(color.greenF()) + 0.0722 * linearizedChannel(color.blueF());
}
qreal contrastRatio(const QColor &left, const QColor &right)
{
const qreal leftLum = wcagLuminance(left);
const qreal rightLum = wcagLuminance(right);
const qreal lighter = qMax(leftLum, rightLum);
const qreal darker = qMin(leftLum, rightLum);
return (lighter + 0.05) / (darker + 0.05);
}
QColor contrastingTextColor(const QColor &color);
QColor blendColors(const QColor &base, const QColor &overlay, qreal overlayAmount);
QColor ensureContrast(const QColor &foreground, const QColor &background, qreal minimumContrast)
{
if (contrastRatio(foreground, background) >= minimumContrast) {
return foreground;
}
const QColor highContrastTarget = contrastingTextColor(background);
for (int i = 1; i <= 12; ++i) {
const qreal amount = i / 12.0;
const QColor candidate = blendColors(foreground, highContrastTarget, amount);
if (contrastRatio(candidate, background) >= minimumContrast) {
return candidate;
}
}
return highContrastTarget;
}
QColor contrastingTextColor(const QColor &color)
{
const QColor white{Qt::white};
const QColor black{Qt::black};
return contrastRatio(color, white) >= contrastRatio(color, black) ? white : black;
}
QColor blendColors(const QColor &base, const QColor &overlay, qreal overlayAmount)
{
const qreal clampedAmount = qBound(0.0, overlayAmount, 1.0);
const qreal baseAmount = 1.0 - clampedAmount;
return QColor::fromRgbF(base.redF() * baseAmount + overlay.redF() * clampedAmount,
base.greenF() * baseAmount + overlay.greenF() * clampedAmount,
base.blueF() * baseAmount + overlay.blueF() * clampedAmount,
1.0);
}
void writeAccentEntries(const KSharedConfig::Ptr &config, const QString &groupName, const QColor &accentColor)
{
auto group = KConfigGroup{config, groupName};
group.writeEntry("DecorationFocus", rgbString(accentColor));
group.writeEntry("DecorationHover", rgbString(accentColor));
group.writeEntry("ForegroundActive", rgbString(accentColor));
}
void tintBackgroundEntries(const KSharedConfig::Ptr &config, const QString &groupName, const QColor &accentColor, bool dark)
{
auto group = KConfigGroup{config, groupName};
const QColor defaultBase = dark ? QColor(38, 41, 47) : QColor(244, 246, 251);
const QColor baseNormal = group.readEntry("BackgroundNormal", defaultBase);
const QColor baseAlternate = group.readEntry("BackgroundAlternate", baseNormal);
const qreal normalBlend = dark ? 0.22 : 0.12;
const qreal alternateBlend = dark ? 0.16 : 0.08;
group.writeEntry("BackgroundNormal", rgbString(blendColors(baseNormal, accentColor, normalBlend)));
group.writeEntry("BackgroundAlternate", rgbString(blendColors(baseAlternate, accentColor, alternateBlend)));
}
void tuneForegroundEntries(const KSharedConfig::Ptr &config, const QString &groupName, const QColor &accentColor, bool dark)
{
auto group = KConfigGroup{config, groupName};
const QColor bgNormal = group.readEntry("BackgroundNormal", dark ? QColor(34, 37, 50) : QColor(252, 252, 252));
const QColor baseNormal = contrastingTextColor(bgNormal);
const QColor baseInactive = blendColors(baseNormal, bgNormal, dark ? 0.44 : 0.56);
const QColor baseLink = dark ? blendColors(accentColor, QColor(Qt::white), 0.28) : blendColors(accentColor, QColor(Qt::black), 0.24);
const QColor fgNormal = ensureContrast(baseNormal, bgNormal, MIN_NORMAL_CONTRAST);
const QColor fgInactive = ensureContrast(baseInactive, bgNormal, MIN_INACTIVE_CONTRAST);
const QColor fgLink = ensureContrast(baseLink, bgNormal, MIN_LINK_CONTRAST);
const QColor fgActive = ensureContrast(accentColor, bgNormal, MIN_LINK_CONTRAST);
group.writeEntry("ForegroundNormal", rgbString(fgNormal));
group.writeEntry("ForegroundInactive", rgbString(fgInactive));
group.writeEntry("ForegroundActive", rgbString(fgActive));
group.writeEntry("ForegroundLink", rgbString(fgLink));
}
}
MobileShellSettings::MobileShellSettings(QObject *parent)
: QObject{parent}
, m_config{KSharedConfig::openConfig(CONFIG_FILE)}
, m_kdeGlobalsConfig{KSharedConfig::openConfig()}
{
m_wallpaperThemeTimer.setSingleShot(true);
m_wallpaperThemeTimer.setInterval(450);
connect(&m_wallpaperThemeTimer, &QTimer::timeout, this, [this]() -> void {
setDarkThemeEnabled(m_pendingWallpaperThemeDark);
});
m_configWatcher = KConfigWatcher::create(m_config);
connect(m_configWatcher.data(), &KConfigWatcher::configChanged, this, [this](const KConfigGroup &group, const QByteArrayList &names) -> void {
Q_UNUSED(names)
@ -200,7 +53,6 @@ MobileShellSettings::MobileShellSettings(QObject *parent)
Q_EMIT dynamicTilingLayoutStateChanged();
Q_EMIT snapLayoutsEnabledChanged();
Q_EMIT allowLogoutChanged();
Q_EMIT wallpaperThemeEnabledChanged();
}
if (group.name() == LOCKSCREEN_CONFIG_GROUP) {
Q_EMIT lockscreenLeftButtonActionChanged();
@ -210,24 +62,6 @@ MobileShellSettings::MobileShellSettings(QObject *parent)
Q_EMIT quickSettingsColumnsChanged();
}
});
m_kdeGlobalsConfigWatcher = KConfigWatcher::create(m_kdeGlobalsConfig);
connect(m_kdeGlobalsConfigWatcher.data(), &KConfigWatcher::configChanged, this, [this](const KConfigGroup &group, const QByteArrayList &names) -> void {
if (group.name() != KDE_GLOBALS_CONFIG_GROUP) {
return;
}
if (names.contains(QByteArrayLiteral("ColorScheme"))) {
Q_EMIT colorSchemeChanged();
Q_EMIT darkThemeEnabledChanged();
}
if (names.contains(QByteArrayLiteral("AccentColor")) || names.contains(QByteArrayLiteral("LastUsedCustomAccentColor"))) {
Q_EMIT accentColorChanged();
}
if (names.contains(QByteArrayLiteral("accentColorFromWallpaper"))) {
Q_EMIT wallpaperAccentEnabledChanged();
}
});
}
bool MobileShellSettings::vibrationsEnabled() const
@ -409,312 +243,6 @@ void MobileShellSettings::setConvergenceModeEnabled(bool enabled)
job->start();
}
QString MobileShellSettings::colorScheme() const
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
return group.readEntry("ColorScheme", SHIFT_DARK_COLOR_SCHEME);
}
bool MobileShellSettings::darkThemeEnabled() const
{
return isDarkColorScheme(colorScheme());
}
void MobileShellSettings::setDarkThemeEnabled(bool enabled)
{
const QString currentColorScheme = colorScheme();
const QString nextColorScheme = effectiveColorSchemeName(enabled);
const QString plasmaTheme = enabled ? SHIFT_DARK_PLASMA_THEME : SHIFT_LIGHT_PLASMA_THEME;
QColor accentOverride;
if (wallpaperAccentEnabled() && m_lastWallpaperThemeColor.isValid() && m_lastWallpaperThemeColor.alpha() != 0) {
accentOverride = m_lastWallpaperThemeColor;
} else if (!wallpaperAccentEnabled()) {
const QColor manualAccent = accentColor();
if (manualAccent.isValid() && manualAccent.alpha() != 0) {
accentOverride = manualAccent;
}
}
if (currentColorScheme == nextColorScheme && nextColorScheme == baseColorSchemeName(enabled)) {
return;
}
if (accentOverride.isValid() && accentOverride.alpha() != 0) {
applyColorScheme({QStringLiteral("--accent-color"), accentOverride.name(QColor::HexRgb), nextColorScheme});
} else {
QProcess::execute(QStringLiteral("plasma-apply-colorscheme"), {nextColorScheme});
m_kdeGlobalsConfig->reparseConfiguration();
}
QProcess::execute(QStringLiteral("plasma-apply-desktoptheme"), {plasmaTheme});
Q_EMIT colorSchemeChanged();
Q_EMIT darkThemeEnabledChanged();
}
bool MobileShellSettings::wallpaperThemeEnabled() const
{
auto group = KConfigGroup{m_config, GENERAL_CONFIG_GROUP};
return group.readEntry("wallpaperThemeEnabled", false);
}
void MobileShellSettings::setWallpaperThemeEnabled(bool enabled)
{
if (wallpaperThemeEnabled() == enabled) {
return;
}
auto group = KConfigGroup{m_config, GENERAL_CONFIG_GROUP};
if (enabled) {
group.writeEntry(WALLPAPER_THEME_MANUAL_DARK_KEY, darkThemeEnabled(), KConfigGroup::Notify);
}
group.writeEntry("wallpaperThemeEnabled", enabled, KConfigGroup::Notify);
m_config->sync();
if (!enabled) {
m_wallpaperThemeTimer.stop();
setDarkThemeEnabled(group.readEntry(WALLPAPER_THEME_MANUAL_DARK_KEY, darkThemeEnabled()));
}
Q_EMIT wallpaperThemeEnabledChanged();
}
void MobileShellSettings::applyWallpaperThemeColor(const QColor &color)
{
if (!wallpaperThemeEnabled() || !color.isValid() || color.alpha() == 0) {
return;
}
QColor opaqueColor = color;
opaqueColor.setAlpha(255);
const bool colorChanged = m_lastWallpaperThemeColor != opaqueColor;
m_lastWallpaperThemeColor = opaqueColor;
if (colorChanged) {
Q_EMIT wallpaperThemeColorChanged();
}
const qreal luminance = relativeLuminance(opaqueColor);
const bool shouldUseDarkTheme = luminance < 0.5;
const bool sameThemeBucket = darkThemeEnabled() == shouldUseDarkTheme;
if (wallpaperAccentEnabled() && colorChanged && sameThemeBucket) {
applyColorScheme({QStringLiteral("--accent-color"), opaqueColor.name(QColor::HexRgb), colorScheme()});
}
if (!m_wallpaperThemeTimer.isActive() && darkThemeEnabled() == shouldUseDarkTheme && !colorChanged) {
return;
}
m_pendingWallpaperThemeDark = shouldUseDarkTheme;
m_wallpaperThemeTimer.start();
}
QColor MobileShellSettings::wallpaperThemeColor() const
{
return m_lastWallpaperThemeColor;
}
QColor MobileShellSettings::accentColor() const
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
return group.readEntry("AccentColor", QColor(Qt::transparent));
}
void MobileShellSettings::setAccentColor(const QColor &color)
{
if (!color.isValid() || color.alpha() == 0) {
resetAccentColor();
return;
}
QColor opaqueColor = color;
opaqueColor.setAlpha(255);
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
group.writeEntry("accentColorFromWallpaper", false, KConfigGroup::Notify);
group.writeEntry("LastUsedCustomAccentColor", opaqueColor, KConfigGroup::Notify);
m_kdeGlobalsConfig->sync();
applyColorScheme({QStringLiteral("--accent-color"), opaqueColor.name(QColor::HexRgb), colorScheme()});
Q_EMIT wallpaperAccentEnabledChanged();
Q_EMIT accentColorChanged();
}
bool MobileShellSettings::wallpaperAccentEnabled() const
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
return group.readEntry("accentColorFromWallpaper", false);
}
void MobileShellSettings::setWallpaperAccentEnabled(bool enabled)
{
if (wallpaperAccentEnabled() == enabled) {
return;
}
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
group.writeEntry("accentColorFromWallpaper", enabled, KConfigGroup::Notify);
m_kdeGlobalsConfig->sync();
if (enabled && m_lastWallpaperThemeColor.isValid() && m_lastWallpaperThemeColor.alpha() != 0) {
applyColorScheme({QStringLiteral("--accent-color"), m_lastWallpaperThemeColor.name(QColor::HexRgb), colorScheme()});
Q_EMIT accentColorChanged();
}
if (!enabled) {
const QColor lastCustomColor = lastUsedCustomAccentColor();
if (lastCustomColor.isValid() && lastCustomColor.alpha() != 0) {
applyColorScheme({QStringLiteral("--accent-color"), lastCustomColor.name(QColor::HexRgb), colorScheme()});
} else {
resetAccentColor();
return;
}
}
Q_EMIT wallpaperAccentEnabledChanged();
}
void MobileShellSettings::resetAccentColor()
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
group.writeEntry("accentColorFromWallpaper", false, KConfigGroup::Notify);
group.deleteEntry("AccentColor", KConfigGroup::Notify);
m_kdeGlobalsConfig->sync();
applyColorScheme({colorScheme()});
Q_EMIT wallpaperAccentEnabledChanged();
Q_EMIT accentColorChanged();
}
QColor MobileShellSettings::lastUsedCustomAccentColor() const
{
auto group = KConfigGroup{m_kdeGlobalsConfig, KDE_GLOBALS_CONFIG_GROUP};
return group.readEntry("LastUsedCustomAccentColor", QColor(Qt::transparent));
}
void MobileShellSettings::applyColorScheme(const QStringList &arguments)
{
QProcess::execute(QStringLiteral("plasma-apply-colorscheme"), arguments);
m_kdeGlobalsConfig->reparseConfiguration();
}
QString MobileShellSettings::effectiveColorSchemeName(bool dark) const
{
if (!wallpaperThemeEnabled() || !m_lastWallpaperThemeColor.isValid() || m_lastWallpaperThemeColor.alpha() == 0) {
return baseColorSchemeName(dark);
}
if (!ensureWallpaperColorScheme(m_lastWallpaperThemeColor, dark)) {
return baseColorSchemeName(dark);
}
return wallpaperColorSchemeName(dark);
}
bool MobileShellSettings::isDarkColorScheme(const QString &schemeName) const
{
return schemeName == SHIFT_DARK_COLOR_SCHEME || schemeName == SHIFT_WALLPAPER_DARK_COLOR_SCHEME;
}
bool MobileShellSettings::ensureWallpaperColorScheme(const QColor &accentColor, bool dark) const
{
if (!accentColor.isValid() || accentColor.alpha() == 0) {
return false;
}
const QString sourcePath =
QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("color-schemes/%1.colors").arg(baseColorSchemeName(dark)));
if (sourcePath.isEmpty()) {
qWarning() << "Unable to locate base Shift color scheme for wallpaper generation:" << baseColorSchemeName(dark);
return false;
}
const QString outputDir = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/color-schemes");
if (!QDir().mkpath(outputDir)) {
qWarning() << "Unable to create dynamic color-scheme directory:" << outputDir;
return false;
}
const QString outputPath = outputDir + QStringLiteral("/%1.colors").arg(wallpaperColorSchemeName(dark));
QFile::remove(outputPath);
if (!QFile::copy(sourcePath, outputPath)) {
qWarning() << "Unable to create wallpaper-derived color scheme:" << outputPath;
return false;
}
auto generatedConfig = KSharedConfig::openConfig(outputPath, KConfig::SimpleConfig);
auto generalGroup = KConfigGroup{generatedConfig, QStringLiteral("General")};
generalGroup.writeEntry("ColorScheme", wallpaperColorSchemeName(dark));
generalGroup.writeEntry("Name", wallpaperColorSchemeDisplayName(dark));
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Button"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Complementary"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Header"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Header][Inactive"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Tooltip"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:View"), accentColor);
writeAccentEntries(generatedConfig, QStringLiteral("Colors:Window"), accentColor);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Button"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:View"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Window"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Header"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Header][Inactive"), accentColor, dark);
tintBackgroundEntries(generatedConfig, QStringLiteral("Colors:Tooltip"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Button"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:View"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Window"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Header"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Header][Inactive"), accentColor, dark);
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Tooltip"), accentColor, dark);
auto complementaryGroup = KConfigGroup{generatedConfig, QStringLiteral("Colors:Complementary")};
const QColor complementaryBase = complementaryGroup.readEntry("BackgroundNormal", dark ? QColor(24, 27, 38) : QColor(42, 46, 50));
complementaryGroup.writeEntry("BackgroundNormal", rgbString(blendColors(complementaryBase, accentColor, dark ? 0.18 : 0.14)));
complementaryGroup.writeEntry("BackgroundAlternate", rgbString(blendColors(complementaryBase, accentColor, dark ? 0.12 : 0.09)));
tuneForegroundEntries(generatedConfig, QStringLiteral("Colors:Complementary"), accentColor, dark);
auto selectionGroup = KConfigGroup{generatedConfig, QStringLiteral("Colors:Selection")};
const QColor selectionBackground = blendColors(accentColor, dark ? QColor(18, 20, 28) : QColor(255, 255, 255), dark ? 0.82 : 0.9);
const QColor selectionAlternate = blendColors(selectionBackground, dark ? QColor(0, 0, 0) : QColor(255, 255, 255), dark ? 0.16 : 0.24);
const QColor selectionForeground = ensureContrast(contrastingTextColor(selectionBackground), selectionBackground, MIN_NORMAL_CONTRAST);
const QColor selectionInactive =
ensureContrast(blendColors(selectionForeground, selectionBackground, dark ? 0.4 : 0.52), selectionBackground, MIN_INACTIVE_CONTRAST);
const QColor selectionLink = ensureContrast(blendColors(accentColor, selectionForeground, dark ? 0.3 : 0.2), selectionBackground, MIN_LINK_CONTRAST);
selectionGroup.writeEntry("BackgroundNormal", rgbString(selectionBackground));
selectionGroup.writeEntry("BackgroundAlternate", rgbString(selectionAlternate));
selectionGroup.writeEntry("DecorationFocus", rgbString(accentColor));
selectionGroup.writeEntry("DecorationHover", rgbString(accentColor));
selectionGroup.writeEntry("ForegroundActive", rgbString(selectionForeground));
selectionGroup.writeEntry("ForegroundNormal", rgbString(selectionForeground));
selectionGroup.writeEntry("ForegroundInactive", rgbString(selectionInactive));
selectionGroup.writeEntry("ForegroundLink", rgbString(selectionLink));
auto wmGroup = KConfigGroup{generatedConfig, QStringLiteral("WM")};
const QColor currentActiveBackground = wmGroup.readEntry("activeBackground", accentColor);
const QColor tintedActiveBackground = blendColors(currentActiveBackground, accentColor, dark ? 0.42 : 0.26);
const QColor currentInactiveBackground = wmGroup.readEntry("inactiveBackground", tintedActiveBackground);
const QColor tintedInactiveBackground = blendColors(currentInactiveBackground, accentColor, dark ? 0.24 : 0.14);
const QColor activeForeground = ensureContrast(contrastingTextColor(tintedActiveBackground), tintedActiveBackground, MIN_NORMAL_CONTRAST);
const QColor inactiveForeground = ensureContrast(blendColors(contrastingTextColor(tintedInactiveBackground), tintedInactiveBackground, dark ? 0.36 : 0.52),
tintedInactiveBackground,
MIN_INACTIVE_CONTRAST);
wmGroup.writeEntry("activeBackground", rgbString(tintedActiveBackground));
wmGroup.writeEntry("activeBlend", rgbString(activeForeground));
wmGroup.writeEntry("activeForeground", rgbString(activeForeground));
wmGroup.writeEntry("inactiveBackground", rgbString(tintedInactiveBackground));
wmGroup.writeEntry("inactiveBlend", rgbString(inactiveForeground));
wmGroup.writeEntry("inactiveForeground", rgbString(inactiveForeground));
generatedConfig->sync();
return true;
}
bool MobileShellSettings::autoHidePanelsEnabled() const
{
auto group = KConfigGroup{m_config, GENERAL_CONFIG_GROUP};

View file

@ -9,11 +9,9 @@
#include <KConfigGroup>
#include <KConfigWatcher>
#include <KSharedConfig>
#include <QColor>
#include <QDBusConnection>
#include <QObject>
#include <QStringList>
#include <QTimer>
#include <qqmlregistration.h>
/**
@ -52,14 +50,6 @@ class MobileShellSettings : public QObject
// convergence mode
Q_PROPERTY(bool convergenceModeEnabled READ convergenceModeEnabled WRITE setConvergenceModeEnabled NOTIFY convergenceModeEnabledChanged)
// theme
Q_PROPERTY(QString colorScheme READ colorScheme NOTIFY colorSchemeChanged)
Q_PROPERTY(bool darkThemeEnabled READ darkThemeEnabled WRITE setDarkThemeEnabled NOTIFY darkThemeEnabledChanged)
Q_PROPERTY(bool wallpaperThemeEnabled READ wallpaperThemeEnabled WRITE setWallpaperThemeEnabled NOTIFY wallpaperThemeEnabledChanged)
Q_PROPERTY(QColor wallpaperThemeColor READ wallpaperThemeColor NOTIFY wallpaperThemeColorChanged)
Q_PROPERTY(QColor accentColor READ accentColor WRITE setAccentColor NOTIFY accentColorChanged)
Q_PROPERTY(bool wallpaperAccentEnabled READ wallpaperAccentEnabled WRITE setWallpaperAccentEnabled NOTIFY wallpaperAccentEnabledChanged)
// Auto Hide Panels
Q_PROPERTY(bool autoHidePanelsEnabled READ autoHidePanelsEnabled WRITE setAutoHidePanelsEnabled NOTIFY autoHidePanelsEnabledChanged)
@ -284,19 +274,6 @@ public:
*/
void setConvergenceModeEnabled(bool enabled);
QString colorScheme() const;
bool darkThemeEnabled() const;
void setDarkThemeEnabled(bool enabled);
bool wallpaperThemeEnabled() const;
void setWallpaperThemeEnabled(bool enabled);
Q_INVOKABLE void applyWallpaperThemeColor(const QColor &color);
QColor wallpaperThemeColor() const;
QColor accentColor() const;
void setAccentColor(const QColor &color);
bool wallpaperAccentEnabled() const;
void setWallpaperAccentEnabled(bool enabled);
Q_INVOKABLE void resetAccentColor();
/**
* Whether Auto Hide Panels is enabled.
*/
@ -391,12 +368,6 @@ Q_SIGNALS:
void actionDrawerTopRightModeChanged();
void quickSettingsColumnsChanged();
void convergenceModeEnabledChanged();
void colorSchemeChanged();
void darkThemeEnabledChanged();
void wallpaperThemeEnabledChanged();
void wallpaperThemeColorChanged();
void accentColorChanged();
void wallpaperAccentEnabledChanged();
void autoHidePanelsEnabledChanged();
void gamingModeEnabledChanged();
void gamingDismissHintEnabledChanged();
@ -412,17 +383,7 @@ Q_SIGNALS:
private:
void updateNavigationBarsInPlasma();
QColor lastUsedCustomAccentColor() const;
void applyColorScheme(const QStringList &arguments);
QString effectiveColorSchemeName(bool dark) const;
bool isDarkColorScheme(const QString &schemeName) const;
bool ensureWallpaperColorScheme(const QColor &accentColor, bool dark) const;
KConfigWatcher::Ptr m_configWatcher;
KConfigWatcher::Ptr m_kdeGlobalsConfigWatcher;
KSharedConfig::Ptr m_config;
KSharedConfig::Ptr m_kdeGlobalsConfig;
QTimer m_wallpaperThemeTimer;
bool m_pendingWallpaperThemeDark = false;
QColor m_lastWallpaperThemeColor;
};

View file

@ -17,8 +17,6 @@ import 'private'
Item {
id: root
required property Folio.HomeScreen folio
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
property var homeScreen

View file

@ -147,7 +147,7 @@ MobileShell.GridView {
contentItem: Rectangle {
radius: width / 2
color: Qt.rgba(Kirigami.Theme.textColor.r, Kirigami.Theme.textColor.g, Kirigami.Theme.textColor.b, 0.3)
color: Qt.rgba(1, 1, 1, 0.3)
}
}
}

View file

@ -16,8 +16,9 @@ Item {
id: root
property Folio.HomeScreen folio
// The AppDrawer owns a Window colorset so mobile and convergence use the
// same Shift theme roles.
// Do not override the colorset: in mobile mode we inherit Complementary
// from the containment (wallpaper context, white text); in convergence mode
// the drawerOverlay Window gives us Window context (system-adaptive).
function addSearchText(text: string) {
searchField.text += text;

View file

@ -96,12 +96,13 @@ MouseArea {
property real pagerButtonWidth: showPager ? Math.min(root.height, Kirigami.Units.gridUnit * 2.5) : 0
property int pagerWheelDelta: 0
property bool pagerWheelLocked: false
readonly property int pagerLeftCount: showPager ? virtualDesktopInfo.numberOfDesktops : 0
readonly property int pagerLeftCount: showPager ? Math.ceil(virtualDesktopInfo.numberOfDesktops / 2) : 0
readonly property int pagerRightCount: showPager ? virtualDesktopInfo.numberOfDesktops - pagerLeftCount : 0
property real desktopButtonWidth: convergenceMode ? root.height : 0
property real trashButtonWidth: convergenceMode ? root.height : 0
property real searchButtonWidth: convergenceMode ? root.height : 0
readonly property real leftControlsWidth: convergenceMode ? navButtonWidth + desktopButtonWidth + pagerLeftCount * pagerButtonWidth : 0
readonly property real rightControlsWidth: convergenceMode ? navButtonWidth + searchButtonWidth + trashButtonWidth : 0
readonly property real rightControlsWidth: convergenceMode ? navButtonWidth + searchButtonWidth + trashButtonWidth + pagerRightCount * pagerButtonWidth : 0
readonly property real dockCenterX: convergenceMode
? leftControlsWidth + (root.width - leftControlsWidth - rightControlsWidth) / 2
: root.width / 2
@ -295,33 +296,16 @@ MouseArea {
if (x >= bx && x < bx + pagerButtonWidth)
return (ids && i < ids.length) ? String(ids[i]) : ""
}
for (let i = 0; i < pagerRightCount; ++i) {
let bx = root.width - navButtonWidth - root.searchButtonWidth - root.trashButtonWidth - (pagerRightCount - i) * pagerButtonWidth
if (x >= bx && x < bx + pagerButtonWidth) {
let di = pagerLeftCount + i
return (ids && di < ids.length) ? String(ids[di]) : ""
}
}
return ""
}
function focusFirstDockContent() {
let firstPager = leftPagerRepeater.itemAt(0)
if (firstPager) { firstPager.forceActiveFocus(); return }
root.focusAfterPager()
}
function focusAfterPager() {
let first = repeater.itemAt(0)
if (first) { first.keyboardFocus(); return }
let firstTask = taskRepeater.itemAt(0)
if (firstTask) { firstTask.forceActiveFocus(); return }
searchButton.forceActiveFocus()
}
function focusBeforeSearch() {
let lastTask = taskRepeater.itemAt(taskRepeater.count - 1)
if (lastTask) { lastTask.forceActiveFocus(); return }
let lastFav = repeater.itemAt(repeater.count - 1)
if (lastFav) { lastFav.keyboardFocus(); return }
let lastPager = leftPagerRepeater.itemAt(leftPagerRepeater.count - 1)
if (lastPager) { lastPager.forceActiveFocus(); return }
desktopButton.forceActiveFocus()
}
function runningTaskStorageId(taskModel) {
var id = taskModel ? taskModel.AppId || "" : ""
if (id && !id.endsWith(".desktop"))
@ -464,7 +448,13 @@ MouseArea {
Keys.onEnterPressed: desktopButton.toggleDesktop()
Keys.onSpacePressed: desktopButton.toggleDesktop()
Keys.onLeftPressed: homeButton.forceActiveFocus()
Keys.onRightPressed: root.focusFirstDockContent()
Keys.onRightPressed: {
let first = repeater.itemAt(0)
if (first) { first.keyboardFocus(); return }
let firstTask = taskRepeater.itemAt(0)
if (firstTask) { firstTask.forceActiveFocus(); return }
searchButton.forceActiveFocus()
}
KeyboardHighlight {
anchors.fill: parent
@ -571,7 +561,9 @@ MouseArea {
Keys.onReturnPressed: root.folio.triggerOverview()
Keys.onEnterPressed: root.folio.triggerOverview()
Keys.onSpacePressed: root.folio.triggerOverview()
Keys.onLeftPressed: searchButton.forceActiveFocus()
Keys.onLeftPressed: {
searchButton.forceActiveFocus()
}
KeyboardHighlight {
anchors.fill: parent
@ -630,7 +622,13 @@ MouseArea {
Keys.onReturnPressed: root.folio.HomeScreenState.openSearchWidget()
Keys.onEnterPressed: root.folio.HomeScreenState.openSearchWidget()
Keys.onSpacePressed: root.folio.HomeScreenState.openSearchWidget()
Keys.onLeftPressed: trashButton.forceActiveFocus()
Keys.onLeftPressed: {
let lastTask = taskRepeater.itemAt(taskRepeater.count - 1)
if (lastTask) { lastTask.forceActiveFocus(); return }
let lastFav = repeater.itemAt(repeater.count - 1)
if (lastFav) { lastFav.keyboardFocus(); return }
desktopButton.forceActiveFocus()
}
Keys.onRightPressed: overviewButton.forceActiveFocus()
KeyboardHighlight {
@ -686,7 +684,7 @@ MouseArea {
}
}
// ---- Virtual desktop pager: compact group next to the Desktop button ----
// ---- Virtual desktop pager: left wing (desktops 1 .. ceil(N/2)) ----
Repeater {
id: leftPagerRepeater
model: root.pagerLeftCount
@ -710,36 +708,6 @@ MouseArea {
y: 0
width: root.pagerButtonWidth
height: root.height
activeFocusOnTab: root.showPager
function activateDesktop() {
if (leftDesktopBtn.desktopId) {
root.folio.activateVirtualDesktop(leftDesktopBtn.desktopId)
}
}
Accessible.role: Accessible.Button
Accessible.name: root.pagerDesktopName(leftDesktopBtn.index)
Accessible.onPressAction: leftDesktopBtn.activateDesktop()
Keys.onReturnPressed: leftDesktopBtn.activateDesktop()
Keys.onEnterPressed: leftDesktopBtn.activateDesktop()
Keys.onSpacePressed: leftDesktopBtn.activateDesktop()
Keys.onLeftPressed: {
let previous = leftPagerRepeater.itemAt(index - 1)
if (previous) { previous.forceActiveFocus(); return }
desktopButton.forceActiveFocus()
}
Keys.onRightPressed: {
let next = leftPagerRepeater.itemAt(index + 1)
if (next) { next.forceActiveFocus(); return }
root.focusAfterPager()
}
KeyboardHighlight {
anchors.fill: parent
visible: leftDesktopBtn.activeFocus
}
MobileShell.MotionStateLayer {
anchors.fill: parent
@ -777,8 +745,8 @@ MouseArea {
root.hideDockToolTip(leftDesktopBtn)
if (mouse.button === Qt.RightButton) {
leftPagerContextMenu.open()
} else {
leftDesktopBtn.activateDesktop()
} else if (leftDesktopBtn.desktopId) {
root.folio.activateVirtualDesktop(leftDesktopBtn.desktopId)
}
}
onPressAndHold: {
@ -825,7 +793,117 @@ MouseArea {
}
}
// ---- Trash button (convergence mode, sits between Search and Overview) ----
// ---- Virtual desktop pager: right wing (desktops ceil(N/2)+1 .. N) ----
Repeater {
id: rightPagerRepeater
model: root.pagerRightCount
delegate: Item {
id: rightDesktopBtn
required property int index
readonly property int desktopIndex: root.pagerLeftCount + index
readonly property string desktopId: {
let ids = virtualDesktopInfo.desktopIds
return (ids && desktopIndex < ids.length) ? String(ids[desktopIndex]) : ""
}
readonly property bool isCurrent: desktopId !== "" && String(desktopId) === String(virtualDesktopInfo.currentDesktop)
readonly property bool isDragTarget: {
if (root.taskPinDragIndex < 0) return false
let cx = root.taskBaseX(root.taskPinDragIndex) + root.dockCellWidth / 2 + root.taskPinDragOffset
return root.pagerButtonDesktopAt(cx) === desktopId
}
x: root.width - root.navButtonWidth - root.searchButtonWidth - root.trashButtonWidth - (root.pagerRightCount - index) * root.pagerButtonWidth
y: 0
width: root.pagerButtonWidth
height: root.height
MobileShell.MotionStateLayer {
anchors.fill: parent
anchors.margins: root.dockItemInset
radius: Kirigami.Units.cornerRadius
hovered: rightPagerHover.containsMouse
pressed: rightPagerHover.containsPress
active: rightDesktopBtn.isCurrent || rightDesktopBtn.isDragTarget
pressedOpacity: 0.18
activeOpacity: 0.18
activeHoverOpacity: 0.25
}
PC3.Label {
anchors.centerIn: parent
text: (rightDesktopBtn.desktopIndex + 1).toString()
color: rightDesktopBtn.isCurrent ? Kirigami.Theme.highlightColor : Kirigami.Theme.textColor
font.pixelSize: Math.round(parent.height * 0.3)
font.bold: rightDesktopBtn.isCurrent
}
PC3.ToolTip {
visible: root.activeDockToolTipItem === rightDesktopBtn && rightPagerHover.containsMouse && !rightPagerHover.containsPress && !rightPagerContextMenu.opened
text: root.pagerDesktopName(rightDesktopBtn.desktopIndex)
}
MouseArea {
id: rightPagerHover
anchors.fill: parent
hoverEnabled: true
acceptedButtons: Qt.LeftButton | Qt.RightButton
cursorShape: Qt.PointingHandCursor
onWheel: (wheel) => root.handlePagerWheel(wheel)
onClicked: (mouse) => {
root.hideDockToolTip(rightDesktopBtn)
if (mouse.button === Qt.RightButton) {
rightPagerContextMenu.open()
} else if (rightDesktopBtn.desktopId) {
root.folio.activateVirtualDesktop(rightDesktopBtn.desktopId)
}
}
onPressAndHold: {
root.hideDockToolTip(rightDesktopBtn)
rightPagerContextMenu.open()
haptics.buttonVibrate()
}
onContainsMouseChanged: {
if (containsMouse) {
root.requestDockToolTip(rightDesktopBtn)
} else {
root.hideDockToolTip(rightDesktopBtn)
}
}
onPressedChanged: {
if (pressed) {
root.hideDockToolTip(rightDesktopBtn)
}
}
}
PC3.Menu {
id: rightPagerContextMenu
popupType: T.Popup.Window
PC3.MenuItem {
icon.name: "list-add"
text: i18n("Add Virtual Desktop")
onTriggered: root.folio.createVirtualDesktop()
}
PC3.MenuItem {
icon.name: "list-remove"
text: i18n("Remove Virtual Desktop")
enabled: virtualDesktopInfo.numberOfDesktops > 1
onTriggered: root.folio.removeLastVirtualDesktop()
}
Controls.MenuSeparator {}
PC3.MenuItem {
icon.name: "preferences-desktop-virtual"
text: i18n("Configure Virtual Desktops…")
onTriggered: MobileShell.ShellUtil.executeCommand("plasma-open-settings kcm_kwin_virtualdesktops")
}
}
}
}
// ---- Trash button (convergence mode, sits between the right pager wing and the Overview button) ----
// Watches ~/.local/share/Trash/files to detect empty/full state.
// FolderListModel reacts to directory changes automatically.
@ -882,8 +960,6 @@ MouseArea {
Keys.onReturnPressed: Qt.openUrlExternally("trash:/")
Keys.onEnterPressed: Qt.openUrlExternally("trash:/")
Keys.onSpacePressed: Qt.openUrlExternally("trash:/")
Keys.onLeftPressed: root.focusBeforeSearch()
Keys.onRightPressed: searchButton.forceActiveFocus()
KeyboardHighlight {
anchors.fill: parent

View file

@ -31,6 +31,7 @@ Item {
property real rightMargin: 0
property bool interactive: true
readonly property color favouritesBarScrimColor: Qt.rgba(Kirigami.Theme.highlightColor.r, Kirigami.Theme.highlightColor.g, Kirigami.Theme.highlightColor.b, 0.14)
// non-widget drop animation
readonly property bool dropAnimationRunning: delegateDragItem.dropAnimationRunning || widgetDragItem.dropAnimationRunning
@ -362,9 +363,7 @@ Item {
Rectangle {
id: favouritesBarScrim
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
color: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.38)
color: root.favouritesBarScrimColor
Component.onCompleted: maskManager.assignToMask(this)
@ -390,8 +389,6 @@ Item {
folio: root.folio
maskManager: root.maskManager
homeScreen: root
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
// don't show in settings mode
opacity: 1 - folio.HomeScreenState.settingsOpenProgress
@ -496,7 +493,6 @@ Item {
// don't show in settings mode
opacity: 1 - folio.HomeScreenState.settingsOpenProgress
visible: opacity > 0 && !ShellSettings.Settings.convergenceModeEnabled
anchors.top: parent.top
anchors.left: parent.left

View file

@ -246,12 +246,10 @@ ContainmentItem {
Rectangle {
id: appDrawerBackground
anchors.fill: parent
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
// Convergence: no scrim (popup has own background); mobile: dark scrim
color: ShellSettings.Settings.convergenceModeEnabled
? "transparent"
: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.46)
: Qt.rgba(0, 0, 0, 0.6)
opacity: folio.HomeScreenState.appDrawerOpenProgress
}
@ -259,9 +257,7 @@ ContainmentItem {
Rectangle {
id: searchWidgetBackground
anchors.fill: parent
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
color: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.30)
color: Qt.rgba(0, 0, 0, 0.3)
opacity: folio.HomeScreenState.searchWidgetOpenProgress
}
@ -269,9 +265,7 @@ ContainmentItem {
Rectangle {
id: settingsViewBackground
anchors.fill: parent
Kirigami.Theme.inherit: false
Kirigami.Theme.colorSet: Kirigami.Theme.Window
color: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.30)
color: Qt.rgba(0, 0, 0, 0.3)
opacity: folio.HomeScreenState.settingsOpenProgress
}

View file

@ -1,6 +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">
<polyline points="104 72 104 136 192 136 224 200 248 192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="104" cy="48" r="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,96H112a64,64,0,0,0,0,128c29.82,0,56.9-20.4,64-48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<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>

Before

Width:  |  Height:  |  Size: 674 B

After

Width:  |  Height:  |  Size: 834 B

View file

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

Before

Width:  |  Height:  |  Size: 503 B

After

Width:  |  Height:  |  Size: 503 B

View file

@ -1,6 +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="currentColor">
<rect x="88" y="24" width="80" height="144" rx="40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="200" x2="128" y2="240" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,128a72,72,0,0,1-144,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<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>

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 476 B

View file

@ -1,6 +1,8 @@
<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"/><polyline points="128 72 128 128 184 128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="128" cy="132" r="84" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="132" x2="128" y2="84" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="132" x2="168" y2="156" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 637 B

View file

@ -1 +0,0 @@
color-picker.svg

View file

@ -1 +0,0 @@
color.svg

View file

@ -1,6 +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">
<path d="M128,192a24,24,0,0,1,24-24h46.21a24,24,0,0,0,23.4-18.65A96.48,96.48,0,0,0,224,127.17c-.45-52.82-44.16-95.7-97-95.17a96,96,0,0,0-95,96c0,41.81,26.73,73.44,64,86.61A24,24,0,0,0,128,192Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="76" r="12"/><circle cx="84" cy="100" r="12"/><circle cx="84" cy="156" r="12"/><circle cx="172" cy="100" r="12"/>
<path d="M128,24a104,104,0,0,0,0,208h16a24,24,0,0,0,0-48h-8a16,16,0,0,1,0-32h24a72,72,0,0,0,0-144Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="84" cy="108" r="10"/>
<circle cx="116" cy="76" r="10"/>
<circle cx="160" cy="80" r="10"/>
<circle cx="184" cy="120" r="10"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 647 B

After

Width:  |  Height:  |  Size: 556 B

View file

@ -1,6 +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="88 136 112 160 168 104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="40 144 96 200 216 56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 495 B

After

Width:  |  Height:  |  Size: 359 B

View file

@ -1,6 +1,8 @@
<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">
<polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="56" x2="200" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M152,40H72A16,16,0,0,0,56,56V200a16,16,0,0,0,16,16H184a16,16,0,0,0,16-16V88Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="152 40 152 88 200 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M104,168l-8,32,32-8,66.34-66.34a16,16,0,0,0-22.63-22.63Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 695 B

After

Width:  |  Height:  |  Size: 715 B

View file

@ -1,6 +1,8 @@
<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="M216,83.31V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H172.69a8,8,0,0,1,5.65,2.34l35.32,35.32A8,8,0,0,1,216,83.31Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M80,216V152a8,8,0,0,1,8-8h80a8,8,0,0,1,8,8v64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="72" x2="96" y2="72" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M48,40H168l40,40V208a8,8,0,0,1-8,8H56a8,8,0,0,1-8-8Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="88 40 88 104 160 104 160 40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="88" y="152" width="80" height="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 748 B

After

Width:  |  Height:  |  Size: 675 B

View file

@ -1 +0,0 @@
../../preferences/scalable/preferences-desktop-color.svg

View file

@ -1,6 +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="currentColor">
<rect x="40" y="144" width="176" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="48" width="176" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="80" r="12"/><circle cx="180" cy="176" r="12"/>
<rect x="40" y="48" width="176" height="160" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="40" y1="160" x2="216" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="80" cy="184" r="8"/>
<line x1="112" y1="184" x2="176" y2="184" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 590 B

After

Width:  |  Height:  |  Size: 690 B

View file

@ -1,6 +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">
<path d="M216.89,208H39.38A7.4,7.4,0,0,1,32,200.62V80H216a8,8,0,0,1,8,8V200.89A7.11,7.11,0,0,1,216.89,208Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,80V56a8,8,0,0,1,8-8H92.69a8,8,0,0,1,5.65,2.34L128,80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M24,88V64A16,16,0,0,1,40,48h60.69a8,8,0,0,1,5.65,2.34l19.32,19.32A8,8,0,0,0,131.31,72H216a16,16,0,0,1,16,16V192a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="24" y1="96" x2="232" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 621 B

View file

@ -1,6 +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="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"/>
<circle cx="128" cy="128" r="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<ellipse cx="128" cy="128" rx="40" ry="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M56,88c18,13.33,44.85,20,72,20s54-6.67,72-20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M56,168c18-13.33,44.85-20,72-20s54,6.67,72,20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 951 B

View file

@ -1,6 +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="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"/>
<polyline points="96 48 176 128 96 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 503 B

After

Width:  |  Height:  |  Size: 360 B

View file

@ -1,6 +1,12 @@
<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="M64,76a52,52,0,0,1,104,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,224,42.68,174a20,20,0,0,1,34.64-20L96,184V76a20,20,0,0,1,40,0v56a20,20,0,0,1,40,0v16a20,20,0,0,1,40,0v36c0,24-8,40-8,40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M96,144V80a16,16,0,0,1,32,0v48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M128,128V96a16,16,0,0,1,32,0v40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M160,136v-24a16,16,0,0,1,32,0v48a56,56,0,0,1-56,56h-8a56,56,0,0,1-56-56v-16a16,16,0,0,1,32,0v8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="112" cy="48" r="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="112" y1="8" x2="112" y2="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="80" y1="20" x2="86" y2="26" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="144" y1="20" x2="138" y2="26" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1 +0,0 @@
dialog-information.svg

View file

@ -1 +0,0 @@
../../preferences/scalable/ktip.svg

View file

@ -1,6 +1,11 @@
<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="24" y="56" width="208" height="144" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="24" y="64" width="208" height="128" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="64" y1="104" x2="64.01" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<line x1="104" y1="104" x2="104.01" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<line x1="144" y1="104" x2="144.01" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<line x1="184" y1="104" x2="184.01" y2="104" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="20"/>
<line x1="72" y1="152" x2="184" y2="152" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,6 +1,8 @@
<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="56" y="24" width="144" height="208" rx="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="112" x2="200" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="80" y="24" width="96" height="208" rx="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="24" x2="128" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="80" y1="96" x2="176" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 655 B

After

Width:  |  Height:  |  Size: 652 B

View file

@ -1,6 +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"/><line x1="128" y1="40" x2="128" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="56" x2="128" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 502 B

View file

@ -1,6 +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="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 360 B

View file

@ -1,6 +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="M108.11,28.11A96.09,96.09,0,0,0,227.89,147.89,96,96,0,1,1,108.11,28.11Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="128" y1="40" x2="128" y2="32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="128" r="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="64" x2="56" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="64" y1="192" x2="56" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="64" x2="200" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="192" x2="200" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="128" x2="32" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="216" x2="128" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="216" y1="128" x2="224" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 402 B

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,6 +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">
<rect x="152" y="40" width="56" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="48" y="40" width="56" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="72" y="48" width="40" height="160" rx="8"/>
<rect x="144" y="48" width="40" height="160" rx="8"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 523 B

After

Width:  |  Height:  |  Size: 325 B

View file

@ -1,6 +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"/>
<circle cx="128" cy="128" r="72"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 253 B

View file

@ -1,6 +1,8 @@
<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="32" y="48" width="192" height="160" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="68" cy="84" r="12"/><circle cx="108" cy="84" r="12"/>
<g class="ColorScheme-Text" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="32" y="48" width="192" height="160" rx="8" fill="none"/>
<circle cx="68" cy="84" r="12" stroke="none"/>
<circle cx="108" cy="84" r="12" stroke="none"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 467 B

View file

@ -1,6 +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">
<path d="M208,208H48a16,16,0,0,1-16-16V80A16,16,0,0,1,48,64H80L96,40h64l16,24h32a16,16,0,0,1,16,16V192A16,16,0,0,1,208,208Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="132" r="36" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="88 48 48 48 48 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="168 48 208 48 208 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="208 168 208 208 168 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="88 208 48 208 48 168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="128" cy="128" r="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 578 B

After

Width:  |  Height:  |  Size: 916 B

View file

@ -1,6 +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">
<line x1="120" y1="160" x2="216" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56.44,160a73,73,0,0,1-.44-8,72.06,72.06,0,0,1,95-68.25" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M220.62,104.64a104.38,104.38,0,0,1,5.48,82,8,8,0,0,1-7.57,5.37H37.46a8.05,8.05,0,0,1-7.57-5.41A104.06,104.06,0,0,1,24,151.19C24.44,94,71.73,47.49,129,48a103.68,103.68,0,0,1,46.4,11.38" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M40 176a96 96 0 0 1 176 0"/>
<line x1="128" y1="176" x2="176" y2="112"/>
<line x1="72" y1="176" x2="184" y2="176"/>
<line x1="80" y1="112" x2="96" y2="128"/>
<line x1="128" y1="80" x2="128" y2="104"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 821 B

After

Width:  |  Height:  |  Size: 507 B

View file

@ -1,6 +1,8 @@
<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="32" y="48" width="192" height="160" rx="16" transform="translate(256) rotate(90)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="64" x2="208" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="48" y1="192" x2="208" y2="192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="48" y="32" width="160" height="192" rx="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="96" y1="64" x2="160" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="128" cy="184" r="10"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 691 B

After

Width:  |  Height:  |  Size: 547 B

View file

@ -1,6 +1,8 @@
<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="M128,192a24,24,0,0,1,24-24h46.21a24,24,0,0,0,23.4-18.65A96.48,96.48,0,0,0,224,127.17c-.45-52.82-44.16-95.7-97-95.17a96,96,0,0,0-95,96c0,41.81,26.73,73.44,64,86.61A24,24,0,0,0,128,192Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="128" cy="76" r="12"/><circle cx="84" cy="100" r="12"/><circle cx="84" cy="156" r="12"/><circle cx="172" cy="100" r="12"/>
<circle cx="100" cy="124" r="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M148,68a72,72,0,1,1-48,132c24,0,40-16,40-36s-16-32-32-32H92a24,24,0,0,1,0-48h16a40,40,0,0,0,40-16Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="172" cy="88" r="12"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 647 B

After

Width:  |  Height:  |  Size: 596 B

View file

@ -1,6 +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="currentColor">
<path d="M64,76a52,52,0,0,1,104,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,224,42.68,174a20,20,0,0,1,34.64-20L96,184V76a20,20,0,0,1,40,0v56a20,20,0,0,1,40,0v16a20,20,0,0,1,40,0v36c0,24-8,40-8,40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="40" y="56" width="176" height="120" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="88" y1="208" x2="168" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M120,112V88a12,12,0,0,1,24,0v32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M144,120V104a12,12,0,0,1,24,0v28a40,40,0,0,1-40,40h-4a40,40,0,0,1-40-40v-12a12,12,0,0,1,24,0v4" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 863 B

View file

@ -1,6 +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">
<line x1="216" y1="56" x2="40" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="104" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="152" y2="168" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g class="ColorScheme-Text" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="216" y1="56" x2="40" y2="56"/>
<line x1="104" y1="104" x2="104" y2="176"/>
<line x1="152" y1="104" x2="152" y2="176"/>
<path d="M200,56l-8,152a16,16,0,0,1-16,16H80a16,16,0,0,1-16-16L56,56" fill="none"/>
<path d="M96,56V40a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V56" fill="none"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 963 B

After

Width:  |  Height:  |  Size: 595 B

View file

@ -1,6 +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">
<circle cx="128" cy="96" r="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M32,216c19.37-33.47,54.55-56,96-56s76.63,22.53,96,56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="128" cy="88" r="40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M56,216c12.53-35.11,39-56,72-56s59.47,20.89,72,56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 512 B

View file

@ -1,6 +1,12 @@
<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="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="48" width="64" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="144" y1="144" x2="144" y2="176" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="144 208 176 208 176 144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="160" x2="208" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="208" y1="192" x2="208" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="40" y="40" width="56" height="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="160" y="40" width="56" height="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="40" y="160" width="56" height="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="136" y1="136" x2="136" y2="176" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="176" y1="136" x2="216" y2="136" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="176" y1="176" x2="176" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="136" y1="216" x2="216" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1,6 +1,14 @@
<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="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="88 128 104 120 104 184" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M138.14,128a16,16,0,1,1,26.64,17.63L136,184h32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<rect x="40" y="48" width="176" height="168" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="40" y1="96" x2="216" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="88" y1="32" x2="88" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="168" y1="32" x2="168" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="92" cy="136" r="8"/>
<circle cx="128" cy="136" r="8"/>
<circle cx="164" cy="136" r="8"/>
<circle cx="92" cy="172" r="8"/>
<circle cx="128" cy="172" r="8"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 960 B

View file

@ -1,6 +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="M34.1,61.38A8,8,0,0,1,40,48H216a8,8,0,0,1,5.92,13.38L152,136v58.65a8,8,0,0,1-3.56,6.66l-32,21.33A8,8,0,0,1,104,216V136Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<path d="M40,56H216l-72,80v56l-32,16V136Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 362 B

View file

@ -1,6 +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="160 48 208 48 208 96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 208 48 208 48 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 208 208 160 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 96 48 48 96 48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="64 24 64 192 232 192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="64" x2="64" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 64 192 64 192 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="192" x2="192" y2="232" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 780 B

View file

@ -1,6 +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="160 48 208 48 208 96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 208 48 208 48 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 208 208 160 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 96 48 48 96 48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<polyline points="64 24 64 192 232 192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="24" y1="64" x2="64" y2="64" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 64 192 64 192 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="192" x2="192" y2="232" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 780 B

View file

@ -1 +0,0 @@
preferences-system-windows-effect-eyeonscreen.svg

View file

@ -1 +0,0 @@
../../preferences/scalable/preferences-desktop-effects.svg

View file

@ -1,6 +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="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="56" y="56" width="144" height="144" rx="8"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 351 B

View file

@ -1,6 +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="40" y1="128" x2="216" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<line x1="64" y1="184" x2="192" y2="184"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 340 B

View file

@ -1,6 +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="M229.66,98.34a8,8,0,0,0,0-11.31L169,26.34a8,8,0,0,0-11.31,0L100.39,83.8S72.64,69.93,43,93.85a8,8,0,0,0-.65,11.91l107.9,107.89a8,8,0,0,0,12-.83c8.39-11.16,21.57-34.09,10.11-57Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96.29" y1="159.71" x2="48" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M96 32h64l-16 56 40 40-56 16-40 80-16-16 40-80-40-40 56-16Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 652 B

After

Width:  |  Height:  |  Size: 369 B

View file

@ -1,6 +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">
<polyline points="168 168 216 168 216 40 88 40 88 88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="88" width="128" height="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g class="ColorScheme-Text" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="64" y="80" width="112" height="112" rx="8"/>
<path d="M96 80V48h112v112h-32"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 519 B

After

Width:  |  Height:  |  Size: 385 B

View file

@ -1,6 +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="currentColor">
<line x1="80" y1="112" x2="144" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="112" y1="80" x2="112" y2="144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="112" cy="112" r="72" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="163" y1="163" x2="216" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="112" y1="80" x2="112" y2="144" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="80" y1="112" x2="144" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 779 B

View file

@ -1,6 +1,8 @@
<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="80" y1="112" x2="144" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<circle cx="112" cy="112" r="72" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="163" y1="163" x2="216" y2="216" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<line x1="80" y1="112" x2="144" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 642 B

After

Width:  |  Height:  |  Size: 637 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bef264" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<rect x="16" y="64" width="200" height="128" rx="16" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="96" x2="96" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="56" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="248" y1="96" x2="248" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="48" y="88" width="144" height="80" rx="16"/>
<line x1="208" y1="112" x2="208" y2="144"/>
<line x1="84" y1="112" x2="84" y2="144"/>
<line x1="120" y1="112" x2="120" y2="144"/>
<line x1="156" y1="112" x2="156" y2="144"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 853 B

After

Width:  |  Height:  |  Size: 560 B

View file

@ -1,7 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M120,120a8,8,0,0,1,8,8v40a8,8,0,0,0,8,8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="124" cy="84" r="12"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="128" cy="128" r="72"/>
<path d="M120 120h8v48h8"/>
<line x1="124" y1="88" x2="124" y2="88" stroke-width="24"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 454 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/>
<g style="color:#ffffff" 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 fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="88" cy="176" r="24"/>
<circle cx="176" cy="152" r="24"/>
<path d="M112 176V80l88-24v96"/>
<line x1="112" y1="104" x2="200" y2="80"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 865 B

After

Width:  |  Height:  |  Size: 477 B

View file

@ -1,7 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#15803d"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bbf7d0" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="164" cy="148" r="12"/><circle cx="92" cy="148" r="12"/><path d="M24,184V161.13C24,103.65,70.15,56.2,127.63,56A104,104,0,0,1,232,160v24a8,8,0,0,1-8,8H32A8,8,0,0,1,24,184Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="32" y1="48" x2="63.07" y2="79.07" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="224" y1="48" x2="193.1" y2="78.9" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M64 160v-24a64 64 0 0 1 128 0v24"/>
<rect x="56" y="128" width="144" height="64" rx="16"/>
<line x1="88" y1="88" x2="68" y2="60"/>
<line x1="168" y1="88" x2="188" y2="60"/>
<line x1="104" y1="160" x2="104" y2="160" stroke-width="24"/>
<line x1="152" y1="160" x2="152" y2="160" stroke-width="24"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 852 B

After

Width:  |  Height:  |  Size: 638 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#67e8f9" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor">
<rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="48" y="72" width="160" height="112" rx="16"/>
<line x1="80" y1="112" x2="176" y2="112"/>
<line x1="80" y1="144" x2="176" y2="144"/>
<line x1="104" y1="176" x2="152" y2="176"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 517 B

View file

@ -1,7 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="112" cy="112" r="56"/>
<line x1="152" y1="152" x2="200" y2="200"/>
<line x1="88" y1="112" x2="136" y2="112"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 453 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<line x1="160" y1="72" x2="160" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="112" x2="120" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="152" x2="80" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="40" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="84" cy="128" r="32"/>
<circle cx="172" cy="88" r="28"/>
<circle cx="172" cy="176" r="28"/>
<line x1="113" y1="115" x2="147" y2="100"/>
<line x1="113" y1="141" x2="147" y2="164"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 523 B

View file

@ -1,7 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<line x1="160" y1="72" x2="160" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="120" y1="112" x2="120" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="80" y1="152" x2="80" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="40" y1="192" x2="40" y2="200" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="72" y="48" width="112" height="64" rx="12"/>
<path d="M128 112v40"/>
<path d="M80 152h96v40"/>
<path d="M80 152v40"/>
<rect x="48" y="192" width="64" height="32" rx="8"/>
<rect x="144" y="192" width="64" height="32" rx="8"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 566 B

View file

@ -1,7 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="128" cy="128" r="32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M181.67,80a71.94,71.94,0,0,1,0,96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M74.33,176a71.94,71.94,0,0,1,0-96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M208,49.62a111.88,111.88,0,0,1,0,156.76" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M48,206.38A111.88,111.88,0,0,1,48,49.62" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M56 104a104 104 0 0 1 144 0"/>
<path d="M84 132a64 64 0 0 1 88 0"/>
<path d="M112 160a24 24 0 0 1 32 0"/>
<circle cx="128" cy="196" r="10" fill="#ffffff" stroke="none"/>
<line x1="184" y1="164" x2="184" y2="212"/>
<line x1="160" y1="188" x2="208" y2="188"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1,002 B

After

Width:  |  Height:  |  Size: 599 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#86efac" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="128" cy="204" r="12"/><path d="M232,93.19a164,164,0,0,0-208,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M200,129a116,116,0,0,0-144,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,165a68,68,0,0,0-80,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M48 104a112 112 0 0 1 160 0"/>
<path d="M80 136a68 68 0 0 1 96 0"/>
<path d="M112 168a24 24 0 0 1 32 0"/>
<circle cx="128" cy="200" r="10" fill="#ffffff" stroke="none"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 731 B

After

Width:  |  Height:  |  Size: 511 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="112" cy="112" r="56"/>
<line x1="152" y1="152" x2="200" y2="200"/>
<path d="M92 112h40"/>
<path d="M112 92v40"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 456 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#14b8a6" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor">
<polyline points="104 72 104 136 192 136 224 200 248 192" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="104" cy="48" r="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M168,96H112a64,64,0,0,0,0,128c29.82,0,56.9-20.4,64-48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="128" cy="68" r="16" fill="#ffffff" stroke="none"/>
<path d="M72 108c18.67-8 37.33-12 56-12s37.33 4 56 12"/>
<line x1="128" y1="96" x2="128" y2="196"/>
<line x1="128" y1="132" x2="88" y2="208"/>
<line x1="128" y1="132" x2="168" y2="208"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 735 B

After

Width:  |  Height:  |  Size: 582 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/>
<g style="color:#ffffff" 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 fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="56" y="56" width="56" height="56" rx="10"/>
<rect x="144" y="56" width="56" height="56" rx="10"/>
<rect x="56" y="144" width="56" height="56" rx="10"/>
<rect x="144" y="144" width="56" height="56" rx="10"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 885 B

After

Width:  |  Height:  |  Size: 548 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c4b5fd" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor">
<polyline points="160 48 208 48 208 96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="104" x2="208" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="96 208 48 208 48 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="152" x2="48" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="208 160 208 208 160 208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="152" y1="152" x2="208" y2="208" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><polyline points="48 96 48 48 96 48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="104" y1="104" x2="48" y2="48" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="64" y="72" width="112" height="112" rx="24"/>
<path d="M184 96h24"/>
<path d="M184 128h32"/>
<path d="M184 160h24"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 458 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="112" cy="112" r="56"/>
<line x1="152" y1="152" x2="200" y2="200"/>
<path d="M84 112h56"/>
<path d="M112 84v56"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 456 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#1d4ed8"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#93c5fd" fill-opacity="0.16"/>
<g style="color:#ffffff" 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 fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="64" y="64" width="48" height="48" rx="10"/>
<rect x="144" y="64" width="48" height="48" rx="10"/>
<rect x="64" y="144" width="48" height="48" rx="10"/>
<rect x="144" y="144" width="48" height="48" rx="10"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 885 B

After

Width:  |  Height:  |  Size: 548 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#1d4ed8"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#60a5fa" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor">
<rect x="32" y="48" width="192" height="144" rx="16" transform="translate(256 240) rotate(180)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="160" y1="224" x2="96" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="48" y="64" width="160" height="108" rx="16"/>
<line x1="96" y1="204" x2="160" y2="204"/>
<line x1="112" y1="172" x2="104" y2="204"/>
<line x1="144" y1="172" x2="152" y2="204"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 518 B

View file

@ -1,7 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#2563eb"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#bfdbfe" fill-opacity="0.2"/>
<g style="color:#ffffff" fill="currentColor">
<path d="M96,192a32,32,0,0,0,64,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,104a72,72,0,0,1,144,0c0,35.82,8.3,64.6,14.9,76A8,8,0,0,1,208,192H48a8,8,0,0,1-6.88-12C47.71,168.6,56,139.81,56,104Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M64 80h128a16 16 0 0 1 16 16v64a16 16 0 0 1-16 16h-48l-40 32v-32H64a16 16 0 0 1-16-16V96a16 16 0 0 1 16-16Z"/>
<line x1="92" y1="120" x2="164" y2="120"/>
<line x1="92" y1="148" x2="140" y2="148"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 645 B

After

Width:  |  Height:  |  Size: 537 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="128" cy="128" r="12"/><circle cx="196" cy="128" r="12"/><circle cx="60" cy="128" r="12"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M80 48h72l40 40v120H80Z"/>
<path d="M152 48v40h40"/>
<line x1="104" y1="128" x2="152" y2="128"/>
<line x1="104" y1="160" x2="176" y2="160"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 482 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#db2777"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#fbcfe8" fill-opacity="0.18"/>
<g style="color:#ffffff" 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 fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M72 184 120 64h16l48 120"/>
<line x1="96" y1="136" x2="160" y2="136"/>
<line x1="192" y1="64" x2="192" y2="112"/>
<line x1="168" y1="88" x2="216" y2="88"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 497 B

View file

@ -1,7 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#be123c"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#fda4af" fill-opacity="0.16"/>
<g style="color:#ffffff" fill="currentColor">
<polygon points="128 160 96 160 96 128 192 32 224 64 128 160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168" y1="56" x2="200" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M216,128v80a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="#ffffff">
<path d="M73 184 119 68h18l46 116h-20l-11-30H104l-11 30zm38-48h34l-17-46z"/>
<path d="M163 180c-13 0-23-8-23-20 0-14 13-21 32-21h12v-3c0-10-6-16-18-16-8 0-15 3-22 8l-8-13c9-7 20-11 33-11 22 0 35 12 35 32v48h-18l-1-9c-5 4-12 5-22 5zm6-15c9 0 15-4 15-11v-3h-10c-10 0-15 3-15 9 0 4 4 5 10 5z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 756 B

After

Width:  |  Height:  |  Size: 545 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/>
<g style="color:#ffffff" 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 fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M80 88h96a48 48 0 0 1 46 62l-12 40a20 20 0 0 1-34 8l-28-30h-40l-28 30a20 20 0 0 1-34-8l-12-40a48 48 0 0 1 46-62Z"/>
<line x1="80" y1="128" x2="112" y2="128"/>
<line x1="96" y1="112" x2="96" y2="144"/>
<line x1="160" y1="124" x2="160" y2="124" stroke-width="24"/>
<line x1="188" y1="140" x2="188" y2="140" stroke-width="24"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 666 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0f766e"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#67e8f9" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<path d="M64,76a52,52,0,0,1,104,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M72,224,42.68,174a20,20,0,0,1,34.64-20L96,184V76a20,20,0,0,1,40,0v56a20,20,0,0,1,40,0v16a20,20,0,0,1,40,0v36c0,24-8,40-8,40" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M96 144V80a16 16 0 0 1 32 0v48"/>
<path d="M128 128V96a16 16 0 0 1 32 0v40"/>
<path d="M160 136v-24a16 16 0 0 1 32 0v48a56 56 0 0 1-56 56h-8a56 56 0 0 1-56-56v-16a16 16 0 0 1 32 0v8"/>
<circle cx="112" cy="48" r="16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 650 B

After

Width:  |  Height:  |  Size: 560 B

View file

@ -1,7 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#334155"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#94a3b8" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<rect x="24" y="56" width="208" height="144" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="128" x2="200" y2="128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="96" x2="200" y2="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="160" x2="64" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="96" y1="160" x2="160" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="192" y1="160" x2="200" y2="160" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="36" y="76" width="184" height="112" rx="20"/>
<line x1="76" y1="112" x2="76.01" y2="112" stroke-width="20"/>
<line x1="112" y1="112" x2="112.01" y2="112" stroke-width="20"/>
<line x1="148" y1="112" x2="148.01" y2="112" stroke-width="20"/>
<line x1="184" y1="112" x2="184.01" y2="112" stroke-width="20"/>
<line x1="88" y1="152" x2="168" y2="152"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 688 B

View file

@ -1,7 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#0369a1"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#7dd3fc" fill-opacity="0.14"/>
<g style="color:#ffffff" 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 fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="14">
<circle cx="128" cy="128" r="72"/>
<ellipse cx="128" cy="128" rx="32" ry="72"/>
<line x1="56" y1="128" x2="200" y2="128"/>
<path d="M72 92c14 10 35 16 56 16s42-6 56-16"/>
<path d="M72 164c14-10 35-16 56-16s42 6 56 16"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 883 B

After

Width:  |  Height:  |  Size: 552 B

View file

@ -1,7 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#475569"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#cbd5e1" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<rect x="56" y="24" width="144" height="208" rx="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="128" y1="112" x2="128" y2="24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="56" y1="112" x2="200" y2="112" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="80" y="44" width="96" height="168" rx="48"/>
<line x1="128" y1="44" x2="128" y2="96"/>
<line x1="80" y1="104" x2="176" y2="104"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 471 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#7c3aed"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#ddd6fe" fill-opacity="0.18"/>
<g style="color:#ffffff" fill="currentColor">
<path d="M96,192a32,32,0,0,0,64,0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M56,104a72,72,0,0,1,144,0c0,35.82,8.3,64.6,14.9,76A8,8,0,0,1,208,192H48a8,8,0,0,1-6.88-12C47.71,168.6,56,139.81,56,104Z" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<path d="M64 184h128"/>
<path d="M88 184V112a40 40 0 0 1 80 0v72"/>
<path d="M112 208a24 24 0 0 0 32 0"/>
<path d="M128 56V40"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 646 B

After

Width:  |  Height:  |  Size: 461 B

View file

@ -1,7 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#475569"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#cbd5e1" fill-opacity="0.14"/>
<g style="color:#ffffff" fill="currentColor">
<rect x="40" y="144" width="176" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><rect x="40" y="48" width="176" height="64" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><circle cx="180" cy="80" r="12"/><circle cx="180" cy="176" r="12"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<rect x="52" y="84" width="88" height="88" rx="16"/>
<rect x="160" y="64" width="44" height="128" rx="22"/>
<line x1="182" y1="64" x2="182" y2="104"/>
<line x1="76" y1="200" x2="116" y2="200"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 526 B

View file

@ -1,7 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c7d2fe" fill-opacity="0.18"/>
<g style="color:#ffffff" 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 fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="128" cy="128" r="40"/>
<path d="M128 48v24"/>
<path d="M128 184v24"/>
<path d="M48 128h24"/>
<path d="M184 128h24"/>
<path d="M72 72l17 17"/>
<path d="M167 167l17 17"/>
<path d="M184 72l-17 17"/>
<path d="M89 167l-17 17"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 567 B

View file

@ -1,7 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<rect x="24" y="24" width="208" height="208" rx="56" fill="#4f46e5"/>
<rect x="40" y="40" width="176" height="176" rx="44" fill="#c4b5fd" fill-opacity="0.15"/>
<g style="color:#ffffff" fill="currentColor">
<circle cx="112" cy="112" r="80" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/>
<g fill="none" stroke="#ffffff" stroke-linecap="round" stroke-linejoin="round" stroke-width="16">
<circle cx="112" cy="112" r="52"/>
<line x1="152" y1="152" x2="196" y2="196"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 562 B

After

Width:  |  Height:  |  Size: 411 B

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