summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2023-01-10 17:01:22 +0100
committerGitHub <noreply@github.com>2023-01-10 17:01:22 +0100
commit0c7cc93361cb0462abebea439783e348ad7f04aa (patch)
tree3976e838bb3fcd2acd8d1776c5c0388a36690d5a
parent46d6a8f05bafb5b260324ccb40c7221bb11faa29 (diff)
parenta2e21c76c7d31d8f54a564c49ad3ef54d76fc1e4 (diff)
Merge pull request #182580 from linsui/qgnomeplatform
-rw-r--r--nixos/doc/manual/configuration/x-windows.chapter.md6
-rw-r--r--nixos/doc/manual/from_md/configuration/x-windows.chapter.xml6
-rw-r--r--nixos/modules/config/qt.nix (renamed from nixos/modules/config/qt5.nix)28
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix2
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/cinnamon.nix8
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome.nix4
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix8
-rw-r--r--nixos/tests/keepassxc.nix2
-rw-r--r--pkgs/data/themes/adwaita-qt/default.nix19
-rw-r--r--pkgs/development/libraries/qgnomeplatform/default.nix18
-rw-r--r--pkgs/top-level/all-packages.nix8
12 files changed, 78 insertions, 33 deletions
diff --git a/nixos/doc/manual/configuration/x-windows.chapter.md b/nixos/doc/manual/configuration/x-windows.chapter.md
index f92403ed1c4c..be185cf4c314 100644
--- a/nixos/doc/manual/configuration/x-windows.chapter.md
+++ b/nixos/doc/manual/configuration/x-windows.chapter.md
@@ -199,9 +199,9 @@ GTK themes can be installed either to user profile or system-wide (via
GTK ones, you can use the following configuration:
```nix
-qt5.enable = true;
-qt5.platformTheme = "gtk2";
-qt5.style = "gtk2";
+qt.enable = true;
+qt.platformTheme = "gtk2";
+qt.style = "gtk2";
```
## Custom XKB layouts {#custom-xkb-layouts .unnumbered}
diff --git a/nixos/doc/manual/from_md/configuration/x-windows.chapter.xml b/nixos/doc/manual/from_md/configuration/x-windows.chapter.xml
index c5a8b9bae84d..319d3e980188 100644
--- a/nixos/doc/manual/from_md/configuration/x-windows.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/x-windows.chapter.xml
@@ -223,9 +223,9 @@ services.xserver.libinput.touchpad.tapping = false;
configuration:
</para>
<programlisting language="nix">
-qt5.enable = true;
-qt5.platformTheme = &quot;gtk2&quot;;
-qt5.style = &quot;gtk2&quot;;
+qt.enable = true;
+qt.platformTheme = &quot;gtk2&quot;;
+qt.style = &quot;gtk2&quot;;
</programlisting>
</section>
<section xml:id="custom-xkb-layouts">
diff --git a/nixos/modules/config/qt5.nix b/nixos/modules/config/qt.nix
index cb3180d7b96a..35defb8fbd99 100644
--- a/nixos/modules/config/qt5.nix
+++ b/nixos/modules/config/qt.nix
@@ -4,7 +4,7 @@ with lib;
let
- cfg = config.qt5;
+ cfg = config.qt;
isQGnome = cfg.platformTheme == "gnome" && builtins.elem cfg.style ["adwaita" "adwaita-dark"];
isQtStyle = cfg.platformTheme == "gtk2" && !(builtins.elem cfg.style ["adwaita" "adwaita-dark"]);
@@ -12,22 +12,34 @@ let
isLxqt = cfg.platformTheme == "lxqt";
isKde = cfg.platformTheme == "kde";
- packages = if isQGnome then [ pkgs.qgnomeplatform pkgs.adwaita-qt ]
+ packages =
+ if isQGnome then [
+ pkgs.qgnomeplatform
+ pkgs.adwaita-qt
+ pkgs.qgnomeplatform-qt6
+ pkgs.adwaita-qt6
+ ]
else if isQtStyle then [ pkgs.libsForQt5.qtstyleplugins ]
else if isQt5ct then [ pkgs.libsForQt5.qt5ct ]
else if isLxqt then [ pkgs.lxqt.lxqt-qtplugin pkgs.lxqt.lxqt-config ]
else if isKde then [ pkgs.libsForQt5.plasma-integration pkgs.libsForQt5.systemsettings ]
- else throw "`qt5.platformTheme` ${cfg.platformTheme} and `qt5.style` ${cfg.style} are not compatible.";
+ else throw "`qt.platformTheme` ${cfg.platformTheme} and `qt.style` ${cfg.style} are not compatible.";
in
{
meta.maintainers = [ maintainers.romildo ];
+ imports = [
+ (mkRenamedOptionModule ["qt5" "enable" ] ["qt" "enable" ])
+ (mkRenamedOptionModule ["qt5" "platformTheme" ] ["qt" "platformTheme" ])
+ (mkRenamedOptionModule ["qt5" "style" ] ["qt" "style" ])
+ ];
+
options = {
- qt5 = {
+ qt = {
- enable = mkEnableOption (lib.mdDoc "Qt5 theming configuration");
+ enable = mkEnableOption (lib.mdDoc "Qt theming configuration");
platformTheme = mkOption {
type = types.enum [
@@ -40,13 +52,14 @@ in
example = "gnome";
relatedPackages = [
"qgnomeplatform"
+ "qgnomeplatform-qt6"
["libsForQt5" "qtstyleplugins"]
["libsForQt5" "qt5ct"]
["lxqt" "lxqt-qtplugin"]
["libsForQt5" "plasma-integration"]
];
description = lib.mdDoc ''
- Selects the platform theme to use for Qt5 applications.
+ Selects the platform theme to use for Qt applications.
The options are
- `gtk`: Use GTK theme with [qtstyleplugins](https://github.com/qt/qtstyleplugins)
@@ -71,10 +84,11 @@ in
example = "adwaita";
relatedPackages = [
"adwaita-qt"
+ "adwaita-qt6"
["libsForQt5" "qtstyleplugins"]
];
description = lib.mdDoc ''
- Selects the style to use for Qt5 applications.
+ Selects the style to use for Qt applications.
The options are
- `adwaita`, `adwaita-dark`: Use Adwaita Qt style with
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix
index d015e10c11d8..12feb2d96ecc 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix
@@ -31,7 +31,7 @@
};
# Theme calamares with GNOME theme
- qt5 = {
+ qt = {
enable = true;
platformTheme = "gnome";
};
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 3092b021bd9a..adac3ac89bf8 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -20,7 +20,7 @@
./config/nsswitch.nix
./config/power-management.nix
./config/pulseaudio.nix
- ./config/qt5.nix
+ ./config/qt.nix
./config/resolvconf.nix
./config/shells-environment.nix
./config/swap.nix
diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix
index df1b6f731a4e..a693f3e2379a 100644
--- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix
+++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -198,10 +198,10 @@ in
programs.bash.vteIntegration = mkDefault true;
programs.zsh.vteIntegration = mkDefault true;
- # Harmonize Qt5 applications under Cinnamon
- qt5.enable = true;
- qt5.platformTheme = "gnome";
- qt5.style = "adwaita";
+ # Harmonize Qt applications under Cinnamon
+ qt.enable = true;
+ qt.platformTheme = "gnome";
+ qt.style = "adwaita";
# Default Fonts
fonts.fonts = with pkgs; [
diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix
index 9c1978e362bc..dadfb421d3a8 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome.nix
@@ -352,8 +352,8 @@ in
})
];
- # Harmonize Qt5 application style and also make them use the portal for file chooser dialog.
- qt5 = {
+ # Harmonize Qt application style and also make them use the portal for file chooser dialog.
+ qt = {
enable = mkDefault true;
platformTheme = mkDefault "gnome";
style = mkDefault "adwaita";
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 5c0203224e13..f5cc2d8187da 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -250,10 +250,10 @@ in
programs.bash.vteIntegration = mkDefault true;
programs.zsh.vteIntegration = mkDefault true;
- # Harmonize Qt5 applications under Pantheon
- qt5.enable = true;
- qt5.platformTheme = "gnome";
- qt5.style = "adwaita";
+ # Harmonize Qt applications under Pantheon
+ qt.enable = true;
+ qt.platformTheme = "gnome";
+ qt.style = "adwaita";
# Default Fonts
fonts.fonts = with pkgs; [
diff --git a/nixos/tests/keepassxc.nix b/nixos/tests/keepassxc.nix
index 303be1330405..debb469032a6 100644
--- a/nixos/tests/keepassxc.nix
+++ b/nixos/tests/keepassxc.nix
@@ -17,7 +17,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
services.xserver.enable = true;
# Regression test for https://github.com/NixOS/nixpkgs/issues/163482
- qt5 = {
+ qt = {
enable = true;
platformTheme = "gnome";
style = "adwaita-dark";
diff --git a/pkgs/data/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix
index 79690fa4e6af..2a5d768b1ae3 100644
--- a/pkgs/data/themes/adwaita-qt/default.nix
+++ b/pkgs/data/themes/adwaita-qt/default.nix
@@ -1,16 +1,17 @@
-{ mkDerivation
-, stdenv
+{ stdenv
, lib
, fetchFromGitHub
, nix-update-script
, cmake
, ninja
, qtbase
+, qtwayland
, qt5
, xorg
+, useQt6 ? false
}:
-mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "adwaita-qt";
version = "1.4.1";
@@ -30,9 +31,19 @@ mkDerivation rec {
buildInputs = [
qtbase
- qt5.qtx11extras
] ++ lib.optionals stdenv.isLinux [
xorg.libxcb
+ ] ++ lib.optionals (!useQt6) [
+ qt5.qtx11extras
+ ] ++ lib.optionals useQt6 [
+ qtwayland
+ ];
+
+ # Qt setup hook complains about missing `wrapQtAppsHook` otherwise.
+ dontWrapQtApps = true;
+
+ cmakeFlags = lib.optionals useQt6 [
+ "-DUSE_QT6=true"
];
postPatch = ''
diff --git a/pkgs/development/libraries/qgnomeplatform/default.nix b/pkgs/development/libraries/qgnomeplatform/default.nix
index 7f03baba0f4a..12a41104cfd3 100644
--- a/pkgs/development/libraries/qgnomeplatform/default.nix
+++ b/pkgs/development/libraries/qgnomeplatform/default.nix
@@ -1,19 +1,22 @@
-{ mkDerivation
+{ stdenv
, lib
, fetchFromGitHub
, nix-update-script
, cmake
, pkg-config
, adwaita-qt
+, adwaita-qt6
, glib
, gtk3
, qtbase
+, qtwayland
, pantheon
, substituteAll
, gsettings-desktop-schemas
+, useQt6 ? false
}:
-mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "qgnomeplatform";
version = "0.8.4";
@@ -38,15 +41,24 @@ mkDerivation rec {
];
buildInputs = [
- adwaita-qt
glib
gtk3
qtbase
+ ] ++ lib.optionals (!useQt6) [
+ adwaita-qt
+ ] ++ lib.optionals useQt6 [
+ adwaita-qt6
+ qtwayland
];
+ # Qt setup hook complains about missing `wrapQtAppsHook` otherwise.
+ dontWrapQtApps = true;
+
cmakeFlags = [
"-DGLIB_SCHEMAS_DIR=${glib.getSchemaPath gsettings-desktop-schemas}"
"-DQT_PLUGINS_DIR=${placeholder "out"}/${qtbase.qtPluginPrefix}"
+ ] ++ lib.optionals useQt6 [
+ "-DUSE_QT6=true"
];
passthru = {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 06829d1376c1..8aebe9618cd4 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -22562,6 +22562,10 @@ with pkgs;
qgnomeplatform = libsForQt5.callPackage ../development/libraries/qgnomeplatform { };
+ qgnomeplatform-qt6 = qt6Packages.callPackage ../development/libraries/qgnomeplatform {
+ useQt6 = true;
+ };
+
randomx = darwin.apple_sdk_11_0.callPackage ../development/libraries/randomx { };
remodel = callPackage ../development/tools/remodel {
@@ -26435,6 +26439,10 @@ with pkgs;
adwaita-qt = libsForQt5.callPackage ../data/themes/adwaita-qt { };
+ adwaita-qt6 = qt6Packages.callPackage ../data/themes/adwaita-qt {
+ useQt6 = true;
+ };
+
adw-gtk3 = callPackage ../data/themes/adw-gtk3 { };
agave = callPackage ../data/fonts/agave { };