treewide: optionalize mkTarget's humanName and name arguments

Optionalize mkTarget's 'humanName' and 'name' arguments by inferring
'humanName' from the 'name' attribute in the /modules/<MODULE>/meta.nix
file, and 'name' from the /modules/<NAME>/ directory name.

Inferring the 'humanName' and 'name' arguments ensures consistency and
reduces boilerplate.

The 'humanName' and 'name' arguments are optionalized instead of removed
because complex modules generating target derivations need to
distinguish between them.

Closes: https://github.com/nix-community/stylix/issues/1661
This commit is contained in:
NAHO 2025-07-19 11:28:36 +02:00
parent 16df6b8448
commit dfc859f54d
No known key found for this signature in database
GPG key ID: BFB5D5E3F4C95185
108 changed files with 52 additions and 327 deletions

View file

@ -49,9 +49,6 @@ documentation for more details):
```nix
{ config, lib, mkTarget ... }:
mkTarget {
name = "«name»";
humanName = "«human readable name»";
config =
{ colors }:
{

View file

@ -3,8 +3,6 @@
# - `man 5 alacritty`
{ mkTarget, ... }:
mkTarget {
name = "alacritty";
humanName = "Alacritty";
config = [
(
{ colors }:

View file

@ -5,9 +5,6 @@
...
}:
mkTarget {
name = "anki";
humanName = "Anki";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "ashell";
humanName = "Ashell";
config = [
(
{ colors }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "avizo";
humanName = "Avizo";
# Referenced https://github.com/stacyharper/base16-mako
config =
{ colors, opacity }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "bat";
humanName = "Bat";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "bemenu";
humanName = "bemenu";
options =
{ fonts }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "blender";
humanName = "Blender";
options.themeBody = lib.mkOption {
type = lib.types.lines;
default = "";

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "bspwm";
humanName = "bspwm";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "btop";
humanName = "btop";
config = [
(
{ opacity }:

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "cava";
humanName = "CAVA";
options.rainbow.enable = lib.mkEnableOption "rainbow gradient theming";
config =

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "cavalier";
humanName = "Cavalier";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "chromium";
humanName = "Chromium, Google Chrome and Brave";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "console";
humanName = "the Nix-on-Droid console";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "console";
humanName = "the Linux kernel console";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "dunst";
humanName = "Dunst";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, pkgs, ... }:
mkTarget {
name = "emacs";
humanName = "Emacs";
config = [
(
{ opacity }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "eog";
humanName = "Eye of GNOME Image Viewer";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "fcitx5";
humanName = "fcitx5";
config = [
(
{ fonts }:

View file

@ -6,8 +6,6 @@
...
}:
mkTarget {
name = "feh";
humanName = "the desktop background using Feh";
autoEnable =
with config.xsession.windowManager;
bspwm.enable

View file

@ -6,8 +6,6 @@
...
}:
mkTarget {
name = "feh";
humanName = "the desktop background using Feh";
autoEnable =
with config.services.xserver.windowManager;
xmonad.enable || i3.enable;

View file

@ -12,7 +12,7 @@
...
}:
mkTarget {
inherit name humanName;
inherit humanName name;
options = {
profileNames = lib.mkOption {

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "fish";
humanName = "Fish";
config =
{ colors, inputs }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "fish";
humanName = "Fish";
config =
{ colors, inputs }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "fnott";
humanName = "Fnott";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "foliate";
humanName = "Foliate";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "font-packages";
humanName = "Font packages";
config =
{ fonts }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "font-packages";
humanName = "Font packages";
config =
{ fonts }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "font-packages";
humanName = "Font packages";
config =
{ fonts }:
{

View file

@ -1,9 +1,6 @@
{ mkTarget }:
{ lib, ... }:
mkTarget {
name = "fontconfig";
humanName = "Fontconfig";
config =
{ listTargetIndex, fonts }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "foot";
humanName = "Foot";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "forge";
humanName = "Forge";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "fuzzel";
humanName = "Fuzzel";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "fzf";
humanName = "Fzf";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "gdu";
humanName = "go DiskUsage()";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "gedit";
humanName = "GEdit";
config =
{ colors }:
{

View file

@ -3,9 +3,6 @@
# - `man 5 ghostty`
{ mkTarget, pkgs, ... }:
mkTarget {
name = "ghostty";
humanName = "Ghostty";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "gitui";
humanName = "GitUI";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "glance";
humanName = "Glance";
config = [
(
{ polarity }:

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "glance";
humanName = "Glance";
config = [
(
{ polarity }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "gnome-text-editor";
humanName = "GNOME Text Editor";
config = {
dconf.settings."org/gnome/TextEditor".style-scheme = "stylix";
};

View file

@ -1,5 +1 @@
{ mkTarget, ... }:
mkTarget {
name = "gnome-text-editor";
humanName = "GNOME Text Editor";
}
{ mkTarget, ... }: mkTarget { }

View file

@ -6,9 +6,6 @@
...
}:
mkTarget {
name = "gnome";
humanName = "GNOME";
autoEnable = pkgs.stdenv.hostPlatform.isLinux;
autoEnableExpr = "pkgs.stdenv.hostPlatform.isLinux";

View file

@ -7,9 +7,6 @@
...
}:
mkTarget {
name = "gtk";
humanName = "all GTK3, GTK4 and Libadwaita apps";
options = {
extraCss = lib.mkOption {
description = ''

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "gtk";
humanName = "all GTK3, GTK4 and Libadwaita apps";
config = {
# Required for Home Manager's GTK settings to work
programs.dconf.enable = true;

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "gtksourceview";
humanName = "GTKSourceView";
config =
{ colors, ... }:
{

View file

@ -1,7 +1,3 @@
{ mkTarget, ... }:
mkTarget {
name = "gtksourceview";
humanName = "GTKSourceView";
# Used to enable overlay.
}
# Used to enable overlay.
mkTarget { }

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "halloy";
humanName = "Halloy";
config =
{ colors }:
{

View file

@ -5,9 +5,6 @@
...
}:
mkTarget {
name = "helix";
humanName = "Helix";
options.transparent = lib.mkEnableOption "transparent theming" // {
internal = true;
default = false;

View file

@ -5,8 +5,6 @@
...
}:
mkTarget {
name = "hyprland";
humanName = "Hyprland";
options =
{ image }:
{

View file

@ -5,9 +5,6 @@
...
}:
mkTarget {
name = "hyprlock";
humanName = "Hyprlock";
options.useWallpaper = config.lib.stylix.mkEnableWallpaper "Hyprlock" true;
config = [

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "hyprpanel";
humanName = "HyprPanel";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "hyprpaper";
humanName = "Hyprpaper";
config =
{ image }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "i3";
humanName = "i3";
options.exportedBarConfig = lib.mkOption {
type = lib.types.attrs;
default = { };

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "i3bar-river";
humanName = "i3bar-river";
config = [
(
{ fonts }:

View file

@ -5,9 +5,6 @@
...
}:
mkTarget {
name = "jankyborders";
humanName = "JankyBorders";
config =
{ colors, opacity }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "k9s";
humanName = "k9s";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "kitty";
humanName = "Kitty";
options = {
variant256Colors = lib.mkOption {
description = ''

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "kmscon";
humanName = "the kmscon virtual console";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "kubecolor";
humanName = "kubecolor";
config = [
(
{ polarity }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "lazygit";
humanName = "lazygit";
config =
{ colors }:
{

View file

@ -5,9 +5,6 @@
...
}:
mkTarget {
name = "lightdm";
humanName = "LightDM";
options.useWallpaper = config.lib.stylix.mkEnableWallpaper "LightDM" true;
config =

View file

@ -5,9 +5,6 @@
...
}:
mkTarget {
name = "limine";
humanName = "Limine";
options.useWallpaper = config.lib.stylix.mkEnableWallpaper "Limine" true;
config = [

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "mako";
humanName = "Mako";
# Referenced https://github.com/stacyharper/base16-mako
config = [
(

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "mangohud";
humanName = "mangohud";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "micro";
humanName = "micro";
config = {
# TODO: Provide a real colorscheme once [1] is resolved.
#

View file

@ -1,7 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "mpv";
humanName = "mpv";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "ncspot";
humanName = "Ncspot";
options.background = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "Used to set bg even if `opacity` or `colors` is null.";

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "nushell";
humanName = "Nushell";
# Adapted from https://www.nushell.sh/book/coloring_and_theming.html#theming
config =
{ colors }:

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "obsidian";
humanName = "Obsidian";
options.vaultNames = lib.mkOption {
description = "The obsidian vault names to apply styling on.";
type = lib.types.listOf lib.types.str;

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "opencode";
humanName = "OpenCode";
config =
{ colors }:
{

View file

@ -5,9 +5,6 @@
...
}:
mkTarget {
name = "plymouth";
humanName = "the Plymouth boot screen";
options = {
logo = lib.mkOption {
description = "Logo to be used on the boot screen.";

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "qutebrowser";
humanName = "Qutebrowser";
config = [
(
{ fonts }:

View file

@ -6,9 +6,6 @@
...
}:
mkTarget {
name = "regreet";
humanName = "ReGreet";
autoEnable = pkgs.stdenv.hostPlatform.isLinux;
autoEnableExpr = "pkgs.stdenv.hostPlatform.isLinux";

View file

@ -2,9 +2,6 @@
# - https://raphamorim.io/rio/docs/config
{ mkTarget, ... }:
mkTarget {
name = "rio";
humanName = "Rio";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, config, ... }:
mkTarget {
name = "rofi";
humanName = "Rofi";
config = [
(
{ fonts }:

View file

@ -6,9 +6,6 @@
...
}:
mkTarget {
name = "spicetify";
humanName = "Spicetify";
config =
{ colors }:
lib.optionalAttrs (options.programs ? spicetify) {

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "spotify-player";
humanName = "spotify-player";
config =
{ colors }:
{

View file

@ -1,9 +1,6 @@
# Starship configuration documentation: https://starship.rs/config
{ mkTarget, ... }:
mkTarget {
name = "starship";
humanName = "Starship";
config =
{ colors }:
{

View file

@ -6,9 +6,6 @@
...
}:
mkTarget {
name = "swaylock";
humanName = "Swaylock";
# When the state version is older than 23.05, Swaylock enables itself
# automatically if `settings != {}` [1]. Therefore, Swaylock theming
# shouldn't be enabled by default for such state versions, to avoid

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "swaync";
humanName = "SwayNC";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "sxiv";
humanName = "Sxiv";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "tmux";
humanName = "Tmux";
config =
{ colors, inputs }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "tofi";
humanName = "Tofi";
config = [
(
{ fonts }:

View file

@ -5,9 +5,6 @@
...
}:
mkTarget {
name = "vicinae";
humanName = "Vicinae";
config = lib.optionals (options.services ? vicinae) [
(
{ colors, polarity }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "vivid";
humanName = "vivid";
config =
{ colors }:
let

View file

@ -6,9 +6,6 @@
...
}:
mkTarget {
name = "vscode";
humanName = "VSCode";
options.profileNames = lib.mkOption {
description = "The VSCode profile names to apply styling on.";
type = lib.types.listOf lib.types.str;

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "waybar";
humanName = "Waybar";
options = {
background = lib.mkOption {
type = lib.types.nullOr lib.types.str;

View file

@ -6,9 +6,6 @@
...
}:
mkTarget {
name = "wayfire";
humanName = "Wayfire";
options.useWallpaper = config.lib.stylix.mkEnableWallpaper "wayfire" true;
config = [

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "wayprompt";
humanName = "Wayprompt";
config =
{ colors, opacity }:
let

View file

@ -5,8 +5,6 @@
...
}:
mkTarget {
name = "wezterm";
humanName = "WezTerm";
options.luaBody = lib.mkOption {
type = lib.types.lines;
default = "";

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "wob";
humanName = "wob";
config =
{ colors }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "wofi";
humanName = "wofi";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, lib, ... }:
mkTarget {
name = "wpaperd";
humanName = "wpaperd";
config =
{ imageScalingMode, image }:
(

View file

@ -1,7 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "xfce";
humanName = "Xfce";
# Disabled by default due to https://github.com/nix-community/stylix/issues/180
autoEnable = false;

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "xresources";
humanName = "Xresources";
config = [
(
{ fonts }:

View file

@ -1,9 +1,6 @@
# Based on the official catppuccin themes https://github.com/yazi-rs/themes
{ mkTarget, lib, ... }:
mkTarget {
name = "yazi";
humanName = "Yazi";
options.boldDirectory = lib.mkOption {
description = "Whether to use bold font for directories.";
type = lib.types.bool;

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "zathura";
humanName = "Zathura";
config =
{ colors, opacity }:
{

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "zed";
humanName = "zed";
config = [
(
{ fonts }:

View file

@ -1,8 +1,5 @@
{ mkTarget, ... }:
mkTarget {
name = "zellij";
humanName = "zellij";
config =
{ colors }:
{

Some files were not shown because too many files have changed in this diff Show more