Lately I've been on a journey to really clean up my dotfiles, and I was completely missing fonts. I noticed jumping into a new vm I had a bunch of broken devicons when using Telescope with the devicons plugins.
This is one of those things that can be a total pain to get right on some systems, and its so nice when its just there for you pretty much out of the box.
- make sure your user fonts directory exists
- chech if the font you want exists on your machine
- download and unzip fonts into the fonts directory
- repeat 2-3 for all the fonts you use on your system
- name: ensure fonts directory
file:
path: "{{ lookup('env', 'HOME') }}/.fonts"
state: directory
- name: Hack exists
shell: "ls {{ lookup('env', 'HOME') }}/.fonts/Hack*Nerd*Font*Complete*"
register: hack_exists
ignore_errors: yes
- name: Download Hack
when: hack_exists is failed
ansible.builtin.unarchive:
src: https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip
dest: "{{ lookup('env', 'HOME') }}/.fonts/"
remote_src: yes
Links
- andibe unarchive docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/unarchive_module.html
- how I install yamlls using ansible: https://waylonwalker.com/setup-yamlls/
I am working on a shorter content pipeline to get ideas out of my head before I forget them, let me know what you think. You can see the full list of tils on my website, https://waylonwalker.com/til/