mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-11-20 23:54:18 +01:00
link to search.nixos.org instead of pulling package metadata out of pkgs. this lets us cache docs of a few more modules and provides easier access to package info from the HTML manual, but makes the manpage slightly less useful since package description are no longer rendered.
105 lines
3.1 KiB
Nix
105 lines
3.1 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
cfg = config.qt5;
|
|
|
|
isQGnome = cfg.platformTheme == "gnome" && builtins.elem cfg.style ["adwaita" "adwaita-dark"];
|
|
isQtStyle = cfg.platformTheme == "gtk2" && !(builtins.elem cfg.style ["adwaita" "adwaita-dark"]);
|
|
|
|
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"
|
|
"adwaita-dark"
|
|
"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>
|
|
<term><literal>adwaita-dark</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;
|
|
|
|
};
|
|
}
|