feat(branding): fastfetch logo + Nomarchy.ttf glyph in the Waybar button
Two branding follow-ups, using the vendored legacy assets: - fastfetch (modules/home/fastfetch.nix, nomarchy.fastfetch.enable): the vector logo recolored to the palette accent and rendered to compact block-art via chafa at build time (so it tracks the theme), fronting a curated module list. Replaces the oversized legacy ASCII. - Waybar logo glyph: vendor Nomarchy.ttf (modules/nixos/branding/), install it via fonts.packages, and switch the summer-day/night menu buttons to its U+F000 mark with `font-family: Nomarchy` pinned in CSS (Nerd Fonts also occupy U+F000, so the pin is required). Glyph stored as the JSON escape for robustness. Also log a roadmap item for a quality-of-life alias collection. Verified: font family resolves as "Nomarchy" and the ttf maps U+F000; both summer jsonc parse; chafa logo builds headless; nix flake check passes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -277,7 +277,8 @@
|
|||||||
"Bash(cp /nix/store/f18ij42lmpg07fn1m29aplayakx7kqpz-splash-test.png/* preview-splash-built.png)",
|
"Bash(cp /nix/store/f18ij42lmpg07fn1m29aplayakx7kqpz-splash-test.png/* preview-splash-built.png)",
|
||||||
"Bash(cp /nix/store/f18ij42lmpg07fn1m29aplayakx7kqpz-splash-test.png preview-splash-built.png)",
|
"Bash(cp /nix/store/f18ij42lmpg07fn1m29aplayakx7kqpz-splash-test.png preview-splash-built.png)",
|
||||||
"Bash(nix-instantiate --parse hosts/live.nix)",
|
"Bash(nix-instantiate --parse hosts/live.nix)",
|
||||||
"Bash(nix-instantiate --parse modules/home/stylix.nix)"
|
"Bash(nix-instantiate --parse modules/home/stylix.nix)",
|
||||||
|
"Bash(nix-shell -p fontconfig --run \"fc-scan --format '%{family}\\\\n' modules/nixos/branding/Nomarchy.ttf\")"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
24
README.md
24
README.md
@@ -325,16 +325,20 @@ close · `SUPER+1..9` workspaces · `Print` region screenshot.
|
|||||||
(needs a full grub theme dir), and the `distroId` question (it changes
|
(needs a full grub theme dir), and the `distroId` question (it changes
|
||||||
`DEFAULT_HOSTNAME` and upstream `isNixos` checks — needs a test pass;
|
`DEFAULT_HOSTNAME` and upstream `isNixos` checks — needs a test pass;
|
||||||
nixos-* CLI names stay regardless)
|
nixos-* CLI names stay regardless)
|
||||||
- **fastfetch branding:** legacy ships an ASCII-art logo
|
- ✓ **fastfetch branding:** `modules/home/fastfetch.nix`
|
||||||
(`core/branding/logo.txt` on the legacy branch) intended as the fastfetch
|
(`nomarchy.fastfetch.enable`) — the vendored vector logo, recolored to
|
||||||
image. Vendor it, resize to a sensible terminal width, and color it from
|
the palette accent and rendered to compact block-art via chafa at build
|
||||||
the palette (accent), then wire a `fastfetch` config that uses it. (No
|
time (tracks the theme), fronting a curated module list. Replaces the
|
||||||
fastfetch config in v1 yet.)
|
oversized legacy ASCII with a themed, sized logo.
|
||||||
- **Nomarchy logo font in Waybar:** legacy's `core/branding/Nomarchy.ttf`
|
- ✓ **Nomarchy logo font in Waybar:** vendored `Nomarchy.ttf`
|
||||||
is a glyph font whose logo codepoint was used as the Waybar main-menu
|
(`modules/nixos/branding/`), installed via `fonts.packages`, and the
|
||||||
button (e.g. the summer-night bar). Vendor the font, install it, and set
|
summer-day/night menu buttons now use its `U+F000` glyph with
|
||||||
the `custom/nomarchy` button's `format` to that glyph (currently ``, a
|
`font-family: Nomarchy` pinned in their CSS (Nerd Fonts also occupy
|
||||||
Nerd Font icon) so the button shows the real Nomarchy mark.
|
U+F000, so the pin is required). The other themes have no logo button.
|
||||||
|
- **Quality-of-life command aliases:** assemble a curated collection of
|
||||||
|
shell aliases/abbreviations for common operations (git, nix, navigation,
|
||||||
|
the nomarchy helpers, …), themed into the zsh shell experience
|
||||||
|
(`modules/home/shell.nix`). Decide scope and which to ship on by default.
|
||||||
- **Theme-switch feedback:** ✓ the "rebuilding…" notification is now
|
- **Theme-switch feedback:** ✓ the "rebuilding…" notification is now
|
||||||
persistent (timeout 0) and replaced in place by "applied ✓" / failure
|
persistent (timeout 0) and replaced in place by "applied ✓" / failure
|
||||||
via a synchronous tag, so a multi-minute switch never reads as a failed
|
via a synchronous tag, so a multi-minute switch never reads as a failed
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
./osd.nix # swayosd volume/brightness OSD, themed
|
./osd.nix # swayosd volume/brightness OSD, themed
|
||||||
./shell.nix # zsh + starship + bat/eza/zoxide, themed
|
./shell.nix # zsh + starship + bat/eza/zoxide, themed
|
||||||
./keys.nix # gpg-agent (fronts SSH) + pinentry-qt
|
./keys.nix # gpg-agent (fronts SSH) + pinentry-qt
|
||||||
|
./fastfetch.nix # system info with the themed Nomarchy logo
|
||||||
];
|
];
|
||||||
|
|
||||||
# Clipboard history (wl-paste watcher); browsed via the SUPER+CTRL+V
|
# Clipboard history (wl-paste watcher); browsed via the SUPER+CTRL+V
|
||||||
|
|||||||
50
modules/home/fastfetch.nix
Normal file
50
modules/home/fastfetch.nix
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# fastfetch — system summary fronted by the Nomarchy monogram. The logo is
|
||||||
|
# rendered from the vendored vector mark (modules/nixos/branding/logo.svg)
|
||||||
|
# via chafa at build time, recolored to the palette accent — so it's a
|
||||||
|
# compact, themed block-art logo that tracks the theme on each
|
||||||
|
# home-manager switch (rather than the oversized legacy ASCII).
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.nomarchy;
|
||||||
|
c = cfg.theme.colors;
|
||||||
|
|
||||||
|
logo = pkgs.runCommand "nomarchy-fastfetch-logo"
|
||||||
|
{ nativeBuildInputs = [ pkgs.imagemagick pkgs.librsvg pkgs.chafa ]; } ''
|
||||||
|
rsvg-convert -w 220 ${../nixos/branding/logo.svg} > logo.png
|
||||||
|
magick logo.png -fill "${c.accent}" -colorize 100 logo-c.png
|
||||||
|
chafa --format symbols --symbols block --size 20x10 --colors full --polite on logo-c.png > $out
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf cfg.fastfetch.enable {
|
||||||
|
programs.fastfetch = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
logo = {
|
||||||
|
type = "file-raw";
|
||||||
|
source = "${logo}";
|
||||||
|
padding = { top = 1; left = 2; right = 3; };
|
||||||
|
};
|
||||||
|
display.separator = " ";
|
||||||
|
modules = [
|
||||||
|
"break"
|
||||||
|
{ type = "os"; key = "distro"; keyColor = "blue"; }
|
||||||
|
{ type = "kernel"; key = "kernel"; keyColor = "blue"; }
|
||||||
|
{ type = "uptime"; key = "uptime"; keyColor = "blue"; }
|
||||||
|
{ type = "packages"; key = "pkgs"; keyColor = "blue"; }
|
||||||
|
{ type = "wm"; key = "wm"; keyColor = "blue"; }
|
||||||
|
{ type = "shell"; key = "shell"; keyColor = "blue"; }
|
||||||
|
{ type = "terminal"; key = "term"; keyColor = "blue"; }
|
||||||
|
"break"
|
||||||
|
{ type = "cpu"; key = "cpu"; keyColor = "magenta"; }
|
||||||
|
{ type = "gpu"; key = "gpu"; keyColor = "magenta"; }
|
||||||
|
{ type = "memory"; key = "memory"; keyColor = "magenta"; }
|
||||||
|
{ type = "disk"; key = "disk"; keyColor = "magenta"; }
|
||||||
|
"break"
|
||||||
|
{ type = "colors"; symbol = "circle"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -70,6 +70,7 @@
|
|||||||
osd.enable = lib.mkEnableOption "swayosd on-screen display for volume/brightness/mute" // { default = true; };
|
osd.enable = lib.mkEnableOption "swayosd on-screen display for volume/brightness/mute" // { default = true; };
|
||||||
shell.enable = lib.mkEnableOption "the zsh shell experience (starship prompt, bat/eza/zoxide)" // { default = true; };
|
shell.enable = lib.mkEnableOption "the zsh shell experience (starship prompt, bat/eza/zoxide)" // { default = true; };
|
||||||
keys.enable = lib.mkEnableOption "the SSH + GPG agent (gpg-agent fronting SSH, pinentry-qt)" // { default = true; };
|
keys.enable = lib.mkEnableOption "the SSH + GPG agent (gpg-agent fronting SSH, pinentry-qt)" // { default = true; };
|
||||||
|
fastfetch.enable = lib.mkEnableOption "fastfetch system info fronted by the themed Nomarchy logo" // { default = true; };
|
||||||
ghostty.enable = lib.mkEnableOption "Nomarchy's Ghostty configuration" // { default = true; };
|
ghostty.enable = lib.mkEnableOption "Nomarchy's Ghostty configuration" // { default = true; };
|
||||||
btop.enable = lib.mkEnableOption "btop with the per-theme nomarchy theme" // { default = true; };
|
btop.enable = lib.mkEnableOption "btop with the per-theme nomarchy theme" // { default = true; };
|
||||||
stylix.enable = lib.mkEnableOption "Stylix theming for the long tail of apps (GTK, Qt, cursors)" // { default = true; };
|
stylix.enable = lib.mkEnableOption "Stylix theming for the long tail of apps (GTK, Qt, cursors)" // { default = true; };
|
||||||
|
|||||||
BIN
modules/nixos/branding/Nomarchy.ttf
Normal file
BIN
modules/nixos/branding/Nomarchy.ttf
Normal file
Binary file not shown.
@@ -12,6 +12,14 @@ let
|
|||||||
# Reused by the greeter banner and MOTD so the brand name lives in one
|
# Reused by the greeter banner and MOTD so the brand name lives in one
|
||||||
# place (system.nixos.distroName, set below).
|
# place (system.nixos.distroName, set below).
|
||||||
distroName = config.system.nixos.distroName;
|
distroName = config.system.nixos.distroName;
|
||||||
|
|
||||||
|
# The Nomarchy glyph font: a single-glyph face (the logo at U+F000) used
|
||||||
|
# by the Waybar menu button in the summer themes. Pinned via
|
||||||
|
# `font-family: Nomarchy` in their CSS, since Nerd Fonts also occupy
|
||||||
|
# U+F000 (a glass icon) and would otherwise win.
|
||||||
|
nomarchyLogoFont = pkgs.runCommandLocal "nomarchy-logo-font" { } ''
|
||||||
|
install -Dm444 ${./branding/Nomarchy.ttf} $out/share/fonts/truetype/Nomarchy.ttf
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [ ./options.nix ./plymouth.nix ./file-manager.nix ];
|
imports = [ ./options.nix ./plymouth.nix ./file-manager.nix ];
|
||||||
@@ -157,6 +165,8 @@ in
|
|||||||
# The legacy-ported waybar identities (summer-day/night) use
|
# The legacy-ported waybar identities (summer-day/night) use
|
||||||
# FontAwesome codepoints in their layouts and list it in css.
|
# FontAwesome codepoints in their layouts and list it in css.
|
||||||
font-awesome
|
font-awesome
|
||||||
|
# The Nomarchy logo glyph (U+F000) for the summer menu button.
|
||||||
|
nomarchyLogoFont
|
||||||
];
|
];
|
||||||
fontconfig.defaultFonts = {
|
fontconfig.defaultFonts = {
|
||||||
monospace = lib.mkDefault [ "JetBrainsMono Nerd Font" ];
|
monospace = lib.mkDefault [ "JetBrainsMono Nerd Font" ];
|
||||||
|
|||||||
@@ -90,6 +90,10 @@ window#waybar {
|
|||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
padding-right: 21px;
|
padding-right: 21px;
|
||||||
|
/* The Nomarchy mark lives at U+F000 in the dedicated "Nomarchy" font;
|
||||||
|
pin the family or the Nerd Font's glass icon at U+F000 wins. */
|
||||||
|
font-family: Nomarchy;
|
||||||
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-powermenu {
|
#custom-powermenu {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
"custom/launcher": {
|
"custom/launcher": {
|
||||||
"interval": "once",
|
"interval": "once",
|
||||||
"format": "",
|
"format": "\uf000",
|
||||||
"on-click": "nomarchy-menu",
|
"on-click": "nomarchy-menu",
|
||||||
"tooltip-format": "Nomarchy menu"
|
"tooltip-format": "Nomarchy menu"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -99,6 +99,9 @@ window#waybar {
|
|||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
padding-right: 21px;
|
padding-right: 21px;
|
||||||
|
/* The Nomarchy mark lives at U+F000 in the dedicated "Nomarchy" font;
|
||||||
|
pin the family or the Nerd Font's glass icon at U+F000 wins. */
|
||||||
|
font-family: Nomarchy;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
"custom/nomarchy": {
|
"custom/nomarchy": {
|
||||||
"interval": "once",
|
"interval": "once",
|
||||||
"format": "",
|
"format": "\uf000",
|
||||||
"on-click": "nomarchy-menu",
|
"on-click": "nomarchy-menu",
|
||||||
"tooltip-format": "Nomarchy menu"
|
"tooltip-format": "Nomarchy menu"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user