Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: expand description of font units #819

Merged
merged 3 commits into from
Feb 3, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 45 additions & 31 deletions stylix/fonts.nix
Original file line number Diff line number Diff line change
Expand Up @@ -61,41 +61,55 @@ in
};
};

sizes = {
desktop = lib.mkOption {
description = ''
The font size (in pt) used in window titles/bars/widgets elements of
the desktop.
'';
type = with lib.types; (either ints.unsigned float);
default = 10;
};
sizes =
let
mkFontSizeOption =
{ default, target }:
lib.mkOption {
inherit default;

applications = lib.mkOption {
description = ''
The font size (in pt) used by applications.
'';
type = with lib.types; (either ints.unsigned float);
default = 12;
};
description = ''
The font size used for ${target}.

terminal = lib.mkOption {
description = ''
The font size (in pt) for terminals/text editors.
'';
type = with lib.types; (either ints.unsigned float);
default = cfg.sizes.applications;
};
This is measured in [points](https://en.wikipedia.org/wiki/Point_(typography)).
In a computing context, there should be 72 points per inch.

[The CSS specification](https://drafts.csswg.org/css-values/#absolute-lengths)
says there should be 96 reference pixels per inch. This means CSS
uses a fixed ratio of 3 points to every 4 pixels, which is
sometimes useful. However, reference pixels might not correspond
to physical pixels, so this conversion may be invalid for other
applications.

The measurements given in inches are likely to be incorrect
unless you've
[manually set your DPI](https://linuxreviews.org/HOWTO_set_DPI_in_Xorg).
'';

popups = lib.mkOption {
description = ''
The font size (in pt) for notifications/popups and in general overlay
elements of the desktop.
'';
type = with lib.types; (either ints.unsigned float);
default = cfg.sizes.desktop;
type = with lib.types; either ints.unsigned float;
};
in
{
desktop = mkFontSizeOption {
target = "window titles, status bars, and other general elements of the desktop";
default = 10;
};

applications = mkFontSizeOption {
target = "applications";
default = 12;
};

terminal = mkFontSizeOption {
target = "terminals and text editors";
default = cfg.sizes.applications;
};

popups = mkFontSizeOption {
target = "notifications, popups, and other overlay elements of the desktop";
default = cfg.sizes.desktop;
};
};
};

packages = lib.mkOption {
description = ''
Expand Down