mirror of
https://codeberg.org/leana8959/.files.git
synced 2026-02-01 14:39:39 +00:00
Compare commits
3 commits
acab4af809
...
9230f7b378
| Author | SHA1 | Date | |
|---|---|---|---|
| 9230f7b378 | |||
| d93813d04e | |||
| f2bd846e22 |
14 changed files with 338 additions and 202 deletions
|
|
@ -57,7 +57,7 @@ in
|
||||||
../overlays/ghostty-dev.nix
|
../overlays/ghostty-dev.nix
|
||||||
../overlays/npins.nix
|
../overlays/npins.nix
|
||||||
|
|
||||||
../overlays/iosevka-term.nix
|
../overlays/iosevka
|
||||||
../packages/overlay.nix
|
../packages/overlay.nix
|
||||||
|
|
||||||
./vanadium/overlay.nix
|
./vanadium/overlay.nix
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
"Noto Sans CJK TC"
|
"Noto Sans CJK TC"
|
||||||
];
|
];
|
||||||
serif = [ "Noto Serif CJK TC" ];
|
serif = [ "Noto Serif CJK TC" ];
|
||||||
monospace = [ "Iosevka" ];
|
monospace = [ "Iosevka-Normal-PT-Mono" ];
|
||||||
emoji = [ "Noto Color Emoji" ];
|
emoji = [ "Noto Color Emoji" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
pkgs.noto-fonts-color-emoji
|
pkgs.noto-fonts-color-emoji
|
||||||
pkgs.noto-fonts-emoji-blob-bin
|
pkgs.noto-fonts-emoji-blob-bin
|
||||||
pkgs.ubuntu-classic
|
pkgs.ubuntu-classic
|
||||||
pkgs.iosevka
|
pkgs.iosevka-normal-pt-mono
|
||||||
];
|
];
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ config =
|
||||||
|
|
||||||
-- For framework 13
|
-- For framework 13
|
||||||
, dpi = 150
|
, dpi = 150
|
||||||
, font = "Iosevka 8"
|
, font = "Iosevka-Normal-PT-Mono 8"
|
||||||
, fgColor = "#FFFFFF"
|
, fgColor = "#FFFFFF"
|
||||||
, bgColor = "#000000"
|
, bgColor = "#000000"
|
||||||
, position = BottomH 24
|
, position = BottomH 24
|
||||||
|
|
|
||||||
|
|
@ -351,7 +351,9 @@ keybinds =
|
||||||
|
|
||||||
-- Launcher
|
-- Launcher
|
||||||
++ (let launchFirefox = "zen"
|
++ (let launchFirefox = "zen"
|
||||||
launchDmenu = "dmenu_run -i -fn \"Iosevka-14\" -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10"
|
-- dmenu doesn't find the right font, but it falls back to the right one
|
||||||
|
-- https://bbs.archlinux.org/viewtopic.php?id=139829
|
||||||
|
launchDmenu = "dmenu_run -i -nb \"#36363a\" -nf \"#e2e2e4\" -sb \"#f7f7f8\" -sf \"#36363a\" -l 10"
|
||||||
lock = "xscreensaver-command -lock"
|
lock = "xscreensaver-command -lock"
|
||||||
in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" )
|
in [ ((controlMask .|. altMask, xK_m), namedScratchpadAction myScratchpads "cmus" )
|
||||||
, ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" )
|
, ((controlMask .|. altMask, xK_t), namedScratchpadAction myScratchpads "btop" )
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ in
|
||||||
sshUser = "remotebuild";
|
sshUser = "remotebuild";
|
||||||
speedFactor = 2;
|
speedFactor = 2;
|
||||||
system = pkgs.stdenv.hostPlatform.system;
|
system = pkgs.stdenv.hostPlatform.system;
|
||||||
|
maxJobs = 1;
|
||||||
inherit supportedFeatures;
|
inherit supportedFeatures;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
|
@ -23,6 +24,7 @@ in
|
||||||
sshUser = "remotebuild";
|
sshUser = "remotebuild";
|
||||||
speedFactor = 12;
|
speedFactor = 12;
|
||||||
system = pkgs.stdenv.hostPlatform.system;
|
system = pkgs.stdenv.hostPlatform.system;
|
||||||
|
maxJobs = 3;
|
||||||
inherit supportedFeatures;
|
inherit supportedFeatures;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ in
|
||||||
{
|
{
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.nerd-fonts.iosevka
|
pkgs.nerd-fonts.iosevka-term-pt-mono
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.ghostty.settings = {
|
programs.ghostty.settings = {
|
||||||
|
|
@ -21,7 +21,7 @@ in
|
||||||
resize-overlay = "never";
|
resize-overlay = "never";
|
||||||
|
|
||||||
# Fonts
|
# Fonts
|
||||||
font-family = "Iosevka NFM";
|
font-family = "Iosevka Term PT Mono NFM";
|
||||||
adjust-cursor-thickness = 2;
|
adjust-cursor-thickness = 2;
|
||||||
keybind = [
|
keybind = [
|
||||||
"ctrl+shift+==increase_font_size:1"
|
"ctrl+shift+==increase_font_size:1"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = [ pkgs.iosevka ];
|
home.packages = [ pkgs.iosevka-normal-pt-mono ];
|
||||||
services.wired = {
|
services.wired = {
|
||||||
config = "${./wired.ron}";
|
config = "${./wired.ron}";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@
|
||||||
offset: Vec2(x: 0.0, y: 0.0),
|
offset: Vec2(x: 0.0, y: 0.0),
|
||||||
params: ScrollingTextBlock((
|
params: ScrollingTextBlock((
|
||||||
text: "%s",
|
text: "%s",
|
||||||
font: "Iosevka 24",
|
font: "Iosevka-Normal-PT-Mono 24",
|
||||||
color: Color(hex: "#fafafa"),
|
color: Color(hex: "#fafafa"),
|
||||||
padding: Padding(left: 7.0, right: 7.0, top: 1.0, bottom: 0.0),
|
padding: Padding(left: 7.0, right: 7.0, top: 1.0, bottom: 0.0),
|
||||||
width: (min: 400, max: 400),
|
width: (min: 400, max: 400),
|
||||||
|
|
@ -140,7 +140,7 @@
|
||||||
offset: Vec2(x: 0.0, y: -3.0),
|
offset: Vec2(x: 0.0, y: -3.0),
|
||||||
params: ScrollingTextBlock((
|
params: ScrollingTextBlock((
|
||||||
text: "%b",
|
text: "%b",
|
||||||
font: "Iosevka 18",
|
font: "Iosevka-Normal-PT-Mono 18",
|
||||||
color: Color(hex: "#fafafa"),
|
color: Color(hex: "#fafafa"),
|
||||||
padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0),
|
padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0),
|
||||||
width: (min: 400, max: 400),
|
width: (min: 400, max: 400),
|
||||||
|
|
|
||||||
|
|
@ -1,191 +0,0 @@
|
||||||
final: prev:
|
|
||||||
let
|
|
||||||
inherit (final) lib;
|
|
||||||
|
|
||||||
iosevka-term = prev.iosevka.override {
|
|
||||||
# This changes pname which changes what the outputted buildPlan name is.
|
|
||||||
# Stupid API
|
|
||||||
set = "";
|
|
||||||
|
|
||||||
# Guide: https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md
|
|
||||||
privateBuildPlan = {
|
|
||||||
family = "Iosevka";
|
|
||||||
serifs = "sans";
|
|
||||||
|
|
||||||
# Iosevka + Ghostty makes "…" display in a odd way.
|
|
||||||
# We use "term" width to avoid this.
|
|
||||||
# https://github.com/ghostty-org/ghostty/discussions/10335
|
|
||||||
spacing = "term";
|
|
||||||
|
|
||||||
# Otherwise kitty behaves funny with ligature
|
|
||||||
# noLigation = true;
|
|
||||||
exportGlyphNames = true;
|
|
||||||
|
|
||||||
variants.design = {
|
|
||||||
ampersand = "et-tailed";
|
|
||||||
capital-q = "crossing";
|
|
||||||
capital-z = "straight-serifless-with-crossbar";
|
|
||||||
cent = "open";
|
|
||||||
dollar = "open";
|
|
||||||
lig-double-arrow-bar = "with-notch";
|
|
||||||
lig-equal-chain = "with-notch";
|
|
||||||
lig-hyphen-chain = "with-notch";
|
|
||||||
lig-plus-chain = "with-notch";
|
|
||||||
lig-single-arrow-bar = "with-notch";
|
|
||||||
lower-lambda = "tailed-turn";
|
|
||||||
# number-sign = "slanted";
|
|
||||||
percent = "rings-continuous-slash-also-connected";
|
|
||||||
seven = "straight-serifless-crossbar";
|
|
||||||
};
|
|
||||||
variants.italic = {
|
|
||||||
v = "cursive-serifless";
|
|
||||||
w = "cursive-serifless";
|
|
||||||
};
|
|
||||||
|
|
||||||
weights = {
|
|
||||||
# Build 580, but indicate 400 in output
|
|
||||||
Regular.shape = 580;
|
|
||||||
Regular.menu = 400;
|
|
||||||
Regular.css = 400;
|
|
||||||
Bold.shape = 700;
|
|
||||||
Bold.menu = 700;
|
|
||||||
Bold.css = 700;
|
|
||||||
};
|
|
||||||
|
|
||||||
widths = {
|
|
||||||
Normal.shape = 500;
|
|
||||||
Normal.menu = 5;
|
|
||||||
Normal.css = "normal";
|
|
||||||
Extended.shape = 600;
|
|
||||||
Extended.menu = 7;
|
|
||||||
Extended.css = "expanded";
|
|
||||||
};
|
|
||||||
|
|
||||||
slopes = {
|
|
||||||
Upright.angle = 0;
|
|
||||||
Upright.css = "normal";
|
|
||||||
Upright.menu = "upright";
|
|
||||||
Upright.shape = "upright";
|
|
||||||
Italic.angle = 9.4;
|
|
||||||
Italic.shape = "italic";
|
|
||||||
Italic.menu = "italic";
|
|
||||||
Italic.css = "italic";
|
|
||||||
};
|
|
||||||
|
|
||||||
# The ligatures are defined based on Haskell and Nix usages.
|
|
||||||
#
|
|
||||||
# Follow: <https://github.com/be5invis/Iosevka/blob/main/params/ligation-set.toml> for more details
|
|
||||||
ligations.enables = [
|
|
||||||
"arrow-l" # Left-pointing arrows
|
|
||||||
# "arrow-l-hyphen" # Left-pointing arrows with hyphen-minus (-) being the rod
|
|
||||||
# "arrow-l-equal" # Left-pointing arrows with equal sign (=) being the rod
|
|
||||||
# "arrow-l-wave" # Left-pointing arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
"arrow-r" # Right-pointing arrows
|
|
||||||
# "arrow-r-hyphen" # Right-pointing arrows with hyphen-minus (-) being the rod
|
|
||||||
# "arrow-r-equal" # Right-pointing arrows with equal sign (=) being the rod
|
|
||||||
# "arrow-r-wave" # Right-pointing arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
"arrow-lr" # Dual-pointing arrows
|
|
||||||
# "arrow-lr-hyphen" # Dual-pointing arrows with hyphen-minus (-) being the rod
|
|
||||||
# "arrow-lr-equal" # Dual-pointing arrows with equal sign (=) being the rod
|
|
||||||
# "arrow-lr-wave" # Dual-pointing arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
"counter-arrow-l" # Left-pointing counter-arrows
|
|
||||||
# "counter-arrow-l-hyphen" # Left-pointing counter-arrows with hyphen-minus (-) being the rod
|
|
||||||
# "counter-arrow-l-equal" # Left-pointing counter-arrows with equal sign (=) being the rod
|
|
||||||
# "counter-arrow-l-wave" # Left-pointing counter-arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
"counter-arrow-r" # Right-pointing counter-arrows
|
|
||||||
# "counter-arrow-r-hyphen" # Right-pointing counter-arrows with hyphen-minus (-) being the rod
|
|
||||||
# "counter-arrow-r-equal" # Right-pointing counter-arrows with equal sign (=) being the rod
|
|
||||||
# "counter-arrow-r-wave" # Right-pointing counter-arrows with tilde (~) being the rod
|
|
||||||
|
|
||||||
# "eqeqeq" # Enable special ligation for === with triple lines
|
|
||||||
"eqeq" # Enable ligation for == and ===
|
|
||||||
"lteq" # Enable ligation for <= as less-than-or-equal sign
|
|
||||||
# "eqlt" # Enable ligation for =< as less-than-or-equal sign
|
|
||||||
"gteq" # Enable ligation for >= as greater-than-or-equal sign
|
|
||||||
# "lteq-separate" # Display <= as separate shape
|
|
||||||
# "eqlt-separate" # Display =< as separate shape
|
|
||||||
# "gteq-separate" # Display >= as separate shape
|
|
||||||
|
|
||||||
# "exeqeqeq" # Enable special ligation for !=== with triple lines
|
|
||||||
# "exeqeq" # Enable special ligation for !== with triple lines
|
|
||||||
# "eqexeq" # Enable special ligation for =!= with triple lines
|
|
||||||
# "eqexeq-dl" # Enable special ligation for =!= with double lines
|
|
||||||
# "exeq" # Enable ligation for != and !==
|
|
||||||
# "tildeeq" # Enable ligation for ~= as inequality
|
|
||||||
# "eqslasheq" # Enable special triple-line ligation for =/= as inequality
|
|
||||||
"slasheq" # Enable ligation for /= and =/= as inequality
|
|
||||||
"trig" # Enable ligation for <|, |> , <||, and other bar-and-angle-bracket symbols
|
|
||||||
# "ltgt-ne" # Enable ligation for <> as inequality
|
|
||||||
"ltgt-diamond" # Enable ligation for <> as diamond
|
|
||||||
# "ltgt-diamond-tag" # Enable ligation for <> as diamond-shaped empty HTML/XML tag
|
|
||||||
# "ltgt-slash-tag" # Enable ligation for </, /> and </>
|
|
||||||
# "brst" # Center asterisk in (* and *)
|
|
||||||
"slash-asterisk" # Shift asterisk in /* and */
|
|
||||||
"kern-dotty" # Move connecting dotty punctuations closer, like for ::, :: # and ...
|
|
||||||
# "kern-bars" # Move consecutive bars closer, like for ||, ||| and //
|
|
||||||
"center-ops" # Vertically align some of the operators (like *) to the center position it is before or after a "center" operator (like +)
|
|
||||||
|
|
||||||
# These put -. to the same height
|
|
||||||
# "center-op-trigger-plus-minus-l" # Plus (+) and Minus (-) will trigger other operator characters at left to be centered
|
|
||||||
# "center-op-trigger-plus-minus-r" # Plus (+) and Minus (-) will trigger other operator characters at right to be centered
|
|
||||||
|
|
||||||
# These put *= to the same height
|
|
||||||
# "center-op-trigger-equal-l" # Equal (=) will trigger other operator characters at left to be centered
|
|
||||||
# "center-op-trigger-equal-r" # Equal (=) will trigger other operator characters at right to be centered
|
|
||||||
|
|
||||||
"center-op-trigger-bar-l" # Bars (|) will trigger other operator characters at left to be centered
|
|
||||||
"center-op-trigger-bar-r" # Bars (|) will trigger other operator characters at right to be centered
|
|
||||||
"center-op-trigger-angle-inside" # Less (<) and Greater (>) will trigger other operator characters at inside to be centered
|
|
||||||
"center-op-trigger-angle-outside" # Less (<) and Greater (>) will trigger other operator characters at outside to be centered
|
|
||||||
# "center-op-influence-dot" # Treat dot (.) as operator and perform chained centering
|
|
||||||
"center-op-influence-colon" # Treat colon (:) as operator and perform chained centering
|
|
||||||
"tilde-tilde" # Make 2 or more contiguous ASCII tildes (like ~~, ~~~ and ~~~~) connected as a wave line
|
|
||||||
# "tilde-tilde-tilde" # Make 3 or more contiguous ASCII tildes (like ~~~ and ~~~~) connected as a wave line
|
|
||||||
# "minus-minus" # Make 2 or more contiguous hyphen-minuses (like --, --- and ----) connected as a straight solid line
|
|
||||||
# "minus-minus-minus" # Make 3 or more contiguous hyphen-minuses (like --- and ----) connected as a straight solid line
|
|
||||||
# "plus-plus" # Make 2 or more contiguous plus signs (like ++, +++ and ++++) connected.
|
|
||||||
# "plus-plus-plus" # Make 3 or more contiguous plus signs (like +++ and ++++) connected.
|
|
||||||
# "underscore-underscore" # Make 2 or more contiguous underscores (like __, ___ and ____) connected
|
|
||||||
# "underscore-underscore-underscore" # Make 3 or more contiguous underscores (like ___ and ____) connected
|
|
||||||
# "hash-hash" # Make 2 or more contiguous hash signs (number signs) (like ##, ### and ####) connected
|
|
||||||
# "hash-hash-hash" # Make 3 or more contiguous hash signs (number signs) (like ## and ###) connected
|
|
||||||
# "logic" # Enable ligation for /\ and \/
|
|
||||||
# "llgg" # Enable ligation for <<, >> and other angle-bracket chaining
|
|
||||||
# "llggeq" # Enable ligation for <<=, >>= as shift operator
|
|
||||||
# "html-comment" # Enable ligation for <!-- and <!---
|
|
||||||
# "colon-greater-as-colon-arrow:" Transform :> into : and a narrow arrow
|
|
||||||
# "brace-bar" # Enable ligation for {| and |}
|
|
||||||
"brack-bar" # Enable ligation for [| and |]
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
mkNerdFont = final.callPackage ../lib/mkNerdFont.nix { };
|
|
||||||
iosevka-term-nerd = mkNerdFont {
|
|
||||||
font = iosevka-term;
|
|
||||||
patcherArgs = [
|
|
||||||
"--complete"
|
|
||||||
"--careful"
|
|
||||||
"--name {/.}-NFM"
|
|
||||||
"--mono"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
warnActuallyTerm = lib.warn ''
|
|
||||||
The overlay "${toString ./iosevka-term.nix}" is used, you are actually using iosevka-term.
|
|
||||||
There is no difference between iosevka and iosevka term when using this overlay.
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
iosevka = warnActuallyTerm iosevka-term;
|
|
||||||
iosevka-term = iosevka-term;
|
|
||||||
|
|
||||||
nerd-fonts = prev.nerd-fonts // {
|
|
||||||
iosevka = warnActuallyTerm iosevka-term-nerd;
|
|
||||||
iosevka-term = iosevka-term-nerd;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
59
nix/overlays/iosevka/default.nix
Normal file
59
nix/overlays/iosevka/default.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
# A thicker family of custom build of iosevkas. Optimized for Haskell and Nix.
|
||||||
|
final: prev:
|
||||||
|
let
|
||||||
|
inherit (prev) lib;
|
||||||
|
|
||||||
|
iosevkaConfig = final: import ./privateBuildPlan.nix;
|
||||||
|
|
||||||
|
mkIosevka =
|
||||||
|
mergedConfig:
|
||||||
|
prev.iosevka.override {
|
||||||
|
# HACK:
|
||||||
|
# Used to construct pname internally, appended to "Iosevka".
|
||||||
|
# We drop the prefix so it is not duplicated.
|
||||||
|
set = lib.removePrefix "Iosevka" mergedConfig.family;
|
||||||
|
privateBuildPlan = mergedConfig;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkNerdFont =
|
||||||
|
font:
|
||||||
|
final.callPackage ../../lib/mkNerdFont.nix { } {
|
||||||
|
inherit font;
|
||||||
|
patcherArgs = [
|
||||||
|
"--complete"
|
||||||
|
"--careful"
|
||||||
|
"--name {/.}-NFM"
|
||||||
|
"--mono"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
identityOverlay = _: _: { };
|
||||||
|
overlays =
|
||||||
|
lib.crossLists
|
||||||
|
(
|
||||||
|
spacingCfg: variantCfg:
|
||||||
|
lib.composeManyExtensions [
|
||||||
|
spacingCfg
|
||||||
|
variantCfg
|
||||||
|
]
|
||||||
|
)
|
||||||
|
[
|
||||||
|
(import ./spacings.nix { inherit lib; })
|
||||||
|
([ identityOverlay ] ++ import ./variants.nix)
|
||||||
|
];
|
||||||
|
|
||||||
|
iosevkas = lib.genAttrs' overlays (
|
||||||
|
overlay:
|
||||||
|
let
|
||||||
|
mergedConfig = lib.fix (lib.extends overlay iosevkaConfig);
|
||||||
|
toKebabCase = x: builtins.replaceStrings [ " " ] [ "-" ] (lib.toLower x);
|
||||||
|
in
|
||||||
|
lib.nameValuePair (toKebabCase mergedConfig.family) (mkIosevka mergedConfig)
|
||||||
|
);
|
||||||
|
|
||||||
|
iosevka-nerds = builtins.mapAttrs (_: mkNerdFont) iosevkas;
|
||||||
|
in
|
||||||
|
iosevkas
|
||||||
|
// {
|
||||||
|
nerd-fonts = prev.nerd-fonts // iosevka-nerds;
|
||||||
|
}
|
||||||
147
nix/overlays/iosevka/privateBuildPlan.nix
Normal file
147
nix/overlays/iosevka/privateBuildPlan.nix
Normal file
|
|
@ -0,0 +1,147 @@
|
||||||
|
# Guide: https://github.com/be5invis/Iosevka/blob/main/doc/custom-build.md
|
||||||
|
{
|
||||||
|
family = "Iosevka";
|
||||||
|
serifs = "sans";
|
||||||
|
|
||||||
|
variants.design = {
|
||||||
|
ampersand = "et-tailed";
|
||||||
|
capital-q = "crossing";
|
||||||
|
capital-z = "straight-serifless-with-crossbar";
|
||||||
|
cent = "open";
|
||||||
|
dollar = "open";
|
||||||
|
lig-double-arrow-bar = "with-notch";
|
||||||
|
lig-equal-chain = "with-notch";
|
||||||
|
lig-hyphen-chain = "with-notch";
|
||||||
|
lig-plus-chain = "with-notch";
|
||||||
|
lig-single-arrow-bar = "with-notch";
|
||||||
|
lower-lambda = "tailed-turn";
|
||||||
|
# number-sign = "slanted";
|
||||||
|
percent = "rings-continuous-slash-also-connected";
|
||||||
|
seven = "straight-serifless-crossbar";
|
||||||
|
brace = "curly";
|
||||||
|
};
|
||||||
|
variants.italic = {
|
||||||
|
v = "cursive-serifless";
|
||||||
|
w = "cursive-serifless";
|
||||||
|
};
|
||||||
|
|
||||||
|
weights = {
|
||||||
|
# Build 580, but indicate 400 in output
|
||||||
|
Regular.shape = 580;
|
||||||
|
Regular.menu = 400;
|
||||||
|
Regular.css = 400;
|
||||||
|
Bold.shape = 700;
|
||||||
|
Bold.menu = 700;
|
||||||
|
Bold.css = 700;
|
||||||
|
};
|
||||||
|
|
||||||
|
widths = {
|
||||||
|
Normal.shape = 500;
|
||||||
|
Normal.menu = 5;
|
||||||
|
Normal.css = "normal";
|
||||||
|
Extended.shape = 600;
|
||||||
|
Extended.menu = 7;
|
||||||
|
Extended.css = "expanded";
|
||||||
|
};
|
||||||
|
|
||||||
|
slopes = {
|
||||||
|
Upright.angle = 0;
|
||||||
|
Upright.css = "normal";
|
||||||
|
Upright.menu = "upright";
|
||||||
|
Upright.shape = "upright";
|
||||||
|
Italic.angle = 9.4;
|
||||||
|
Italic.shape = "italic";
|
||||||
|
Italic.menu = "italic";
|
||||||
|
Italic.css = "italic";
|
||||||
|
};
|
||||||
|
|
||||||
|
# The ligatures are defined based on Haskell and Nix usages.
|
||||||
|
#
|
||||||
|
# Follow: <https://github.com/be5invis/Iosevka/blob/main/params/ligation-set.toml> for more details
|
||||||
|
ligations.enables = [
|
||||||
|
"arrow-l" # Left-pointing arrows
|
||||||
|
# "arrow-l-hyphen" # Left-pointing arrows with hyphen-minus (-) being the rod
|
||||||
|
# "arrow-l-equal" # Left-pointing arrows with equal sign (=) being the rod
|
||||||
|
# "arrow-l-wave" # Left-pointing arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
"arrow-r" # Right-pointing arrows
|
||||||
|
# "arrow-r-hyphen" # Right-pointing arrows with hyphen-minus (-) being the rod
|
||||||
|
# "arrow-r-equal" # Right-pointing arrows with equal sign (=) being the rod
|
||||||
|
# "arrow-r-wave" # Right-pointing arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
"arrow-lr" # Dual-pointing arrows
|
||||||
|
# "arrow-lr-hyphen" # Dual-pointing arrows with hyphen-minus (-) being the rod
|
||||||
|
# "arrow-lr-equal" # Dual-pointing arrows with equal sign (=) being the rod
|
||||||
|
# "arrow-lr-wave" # Dual-pointing arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
"counter-arrow-l" # Left-pointing counter-arrows
|
||||||
|
# "counter-arrow-l-hyphen" # Left-pointing counter-arrows with hyphen-minus (-) being the rod
|
||||||
|
# "counter-arrow-l-equal" # Left-pointing counter-arrows with equal sign (=) being the rod
|
||||||
|
# "counter-arrow-l-wave" # Left-pointing counter-arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
"counter-arrow-r" # Right-pointing counter-arrows
|
||||||
|
# "counter-arrow-r-hyphen" # Right-pointing counter-arrows with hyphen-minus (-) being the rod
|
||||||
|
# "counter-arrow-r-equal" # Right-pointing counter-arrows with equal sign (=) being the rod
|
||||||
|
# "counter-arrow-r-wave" # Right-pointing counter-arrows with tilde (~) being the rod
|
||||||
|
|
||||||
|
# "eqeqeq" # Enable special ligation for === with triple lines
|
||||||
|
"eqeq" # Enable ligation for == and ===
|
||||||
|
"lteq" # Enable ligation for <= as less-than-or-equal sign
|
||||||
|
# "eqlt" # Enable ligation for =< as less-than-or-equal sign
|
||||||
|
"gteq" # Enable ligation for >= as greater-than-or-equal sign
|
||||||
|
# "lteq-separate" # Display <= as separate shape
|
||||||
|
# "eqlt-separate" # Display =< as separate shape
|
||||||
|
# "gteq-separate" # Display >= as separate shape
|
||||||
|
|
||||||
|
# "exeqeqeq" # Enable special ligation for !=== with triple lines
|
||||||
|
# "exeqeq" # Enable special ligation for !== with triple lines
|
||||||
|
# "eqexeq" # Enable special ligation for =!= with triple lines
|
||||||
|
# "eqexeq-dl" # Enable special ligation for =!= with double lines
|
||||||
|
# "exeq" # Enable ligation for != and !==
|
||||||
|
# "tildeeq" # Enable ligation for ~= as inequality
|
||||||
|
# "eqslasheq" # Enable special triple-line ligation for =/= as inequality
|
||||||
|
"slasheq" # Enable ligation for /= and =/= as inequality
|
||||||
|
"trig" # Enable ligation for <|, |> , <||, and other bar-and-angle-bracket symbols
|
||||||
|
# "ltgt-ne" # Enable ligation for <> as inequality
|
||||||
|
"ltgt-diamond" # Enable ligation for <> as diamond
|
||||||
|
# "ltgt-diamond-tag" # Enable ligation for <> as diamond-shaped empty HTML/XML tag
|
||||||
|
# "ltgt-slash-tag" # Enable ligation for </, /> and </>
|
||||||
|
# "brst" # Center asterisk in (* and *)
|
||||||
|
"slash-asterisk" # Shift asterisk in /* and */
|
||||||
|
"kern-dotty" # Move connecting dotty punctuations closer, like for ::, :: # and ...
|
||||||
|
# "kern-bars" # Move consecutive bars closer, like for ||, ||| and //
|
||||||
|
"center-ops" # Vertically align some of the operators (like *) to the center position it is before or after a "center" operator (like +)
|
||||||
|
|
||||||
|
# These put -. to the same height
|
||||||
|
# "center-op-trigger-plus-minus-l" # Plus (+) and Minus (-) will trigger other operator characters at left to be centered
|
||||||
|
# "center-op-trigger-plus-minus-r" # Plus (+) and Minus (-) will trigger other operator characters at right to be centered
|
||||||
|
|
||||||
|
# These put *= to the same height
|
||||||
|
# "center-op-trigger-equal-l" # Equal (=) will trigger other operator characters at left to be centered
|
||||||
|
# "center-op-trigger-equal-r" # Equal (=) will trigger other operator characters at right to be centered
|
||||||
|
|
||||||
|
"center-op-trigger-bar-l" # Bars (|) will trigger other operator characters at left to be centered
|
||||||
|
"center-op-trigger-bar-r" # Bars (|) will trigger other operator characters at right to be centered
|
||||||
|
"center-op-trigger-angle-inside" # Less (<) and Greater (>) will trigger other operator characters at inside to be centered
|
||||||
|
"center-op-trigger-angle-outside" # Less (<) and Greater (>) will trigger other operator characters at outside to be centered
|
||||||
|
# "center-op-influence-dot" # Treat dot (.) as operator and perform chained centering
|
||||||
|
"center-op-influence-colon" # Treat colon (:) as operator and perform chained centering
|
||||||
|
"tilde-tilde" # Make 2 or more contiguous ASCII tildes (like ~~, ~~~ and ~~~~) connected as a wave line
|
||||||
|
# "tilde-tilde-tilde" # Make 3 or more contiguous ASCII tildes (like ~~~ and ~~~~) connected as a wave line
|
||||||
|
# "minus-minus" # Make 2 or more contiguous hyphen-minuses (like --, --- and ----) connected as a straight solid line
|
||||||
|
# "minus-minus-minus" # Make 3 or more contiguous hyphen-minuses (like --- and ----) connected as a straight solid line
|
||||||
|
# "plus-plus" # Make 2 or more contiguous plus signs (like ++, +++ and ++++) connected.
|
||||||
|
# "plus-plus-plus" # Make 3 or more contiguous plus signs (like +++ and ++++) connected.
|
||||||
|
# "underscore-underscore" # Make 2 or more contiguous underscores (like __, ___ and ____) connected
|
||||||
|
# "underscore-underscore-underscore" # Make 3 or more contiguous underscores (like ___ and ____) connected
|
||||||
|
# "hash-hash" # Make 2 or more contiguous hash signs (number signs) (like ##, ### and ####) connected
|
||||||
|
# "hash-hash-hash" # Make 3 or more contiguous hash signs (number signs) (like ## and ###) connected
|
||||||
|
# "logic" # Enable ligation for /\ and \/
|
||||||
|
# "llgg" # Enable ligation for <<, >> and other angle-bracket chaining
|
||||||
|
# "llggeq" # Enable ligation for <<=, >>= as shift operator
|
||||||
|
# "html-comment" # Enable ligation for <!-- and <!---
|
||||||
|
# "colon-greater-as-colon-arrow:" Transform :> into : and a narrow arrow
|
||||||
|
# "brace-bar" # Enable ligation for {| and |}
|
||||||
|
"brack-bar" # Enable ligation for [| and |]
|
||||||
|
];
|
||||||
|
}
|
||||||
24
nix/overlays/iosevka/spacings.nix
Normal file
24
nix/overlays/iosevka/spacings.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{ lib }:
|
||||||
|
|
||||||
|
let
|
||||||
|
list = [
|
||||||
|
{ spacing = "normal"; }
|
||||||
|
|
||||||
|
# Iosevka + Ghostty makes "…" display in a odd way.
|
||||||
|
# We use "term" width to avoid this.
|
||||||
|
# https://github.com/ghostty-org/ghostty/discussions/10335
|
||||||
|
{ spacing = "term"; }
|
||||||
|
];
|
||||||
|
in
|
||||||
|
|
||||||
|
map (
|
||||||
|
{ spacing }@cfg:
|
||||||
|
let
|
||||||
|
name = lib.toSentenceCase spacing;
|
||||||
|
in
|
||||||
|
final: prev:
|
||||||
|
cfg
|
||||||
|
// {
|
||||||
|
family = prev.family + "-${name}";
|
||||||
|
}
|
||||||
|
) list
|
||||||
93
nix/overlays/iosevka/variants.nix
Normal file
93
nix/overlays/iosevka/variants.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
let
|
||||||
|
list = [
|
||||||
|
{
|
||||||
|
code = "ss01";
|
||||||
|
name = "Andale Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss02";
|
||||||
|
name = "Anonymous Pro";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss03";
|
||||||
|
name = "Consolas";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss04";
|
||||||
|
name = "Menlo";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss05";
|
||||||
|
name = "Fira Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss06";
|
||||||
|
name = "Liberation Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss07";
|
||||||
|
name = "Monaco";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss08";
|
||||||
|
name = "Pragmata Pro";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss09";
|
||||||
|
name = "Source Code Pro";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss10";
|
||||||
|
name = "Envy Code R";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss11";
|
||||||
|
name = "X Window";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss12";
|
||||||
|
name = "Ubuntu Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss13";
|
||||||
|
name = "Lucida";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss14";
|
||||||
|
name = "JetBrains Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss15";
|
||||||
|
name = "IBM Plex Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss16";
|
||||||
|
name = "PT Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss17";
|
||||||
|
name = "Recursive Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss18";
|
||||||
|
name = "Input Mono";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
code = "ss20";
|
||||||
|
name = "Curly";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
in
|
||||||
|
|
||||||
|
map (
|
||||||
|
{ name, code }:
|
||||||
|
let
|
||||||
|
kebabName = builtins.replaceStrings [ " " ] [ "-" ] name;
|
||||||
|
in
|
||||||
|
final: prev: {
|
||||||
|
family = prev.family + "-${kebabName}";
|
||||||
|
variants = prev.variants // {
|
||||||
|
inherits = code;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
) list
|
||||||
|
|
@ -7,6 +7,6 @@ in
|
||||||
(import sources.nixpkgs {
|
(import sources.nixpkgs {
|
||||||
overlays = map scopeOverlay [
|
overlays = map scopeOverlay [
|
||||||
(import ./overlay.nix)
|
(import ./overlay.nix)
|
||||||
(import ../overlays/iosevka-term.nix)
|
(import ../overlays/iosevka)
|
||||||
];
|
];
|
||||||
}).export
|
}).export
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue