Files
ansible_role_package/tasks/pkgs/ghostty.yml
Matthew Stobbs 1eae6eb0db fixed remaining issues
added pipx and ripgrep back. not sure where they went in the first place
2026-04-13 15:19:33 -06:00

158 lines
4.5 KiB
YAML

# 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:
version: 1.3.1
base_url: https://releases.files.ghostty.org
# install methods per distribution
default:
methods:
- source
pkg_deps: &pkgdeps
- zig
build_deps:
- gtk4
- libadwaita
- gtk4-layer-shell
- pkgconf
- gettext
Redhat: &redhat
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4-devel
- gtk4-layer-shell-devel
- libadwaita-devel
- gettext
AlmaLinux: *redhat
CentOS: *redhat
Rocky: *redhat
Debian: &debian
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- libgtk-4-dev
- libgtk4-layer-shell-dev
- libadwaita-1-dev
- gettext
- libxml2-utils
Ubuntu: *debian
Raspbian: *debian
Linux Mint: *debian
Archlinux: &arch
methods:
- system
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4
- gtk4-layer-shell
- libadwaita
- gettext
pkgname: ghostty
Majaro: *arch
Fedora:
methods:
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4-devel
- gtk4-layer-shell-devel
- libadwaita-devel
- gettext
Alpine:
methods:
- system
- source
- appimage
pkg_deps: *pkgdeps
build_deps:
- gtk4.0-dev
- libadwaita-dev
- pkgconf
- ncurses
- gettext
pkgname: ghostty
# }}}
- name: Set ghostty facts
ansible.builtin.set_fact:
ghostty:
version: "{{ ghostty_version | default(ghostty.version) }}"
methods: "{{ ghostty[distribution].methods | default(_methods['default']) }}"
source_url: "{{ ghostty.base_url }}/{{ ghostty.version }}/ghostty-{{ ghostty.version }}.tar.gz"
archive: "ghostty-{{ ghostty.version }}.tar.gz"
pkg_deps: "{{ ghostty[distribution].pkg_deps | default(omit) }}"
build_deps: "{{ ghostty[distribution].build_deps | default(ghostty.default.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 } ) }}"