psifidotos / applet-window-buttons

Plasma 5 applet in order to show window buttons in your panels
GNU General Public License v2.0
402 stars 55 forks source link

Unable to build the applet #201

Open mrugendrakul opened 1 year ago

mrugendrakul commented 1 year ago

I am trying to install this applet on kubuntu 23.04 with kde plasma 5.27.4. I have installed all the dependencies but getting this error after running 'sh install.sh'

/install.sh: 1: [: -a: unexpected operator
mkdir: cannot create directory ‘build’: File exists
CMake Warning (dev) at /usr/share/ECM/modules/ECMFindModuleHelpers.cmake:113 (message):
  Your project should require at least CMake 3.16.0 to use FindKF5.cmake
Call Stack (most recent call first):
  /usr/share/ECM/find-modules/FindKF5.cmake:30 (ecm_find_package_version_check)
  CMakeLists.txt:19 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.
-- Found KF5: success (found suitable version "5.104.0", minimum required is "5.81.0") found components: CoreAddons Declarative Plasma PlasmaQuick 
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
-- KDECORATION2 VERSION MINOR : 27
-- Could not set up the appstream test. appstreamcli is missing.
CMake Warning (dev) at /usr/share/ECM/modules/ECMFindModuleHelpers.cmake:113 (message):
  Your project should require at least CMake 3.16.0 to use FindKF5.cmake
Call Stack (most recent call first):
  /usr/share/ECM/find-modules/FindKF5.cmake:30 (ecm_find_package_version_check)
  libappletdecoration/CMakeLists.txt:37 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found KF5: success (found suitable version "5.104.0", minimum required is "5.26.0") found components: Plasma WindowSystem I18n Service ConfigWidgets 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mrugendra/Documents/applet-window-buttons-0.11.1/build
[  4%] Automatic MOC for target appletdecorationplugin
[  4%] Built target appletdecorationplugin_autogen
[ 19%] Building CXX object libappletdecoration/CMakeFiles/appletdecorationplugin.dir/types.cpp.o
[ 19%] Building CXX object libappletdecoration/CMakeFiles/appletdecorationplugin.dir/previewbridge.cpp.o
[ 19%] Building CXX object libappletdecoration/CMakeFiles/appletdecorationplugin.dir/windowsystem.cpp.o
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecoratedClientPrivate> Decoration::Applet::PreviewBridge::createClient(KDecoration2::DecoratedClient*, KDecoration2::Decoration*)’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:75:83: error: invalid new-expression of abstract class type ‘Decoration::Applet::PreviewClient’
   75 |     auto ptr = std::unique_ptr<PreviewClient>(new PreviewClient(client, decoration));
      |                                                                                   ^
In file included from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:27:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewclient.h:40:7: note:   because the following virtual functions are pure within ‘Decoration::Applet::PreviewClient’:
   40 | class PreviewClient : public QObject, public KDecoration2::ApplicationMenuEnabledDecoratedClientPrivate
      |       ^~~~~~~~~~~~~
In file included from /usr/include/KDecoration2/KDecoration2/Private/DecoratedClientPrivate:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewclient.h:31:
/usr/include/KDecoration2/kdecoration2/private/decoratedclientprivate.h:80:21: note:     ‘virtual QString KDecoration2::DecoratedClientPrivate::windowClass() const’
   80 |     virtual QString windowClass() const = 0;
      |                     ^~~~~~~~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecorationSettingsPrivate> Decoration::Applet::PreviewBridge::settings(KDecoration2::DecorationSettings*)’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:84:21: warning: redundant move in return statement [-Wredundant-move]
   84 |     return std::move(ptr);
      |            ~~~~~~~~~^~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:84:21: note: remove ‘std::move’ call
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp: In member function ‘void Decoration::Applet::PreviewBridge::createFactory()’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:138:44: warning: ‘static KPluginTrader* KPluginTrader::self()’ is deprecated: Since 5.82. Use KPluginMetaData and KPluginFactory [-Wdeprecated-declarations]
  138 |     const auto offers = KPluginTrader::self()->query(s_pluginName,
      |                         ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/KF5/KService/KPluginTrader:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:37:
/usr/include/KF5/KService/kplugintrader.h:163:27: note: declared here
  163 |     static KPluginTrader *self();
      |                           ^~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:138:53: warning: ‘KPluginInfo::List KPluginTrader::query(const QString&, const QString&, const QString&)’ is deprecated: Since 5.82. Use KPluginMetaData::findPlugins [-Wdeprecated-declarations]
  138 |     const auto offers = KPluginTrader::self()->query(s_pluginName,
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  139 |                         s_pluginName,
      |                         ~~~~~~~~~~~~~                
  140 |                         QStringLiteral("[X-KDE-PluginInfo-Name] == '%1'").arg(m_plugin));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/KF5/KService/kplugintrader.h:150:23: note: declared here
  150 |     KPluginInfo::List query(const QString &subDirectory, const QString &serviceType = QString(), const QString &constraint = QString());
      |                       ^~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:149:31: warning: ‘KPluginFactory* KPluginLoader::factory()’ is deprecated: Since 5.86. Use KPluginFactory::loadFactory or KPluginFactory::instantiatePlugin instead [-Wdeprecated-declarations]
  149 |     m_factory = loader.factory();
      |                 ~~~~~~~~~~~~~~^~
In file included from /usr/include/KF5/KCoreAddons/KPluginLoader:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:35:
/usr/include/KF5/KCoreAddons/kpluginloader.h:126:21: note: declared here
  126 |     KPluginFactory *factory();
      |                     ^~~~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp: In member function ‘KDecoration2::DecorationButton* Decoration::Applet::PreviewBridge::createButton(KDecoration2::Decoration*, KDecoration2::DecorationButtonType, QObject*)’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:195:67: warning: ‘T* KPluginFactory::create(const QString&, QObject*, const QVariantList&) [with T = KDecoration2::DecorationButton; QVariantList = QList<QVariant>]’ is deprecated: Since 5.89. Use overload without keyword instead [-Wdeprecated-declarations]
  195 |         button = m_factory->create<KDecoration2::DecorationButton>(QStringLiteral("button"), parent, QVariantList({QVariant::fromValue(type), QVariant::fromValue(decoration)}));
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/KF5/KCoreAddons/KPluginFactory:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:36:
/usr/include/KF5/KCoreAddons/kpluginfactory.h:950:11: note: declared here
  950 | inline T *KPluginFactory::create(const QString &keyword, QObject *parent, const QVariantList &args)
      |           ^~~~~~~~~~~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/windowsystem.cpp: In member function ‘bool Decoration::Applet::WindowSystem::kwin_disabledMaximizedBorders() const’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/windowsystem.cpp:40:18: warning: ‘void QProcess::start(const QString&, QIODevice::OpenMode)’ is deprecated: Use QProcess::start(const QString &program, const QStringList &arguments,OpenMode mode = ReadWrite) instead [-Wdeprecated-declarations]
   40 |     process.start("kreadconfig5 --file kwinrc --group Windows --key BorderlessMaximizedWindows");
      |     ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QProcess:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/windowsystem.cpp:23:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qprocess.h:168:10: note: declared here
  168 |     void start(const QString &command, OpenMode mode = ReadWrite);
      |          ^~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/windowsystem.cpp: In member function ‘void Decoration::Applet::WindowSystem::setDisabledMaximizedBorders(bool)’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/windowsystem.cpp:59:18: warning: ‘void QProcess::start(const QString&, QIODevice::OpenMode)’ is deprecated: Use QProcess::start(const QString &program, const QStringList &arguments,OpenMode mode = ReadWrite) instead [-Wdeprecated-declarations]
   59 |     process.start(commandStr);
      |     ~~~~~~~~~~~~~^~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qprocess.h:168:10: note: declared here
  168 |     void start(const QString &command, OpenMode mode = ReadWrite);
      |          ^~~~~
make[2]: *** [libappletdecoration/CMakeFiles/appletdecorationplugin.dir/build.make:216: libappletdecoration/CMakeFiles/appletdecorationplugin.dir/previewbridge.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:347: libappletdecoration/CMakeFiles/appletdecorationplugin.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
[  4%] Automatic MOC for target appletdecorationplugin
[  4%] Built target appletdecorationplugin_autogen
[  9%] Building CXX object libappletdecoration/CMakeFiles/appletdecorationplugin.dir/previewbridge.cpp.o
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecoratedClientPrivate> Decoration::Applet::PreviewBridge::createClient(KDecoration2::DecoratedClient*, KDecoration2::Decoration*)’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:75:83: error: invalid new-expression of abstract class type ‘Decoration::Applet::PreviewClient’
   75 |     auto ptr = std::unique_ptr<PreviewClient>(new PreviewClient(client, decoration));
      |                                                                                   ^
In file included from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:27:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewclient.h:40:7: note:   because the following virtual functions are pure within ‘Decoration::Applet::PreviewClient’:
   40 | class PreviewClient : public QObject, public KDecoration2::ApplicationMenuEnabledDecoratedClientPrivate
      |       ^~~~~~~~~~~~~
In file included from /usr/include/KDecoration2/KDecoration2/Private/DecoratedClientPrivate:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewclient.h:31:
/usr/include/KDecoration2/kdecoration2/private/decoratedclientprivate.h:80:21: note:     ‘virtual QString KDecoration2::DecoratedClientPrivate::windowClass() const’
   80 |     virtual QString windowClass() const = 0;
      |                     ^~~~~~~~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp: In member function ‘virtual std::unique_ptr<KDecoration2::DecorationSettingsPrivate> Decoration::Applet::PreviewBridge::settings(KDecoration2::DecorationSettings*)’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:84:21: warning: redundant move in return statement [-Wredundant-move]
   84 |     return std::move(ptr);
      |            ~~~~~~~~~^~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:84:21: note: remove ‘std::move’ call
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp: In member function ‘void Decoration::Applet::PreviewBridge::createFactory()’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:138:44: warning: ‘static KPluginTrader* KPluginTrader::self()’ is deprecated: Since 5.82. Use KPluginMetaData and KPluginFactory [-Wdeprecated-declarations]
  138 |     const auto offers = KPluginTrader::self()->query(s_pluginName,
      |                         ~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/KF5/KService/KPluginTrader:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:37:
/usr/include/KF5/KService/kplugintrader.h:163:27: note: declared here
  163 |     static KPluginTrader *self();
      |                           ^~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:138:53: warning: ‘KPluginInfo::List KPluginTrader::query(const QString&, const QString&, const QString&)’ is deprecated: Since 5.82. Use KPluginMetaData::findPlugins [-Wdeprecated-declarations]
  138 |     const auto offers = KPluginTrader::self()->query(s_pluginName,
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
  139 |                         s_pluginName,
      |                         ~~~~~~~~~~~~~                
  140 |                         QStringLiteral("[X-KDE-PluginInfo-Name] == '%1'").arg(m_plugin));
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/KF5/KService/kplugintrader.h:150:23: note: declared here
  150 |     KPluginInfo::List query(const QString &subDirectory, const QString &serviceType = QString(), const QString &constraint = QString());
      |                       ^~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:149:31: warning: ‘KPluginFactory* KPluginLoader::factory()’ is deprecated: Since 5.86. Use KPluginFactory::loadFactory or KPluginFactory::instantiatePlugin instead [-Wdeprecated-declarations]
  149 |     m_factory = loader.factory();
      |                 ~~~~~~~~~~~~~~^~
In file included from /usr/include/KF5/KCoreAddons/KPluginLoader:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:35:
/usr/include/KF5/KCoreAddons/kpluginloader.h:126:21: note: declared here
  126 |     KPluginFactory *factory();
      |                     ^~~~~~~
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp: In member function ‘KDecoration2::DecorationButton* Decoration::Applet::PreviewBridge::createButton(KDecoration2::Decoration*, KDecoration2::DecorationButtonType, QObject*)’:
/home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:195:67: warning: ‘T* KPluginFactory::create(const QString&, QObject*, const QVariantList&) [with T = KDecoration2::DecorationButton; QVariantList = QList<QVariant>]’ is deprecated: Since 5.89. Use overload without keyword instead [-Wdeprecated-declarations]
  195 |         button = m_factory->create<KDecoration2::DecorationButton>(QStringLiteral("button"), parent, QVariantList({QVariant::fromValue(type), QVariant::fromValue(decoration)}));
      |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/KF5/KCoreAddons/KPluginFactory:1,
                 from /home/mrugendra/Documents/applet-window-buttons-0.11.1/libappletdecoration/previewbridge.cpp:36:
/usr/include/KF5/KCoreAddons/kpluginfactory.h:950:11: note: declared here
  950 | inline T *KPluginFactory::create(const QString &keyword, QObject *parent, const QVariantList &args)
      |           ^~~~~~~~~~~~~~
make[2]: *** [libappletdecoration/CMakeFiles/appletdecorationplugin.dir/build.make:216: libappletdecoration/CMakeFiles/appletdecorationplugin.dir/previewbridge.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:347: libappletdecoration/CMakeFiles/appletdecorationplugin.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
2shrestha22 commented 1 year ago

Getting same issue on Debial Bookworm.

mrerdem commented 1 year ago

This worked for me: https://github.com/psifidotos/applet-window-buttons/issues/194#issuecomment-1450813794

2shrestha22 commented 1 year ago

There is a PR for this fix any chance to get that merged?

rahulkpkurup commented 11 months ago

i have the same issue how to solve it

yell0w4x commented 10 months ago

Here is the pull request https://github.com/psifidotos/applet-window-buttons/pull/191, but still not merged.

Save this to x.patch and git apply x.patch

diff --git a/libappletdecoration/previewclient.cpp b/libappletdecoration/previewclient.cpp
index 2cf184b..6cf992b 100644
--- a/libappletdecoration/previewclient.cpp
+++ b/libappletdecoration/previewclient.cpp
@@ -139,6 +139,11 @@ int PreviewClient::height() const
     return m_height;
 }

+QString PreviewClient::windowClass() const
+{
+    return m_caption;
+}
+
 QString PreviewClient::caption() const
 {
     return m_caption;
diff --git a/libappletdecoration/previewclient.h b/libappletdecoration/previewclient.h
index c479acc..46214f6 100644
--- a/libappletdecoration/previewclient.h
+++ b/libappletdecoration/previewclient.h
@@ -71,6 +71,7 @@ public:
     explicit PreviewClient(KDecoration2::DecoratedClient *client, KDecoration2::Decoration *decoration);
     virtual ~PreviewClient();

+    QString windowClass() const override;
     QString caption() const override;
     WId decorationId() const override;
     WId windowId() const override;
MajorTomDE commented 7 months ago

Building works, but now I get this applet error:

file:///usr/share/plasma/plasmoids/org.kde.windowbuttons/contents/ui/main.qml:534:9: AppletDecoration.AuroraeButton is not a type

MX Linux 23.1 KDE Plasma 5.27.5