diff options
author | worldofpeace <worldofpeace@protonmail.ch> | 2020-02-22 20:42:27 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-22 20:42:27 -0500 |
commit | 2442f99d40228b4fbe5d1987c148974115950e63 (patch) | |
tree | 0fe45dae29e79edbd57b3237c05bb546cdfa26b1 /nixos/modules/config/qt5.nix | |
parent | 9d82f069da235881e44e144fd710acab915a5487 (diff) | |
download | nixlib-2442f99d40228b4fbe5d1987c148974115950e63.tar nixlib-2442f99d40228b4fbe5d1987c148974115950e63.tar.gz nixlib-2442f99d40228b4fbe5d1987c148974115950e63.tar.bz2 nixlib-2442f99d40228b4fbe5d1987c148974115950e63.tar.lz nixlib-2442f99d40228b4fbe5d1987c148974115950e63.tar.xz nixlib-2442f99d40228b4fbe5d1987c148974115950e63.tar.zst nixlib-2442f99d40228b4fbe5d1987c148974115950e63.zip |
Revert "Theming options for Gtk and Qt"
Diffstat (limited to 'nixos/modules/config/qt5.nix')
-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..d9dec74f1552 --- /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.libsForQt5.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; + + }; +} |