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:
@@ -19,6 +19,7 @@
|
||||
./osd.nix # swayosd volume/brightness OSD, themed
|
||||
./shell.nix # zsh + starship + bat/eza/zoxide, themed
|
||||
./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
|
||||
|
||||
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; };
|
||||
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; };
|
||||
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; };
|
||||
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; };
|
||||
|
||||
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
|
||||
# place (system.nixos.distroName, set below).
|
||||
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
|
||||
{
|
||||
imports = [ ./options.nix ./plymouth.nix ./file-manager.nix ];
|
||||
@@ -157,6 +165,8 @@ in
|
||||
# The legacy-ported waybar identities (summer-day/night) use
|
||||
# FontAwesome codepoints in their layouts and list it in css.
|
||||
font-awesome
|
||||
# The Nomarchy logo glyph (U+F000) for the summer menu button.
|
||||
nomarchyLogoFont
|
||||
];
|
||||
fontconfig.defaultFonts = {
|
||||
monospace = lib.mkDefault [ "JetBrainsMono Nerd Font" ];
|
||||
|
||||
Reference in New Issue
Block a user