lxqt: fix themes and translations

LXQt binaries look for their themes and translations based on the name of the binary, which is changed by the wrapper script. This patches liblxqt to recover the original name from the wrapped binary name.
This commit is contained in:
Thomas Watson 2021-01-13 16:18:58 -06:00
parent 6e83386e82
commit b6779d541a
2 changed files with 26 additions and 0 deletions

View File

@ -39,6 +39,9 @@ mkDerivation rec {
xorg.libXScrnSaver
];
# convert name of wrapped binary, e.g. .lxqt-whatever-wrapped to the original name, e.g. lxqt-whatever so binaries can find their resources
patches = [ ./fix-application-path.patch ];
postPatch = ''
sed -i "s|\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR}|''${out}/share/polkit-1/actions|" CMakeLists.txt
'';

View File

@ -0,0 +1,23 @@
--- a/lxqtapplication.cpp
+++ b/lxqtapplication.cpp
@@ -77,7 +77,7 @@ Application::Application(int &argc, char** argv, bool handleQuitSignals)
void Application::updateTheme()
{
- const QString styleSheetKey = QFileInfo(applicationFilePath()).fileName();
+ const QString styleSheetKey = QFileInfo(applicationFilePath()).fileName().mid(1).chopped(8);
setStyleSheet(lxqtTheme.qss(styleSheetKey));
Q_EMIT themeChanged();
}
--- a/lxqttranslator.cpp
+++ b/lxqttranslator.cpp
@@ -147,7 +147,7 @@ bool Translator::translateApplication(const QString &applicationName)
if (!applicationName.isEmpty())
return translate(applicationName);
else
- return translate(QFileInfo(QCoreApplication::applicationFilePath()).baseName());
+ return translate(QFileInfo(QCoreApplication::applicationFilePath()).baseName().mid(1).chopped(8));
}