Enable wayland support

This commit is contained in:
Nova 2025-04-16 13:50:55 +03:30
parent d73beb799b
commit 14e0e5520e
3 changed files with 7 additions and 8 deletions

View File

@ -141,7 +141,7 @@ jobs:
shell: bash
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt --fix-broken update && sudo apt upgrade -y
sudo apt update && sudo apt upgrade -y
mkdir build
cd build
cmake -GNinja -DQT_VERSION_MAJOR=6 -DCMAKE_BUILD_TYPE=Release ..

View File

@ -32,7 +32,8 @@ wget https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-202401
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/1-alpha-20240109-1/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage
export EXTRA_QT_PLUGINS="iconengines;"
export EXTRA_QT_PLUGINS="iconengines;wayland-shell-integration;wayland-decoration-client;"
export EXTRA_PLATFORM_PLUGINS="libqwayland-generic.so;"
./linuxdeploy-x86_64.AppImage --appdir $DEST --executable $DEST/nekoray --plugin qt
rm linuxdeploy-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImage
cd $DEST
@ -43,11 +44,15 @@ rm -r ./usr/plugins
mkdir ./usr/plugins
mkdir ./usr/plugins/platforms
cp $QT_PLUGIN_PATH/platforms/libqxcb.so ./usr/plugins/platforms
cp $QT_PLUGIN_PATH/platforms/libqwayland-generic.so ./usr/plugins/platforms
cp -r $QT_PLUGIN_PATH/platformthemes ./usr/plugins
cp -r $QT_PLUGIN_PATH/imageformats ./usr/plugins
cp -r $QT_PLUGIN_PATH/iconengines ./usr/plugins
cp -r $QT_PLUGIN_PATH/wayland-shell-integration ./usr/plugins
cp -r $QT_PLUGIN_PATH/wayland-decoration-client ./usr/plugins
cp -r $QT_PLUGIN_PATH/tls ./usr/plugins
patchelf --set-rpath '$ORIGIN/../../lib' ./usr/plugins/platforms/libqxcb.so
patchelf --set-rpath '$ORIGIN/../../lib' ./usr/plugins/platforms/libqwayland-generic.so
patchelf --set-rpath '$ORIGIN/../../lib' ./usr/plugins/platformthemes/libqgtk3.so
patchelf --set-rpath '$ORIGIN/../../lib' ./usr/plugins/platformthemes/libqxdgdesktopportal.so

View File

@ -63,12 +63,6 @@ int main(int argc, char* argv[]) {
#ifdef Q_OS_WIN
Windows_SetCrashHandler();
#endif
#ifdef Q_OS_LINUX
DesktopInfo info;
if (info.waylandDetected()) {
qputenv("QT_QPA_PLATFORM", "xcb");
}
#endif
QApplication::setAttribute(Qt::AA_DontUseNativeDialogs);
QApplication::setQuitOnLastWindowClosed(false);