1
1
Fork 1
mirror of https://github.com/oddlama/nix-config.git synced 2025-10-11 07:10:39 +02:00

feat: add stylix and switch font to (very similar) JetBrainsMono for italic support

This commit is contained in:
oddlama 2023-09-21 17:08:44 +02:00
parent e65dac849a
commit 75e943cd1e
No known key found for this signature in database
GPG key ID: 14EFE510775FE39A
8 changed files with 229 additions and 61 deletions

View file

@ -1,4 +1,9 @@
{lib, ...}: let
{
config,
inputs,
lib,
...
}: let
inherit
(lib)
mkOption
@ -6,10 +11,12 @@
;
in {
imports = [
inputs.stylix.nixosModules.stylix
./fonts.nix
./steam.nix
./wayland.nix
./xserver.nix
./steam.nix
];
options.graphical.gaming.enable = mkOption {
@ -21,5 +28,29 @@ in {
config = {
# Needed for gtk
programs.dconf.enable = true;
stylix = {
# I want to choose what to style myself.
autoEnable = false;
polarity = "dark";
image = config.lib.stylix.pixel "base00";
base16Scheme = {
base00 = "282c34";
base01 = "353b45";
base02 = "3e4451";
base03 = "545862";
base04 = "565c64";
base05 = "abb2bf";
base06 = "b6bdca";
base07 = "c8ccd4";
base08 = "e06c75";
base09 = "d19a66";
base0A = "e5c07b";
base0B = "98c379";
base0C = "56b6c2";
base0D = "61afef";
base0E = "c678dd";
base0F = "be5046";
};
};
};
}

View file

@ -1,52 +1,62 @@
{
lib,
pkgs,
...
}: {
{pkgs, ...}: {
fonts = {
fontconfig = {
# Always prefer emojis even if the original font would provide a glyph
localConf = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias binding="weak">
<family>monospace</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>sans-serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
</fontconfig>
'';
defaultFonts = {
emoji = ["Segoe UI Emoji" "Noto Fonts Emoji"];
monospace = ["FiraCode Nerd Font"];
sansSerif = lib.mkBefore ["Segoe UI"];
serif = ["Source Serif Pro"];
};
};
# Always prefer emojis even if the original font would provide a glyph
fontconfig.localConf = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias binding="weak">
<family>monospace</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>sans-serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
<alias binding="weak">
<family>serif</family>
<prefer>
<family>emoji</family>
</prefer>
</alias>
</fontconfig>
'';
packages = with pkgs; [
(nerdfonts.override {fonts = ["FiraCode" "FiraMono" "SourceCodePro" "JetBrainsMono"];})
dejavu_fonts
(pkgs.nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
noto-fonts
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
noto-fonts-extra
segoe-ui-ttf
];
};
stylix.fonts = {
serif = {
package = pkgs.dejavu_fonts;
name = "IBM Plex Serif";
};
sansSerif = {
package = pkgs.segoe-ui-ttf;
name = "Segoe UI";
};
monospace = {
# No need for patched nerd fonts, kitty can pick up on them automatically,
# and ideally every program should do that: https://sw.kovidgoyal.net/kitty/faq/#kitty-is-not-able-to-use-my-favorite-font
package = pkgs.jetbrains-mono;
name = "JetBrains Mono";
};
emoji = {
package = pkgs.segoe-ui-ttf;
name = "Segoe UI Emoji";
};
};
}