add(fonts): modular fonts

This commit is contained in:
kenji
2026-01-05 19:26:30 -06:00
parent 2b9067f87b
commit 7280b68f14
11 changed files with 293 additions and 22 deletions
+2
View File
@@ -1,6 +1,7 @@
{ {
config, config,
pkgs, pkgs,
myConfig,
... ...
}: { }: {
home.packages = [ home.packages = [
@@ -54,6 +55,7 @@
enableFishIntegration = true; enableFishIntegration = true;
settings = { settings = {
font-family = myConfig.font.monospace;
confirm-close-surface = false; confirm-close-surface = false;
app-notifications = false; app-notifications = false;
window-padding-x = 15; window-padding-x = 15;
+2 -2
View File
@@ -1,4 +1,4 @@
{ {myConfig, ...}: {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
misc = { misc = {
disable_hyprland_logo = true; disable_hyprland_logo = true;
@@ -43,7 +43,7 @@
bar_color = "$surface_container_high"; bar_color = "$surface_container_high";
bar_text_color = "$on_surface"; bar_text_color = "$on_surface";
bar_text_size = 0; bar_text_size = 0;
bar_text_font = "Sans"; bar_text_font = myConfig.font.sans;
bar_button_padding = 4; bar_button_padding = 4;
bar_padding = 8; bar_padding = 8;
bar_precedence_over_border = true; bar_precedence_over_border = true;
+2 -1
View File
@@ -1,10 +1,11 @@
{ {
config, config,
pkgs, pkgs,
myConfig,
... ...
}: let }: let
cacheWallpaper = "${config.home.homeDirectory}/.cache/current_wallpaper"; cacheWallpaper = "${config.home.homeDirectory}/.cache/current_wallpaper";
clockFont = "JetBrains Mono"; clockFont = myConfig.font.monospace;
in { in {
imports = [ imports = [
./scripts/typewriter.nix ./scripts/typewriter.nix
+184 -4
View File
@@ -1,6 +1,7 @@
{ {
pkgs, pkgs,
inputs, inputs,
myConfig,
... ...
}: { }: {
home.packages = with pkgs; [ home.packages = with pkgs; [
@@ -11,10 +12,189 @@
source = ./config.toml; source = ./config.toml;
}; };
home.file.".config/matugen/templates" = { # Copy static templates
source = ./templates; home.file.".config/matugen/templates/cava".source = ./templates/cava;
recursive = true; home.file.".config/matugen/templates/firefox".source = ./templates/firefox;
}; home.file.".config/matugen/templates/ghostty".source = ./templates/ghostty;
home.file.".config/matugen/templates/gtk3".source = ./templates/gtk3;
home.file.".config/matugen/templates/gtk4".source = ./templates/gtk4;
home.file.".config/matugen/templates/hyprland".source = ./templates/hyprland;
home.file.".config/matugen/templates/hyprlock".source = ./templates/hyprlock;
home.file.".config/matugen/templates/starship".source = ./templates/starship;
home.file.".config/matugen/templates/vicinae".source = ./templates/vicinae;
home.file.".config/matugen/templates/waybar".source = ./templates/waybar;
# Generate templates with font interpolation
home.file.".config/matugen/templates/walker".text = ''
/* @import "../../../../../../../.config/omarchy/current/theme/walker.css"; */
/* Define Matugen Colors */
@define-color text {{colors.on_surface.default.hex}};
@define-color base {{colors.surface_container.default.hex}};
@define-color border {{colors.primary.default.hex}};
@define-color selected_text {{colors.primary.default.hex}};
@define-color background {{colors.surface.default.hex}};
* {
all: unset;
}
* {
font-family: ${myConfig.font.monospace};
font-size: 18px;
color: @text;
}
scrollbar {
opacity: 0;
}
.normal-icons {
-gtk-icon-size: 16px;
}
.large-icons {
-gtk-icon-size: 32px;
}
.box-wrapper {
background: alpha(@base, 0.95);
padding: 20px;
border: 2px solid @border;
}
.preview-box {
}
.box {
}
.search-container {
background: @base;
padding: 10px;
}
.input placeholder {
opacity: 0.5;
}
.input {
}
.input:focus,
.input:active {
box-shadow: none;
outline: none;
}
.content-container {
}
.placeholder {
}
.scroll {
}
.list {
}
child,
child > * {
}
child:hover .item-box {
}
child:selected .item-box {
}
child:selected .item-box * {
color: @selected_text;
}
.item-box {
padding-left: 14px;
}
.item-text-box {
all: unset;
padding: 14px 0;
}
.item-text {
}
.item-subtext {
font-size: 0px;
min-height: 0px;
margin: 0px;
padding: 0px;
}
.item-image {
margin-right: 14px;
-gtk-icon-transform: scale(0.9);
}
.current {
font-style: italic;
}
.keybind-hints {
background: @background;
padding: 10px;
margin-top: 10px;
}
.preview {
}
'';
home.file.".config/matugen/templates/mako".text = ''
# Mako notification daemon configuration
# Generated by matugen
# Appearance
font=${myConfig.font.sans} 11
width=350
height=150
margin=10
padding=15
border-size=2
border-radius=8
# Behavior
default-timeout=5000
ignore-timeout=false
layer=overlay
anchor=top-right
# Interaction
markup=true
actions=true
# Grouping
group-by=app-name
max-visible=5
sort=-time
# Theme colors from matugen
background-color=#{{colors.surface_container_high.default.hex_stripped}}
text-color=#{{colors.on_surface.default.hex_stripped}}
border-color=#{{colors.primary.default.hex_stripped}}
progress-color=over #{{colors.primary_container.default.hex_stripped}}
[urgency=low]
border-color=#{{colors.tertiary.default.hex_stripped}}
[urgency=normal]
border-color=#{{colors.primary.default.hex_stripped}}
[urgency=high]
border-color=#{{colors.error.default.hex_stripped}}
default-timeout=0
'';
# Qt theming - follow GTK theme # Qt theming - follow GTK theme
qt = { qt = {
+2 -2
View File
@@ -1,4 +1,4 @@
{pkgs, ...}: let {pkgs, myConfig, ...}: let
# Screenshot script with swappy integration # Screenshot script with swappy integration
screenshot = pkgs.writeShellScriptBin "screenshot" '' screenshot = pkgs.writeShellScriptBin "screenshot" ''
#!/usr/bin/env bash #!/usr/bin/env bash
@@ -54,7 +54,7 @@ in {
show_panel=true show_panel=true
line_size=5 line_size=5
text_size=20 text_size=20
text_font=sans-serif text_font=${myConfig.font.sans}
paint_mode=brush paint_mode=brush
early_exit=false early_exit=false
fill_shape=false fill_shape=false
+11
View File
@@ -53,6 +53,16 @@ in {
"action.new" = "control+N"; "action.new" = "control+N";
"action.save" = "control+S"; "action.save" = "control+S";
}; };
theme = {
light = {
name = "matugen";
icon_theme = "default";
};
dark = {
name = "matugen";
icon_theme = "default";
};
};
}; };
}; };
@@ -70,6 +80,7 @@ in {
"SUPER, SPACE, Open Vicinae, exec, vicinae-toggle" "SUPER, SPACE, Open Vicinae, exec, vicinae-toggle"
"SUPER, period, Open Emoji Picker, exec, vicinae-toggle deeplink vicinae://extensions/vicinae/core/search-emojis" "SUPER, period, Open Emoji Picker, exec, vicinae-toggle deeplink vicinae://extensions/vicinae/core/search-emojis"
"SUPER, C, Open Calculator, exec, vicinae-toggle deeplink vicinae://extensions/vicinae/calculator/history" "SUPER, C, Open Calculator, exec, vicinae-toggle deeplink vicinae://extensions/vicinae/calculator/history"
"SUPER, V, Open Clipboard History, exec, vicinae-toggle deeplink vicinae://extensions/vicinae/clipboard/history"
]; ];
}; };
} }
+2 -2
View File
@@ -1,4 +1,4 @@
{config, ...}: { {config, myConfig, ...}: {
programs.waybar = { programs.waybar = {
style = '' style = ''
@import "matugen.css"; @import "matugen.css";
@@ -9,7 +9,7 @@
border: none; border: none;
border-radius: 0; border-radius: 0;
min-height: 0; min-height: 0;
font-family: 'JetBrainsMono Nerd Font'; font-family: '${myConfig.font.monospace}';
font-size: 12px; font-size: 12px;
} }
+8
View File
@@ -1,6 +1,10 @@
{ {
hakase = { hakase = {
myConfig = { myConfig = {
font = {
monospace = "MonoLisa";
sans = "Sans";
};
nixos = { nixos = {
username = "kenji"; username = "kenji";
hostname = "hakase"; hostname = "hakase";
@@ -53,6 +57,10 @@
macbook = { macbook = {
myConfig = { myConfig = {
font = {
monospace = "MonoLisa";
sans = "Sans";
};
nixos = { nixos = {
username = "kenji"; username = "kenji";
hostname = "macbook"; hostname = "macbook";
Generated
+57 -2
View File
@@ -229,6 +229,24 @@
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz" "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -858,6 +876,7 @@
"nur": "nur", "nur": "nur",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"textfox": "textfox", "textfox": "textfox",
"unlisted-fonts": "unlisted-fonts",
"vicinae": "vicinae", "vicinae": "vicinae",
"walker": "walker" "walker": "walker"
} }
@@ -982,6 +1001,21 @@
} }
}, },
"systems_5": { "systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_6": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -1017,12 +1051,33 @@
"type": "github" "type": "github"
} }
}, },
"unlisted-fonts": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1748987994,
"narHash": "sha256-13QQRwZx9tRDmL79+XBM1YaC4W68mVrVW2NCv2w25WA=",
"ref": "refs/heads/master",
"rev": "468d51f24d3dd22c543e657c359fb333ff4df726",
"revCount": 1,
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nix-fonts.git"
},
"original": {
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nix-fonts.git"
}
},
"vicinae": { "vicinae": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1767353605, "lastModified": 1767353605,
@@ -1046,7 +1101,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1766324177, "lastModified": 1766324177,
+16 -8
View File
@@ -56,6 +56,10 @@
url = "github:tpwrules/nixos-apple-silicon"; url = "github:tpwrules/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
unlisted-fonts = {
url = "git+https://git.sakamoto.dev/kenji/nix-fonts.git";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { outputs = {
@@ -74,10 +78,12 @@
nixosConfigurations = { nixosConfigurations = {
hakase = nixpkgs.lib.nixosSystem { hakase = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs =
inherit inputs; {
system = "x86_64-linux"; inherit inputs;
} // allConfig.hakase; system = "x86_64-linux";
}
// allConfig.hakase;
modules = [ modules = [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
@@ -88,10 +94,12 @@
macbook = nixpkgs.lib.nixosSystem { macbook = nixpkgs.lib.nixosSystem {
system = "aarch64-linux"; system = "aarch64-linux";
specialArgs = { specialArgs =
inherit inputs; {
system = "aarch64-linux"; inherit inputs;
} // allConfig.macbook; system = "aarch64-linux";
}
// allConfig.macbook;
modules = [ modules = [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
+7 -1
View File
@@ -1,5 +1,11 @@
{pkgs, ...}: { {
pkgs,
inputs,
...
}: {
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
inputs.unlisted-fonts.packages.${pkgs.system}.monolisa
nerd-fonts.fira-code nerd-fonts.fira-code
nerd-fonts.jetbrains-mono nerd-fonts.jetbrains-mono