From 2de8a9e979b24641b2554fda10ad6128e977f518 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Tue, 5 Mar 2024 01:16:37 -0800 Subject: [PATCH] Update kde packages to kde6 --- modules/overlay-pkgs/default.nix | 3 +- modules/overlay-pkgs/qt5ct/default.nix | 16 -- modules/overlay-pkgs/qt5ct/patch.patch | 200 ------------------ ...colors-override.conf => colors-qt5ct.conf} | 0 modules/theme/colors-qt6ct.conf | 4 + modules/theme/default.nix | 47 ++-- modules/user/general.nix | 17 +- modules/user/modules/dolphin/default.nix | 10 +- 8 files changed, 41 insertions(+), 256 deletions(-) delete mode 100644 modules/overlay-pkgs/qt5ct/default.nix delete mode 100755 modules/overlay-pkgs/qt5ct/patch.patch rename modules/theme/{breeze-dark-colors-override.conf => colors-qt5ct.conf} (100%) create mode 100644 modules/theme/colors-qt6ct.conf diff --git a/modules/overlay-pkgs/default.nix b/modules/overlay-pkgs/default.nix index a70a1a3..7fd948a 100644 --- a/modules/overlay-pkgs/default.nix +++ b/modules/overlay-pkgs/default.nix @@ -3,8 +3,7 @@ inputs.nur.overlay (final: prev: { - kwrite = final.callPackage ./kwrite.nix {}; - qt5ct = final.callPackage ./qt5ct {}; + kwrite = final.kdePackages.callPackage ./kwrite.nix {}; }) ]; } diff --git a/modules/overlay-pkgs/qt5ct/default.nix b/modules/overlay-pkgs/qt5ct/default.nix deleted file mode 100644 index 39f3a5c..0000000 --- a/modules/overlay-pkgs/qt5ct/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ pkgs, ... }: with pkgs; -stdenv.mkDerivation { - pname = "qt5ct"; - version = "1.5"; - src = builtins.fetchurl { - url = "https://downloads.sourceforge.net/project/qt5ct/qt5ct-1.5.tar.bz2"; - sha256 = "14742vs32m98nbfb5mad0i8ciff5f45gfcb5v03p4hh2dvhhqgfn"; - }; - patches = [ ./patch.patch ]; - nativeBuildInputs = with libsForQt5; [ qmake qttools wrapQtAppsHook ]; - buildInputs = with libsForQt5; [ qtbase qtsvg qqc2-desktop-style qtquickcontrols2 kconfig kiconthemes ]; - qmakeFlags = [ - "LRELEASE_EXECUTABLE=${lib.getDev libsForQt5.qttools}/bin/lrelease" - "PLUGINDIR=${placeholder "out"}/${libsForQt5.qtbase.qtPluginPrefix}" - ]; -} diff --git a/modules/overlay-pkgs/qt5ct/patch.patch b/modules/overlay-pkgs/qt5ct/patch.patch deleted file mode 100755 index be3cc23..0000000 --- a/modules/overlay-pkgs/qt5ct/patch.patch +++ /dev/null @@ -1,200 +0,0 @@ -diff -ur original/CMakeLists.txt patched/CMakeLists.txt ---- original/CMakeLists.txt 2021-10-01 11:20:38.000000000 -0700 -+++ patched/CMakeLists.txt 2022-04-01 02:08:48.808150703 -0700 -@@ -24,8 +24,11 @@ - - ADD_DEFINITIONS(-DQT_DISABLE_DEPRECATED_BEFORE=0x050C00 -DUSE_WIDGETS) - --find_package(Qt5 ${QT_MINIMUM_VERSION} COMPONENTS Widgets Concurrent LinguistTools DBus ThemeSupport REQUIRED) -+find_package(Qt5 ${QT_MINIMUM_VERSION} COMPONENTS Widgets Concurrent LinguistTools DBus QuickControls2 ThemeSupport REQUIRED) - find_package(Qt5Gui ${QT_MINIMUM_VERSION} CONFIG REQUIRED Private) -+find_package(KF5Config REQUIRED) -+find_package(KF5ConfigWidgets REQUIRED) -+find_package(KF5IconThemes REQUIRED) - - get_target_property(QT_LRELEASE_EXECUTABLE Qt5::lrelease IMPORTED_LOCATION) - -@@ -44,7 +47,9 @@ - message(FATAL_ERROR "Could NOT find qtpaths executable") - endif() - --execute_process(COMMAND ${QT_QTPATHS_EXECUTABLE} --plugin-dir OUTPUT_VARIABLE PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE) -+if(NOT PLUGINDIR) -+ execute_process(COMMAND ${QT_QTPATHS_EXECUTABLE} --plugin-dir OUTPUT_VARIABLE PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE) -+endif() - message(STATUS "Plugin path: " ${PLUGINDIR}) - - message(STATUS "Generating translations ...") -diff -ur original/src/qt5ct/appearancepage.cpp patched/src/qt5ct/appearancepage.cpp ---- original/src/qt5ct/appearancepage.cpp 2021-10-01 11:20:38.000000000 -0700 -+++ patched/src/qt5ct/appearancepage.cpp 2022-04-01 02:08:48.809150748 -0700 -@@ -86,6 +86,8 @@ - #else - keys = QPlatformThemeFactory::keys(); - m_ui->dialogComboBox->addItem(tr("Default"), "default"); -+ if(keys.contains("xdgdesktopportal")) -+ m_ui->dialogComboBox->addItem("XDG Desktop Portal", "xdgdesktopportal"); - if(keys.contains("gtk2") || keys.contains("qt5gtk2")) - m_ui->dialogComboBox->addItem("GTK2", "gtk2"); - else if(keys.contains("gtk3") || keys.contains("qt5gtk3")) -@@ -390,7 +392,7 @@ - { - QDir dir(path); - dir.setFilter(QDir::Files); -- dir.setNameFilters(QStringList() << "*.conf"); -+ dir.setNameFilters(QStringList() << "*.conf" << "*.colors"); - - for(QFileInfo info : dir.entryInfoList()) - { -diff -ur original/src/qt5ct/qt5ct.cpp patched/src/qt5ct/qt5ct.cpp ---- original/src/qt5ct/qt5ct.cpp 2021-10-01 11:20:38.000000000 -0700 -+++ patched/src/qt5ct/qt5ct.cpp 2022-04-01 02:08:48.809150748 -0700 -@@ -111,6 +111,7 @@ - for(const QString &p : QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation)) - { - paths << (p + QLatin1String("/qt5ct/colors")); -+ paths << (p + QLatin1String("/color-schemes")); - } - paths << QLatin1String(QT5CT_DATADIR"/qt5ct/colors"); - paths.removeDuplicates(); -diff -ur original/src/qt5ct-qtplugin/CMakeLists.txt patched/src/qt5ct-qtplugin/CMakeLists.txt ---- original/src/qt5ct-qtplugin/CMakeLists.txt 2021-10-01 11:20:38.000000000 -0700 -+++ patched/src/qt5ct-qtplugin/CMakeLists.txt 2022-04-01 02:08:48.812150883 -0700 -@@ -10,5 +10,5 @@ - - add_library(qt5ct-qtplugin MODULE ${app_SRCS}) - set_target_properties(qt5ct-qtplugin PROPERTIES OUTPUT_NAME qt5ct) --target_link_libraries(qt5ct-qtplugin PRIVATE Qt5::Widgets Qt5::GuiPrivate Qt5::DBus Qt5::ThemeSupportPrivate) -+target_link_libraries(qt5ct-qtplugin PRIVATE Qt5::Widgets Qt5::GuiPrivate Qt5::DBus Qt5::QuickControls2 Qt5::ThemeSupportPrivate KF5::ConfigCore KF5::ConfigWidgets KF5::IconThemes) - install(TARGETS qt5ct-qtplugin DESTINATION ${PLUGINDIR}/platformthemes) -diff -ur original/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp patched/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp ---- original/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp 2021-10-01 11:20:38.000000000 -0700 -+++ patched/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp 2022-04-01 02:08:48.812150883 -0700 -@@ -45,6 +45,7 @@ - #endif - #include - #include -+#include - - #include - #include "qt5ctplatformtheme.h" -@@ -60,6 +61,11 @@ - #include - #endif - -+#include -+#include -+#include -+#include -+ - Q_LOGGING_CATEGORY(lqt5ct, "qt5ct", QtWarningMsg) - - //QT_QPA_PLATFORMTHEME=qt5ct -@@ -75,12 +81,17 @@ - QMetaObject::invokeMethod(this, "createFSWatcher", Qt::QueuedConnection); - #endif - QGuiApplication::setFont(m_generalFont); -+ //if the user has explicitly set something else, don't meddle -+ if (QQuickStyle::name().isEmpty()) { -+ QQuickStyle::setStyle(QLatin1String("org.kde.desktop")); -+ } - } - qCDebug(lqt5ct) << "using qt5ct plugin"; - #ifdef QT_WIDGETS_LIB - if(!QStyleFactory::keys().contains("qt5ct-style")) - qCCritical(lqt5ct) << "unable to find qt5ct proxy style"; - #endif -+ QCoreApplication::instance()->installEventFilter(this); - } - - Qt5CTPlatformTheme::~Qt5CTPlatformTheme() -@@ -195,6 +206,11 @@ - } - #endif - -+QIconEngine *Qt5CTPlatformTheme::createIconEngine(const QString &iconName) const -+{ -+ return new KIconEngine(iconName, KIconLoader::global()); -+} -+ - void Qt5CTPlatformTheme::applySettings() - { - if(!QGuiApplication::desktopSettingsAware() || m_isIgnored) -@@ -313,7 +329,15 @@ - if(!schemePath.isEmpty() && settings.value("custom_palette", false).toBool()) - { - schemePath = Qt5CT::resolvePath(schemePath); //replace environment variables -- m_palette = new QPalette(loadColorScheme(schemePath)); -+ if(schemePath.endsWith(".colors")) -+ { -+ m_palette = new QPalette(KColorScheme::createApplicationPalette(KSharedConfig::openConfig(schemePath))); -+ qApp->setProperty("KDE_COLOR_SCHEME_PATH", schemePath); -+ } -+ else -+ { -+ m_palette = new QPalette(loadColorScheme(schemePath)); -+ } - } - m_iconTheme = settings.value("icon_theme").toString(); - //load dialogs -@@ -480,3 +504,30 @@ - - return customPalette; - } -+ -+bool Qt5CTPlatformTheme::eventFilter(QObject *obj, QEvent *e) -+{ -+ if(obj == qApp && e->type() == QEvent::DynamicPropertyChange) -+ { -+ QDynamicPropertyChangeEvent *ee = static_cast(e); -+ if(ee->propertyName() == "KDE_COLOR_SCHEME_PATH") -+ { -+ if(qApp->property("KDE_COLOR_SCHEME_PATH").isNull()) -+ { -+ QSettings settings(Qt5CT::configFile(), QSettings::IniFormat); -+ settings.beginGroup("Appearance"); -+ QString schemePath = settings.value("color_scheme_path").toString(); -+ if(!schemePath.isEmpty() && settings.value("custom_palette", false).toBool()) -+ { -+ schemePath = Qt5CT::resolvePath(schemePath); //replace environment variables -+ if(schemePath.endsWith(".colors")) -+ { -+ qApp->setProperty("KDE_COLOR_SCHEME_PATH", schemePath); -+ applySettings(); -+ } -+ } -+ } -+ } -+ } -+ return QObject::eventFilter(obj, e); -+} -diff -ur original/src/qt5ct-qtplugin/qt5ctplatformtheme.h patched/src/qt5ct-qtplugin/qt5ctplatformtheme.h ---- original/src/qt5ct-qtplugin/qt5ctplatformtheme.h 2021-10-01 11:20:38.000000000 -0700 -+++ patched/src/qt5ct-qtplugin/qt5ctplatformtheme.h 2022-04-01 02:08:48.812150883 -0700 -@@ -91,10 +91,13 @@ - //virtual QPixmap fileIconPixmap(const QFileInfo &fileInfo, const QSizeF &size, - // QPlatformTheme::IconOptions iconOptions = 0) const; - -- //virtual QIconEngine *createIconEngine(const QString &iconName) const; -+ virtual QIconEngine *createIconEngine(const QString &iconName) const; - //virtual QList keyBindings(QKeySequence::StandardKey key) const; - //virtual QString standardButtonText(int button) const; - -+protected: -+ bool eventFilter(QObject *obj, QEvent *e) override; -+ - private slots: - void applySettings(); - #ifdef QT_WIDGETS_LIB -diff -ur original/src/qt5ct-qtplugin/qt5ct-qtplugin.pro patched/src/qt5ct-qtplugin/qt5ct-qtplugin.pro ---- original/src/qt5ct-qtplugin/qt5ct-qtplugin.pro 2021-10-01 11:20:38.000000000 -0700 -+++ patched/src/qt5ct-qtplugin/qt5ct-qtplugin.pro 2022-04-01 02:08:48.812150883 -0700 -@@ -4,7 +4,7 @@ - TARGET = qt5ct - CONFIG += plugin - --QT += gui-private -+QT += gui-private quickcontrols2 KConfigCore KConfigWidgets KIconThemes - - !equals(DISABLE_DBUS, 1):qtHaveModule(dbus):greaterThan(QT_MINOR_VERSION, 5) { - greaterThan(QT_MINOR_VERSION, 7) { diff --git a/modules/theme/breeze-dark-colors-override.conf b/modules/theme/colors-qt5ct.conf similarity index 100% rename from modules/theme/breeze-dark-colors-override.conf rename to modules/theme/colors-qt5ct.conf diff --git a/modules/theme/colors-qt6ct.conf b/modules/theme/colors-qt6ct.conf new file mode 100644 index 0000000..a5b3afd --- /dev/null +++ b/modules/theme/colors-qt6ct.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#fffcfcfc, #ff31363b, #ff40464c, #ff363b40, #ff191b1d, #ff25292c, #fffcfcfc, #ffffffff, #fffcfcfc, #ff1b1e20, #ff2a2e32, #ff121415, #ff3daee9, #fffcfcfc, #ff1d99f3, #ff9b59b6, #ff232629, #ff000000, #ff31363b, #fffcfcfc, #ffa1a9b1, #ff3daee9 +disabled_colors=#ff6e7173, #ff2f3338, #ff3e444a, #ff353a3f, #ff181a1c, #ff23272a, #ff656768, #ffffffff, #ff727679, #ff1a1d1f, #ff282c30, #ff111314, #ff282c30, #ff6e7173, #ff1a4665, #ff443051, #ff212427, #ff000000, #ff31363b, #fffcfcfc, #ff464b4f, #ff282c30 +inactive_colors=#fffcfcfc, #ff31363b, #ff40464c, #ff363b40, #ff191b1d, #ff25292c, #fffcfcfc, #ffffffff, #fffcfcfc, #ff1b1e20, #ff2a2e32, #ff121415, #ff1f485e, #fffcfcfc, #ff1d99f3, #ff9b59b6, #ff232629, #ff000000, #ff31363b, #fffcfcfc, #ffa1a9b1, #ff1f485e \ No newline at end of file diff --git a/modules/theme/default.nix b/modules/theme/default.nix index 91205f9..c6a905e 100644 --- a/modules/theme/default.nix +++ b/modules/theme/default.nix @@ -1,21 +1,16 @@ { self, lib, config, pkgs, ... }: { environment.systemPackages = with pkgs; [ - qt5ct - breeze-qt5 - breeze-gtk - breeze-icons + qt6.qtwayland + kdePackages.breeze + kdePackages.breeze-icons + qt6.qtsvg # needed to load breeze icons + + kdePackages.qqc2-desktop-style ]; - environment.variables = let - qmlPackages = with pkgs; [ - plasma5Packages.qqc2-desktop-style - plasma5Packages.kirigami2 - ]; - - qtVersion = pkgs.qt515.qtbase.version; - in { - "QT_QPA_PLATFORMTHEME" = "qt5ct"; - "QML2_IMPORT_PATH" = "${lib.concatStringsSep ":" (builtins.map (p: "${p}/lib/qt-${qtVersion}/qml") qmlPackages)}"; + qt = { + enable = true; + platformTheme = "qt5ct"; }; home-manager.users.${config.main-user} = { @@ -24,11 +19,8 @@ Inherits=breeze_cursors ''; - xdg.configFile = { - # fixes dolphin background colors - "kdeglobals".source = "${pkgs.breeze-qt5}/share/color-schemes/BreezeDark.colors"; - - "qt5ct/qt5ct.conf".text = '' + xdg.configFile = let + qtctConf = colors: '' [Appearance] style=Breeze icon_theme=breeze-dark @@ -36,7 +28,7 @@ # Cantata misbehaves without color overrides. This overrides the breeze colors with the # exact same colors. - color_scheme_path=${./breeze-dark-colors-override.conf} + color_scheme_path=${colors} custom_palette=true [Interface] @@ -52,22 +44,31 @@ underline_shortcut=1 wheel_scroll_lines=3 ''; + in { + # fixes dolphin background colors + "kdeglobals".source = "${pkgs.kdePackages.breeze}/share/color-schemes/BreezeDark.colors"; + + "qt5ct/qt5ct.conf".text = qtctConf ./colors-qt5ct.conf; + "qt6ct/qt6ct.conf".text = qtctConf ./colors-qt6ct.conf; }; gtk = { enable = true; theme = { - package = pkgs.breeze-gtk; + package = pkgs.kdePackages.breeze-gtk; name = "Breeze-Dark"; }; iconTheme = { - package = pkgs.breeze-icons; + package = pkgs.kdePackages.breeze-icons; name = "breeze-dark"; }; cursorTheme = { - package = pkgs.breeze-gtk; + package = pkgs.kdePackages.breeze-gtk; name = "breeze_cursors"; }; + + gtk3.extraConfig.gtk-xft-rgba = "rgb"; + gtk4.extraConfig.gtk-xft-rgba = "rgb"; }; }; } diff --git a/modules/user/general.nix b/modules/user/general.nix index a7defcb..1faa00a 100644 --- a/modules/user/general.nix +++ b/modules/user/general.nix @@ -37,7 +37,10 @@ enable = true; pinentryFlavor = "gnome3"; }; - kdeconnect.enable = true; + kdeconnect = { + package = pkgs.kdePackages.kdeconnect-kde; + enable = true; + }; }; services = { @@ -75,14 +78,15 @@ ]; home.packages = with pkgs; [ - ark + kdePackages.ark kwrite krita gimp vlc mpv gpicview - filelight + kdePackages.filelight kdePackages.kirigami kdePackages.kquickcharts # deps + curl cantata logseq bitwarden @@ -98,8 +102,6 @@ signal-desktop anki-bin - libsForQt5.kwallet - libsForQt5.kwalletmanager distrobox xdg-utils light @@ -119,11 +121,6 @@ }; services = { - kdeconnect = { - enable = true; - indicator = true; - }; - mpd = { enable = true; musicDirectory = "${homeConfig.home.homeDirectory}/Music"; diff --git a/modules/user/modules/dolphin/default.nix b/modules/user/modules/dolphin/default.nix index 36aecd5..b620875 100644 --- a/modules/user/modules/dolphin/default.nix +++ b/modules/user/modules/dolphin/default.nix @@ -1,13 +1,13 @@ { pkgs, ... }: { home.packages = with pkgs; [ - dolphin + kdePackages.dolphin libssh # sftp # thumbnails - plasma5Packages.kio - plasma5Packages.kio-extras - plasma5Packages.kimageformats - plasma5Packages.kdegraphics-thumbnailers + kdePackages.kio + kdePackages.kio-extras + kdePackages.kimageformats + kdePackages.kdegraphics-thumbnailers ]; xdg.configFile."dolphinrc".source = ./dolphinrc;