From f2232d636bae4eed0dbdda8e2314b91a489d4878 Mon Sep 17 00:00:00 2001 From: Ahmed Abdelhalim Date: Sun, 18 Jan 2026 21:46:58 +0100 Subject: Fix font role --- roles/font/meta/argument_specs.yml | 6 ++++ roles/font/meta/main.yml | 17 ++++++++++ roles/font/tasks/main.yml | 52 +++++++++++++++++++++++++++++ roles/font/templates/local.conf.j2 | 68 ++++++++++++++++++++++++++++++++++++++ roles/font/vars/archlinux.yml | 8 +++++ roles/font/vars/debian.yml | 8 +++++ 6 files changed, 159 insertions(+) create mode 100644 roles/font/meta/argument_specs.yml create mode 100644 roles/font/meta/main.yml create mode 100644 roles/font/tasks/main.yml create mode 100644 roles/font/templates/local.conf.j2 create mode 100644 roles/font/vars/archlinux.yml create mode 100644 roles/font/vars/debian.yml (limited to 'roles/font') diff --git a/roles/font/meta/argument_specs.yml b/roles/font/meta/argument_specs.yml new file mode 100644 index 00000000..d44dc8c8 --- /dev/null +++ b/roles/font/meta/argument_specs.yml @@ -0,0 +1,6 @@ +--- +argument_specs: + main: + short_description: "Install fonts on Linux distributions" + description: "Install fonts on Linux distributions" + options: {} diff --git a/roles/font/meta/main.yml b/roles/font/meta/main.yml new file mode 100644 index 00000000..b1706f98 --- /dev/null +++ b/roles/font/meta/main.yml @@ -0,0 +1,17 @@ +--- +dependencies: [] +galaxy_info: + author: "a14m" + description: "Install fonts on linux distros." + license: "MIT" + min_ansible_version: "2.18" + platforms: + - name: "ArchLinux" + versions: + - "all" + - name: "Ubuntu" + versions: + - "noble" + - name: "Debian" + versions: + - "bookworm" diff --git a/roles/font/tasks/main.yml b/roles/font/tasks/main.yml new file mode 100644 index 00000000..4e1da0ae --- /dev/null +++ b/roles/font/tasks/main.yml @@ -0,0 +1,52 @@ +--- +- name: "Include OS-specific variables" + ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" + +- name: "Ensure fontconfig is installed" + become: true + ansible.builtin.package: + name: "fontconfig" + state: "present" + +- name: "Ensure fonts are installed" + become: true + ansible.builtin.package: + name: "{{ item }}" + state: "present" + loop: "{{ font_packages }}" + +- name: "Ensure fontconfig global directory exists" + become: true + ansible.builtin.file: + path: "{{ item }}" + state: "directory" + mode: "0755" + loop: + - "/etc/fonts" + - "/etc/fonts/conf.d" + +- name: "Add global font configurations" + become: true + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + mode: "0644" + loop: + - src: "local.conf.j2" + dest: "/etc/fonts/local.conf" + +- name: "Configure fonts presets" + become: true + ansible.builtin.file: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + state: "link" + loop: + - src: "/usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf" + dest: "/etc/fonts/conf.d/10-sub-pixel-rgb.conf" + - src: "/usr/share/fontconfig/conf.avail/10-hinting-slight.conf" + dest: "/etc/fonts/conf.d/10-hinting-slight.conf" + - src: "/usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf" + dest: "/etc/fonts/conf.d/11-lcdfilter-default.conf" + - src: "/usr/share/fontconfig/conf.avail/70-no-bitmaps-except-emoji.conf" + dest: "/etc/fonts/conf.d/70-no-bitmaps-except-emoji.conf" diff --git a/roles/font/templates/local.conf.j2 b/roles/font/templates/local.conf.j2 new file mode 100644 index 00000000..33574afe --- /dev/null +++ b/roles/font/templates/local.conf.j2 @@ -0,0 +1,68 @@ + + + + + + + true + + + true + + + rgb + + + hintslight + + + lcddefault + + + + + + + serif + + Noto Serif + FreeSerif + Noto Emoji + + + + sans-serif + + Noto Sans + FreeSans + Noto Emoji + + + + sans + + Noto Sans + FreeSans + Noto Color Emoji + Noto Emoji + + + + monospace + + JetBrainsMono + Noto Mono + Noto Color Emoji + Noto Emoji + + + + mono + + JetBrainsMono + Noto Mono + Noto Color Emoji + Noto Emoji + + + diff --git a/roles/font/vars/archlinux.yml b/roles/font/vars/archlinux.yml new file mode 100644 index 00000000..08ff03f0 --- /dev/null +++ b/roles/font/vars/archlinux.yml @@ -0,0 +1,8 @@ +--- +font_packages: + - "ttf-jetbrains-mono-nerd" + - "gnu-free-fonts" + - "noto-fonts" + - "noto-fonts-cjk" + - "noto-fonts-emoji" + - "noto-fonts-extra" diff --git a/roles/font/vars/debian.yml b/roles/font/vars/debian.yml new file mode 100644 index 00000000..fad50d6a --- /dev/null +++ b/roles/font/vars/debian.yml @@ -0,0 +1,8 @@ +--- +font_packages: + - "fonts-jetbrains-mono" + - "fonts-recommended" + - "fonts-noto" + - "fonts-noto-cjk" + - "fonts-noto-emoji" + - "fonts-noto-extra" -- cgit v1.2.3