109 lines
3.5 KiB
Org Mode
109 lines
3.5 KiB
Org Mode
:PROPERTIES:
|
|
:ID: cce/vulfpeck_fonts_are_fun
|
|
:ROAM_ALIASES: "Vulf Sans" "Vulf Mono"
|
|
:END:
|
|
#+TITLE: Vulfpeck Fonts are Fun
|
|
#+filetags: :CCE:
|
|
|
|
#+PROPERTY: header-args :mkdirp yes :results none
|
|
#+PROPERTY: header-args:emacs-lisp :tangle vulfpeck.el
|
|
#+PROPERTY: header-args:yaml :tangle roles/endpoint/tasks/vulfpeck.yml
|
|
|
|
#+ARCOLOGY_KEY: cce/vulfpeck
|
|
#+ARCOLOGY_ALLOW_CRAWL: t
|
|
|
|
#+ARROYO_EMACS_MODULE: vulfpeck
|
|
#+ARROYO_MODULE_WANTS: cce/configure_packaging.org
|
|
#+ARROYO_MODULE_WANTED: cce/run_hooks_after_init.org
|
|
|
|
I choose to standardize my interfaces on an opinionated font preference, using [[https://ohnotype.co/fonts/vulf-mono][Vulf Mono]] and its sibling Vulf Sans, in most places I can get away with expressing a preference. These fonts were commissioned for [[https://vulfpeck.com/][Vulfpeck]]'s website, an ascii-art band site for a bunch of funky nerds[fn:1:https://ohnotype.co/blog/the-process-of-vulf-sans]. It's a really fun font, and variable-width variant is nice to use in most places. It's available for sale reasonably priced from the foundry, and I use it for my systems and sites. I do, unfortunately, feel a bit tied to fixed-width fonts in spite of the development of Vulf Sans in Emacs, whether or not I am writing code or processing data. There's too many rough edges, text editing quibbles, etc, that you have to deal with when your text is variably-set.
|
|
|
|
#+begin_src emacs-lisp
|
|
(defun cce/set-font-vulf ()
|
|
(interactive)
|
|
(set-face-attribute 'default nil :family "Vulf Mono")
|
|
(set-face-attribute 'fixed-pitch nil :family "Vulf Mono")
|
|
(set-face-attribute 'variable-pitch nil :family "Vulf Mono" :slant 'oblique))
|
|
(add-hook 'after-cce-hook #'cce/set-font-vulf)
|
|
(provide 'cce/vulfpeck)
|
|
#+end_src
|
|
|
|
* Vulfpeck fonts on [[id:cce/my_nixos_configuration][My NixOS configuration]]
|
|
:PROPERTIES:
|
|
:ID: 20211117T213203.775430
|
|
:END:
|
|
|
|
A derivation for Vulf Mono.
|
|
|
|
#+begin_src nix :tangle ~/arroyo-nix/lib/vulfpeck.nix
|
|
{ pkgs, lib, stdenv, ...}:
|
|
|
|
stdenv.mkDerivation {
|
|
name="vulfpeck-fonts";
|
|
|
|
src=/home/rrix/sync/vulf-mono.zip;
|
|
|
|
nativeBuildInputs = [ pkgs.unzip ];
|
|
|
|
phases = [ "unpackPhase" ];
|
|
|
|
unpackPhase = ''
|
|
mkdir -p $out/share/fonts
|
|
unzip -d $out/share/fonts/truetype $src Desktop/*.otf
|
|
'';
|
|
|
|
meta = {
|
|
homepage="https://ohnotype.co/";
|
|
license = lib.licenses.unfree;
|
|
platforms = lib.platforms.all;
|
|
};
|
|
}
|
|
#+end_src
|
|
|
|
A derivation for Vulf Sans.
|
|
|
|
#+begin_src nix :tangle ~/arroyo-nix/lib/vulfpeck-sans.nix
|
|
{ pkgs, lib, stdenv, ...}:
|
|
|
|
stdenv.mkDerivation {
|
|
name="vulfpeck-fonts";
|
|
|
|
src=/home/rrix/sync/vulf-sans.zip;
|
|
|
|
nativeBuildInputs = [ pkgs.unzip ];
|
|
|
|
phases = [ "unpackPhase" ];
|
|
|
|
unpackPhase = ''
|
|
mkdir -p $out/share/fonts
|
|
unzip -d $out/share/fonts/truetype $src Desktop/*.otf
|
|
'';
|
|
|
|
meta = {
|
|
homepage="https://ohnotype.co/";
|
|
license = lib.licenses.unfree;
|
|
platforms = lib.platforms.all;
|
|
};
|
|
}
|
|
#+end_src
|
|
|
|
I configure [[id:cce/my_nixos_configuration][My NixOS]] to use Vulfpeck fonts where I can, and fall back to the [[id:cce/fonts][free fonts]] otherwise:
|
|
|
|
#+ARROYO_NIXOS_MODULE: nixos/vulfpeck.nix
|
|
#+ARROYO_SYSTEM_ROLE: endpoint
|
|
#+begin_src nix :tangle ~/arroyo-nix/nixos/vulfpeck.nix
|
|
{ pkgs, ... }:
|
|
|
|
let
|
|
vulf_mono = pkgs.callPackage ../lib/vulfpeck.nix {};
|
|
vulf_sans = pkgs.callPackage ../lib/vulfpeck-sans.nix {};
|
|
in
|
|
{
|
|
fonts = {
|
|
fontconfig.defaultFonts.monospace = ["Vulf Mono" "Deja Vu Sans Mono" "Noto Color Emoji" ];
|
|
fontconfig.defaultFonts.sansSerif = ["Vulf Sans" "Deja Vu Sans" "Noto Color Emoji" ];
|
|
packages = [ vulf_mono vulf_sans ];
|
|
};
|
|
}
|
|
#+end_src
|