forked from pool/kde-gtk-config5
Accepting request 767932 from home:Vogtinator:plasma5.18
Patch not merged yet, but needed for openQA. Part for breeze-gtk will follow once merged (mostly just cleanup) - Add patch to add kconf_update binary to set the initial config: * 0001-Upgrade-theme-to-Breeze-GTK-on-startup.patch OBS-URL: https://build.opensuse.org/request/show/767932 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kde-gtk-config5?expand=0&rev=233
This commit is contained in:
parent
ec7ba204f2
commit
e0fc0f7bd6
190
0001-Upgrade-theme-to-Breeze-GTK-on-startup.patch
Normal file
190
0001-Upgrade-theme-to-Breeze-GTK-on-startup.patch
Normal file
@ -0,0 +1,190 @@
|
||||
From 969b72c57c81cc5a9be549dd0d501c9e6d2129cb Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Zolotukhin <zomial@protonmail.com>
|
||||
Date: Mon, 27 Jan 2020 13:48:00 +0100
|
||||
Subject: [PATCH] Upgrade theme to Breeze GTK on startup
|
||||
|
||||
Summary:
|
||||
Also apply it, if the config is empty. This is a port of kconf_update
|
||||
script from `breeze-gtk` repo, but this time it use gtkconfig kded
|
||||
module methods to manipulate config (to avoid code duplication and to
|
||||
write config to all possible configuration storages).
|
||||
|
||||
BUG: 416635
|
||||
FIXED-IN: 5.18.0
|
||||
|
||||
Test Plan:
|
||||
# Remove `gtk-theme-name=` line in `~/.gtkrc-2.0` file or change it to `BreezyGTK`, `Orion` or `oxygen-gtk`
|
||||
# Run `gtk_theme` executable from `kconf_update` build directory. Line should appear/cahnge to `Breeze`
|
||||
# Remove `gtk-theme-name=` line in `~/.config/gtk-3.0/settings.ini` file or change it to `BreezyGTK`, `Orion` or `oxygen-gtk`
|
||||
# Run `gtk_theme` executable from `kconf_update` build directory. Line should appear/cahnge to `Breeze`, also it should be changed in dconf in `org.gnome.desktop.interface.gtk-theme` prefix and in `~/.config/xsettingsd/xsettingsd.conf` file (`Net/ThemeName "Breeze"` line)
|
||||
|
||||
Reviewers: fvogt
|
||||
|
||||
Subscribers: meven, plasma-devel
|
||||
|
||||
Tags: #plasma
|
||||
|
||||
Differential Revision: https://phabricator.kde.org/D26891
|
||||
---
|
||||
CMakeLists.txt | 1 +
|
||||
kconf_update/CMakeLists.txt | 38 +++++++++++++++++++++++++
|
||||
kconf_update/gtk_theme.upd | 3 ++
|
||||
kconf_update/main.cpp | 56 +++++++++++++++++++++++++++++++++++++
|
||||
kded/configeditor.cpp | 4 +--
|
||||
5 files changed, 100 insertions(+), 2 deletions(-)
|
||||
create mode 100644 kconf_update/CMakeLists.txt
|
||||
create mode 100644 kconf_update/gtk_theme.upd
|
||||
create mode 100644 kconf_update/main.cpp
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 54be644..72aa16f 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -28,6 +28,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake kded/config.h)
|
||||
add_subdirectory(gtkproxies)
|
||||
add_subdirectory(gtk3proxies)
|
||||
add_subdirectory(kded)
|
||||
+add_subdirectory(kconf_update)
|
||||
|
||||
# add clang-format target for all our real source files
|
||||
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
|
||||
diff --git a/kconf_update/CMakeLists.txt b/kconf_update/CMakeLists.txt
|
||||
new file mode 100644
|
||||
index 0000000..05a5490
|
||||
--- /dev/null
|
||||
+++ b/kconf_update/CMakeLists.txt
|
||||
@@ -0,0 +1,38 @@
|
||||
+add_executable(gtk_theme main.cpp)
|
||||
+
|
||||
+target_sources(gtk_theme
|
||||
+ PRIVATE
|
||||
+ ../kded/configeditor.cpp
|
||||
+)
|
||||
+
|
||||
+target_link_libraries(gtk_theme
|
||||
+ PRIVATE
|
||||
+ Qt5::Core
|
||||
+ KF5::ConfigCore
|
||||
+ ${GIO2_LIBRARY}
|
||||
+ ${GOBJECT2_LIBRARY}
|
||||
+)
|
||||
+
|
||||
+target_include_directories(gtk_theme
|
||||
+ PRIVATE
|
||||
+ ../kded/
|
||||
+ ${GTK3_INCLUDE_DIRS}
|
||||
+)
|
||||
+
|
||||
+target_compile_definitions(gtk_theme
|
||||
+ PRIVATE
|
||||
+ QT_NO_SIGNALS_SLOTS_KEYWORDS
|
||||
+)
|
||||
+
|
||||
+install(
|
||||
+ TARGETS
|
||||
+ gtk_theme
|
||||
+ DESTINATION
|
||||
+ ${LIB_INSTALL_DIR}/kconf_update_bin/
|
||||
+)
|
||||
+install(
|
||||
+ FILES
|
||||
+ gtk_theme.upd
|
||||
+ DESTINATION
|
||||
+ ${KCONF_UPDATE_INSTALL_DIR}
|
||||
+)
|
||||
diff --git a/kconf_update/gtk_theme.upd b/kconf_update/gtk_theme.upd
|
||||
new file mode 100644
|
||||
index 0000000..6214e77
|
||||
--- /dev/null
|
||||
+++ b/kconf_update/gtk_theme.upd
|
||||
@@ -0,0 +1,3 @@
|
||||
+Version=5
|
||||
+Id=gtk_theme
|
||||
+Script=gtk_theme
|
||||
diff --git a/kconf_update/main.cpp b/kconf_update/main.cpp
|
||||
new file mode 100644
|
||||
index 0000000..bf9993c
|
||||
--- /dev/null
|
||||
+++ b/kconf_update/main.cpp
|
||||
@@ -0,0 +1,56 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2020 Mikhail Zolotukhin <zomial@protonmail.com>
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License as
|
||||
+ * published by the Free Software Foundation; either version 2 of
|
||||
+ * the License or (at your option) version 3 or any later version
|
||||
+ * accepted by the membership of KDE e.V. (or its successor approved
|
||||
+ * by the membership of KDE e.V.), which shall act as a proxy
|
||||
+ * defined in Section 14 of version 3 of the license.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+ */
|
||||
+
|
||||
+#include <QString>
|
||||
+
|
||||
+#include "configeditor.h"
|
||||
+
|
||||
+void upgradeGtk2Theme();
|
||||
+void upgradeGtk3Theme();
|
||||
+
|
||||
+int main() {
|
||||
+ upgradeGtk2Theme();
|
||||
+ upgradeGtk3Theme();
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+void upgradeGtk2Theme() {
|
||||
+ QString currentGtk2Theme = ConfigEditor::gtk2ConfigValue(QStringLiteral("gtk-theme-name"));
|
||||
+ if (currentGtk2Theme.isEmpty()
|
||||
+ || currentGtk2Theme == QStringLiteral("oxygen-gtk")
|
||||
+ || currentGtk2Theme == QStringLiteral("BreezyGTK")
|
||||
+ || currentGtk2Theme == QStringLiteral("Orion")
|
||||
+ ) {
|
||||
+ ConfigEditor::setGtk2ConfigValue(QStringLiteral("gtk-theme-name"), QStringLiteral("Breeze"));
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void upgradeGtk3Theme() {
|
||||
+ QString currentGtk3Theme = ConfigEditor::gtk3ConfigValueSettingsIni(QStringLiteral("gtk-theme-name"));
|
||||
+ if (currentGtk3Theme.isEmpty()
|
||||
+ || currentGtk3Theme == QStringLiteral("oxygen-gtk")
|
||||
+ || currentGtk3Theme == QStringLiteral("BreezyGTK")
|
||||
+ || currentGtk3Theme == QStringLiteral("Orion")
|
||||
+ ) {
|
||||
+ ConfigEditor::setGtk3ConfigValueDconf(QStringLiteral("gtk-theme"), QStringLiteral("Breeze"));
|
||||
+ ConfigEditor::setGtk3ConfigValueSettingsIni(QStringLiteral("gtk-theme-name"), QStringLiteral("Breeze"));
|
||||
+ ConfigEditor::setGtk3ConfigValueXSettingsd(QStringLiteral("Net/ThemeName"), QStringLiteral("Breeze"));
|
||||
+ }
|
||||
+}
|
||||
diff --git a/kded/configeditor.cpp b/kded/configeditor.cpp
|
||||
index 244fe2c..3074f70 100644
|
||||
--- a/kded/configeditor.cpp
|
||||
+++ b/kded/configeditor.cpp
|
||||
@@ -109,7 +109,7 @@ QString ConfigEditor::gtk2ConfigValue(const QString& paramName)
|
||||
}
|
||||
}
|
||||
|
||||
- return QStringLiteral("Breeze");
|
||||
+ return QString();
|
||||
}
|
||||
|
||||
QString ConfigEditor::gtk3ConfigValueSettingsIni(const QString& paramName)
|
||||
@@ -120,7 +120,7 @@ QString ConfigEditor::gtk3ConfigValueSettingsIni(const QString& paramName)
|
||||
KSharedConfig::Ptr gtk3Config = KSharedConfig::openConfig(gtk3ConfigPath, KConfig::NoGlobals);
|
||||
KConfigGroup group = gtk3Config->group(QStringLiteral("Settings"));
|
||||
|
||||
- return group.readEntry(paramName, QStringLiteral("Breeze"));
|
||||
+ return group.readEntry(paramName);
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 27 12:50:49 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Add patch to add kconf_update binary to set the initial config:
|
||||
* 0001-Upgrade-theme-to-Breeze-GTK-on-startup.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 18 17:15:44 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
|
@ -29,6 +29,8 @@ Source: https://download.kde.org/unstable/plasma/%{version}/kde-gtk-conf
|
||||
Source1: https://download.kde.org/unstable/plasma/%{version}/kde-gtk-config-%{version}.tar.xz.sig
|
||||
Source2: plasma.keyring
|
||||
%endif
|
||||
# PATCH-FIX-UPSTREAM
|
||||
Patch1: 0001-Upgrade-theme-to-Breeze-GTK-on-startup.patch
|
||||
BuildRequires: extra-cmake-modules >= 0.0.9
|
||||
BuildRequires: kf5-filesystem
|
||||
BuildRequires: xz
|
||||
@ -92,6 +94,11 @@ the GTK3 application style from within the application style KCM
|
||||
%dir %{_kf5_sharedir}/kcm-gtk-module/
|
||||
%{_kf5_sharedir}/kcm-gtk-module/preview.ui
|
||||
|
||||
%dir %{_kf5_sharedir}/kconf_update/
|
||||
%{_kf5_sharedir}/kconf_update/gtk_theme.upd
|
||||
%dir %{_kf5_libdir}/kconf_update_bin/
|
||||
%{_kf5_libdir}/kconf_update_bin/gtk_theme
|
||||
|
||||
%files gtk2
|
||||
%license COPYING*
|
||||
%{_kf5_libdir}/libexec/gtk_preview
|
||||
|
Loading…
x
Reference in New Issue
Block a user