plasmoides KDE Store/GitHub (gnome-pager, kMenu, kvitals, windowtitle, claude, launchpad)

This commit is contained in:
Josevi
2026-07-08 20:47:59 +02:00
parent ca606377ee
commit dd3b0f6ae8
136 changed files with 20239 additions and 0 deletions
@@ -0,0 +1,23 @@
/*
* Plasma Gnome Pager — config.qml
*
* SPDX-FileCopyrightText: 2026 Kenan Salar
* SPDX-License-Identifier: GPL-3.0-or-later
*
* The settings dialog's category list. ConfigCategory.source resolves relative to contents/ui/, so the
* pages live in contents/ui/config/ while this file + main.xml live in contents/config/ (plasmoid.md).
*/
import org.kde.plasma.configuration
ConfigModel {
ConfigCategory {
name: i18n("Behavior")
icon: "preferences-system-windows-actions"
source: "config/ConfigGeneral.qml"
}
ConfigCategory {
name: i18n("Appearance")
icon: "preferences-desktop-color"
source: "config/ConfigAppearance.qml"
}
}
@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Plasma Gnome Pager — configuration schema (KConfigXT)
SPDX-FileCopyrightText: 2026 Kenan Salar
SPDX-License-Identifier: GPL-3.0-or-later
Each <entry name="X"> becomes plasmoid.configuration.X, read live in main.qml (with a `?? <default>`
guard) and passed down as a plain value. Three keys use a `0 = auto` sentinel — their natural default is
theme/HiDPI-derived, which a fixed KConfigXT literal can't hold, so it's resolved in the widget: dotSize,
pillSize (→ match the dots), animationDuration (→ Kirigami.Units.longDuration). See CLAUDE.md "Config flow".
-->
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfgfile name=""/>
<group name="General">
<!-- Scroll over the strip to switch desktops. -->
<entry name="enableScroll" type="Bool">
<default>true</default>
</entry>
<!-- When scrolling past the first/last desktop, wrap around (else clamp). -->
<entry name="scrollWrap" type="Bool">
<default>false</default>
</entry>
<!-- Invert the scroll direction (wheel up → next desktop instead of previous). -->
<entry name="invertScroll" type="Bool">
<default>false</default>
</entry>
<!-- What clicking the ALREADY-CURRENT desktop does. Index mirrors Logic.PILL_CLICK_ACTION + the combo
order: 0 = None, 1 = Show Desktop, 2 = Overview, 3 = Grid. Clicking an inactive dot still switches. -->
<entry name="pillClickAction" type="Int">
<default>0</default>
</entry>
<!-- Show the desktop name in a tooltip on hover. -->
<entry name="showTooltips" type="Bool">
<default>true</default>
</entry>
<!-- Also list the windows open on a desktop in its tooltip (needs showTooltips). -->
<entry name="showWindowList" type="Bool">
<default>true</default>
</entry>
<!-- Offer Add/Remove desktop entries in the right-click menu. -->
<entry name="enableAddRemove" type="Bool">
<default>true</default>
</entry>
<!-- Offer a "Rename Current Desktop…" entry in the right-click menu. -->
<entry name="enableRename" type="Bool">
<default>true</default>
</entry>
<!-- GNOME-style dynamic workspaces: auto-keep exactly one empty trailing desktop. -->
<entry name="dynamicWorkspaces" type="Bool">
<default>false</default>
</entry>
<!-- Base name for auto-created desktops ("<prefix> N"); empty = the localized default "Desktop". -->
<entry name="dynamicNamePrefix" type="String">
<default></default>
</entry>
<!-- Morph animation length in ms; 0 = follow the theme (Kirigami.Units.longDuration). -->
<entry name="animationDuration" type="Int">
<default>0</default>
</entry>
</group>
<group name="Appearance">
<!-- Overall pager look. Index mirrors Logic.DOT_STYLE + the combo order:
0 = Sliding pill (GNOME reflow), 1 = Filled & ring (no pill; current = filled dot, others = hollow rings). -->
<entry name="dotStyle" type="Int">
<default>0</default>
</entry>
<!-- Ignore KWin's virtual-desktop grid rows and lay every desktop out in ONE line. Off = honour the grid
(mirror "Rows" from System Settings). Orthogonal to matchDesktopGrid (which sets the direction): single
line alone is a vertical strip on a vertical panel; single line + matchDesktopGrid is one horizontal row. -->
<entry name="singleLine" type="Bool">
<default>false</default>
</entry>
<!-- Vertical panels: run the layout ACROSS the panel instead of down it — for a multi-row grid this mirrors
KWin's orientation (rows top-to-bottom); with singleLine it makes the one line horizontal. Off = the
GNOME-reflow look (run down the panel). No effect on a horizontal panel (already runs across). -->
<entry name="matchDesktopGrid" type="Bool">
<default>false</default>
</entry>
<!-- Inactive-dot diameter in px; 0 = auto (Kirigami.Units.iconSizes.small / 2, HiDPI-aware). -->
<entry name="dotSize" type="Int">
<default>0</default>
</entry>
<!-- Active-pill thickness in px; 0 = auto (match the dot size). Sized independently of the dots. -->
<entry name="pillSize" type="Int">
<default>0</default>
</entry>
<!-- Uniform gap between elements, as a multiple of the dot size (GNOME-tight at 0.5). -->
<entry name="spacingFactor" type="Double">
<default>0.5</default>
</entry>
<!-- Active-capsule length, as a multiple of the pill thickness (its aspect ratio). -->
<entry name="pillWidthFactor" type="Double">
<default>3.5</default>
</entry>
<!-- Opacity of an inactive (dim) dot. -->
<entry name="inactiveOpacity" type="Double">
<default>0.45</default>
</entry>
<!-- Opacity an inactive dot brightens to on hover. -->
<entry name="hoverOpacity" type="Double">
<default>0.8</default>
</entry>
<!-- Brighten the dots of desktops that hold windows (occupied), so they stand out from empty ones. -->
<entry name="showOccupancy" type="Bool">
<default>false</default>
</entry>
<!-- Opacity of the occupied marker (every occupancyStyle uses it; only when showOccupancy is on). -->
<entry name="occupiedOpacity" type="Double">
<default>0.7</default>
</entry>
<!-- How an occupied dot is marked (showOccupancy on). Index mirrors Logic.OCCUPANCY + the combo order:
0 = Filled (whole dot), 1 = Inner dot, 2 = Hollow ring. All use occupiedOpacity + the occupied colour. -->
<entry name="occupancyStyle" type="Int">
<default>0</default>
</entry>
<!-- Follow the color scheme; when false, use activeColor / inactiveColor / occupiedColor below. -->
<entry name="followThemeColors" type="Bool">
<default>true</default>
</entry>
<!-- Custom active-capsule colour (used only when followThemeColors is false). -->
<entry name="activeColor" type="Color">
<default>#3daee9</default>
</entry>
<!-- Custom inactive-dot colour (used only when followThemeColors is false). -->
<entry name="inactiveColor" type="Color">
<default>#eff0f1</default>
</entry>
<!-- Custom occupied-marker colour (used only when followThemeColors is false; else the theme accent). -->
<entry name="occupiedColor" type="Color">
<default>#3daee9</default>
</entry>
</group>
</kcfg>