Advance Wayland and KDE package bring-up

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
2026-04-14 10:51:06 +01:00
parent 51f3c21121
commit cf12defd28
15214 changed files with 20594243 additions and 269 deletions
@@ -0,0 +1 @@
build
@@ -0,0 +1,16 @@
# SPDX-FileCopyrightText: None
# SPDX-License-Identifier: CC0-1.0
cmake_minimum_required(VERSION 3.20)
project(quick-script)
set(KF6_MIN_VERSION "6.0.0")
find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS
Package
)
kpackage_install_package(package quick-script scripts kwin)
@@ -0,0 +1,94 @@
/*
SPDX-FileCopyrightText: 2024 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
SPDX-License-Identifier: MIT
*/
import QtQuick
import QtQuick.Window
import org.kde.kirigami as Kirigami
import org.kde.kwin as KWinComponents
Window {
id: root
readonly property int thumbnailWidth: Kirigami.Units.gridUnit * 10
readonly property int thumbnailHeight: Kirigami.Units.gridUnit * 10
readonly property bool _q_showWithoutActivating: true
color: "transparent"
flags: Qt.BypassWindowManagerHint | Qt.FramelessWindowHint
visible: listModel.count > 0
width: thumbnailWidth
height: Math.min(listModel.count * thumbnailHeight, Screen.height)
x: (Screen.virtualX + Screen.width) - width
y: Screen.virtualY + 0.5 * (Screen.height - height)
ListView {
id: listView
anchors.fill: parent
model: listModel
opacity: 0.5
delegate: KWinComponents.WindowThumbnail {
client: model.window
width: thumbnailWidth
height: thumbnailHeight
TapHandler {
onTapped: KWinComponents.Workspace.activeWindow = client;
}
}
transform: Rotation {
axis {
x: 0
y: 1
z: 0
}
origin {
x: width
y: height / 2
}
angle: -30
}
}
ListModel {
id: listModel
}
function toggle() {
const window = KWinComponents.Workspace.activeWindow;
if (!window) {
return;
}
for (let i = 0; i < listModel.count; ++i) {
if (listModel.get(i)["window"] == window) {
listModel.remove(i);
return;
}
}
listModel.append({"window": window});
}
function remove(window) {
for (let i = 0; i < listModel.count; ++i) {
const item = listModel.get(i);
if (item["window"] == window) {
listModel.remove(i);
}
}
}
KWinComponents.ShortcutHandler {
name: "Toggle Current Thumbnail"
text: "Toggle Current Thumbnail"
sequence: "Meta+Ctrl+T"
onActivated: toggle()
}
Component.onCompleted: {
KWinComponents.Workspace.windowRemoved.connect(remove);
}
}
@@ -0,0 +1,18 @@
{
"KPackageStructure": "KWin/Script",
"KPlugin": {
"Authors": [
{
"Email": "user@example.com",
"Name": "Your Name"
}
],
"Description": "An example QtQuick script",
"EnabledByDefault": false,
"Icon": "preferences-system-windows-script-test",
"Id": "quick-script",
"License": "MIT",
"Name": "Quick Script"
},
"X-Plasma-API": "declarativescript"
}
@@ -0,0 +1,2 @@
SPDX-FileCopyrightText: None
SPDX-License-Identifier: CC0-1.0