diff options
author | worldofpeace <worldofpeace@protonmail.ch> | 2019-08-09 11:59:32 -0400 |
---|---|---|
committer | worldofpeace <worldofpeace@protonmail.ch> | 2019-08-20 12:24:55 -0400 |
commit | 1d0d69a214a898c97e698b50537d1d15120a8d04 (patch) | |
tree | 6987f411054d70dce28635ceb8fba0f2d135e019 /nixos/modules/config | |
parent | 9125f51b7068fa63d2fb3092862720a584229073 (diff) | |
download | nixlib-1d0d69a214a898c97e698b50537d1d15120a8d04.tar nixlib-1d0d69a214a898c97e698b50537d1d15120a8d04.tar.gz nixlib-1d0d69a214a898c97e698b50537d1d15120a8d04.tar.bz2 nixlib-1d0d69a214a898c97e698b50537d1d15120a8d04.tar.lz nixlib-1d0d69a214a898c97e698b50537d1d15120a8d04.tar.xz nixlib-1d0d69a214a898c97e698b50537d1d15120a8d04.tar.zst nixlib-1d0d69a214a898c97e698b50537d1d15120a8d04.zip |
nixos/qt5: init
This moduule has the following options: * platformTheme * style This allows us to configure the Qt5 theme engine and style.
Diffstat (limited to 'nixos/modules/config')
-rw-r--r-- | nixos/modules/config/qt5.nix | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/nixos/modules/config/qt5.nix b/nixos/modules/config/qt5.nix new file mode 100644 index 000000000000..7de1c0f5d557 --- /dev/null +++ b/nixos/modules/config/qt5.nix @@ -0,0 +1,102 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.qt5; + + isQGnome = cfg.platformTheme == "gnome" && cfg.style == "adwaita"; + isQtStyle = cfg.platformTheme == "gtk2" && cfg.style != "adwaita"; + + packages = if isQGnome then [ pkgs.qgnomeplatform pkgs.adwaita-qt ] + else if isQtStyle then [ pkgs.qtstyleplugins ] + else throw "`qt5.platformTheme` ${cfg.platformTheme} and `qt5.style` ${cfg.style} are not compatible."; + +in + +{ + + options = { + qt5 = { + + enable = mkEnableOption "Qt5 theming configuration"; + + platformTheme = mkOption { + type = types.enum [ + "gtk2" + "gnome" + ]; + example = "gnome"; + relatedPackages = [ + "qgnomeplatform" + ["libsForQt5" "qtstyleplugins"] + ]; + description = '' + Selects the platform theme to use for Qt5 applications.</para> + <para>The options are + <variablelist> + <varlistentry> + <term><literal>gtk</literal></term> + <listitem><para>Use GTK theme with + <link xlink:href="https://github.com/qt/qtstyleplugins">qtstyleplugins</link> + </para></listitem> + </varlistentry> + <varlistentry> + <term><literal>gnome</literal></term> + <listitem><para>Use GNOME theme with + <link xlink:href="https://github.com/FedoraQt/QGnomePlatform">qgnomeplatform</link> + </para></listitem> + </varlistentry> + </variablelist> + ''; + }; + + style = mkOption { + type = types.enum [ + "adwaita" + "cleanlooks" + "gtk2" + "motif" + "plastique" + ]; + example = "adwaita"; + relatedPackages = [ + "adwaita-qt" + ["libsForQt5" "qtstyleplugins"] + ]; + description = '' + Selects the style to use for Qt5 applications.</para> + <para>The options are + <variablelist> + <varlistentry> + <term><literal>adwaita</literal></term> + <listitem><para>Use Adwaita Qt style with + <link xlink:href="https://github.com/FedoraQt/adwaita-qt">adwaita</link> + </para></listitem> + </varlistentry> + <varlistentry> + <term><literal>cleanlooks</literal></term> + <term><literal>gtk2</literal></term> + <term><literal>motif</literal></term> + <term><literal>plastique</literal></term> + <listitem><para>Use styles from + <link xlink:href="https://github.com/qt/qtstyleplugins">qtstyleplugins</link> + </para></listitem> + </varlistentry> + </variablelist> + ''; + }; + }; + }; + + config = mkIf cfg.enable { + + environment.variables.QT_QPA_PLATFORMTHEME = cfg.platformTheme; + + environment.variables.QT_STYLE_OVERRIDE = cfg.style; + + environment.systemPackages = packages; + + }; +} |