diff --git a/0001-modify-ukui-kwin-complie-error.patch b/0001-modify-ukui-kwin-complie-error.patch new file mode 100644 index 0000000..5aa36ca --- /dev/null +++ b/0001-modify-ukui-kwin-complie-error.patch @@ -0,0 +1,390 @@ +From 705506f719d74af737f8bfcda6d3771aff4ad6e9 Mon Sep 17 00:00:00 2001 +From: pei-jiankang +Date: Fri, 11 Feb 2022 12:03:48 +0800 +Subject: [PATCH] modify ukui-kwin compile error + +--- + decorations/decoratedclient.cpp | 5 +- + decorations/decoratedclient.h | 2 +- + decorations/decorationbridge.cpp | 11 +--- + decorations/decorationbridge.h | 2 +- + effects.cpp | 5 +- + .../declarative-plugin/previewbridge.cpp | 61 +++++++++++-------- + .../declarative-plugin/previewbridge.h | 4 +- + .../declarative-plugin/previewclient.cpp | 3 +- + .../declarative-plugin/previewclient.h | 2 +- + .../platforms/x11/common/eglonxbackend.cpp | 1 + + plugins/platforms/x11/common/eglonxbackend.h | 3 + + .../platforms/x11/standalone/x11_platform.h | 1 + + .../x11/windowed/x11windowed_backend.cpp | 2 +- + po/tr/{kwin.po => ukui-kwin.po} | 0 + workspace.cpp | 2 +- + 15 files changed, 55 insertions(+), 49 deletions(-) + rename po/tr/{kwin.po => ukui-kwin.po} (100%) + +diff --git a/decorations/decoratedclient.cpp b/decorations/decoratedclient.cpp +index 6e150d8..a708d3c 100644 +--- a/decorations/decoratedclient.cpp ++++ b/decorations/decoratedclient.cpp +@@ -238,10 +238,9 @@ void DecoratedClientImpl::requestHideToolTip() + m_toolTipShowing = false; + } + +-void DecoratedClientImpl::requestShowWindowMenu() ++void DecoratedClientImpl::requestShowWindowMenu(const QRect &rect) + { +- // TODO: add rect to requestShowWindowMenu +- Workspace::self()->showWindowMenu(QRect(Cursor::pos(), Cursor::pos()), m_client); ++ Workspace::self()->showWindowMenu(QRect(m_client->pos() + rect.topLeft(), m_client->pos() + rect.bottomRight()), m_client); + } + + void DecoratedClientImpl::requestShowApplicationMenu(const QRect &rect, int actionId) +diff --git a/decorations/decoratedclient.h b/decorations/decoratedclient.h +index 576b62c..1675751 100644 +--- a/decorations/decoratedclient.h ++++ b/decorations/decoratedclient.h +@@ -81,7 +81,7 @@ public: + void requestContextHelp() override; + void requestToggleMaximization(Qt::MouseButtons buttons) override; + void requestMinimize() override; +- void requestShowWindowMenu() override; ++ void requestShowWindowMenu(const QRect &rect) override; + void requestShowApplicationMenu(const QRect &rect, int actionId) override; + void requestToggleKeepAbove() override; + void requestToggleKeepBelow() override; +diff --git a/decorations/decorationbridge.cpp b/decorations/decorationbridge.cpp +index fc0265a..0abe08d 100644 +--- a/decorations/decorationbridge.cpp ++++ b/decorations/decorationbridge.cpp +@@ -45,6 +45,7 @@ along with this program. If not, see . + #include + + // Frameworks ++#include + #include + #include + +@@ -339,16 +340,6 @@ std::unique_ptr DecorationBridge::setti + return std::unique_ptr(new SettingsImpl(parent)); + } + +-void DecorationBridge::update(KDecoration2::Decoration *decoration, const QRect &geometry) +-{ +- // TODO: remove check once all compositors implement it +- if (AbstractClient *c = Workspace::self()->findAbstractClient([decoration] (const AbstractClient *client) { return client->decoration() == decoration; })) { +- if (Renderer *renderer = c->decoratedClient()->renderer()) { +- renderer->schedule(geometry); +- } +- } +-} +- + KDecoration2::Decoration *DecorationBridge::createDecoration(AbstractClient *client) + { + if (m_noPlugin) { +diff --git a/decorations/decorationbridge.h b/decorations/decorationbridge.h +index 6f51a3f..6f2b1ed 100644 +--- a/decorations/decorationbridge.h ++++ b/decorations/decorationbridge.h +@@ -56,12 +56,12 @@ class UKUI_KWIN_EXPORT DecorationBridge : public KDecoration2::DecorationBridge + public: + ~DecorationBridge() override; + ++ + void init(); + KDecoration2::Decoration *createDecoration(AbstractClient *client); + + std::unique_ptr createClient(KDecoration2::DecoratedClient *client, KDecoration2::Decoration *decoration) override; + std::unique_ptr settings(KDecoration2::DecorationSettings *parent) override; +- void update(KDecoration2::Decoration *decoration, const QRect &geometry) override; + + bool needsBlur() const { + return m_blur; +diff --git a/effects.cpp b/effects.cpp +index 9f765aa..86b1638 100644 +--- a/effects.cpp ++++ b/effects.cpp +@@ -49,7 +49,8 @@ along with this program. If not, see . + #include "kwineffectquickview.h" + + #include +- ++#include ++#include + #include + + #include "composite.h" +@@ -86,7 +87,7 @@ static QByteArray readWindowProperty(xcb_window_t win, xcb_atom_t atom, xcb_atom + } + } + +-static void deleteWindowProperty(Window win, long int atom) ++static void deleteWindowProperty(xcb_window_t win, long int atom) + { + if (win == XCB_WINDOW_NONE) { + return; +diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp +index 41fe317..68962ef 100644 +--- a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp ++++ b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.cpp +@@ -34,7 +34,7 @@ + #include + #include + #include +-#include ++#include + + #include + #include +@@ -42,7 +42,11 @@ + #include + #include + #include ++#include ++#include ++#include + #include ++#include + + namespace KDecoration2 + { +@@ -69,17 +73,6 @@ std::unique_ptr PreviewBridge::createClient(DecoratedCli + return ptr; + } + +-void PreviewBridge::update(Decoration *decoration, const QRect &geometry) +-{ +- Q_UNUSED(geometry) +- auto it = std::find_if(m_previewItems.constBegin(), m_previewItems.constEnd(), [decoration](PreviewItem *item) { +- return item->decoration() == decoration; +- }); +- if (it != m_previewItems.constEnd()) { +- (*it)->update(); +- } +-} +- + std::unique_ptr PreviewBridge::settings(DecorationSettings *parent) + { + auto ptr = std::unique_ptr(new PreviewSettings(parent)); +@@ -135,11 +128,11 @@ void PreviewBridge::createFactory() + return; + } + +- const auto offers = KPluginTrader::self()->query(s_pluginName, s_pluginName); +- auto item = std::find_if(offers.constBegin(), offers.constEnd(), [this](const auto &plugin) { return plugin.pluginName() == m_plugin; }); ++ const auto offers = KPluginLoader::findPlugins(s_pluginName); ++ auto item = std::find_if(offers.constBegin(), offers.constEnd(), [this](const auto &plugin) { return plugin.pluginId() == m_plugin; }); + if (item != offers.constEnd()) { +- KPluginLoader loader(item->libraryPath()); +- m_factory = loader.factory(); ++ KPluginLoader loader(item->fileName()); ++ m_factory = loader.factory(); + } + + setValid(!m_factory.isNull()); +@@ -179,15 +172,16 @@ DecorationButton *PreviewBridge::createButton(KDecoration2::Decoration *decorati + return m_factory->create(QStringLiteral("button"), parent, QVariantList({QVariant::fromValue(type), QVariant::fromValue(decoration)})); + } + +-void PreviewBridge::configure() ++void PreviewBridge::configure(QQuickItem *ctx) + { + if (!m_valid) { + return; + } + //setup the UI +- QDialog dialog; ++ QDialog *dialog = new QDialog(); ++ dialog->setAttribute(Qt::WA_DeleteOnClose); + if (m_lastCreatedClient) { +- dialog.setWindowTitle(m_lastCreatedClient->caption()); ++ dialog->setWindowTitle(m_lastCreatedClient->caption()); + } + + // create the KCModule through the plugintrader +@@ -195,7 +189,15 @@ void PreviewBridge::configure() + if (!m_theme.isNull()) { + args.insert(QStringLiteral("theme"), m_theme); + } +- KCModule *kcm = m_factory->create(QStringLiteral("kcmodule"), &dialog, QVariantList({args})); ++ ++ KCModule *kcm = nullptr; ++ ++ kcm = m_factory->create(dialog, QVariantList({args})); ++ ++ if (!kcm) { ++ kcm = m_factory->create(QStringLiteral("kcmodule"), dialog, QVariantList({args})); ++ } ++ + if (!kcm) { + return; + } +@@ -211,28 +213,35 @@ void PreviewBridge::configure() + QStringLiteral("reloadConfig")); + QDBusConnection::sessionBus().send(message); + }; +- connect(&dialog, &QDialog::accepted, this, save); ++ connect(dialog, &QDialog::accepted, this, save); + + QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | + QDialogButtonBox::Cancel | + QDialogButtonBox::RestoreDefaults | + QDialogButtonBox::Reset, +- &dialog); ++ dialog); + + QPushButton *reset = buttons->button(QDialogButtonBox::Reset); + reset->setEnabled(false); + // Here we connect our buttons with the dialog +- connect(buttons, &QDialogButtonBox::accepted, &dialog, &QDialog::accept); +- connect(buttons, &QDialogButtonBox::rejected, &dialog, &QDialog::reject); ++ connect(buttons, &QDialogButtonBox::accepted, dialog, &QDialog::accept); ++ connect(buttons, &QDialogButtonBox::rejected, dialog, &QDialog::reject); + connect(reset, &QPushButton::clicked, kcm, &KCModule::load); + auto changedSignal = static_cast(&KCModule::changed); + connect(kcm, changedSignal, reset, &QPushButton::setEnabled); + connect(buttons->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked, kcm, &KCModule::defaults); + +- QVBoxLayout *layout = new QVBoxLayout(&dialog); ++ QVBoxLayout *layout = new QVBoxLayout(dialog); + layout->addWidget(kcm); + layout->addWidget(buttons); +- dialog.exec(); ++ ++ if (ctx->window()) { ++ dialog->winId(); // so it creates windowHandle ++ dialog->windowHandle()->setTransientParent(QQuickRenderControl::renderWindowFor(ctx->window())); ++ dialog->setModal(true); ++ } ++ ++ dialog->show(); + } + + BridgeItem::BridgeItem(QObject *parent) +diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h +index 7e1d8f3..079333b 100644 +--- a/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h ++++ b/kcmkwin/kwindecoration/declarative-plugin/previewbridge.h +@@ -26,6 +26,7 @@ + #include + #include + ++class QQuickItem; + class KPluginFactory; + + namespace KDecoration2 +@@ -47,7 +48,6 @@ public: + explicit PreviewBridge(QObject *parent = nullptr); + ~PreviewBridge() override; + std::unique_ptr createClient(DecoratedClient *client, Decoration *decoration) override; +- void update(Decoration* decoration, const QRect& geometry) override; + std::unique_ptr settings(DecorationSettings *parent) override; + + PreviewClient *lastCreatedClient() { +@@ -70,7 +70,7 @@ public: + KDecoration2::DecorationButton *createButton(KDecoration2::Decoration *decoration, KDecoration2::DecorationButtonType type, QObject *parent = nullptr); + + public Q_SLOTS: +- void configure(); ++ void configure(QQuickItem *ctx); + + Q_SIGNALS: + void pluginChanged(); +diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp b/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp +index 8319ccb..d214b1b 100644 +--- a/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp ++++ b/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp +@@ -405,8 +405,9 @@ void PreviewClient::requestToggleKeepBelow() + setKeepBelow(!isKeepBelow()); + } + +-void PreviewClient::requestShowWindowMenu() ++void PreviewClient::requestShowWindowMenu(const QRect &rect) + { ++ Q_UNUSED(rect) + emit showWindowMenuRequested(); + } + +diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewclient.h b/kcmkwin/kwindecoration/declarative-plugin/previewclient.h +index c37db74..fe043db 100644 +--- a/kcmkwin/kwindecoration/declarative-plugin/previewclient.h ++++ b/kcmkwin/kwindecoration/declarative-plugin/previewclient.h +@@ -107,7 +107,7 @@ public: + void requestToggleKeepAbove() override; + void requestToggleKeepBelow() override; + void requestToggleShade() override; +- void requestShowWindowMenu() override; ++ void requestShowWindowMenu(const QRect &rect) override; + void requestShowApplicationMenu(const QRect &rect, int actionId) override; + void requestToggleOnAllDesktops() override; + +diff --git a/plugins/platforms/x11/common/eglonxbackend.cpp b/plugins/platforms/x11/common/eglonxbackend.cpp +index 0bb109d..92cf5ed 100644 +--- a/plugins/platforms/x11/common/eglonxbackend.cpp ++++ b/plugins/platforms/x11/common/eglonxbackend.cpp +@@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License + along with this program. If not, see . + *********************************************************************/ + #include "eglonxbackend.h" ++#include + // kwin + #include "main.h" + #include "options.h" +diff --git a/plugins/platforms/x11/common/eglonxbackend.h b/plugins/platforms/x11/common/eglonxbackend.h +index bd9c69b..f12ce5f 100644 +--- a/plugins/platforms/x11/common/eglonxbackend.h ++++ b/plugins/platforms/x11/common/eglonxbackend.h +@@ -29,6 +29,9 @@ along with this program. If not, see . + #include "swap_profiler.h" + + #include ++#include ++#include ++#include "../windowed/x11windowed_backend.h" + + namespace KWin + { +diff --git a/plugins/platforms/x11/standalone/x11_platform.h b/plugins/platforms/x11/standalone/x11_platform.h +index 5b75af3..0de0bd8 100644 +--- a/plugins/platforms/x11/standalone/x11_platform.h ++++ b/plugins/platforms/x11/standalone/x11_platform.h +@@ -33,6 +33,7 @@ along with this program. If not, see . + + #include + ++#include "../windowed/x11windowed_backend.h" + namespace KWin + { + class SyncFilter; +diff --git a/plugins/platforms/x11/windowed/x11windowed_backend.cpp b/plugins/platforms/x11/windowed/x11windowed_backend.cpp +index be48ca2..2e0dbee 100644 +--- a/plugins/platforms/x11/windowed/x11windowed_backend.cpp ++++ b/plugins/platforms/x11/windowed/x11windowed_backend.cpp +@@ -237,7 +237,7 @@ void X11WindowedBackend::handleEvent(xcb_generic_event_t *e) + m_keySymbols = xcb_key_symbols_alloc(m_connection); + } + const xcb_keysym_t kc = xcb_key_symbols_get_keysym(m_keySymbols, event->detail, 0); +- if (kc == XK_Control_R) { ++ if (kc == 0xffe4) { + grabKeyboard(event->time); + } + keyboardKeyPressed(event->detail - 8, event->time); +diff --git a/po/tr/kwin.po b/po/tr/ukui-kwin.po +similarity index 100% +rename from po/tr/kwin.po +rename to po/tr/ukui-kwin.po +diff --git a/workspace.cpp b/workspace.cpp +index 2c682af..7172771 100644 +--- a/workspace.cpp ++++ b/workspace.cpp +@@ -455,7 +455,7 @@ void Workspace::initWithX11() + } + + // TODO: better value +- rootInfo->setActiveWindow(None); ++ rootInfo->setActiveWindow(XCB_WINDOW_NONE); + focusToNull(); + + if (!qApp->isSessionRestored()) +-- +2.33.0 + diff --git a/ukui-kwin.spec b/ukui-kwin.spec new file mode 100644 index 0000000..734c207 --- /dev/null +++ b/ukui-kwin.spec @@ -0,0 +1,182 @@ +Name: ukui-kwin +Version: 1.0.4 +Release: 1 +Summary: KDE Window Manager for UKUI desktop environment +License: GPLv2 or GPLv3 +URL: https://github.com/ukui/ukui-kwin + +%global revision %(echo %{version} | cut -d. -f3) +%if %{revision} >= 50 +%global majmin_ver %(echo %{version} | cut -d. -f1,2).50 +%else +%global majmin_ver %(echo %{version} | cut -d. -f1,2) +%endif + +Source0: ukui-kwin_1.0.4.orig.tar.gz +Patch00: 0001-modify-ukui-kwin-complie-error.patch +BuildRequires: libxml2 libstdc++ libgcc +%if 0 +BuildRequires: cmake extra-cmake-modules +BuildRequires: libcap-devel libdrm-devel >= 2.4.62 libepoxy-devel >= 1.2 fontconfig-devel freetype-devel libgbm-devel libICE-devel libinput-devel >= 1.9 kdecoration-devel mesa-libGL-devel mesa-libEGL-devel mesa-libgbm-devel pkgconfig(libudev) +BuildRequires: kf5-kactivities-devel kf5-kcompletion-devel kf5-kconfig-devel kf5-kconfigwidgets-devel kf5-kcoreaddons-devel kf5-kcrash-devel kf5-kdeclarative-devel kf5-kdoctools-devel kf5-kglobalaccel-devel kf5-ki18n-devel kf5-kiconthemes-devel kf5-kidletime-devel kf5-kcmutils-devel kf5-kio-devel kf5-knotifications-devel kf5-kpackage-devel kf5-kservice-devel kf5-ktextwidgets-devel kf5-kwayland-devel kf5-kwidgetsaddons-devel kf5-kwindowsystem-devel kf5-kxmlgui-devel kf5-kinit-devel kf5-knewstuff-devel kf5-plasma-devel kf5-kirigami2-devel kf5-kguiaddons-devel +BuildRequires: libSM-devel wayland-devel >= 1.2 +BuildRequires: libX11-devel libxcb-devel xcb-util-cursor xcb-util-wm xcb-util-image xcb-util-keysyms xcb-util-devel +BuildRequires: libXcursor-devel libXi-devel libxkbcommon-devel >= 0.7.0 pkg-config +BuildRequires: qt5-qtsensors-devel qt5-qtx11extras-devel qt5-qtbase-private-devel qt5-qtdeclarative-devel qt5-qtscript-devel qt5-qttools-devel qt5-qtbase-devel qt5-qtbase-static qt5-qttools-static gsettings-qt-devel qt5-qtwayland-devel +BuildRequires: kscreenlocker-devel kwin-devel +BuildRequires: plasma-breeze-devel systemd-devel wayland-devel xcb-util-cursor-devel xcb-util-wm-devel xcb-util-image-devel xcb-util-keysyms-devel +%endif + +%description +Ukui-kwin is the default window manager for UKUI desktop environment, and is forked from kwin. + +%package wayland +Summary: KDE Window Manager for UKUI desktop environment with experimental Wayland support +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-common%{?_isa} = %{version}-%{release} +Requires: kwayland-integration%{?_isa} >= %{majmin_ver} +%if ! 0%{?bootstrap} +BuildRequires: xorg-x11-server-Xwayland +%endif +Requires: xorg-x11-server-Xwayland +%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}} +%{?kf5_kinit_requires} +%description wayland +%{summary}. + +%package common +Summary: Common files for UKUI-KWin X11 and UKUI-KWin Wayland +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: kf5-kwayland%{?_isa} >= %{_kf5_version} +%description common +%{summary}. + +%package libs +Summary: UKUI-KWin runtime libraries +Conflicts: kde-workspace-libs%{?_isa} < 4.11.14-2 +%description libs +%{summary}. + +%package devel +Summary: Development files for %{name} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-common%{?_isa} = %{version}-%{release} +Requires: kf5-kconfig-devel +Requires: kf5-kservice-devel +Requires: kf5-kwindowsystem-devel +Conflicts: kde-workspace-devel < 5.0.0-1 +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + +%package doc +Summary: User manual for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +%{summary}. +%if 0 +%prep +%autosetup -n %{name} -p1 + +%build +mkdir %{_target_platform} +pushd %{_target_platform} +%{cmake_kf5} .. \ + -DBUILD_TESTING:BOOL=ON +popd + +%make_build -C %{_target_platform} + + +%install +make install/fast DESTDIR=%{buildroot} -C %{_target_platform} + +%find_lang %{name} --with-html --all-name +cat %{name}.lang | sort | uniq -u > ukui_kwin5.lang + +ln -s ukui-kwin_x11 %{buildroot}%{_bindir}/ukui-kwin +mkdir -p %{buildroot}%{_datadir}/licenses/ukui-kwin +cp COPYING* %{buildroot}%{_datadir}/licenses/ukui-kwin/ + +%files +%license COPYING* +%{_bindir}/ukui-kwin +%{_bindir}/ukui-kwin_x11 +%{_kf5_libdir}/libkdeinit5_ukui-kwin_x11.so +%{_sysconfdir}/xdg/LowPerformanceCPU.list +%{_sysconfdir}/xdg/LowVgaPci.list +%{_sysconfdir}/xdg/autostart/ukui-kwin.desktop +%{_sysconfdir}/xdg/ukui-kwinrc + +%files common -f ukui_kwin5.lang +%{_kf5_libdir}/libkdeinit5_ukui_kwin_rules_dialog.so +%{_datadir}/ukui-kwin +%{_kf5_qtplugindir}/*.so +%{_kf5_qtplugindir}/ukui-kwin/ +%{_kf5_qtplugindir}/kcms/ +%{_kf5_qtplugindir}/kf5/ +%{_kf5_qtplugindir}/org.kde.kdecoration2/*.so +%{_kf5_qtplugindir}/org.ukui.kwin.platforms/ +%{_kf5_qtplugindir}/kpackage/packagestructure/ukui_kwin_packagestructure*.so +%{_kf5_qtplugindir}/org.ukui.kwin.scenes/*.so +%{_qt5_qmldir}/org/ukui/kwin +%{_kf5_libdir}/kconf_update_bin/ukui_kwin5_update_default_rules +%{_libexecdir}/ukui_kwin_killer_helper +%{_libexecdir}/ukui_kwin_rules_dialog +%{_datadir}/kconf_update/ukui-kwin.upd +%{_datadir}/kconf_update/ukui-kwin-5.16-auto-bordersize.sh +%{_datadir}/kconf_update/ukui-kwin-5.18-move-animspeed.py +%{_kf5_datadir}/kservices5/*.desktop +%{_kf5_datadir}/kservices5/ukui-kwin +%{_kf5_datadir}/kservicetypes5/*.desktop +%{_kf5_datadir}/kpackage/kcms/kcm_ukuikwin_virtualdesktops/* +%{_kf5_datadir}/kpackage/kcms/kcm_* +%{_kf5_datadir}/knotifications5/ukui-kwin.notifyrc +%{_kf5_datadir}/config.kcfg/ukui-kwin.kcfg +%{_kf5_datadir}/config.kcfg/ukuikwindecorationsettings.kcfg +%{_kf5_datadir}/config.kcfg/ukuivirtualdesktopssettings.kcfg +%{_kf5_datadir}/config.kcfg/ukui-kwin_colorcorrect.kcfg +%{_datadir}/icons/hicolor/*/apps/ukui-kwin.* +%{_datadir}/knsrcfiles/*.knsrc +%{_datadir}/aurorae/themes/*/* + +%files wayland +%{_kf5_bindir}/ukui-kwin_wayland +%{_kf5_qtplugindir}/platforms/UKUIKWinQpaPlugin.so +%{_kf5_qtplugindir}/org.ukui.kglobalaccel5.platforms/KF5GlobalAccelPrivateKWin.so +%{_kf5_qtplugindir}/org.ukui.kwin.waylandbackends/KWinWaylandDrmBackend.so +%{_kf5_qtplugindir}/org.ukui.kwin.waylandbackends/KWinWaylandFbdevBackend.so +%{_kf5_qtplugindir}/org.ukui.kwin.waylandbackends/KWinWaylandWaylandBackend.so +%{_kf5_qtplugindir}/org.ukui.kwin.waylandbackends/KWinWaylandX11Backend.so +%{_kf5_qtplugindir}/org.ukui.kwin.waylandbackends/KWinWaylandVirtualBackend.so +%{_kf5_plugindir}/org.ukui.kidletime.platforms/KF5IdleTimeKWinWaylandPrivatePlugin.so + +%ldconfig_scriptlets libs + +%files libs +%{_kf5_datadir}/qlogging-categories5/org_ukui_kwin.categories +%{_libdir}/libukui-kwin.so.* +%{_libdir}/libukui-kwinxrenderutils.so.* +%{_libdir}/libukui-kwineffects.so.* +%{_libdir}/libukui-kwinglutils.so.* +%{_libdir}/libukui-kwin4_effect_builtins.so.* +%{_libdir}/libkcmukuikwincommon.so.* +%{_qt5_plugindir}/kcms/kcm_ukuikwin_virtualdesktops.so +%endif +%files devel +%if 0 +%{_datadir}/dbus-1/interfaces/*.xml +%{_libdir}/cmake/ukui-kwin/KWinDBusInterface +%{_libdir}/libukui-kwinxrenderutils.so +%{_libdir}/libukui-kwineffects.so +%{_libdir}/libukui-kwinglutils.so +%{_libdir}/libukui-kwin4_effect_builtins.so +%{_includedir}/ukui-kwin*.h +%{_includedir}/ukui-kwin/*.h +%endif + +%changelog +* Fri Feb 11 2022 pei-jiankang - 1.0.4-1 +- Init ukui-kwin 1.0.4-1 + diff --git a/ukui-kwin_1.0.4.orig.tar.gz b/ukui-kwin_1.0.4.orig.tar.gz new file mode 100644 index 0000000..806578c Binary files /dev/null and b/ukui-kwin_1.0.4.orig.tar.gz differ