# vim: set filetype=yaml.ansible : # ## Package: ghostty ## Description: HW accelerated terminal emulator made with zig ## Version: 1.3.1 ## Methods: [system, source, appimage] ## Helpers: [zig, repo, appimage] --- - name: Set ghostty default facts # {{{ ansible.builtin.set_fact: ghostty: methods: Archlinux: [system, source, appimage] Alpine: [system, source, appimage] default: [source, appimage] pkgname: Archlinux: ghostty default: ghostty build_deps: default: - gtk4 - libadwaita - gtk4-layer-shell - pkgconf - gettext RedHat: - gtk4-devel - gtk4-layer-shell-devel - libadwaita-devel - gettext Debian: - libgtk-4-dev - libgtk4-layer-shell-dev - libadwaita-1-dev - gettext - libxml2-utils Archlinux: - gtk4 - gtk4-layer-shell - libadwaita - gettext Alpine: - gtk4.0-dev - libadwaita-dev - pkgconf - ncurses - gettext - name: Finalise ghostty default facts ansible.builtin.set_fact: ghostty: version: 1.3.1 base_url: https://releases.files.ghostty.org methods: "{{ ghostty.methods[os_family] | default(ghostty.methods.default) }}" pkg_deps: [zig] pkgname: "{{ ghostty.pkgname[os_family] | default(ghostty.pkgname.default) }}" build_deps: "{{ ghostty.build_deps[os_family] | default(ghostty.build_deps.default) }}" # }}} - name: Set ghostty facts ansible.builtin.set_fact: ghostty: version: "{{ ghostty_version | default(ghostty.version) }}" methods: "{{ ghostty.methods }}" source_url: "{{ ghostty.base_url }}/{{ ghostty.version }}/ghostty-{{ ghostty.version }}.tar.gz" archive: "ghostty-{{ ghostty.version }}.tar.gz" pkg_deps: "{{ ghostty.pkg_deps | default(omit) }}" build_deps: "{{ ghostty.build_deps }}" - name: Configure ghostty block: - name: Set ghostty install method when: - ghostty_imethod is undefined ansible.builtin.set_fact: ghostty_imethod: "{{ imethod if imethod in ghostty.methods else ghostty.methods[0] }}" - name: Configure ghostty source install when: - ghostty_imethod == 'source' block: - name: Add ghostty package dependencies when: - ghostty.pkg_deps is defined - ghostty.pkg_deps|length > 0 loop: "{{ ghostty.pkg_deps }}" loop_control: loop_var: dep ansible.builtin.include_tasks: pkgs/{{ dep }}.yml - name: Add ghostty system dependencies ansible.builtin.set_fact: pkg_sys: "{{ pkg_sys + ghostty.build_deps }}" - name: Configure ghostty zig install ansible.builtin.set_fact: ghostty_source_install: name: ghostty source_path: "{{ path_archive }}/ghostty/ghostty-{{ ghostty.version }}" archive: extract_to: "{{ path_archive }}/ghostty" name: "{{ ghostty.archive }}" url: "{{ ghostty.source_url }}" build_flags: - "-Doptimize=ReleaseFast" - name: Configure ghostty appimage install when: - ghostty_imethod == 'appimage' block: - name: Append ghostty to pkg_appimage when: - ghostty.method == 'appimage' ansible.builtin.set_fact: pkg_appimage: "{{ pkg_appimage + ghostty }}" - name: Configure ghostty system install when: - ghostty_imethod == 'system' block: - name: Queue ghostty to pkg_sys ansible.builtin.set_fact: pkg_sys: "{{ pkg_sys + [ghostty.pkg] }}" - name: Finalise ghostty configuration ansible.builtin.set_fact: __configured: "{{ __configured | combine( { 'ghostty': ghostty_install } ) }}"