From 687083bf3139ab675850d0a8366b5aeed2e18107 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Wed, 19 Feb 2025 13:08:20 -0800 Subject: [PATCH] Ansible: Add X.org configuration - Detect if X.org is installed with a small fact script - Symlink Xdefaults file if X.org is installed --- Ansible/facts/xorg.fact | 9 +++++++++ Ansible/roles/eryn/handlers/main.yml | 3 +++ Ansible/roles/eryn/tasks/main.yml | 4 ++++ Ansible/roles/eryn/tasks/xorg.yml | 23 +++++++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 Ansible/facts/xorg.fact create mode 100644 Ansible/roles/eryn/handlers/main.yml create mode 100644 Ansible/roles/eryn/tasks/xorg.yml diff --git a/Ansible/facts/xorg.fact b/Ansible/facts/xorg.fact new file mode 100644 index 0000000..c450d24 --- /dev/null +++ b/Ansible/facts/xorg.fact @@ -0,0 +1,9 @@ +#!/usr/bin/env zsh + +if which xorg 1>/dev/null 2>&1; then + xorg_exists="true" +else + xorg_exists="false" +fi + +echo "{ \"exists\": ${xorg_exists} }" diff --git a/Ansible/roles/eryn/handlers/main.yml b/Ansible/roles/eryn/handlers/main.yml new file mode 100644 index 0000000..687e9ba --- /dev/null +++ b/Ansible/roles/eryn/handlers/main.yml @@ -0,0 +1,3 @@ +- name: "Rebuild local facts" + ansible.builtin.setup: + gather_subset: [ local ] diff --git a/Ansible/roles/eryn/tasks/main.yml b/Ansible/roles/eryn/tasks/main.yml index 913d813..fa5b40d 100644 --- a/Ansible/roles/eryn/tasks/main.yml +++ b/Ansible/roles/eryn/tasks/main.yml @@ -19,3 +19,7 @@ - name: Configure tmux ansible.builtin.import_tasks: tmux.yml + +- name: Configure X.org + ansible.builtin.import_tasks: xorg.yml + when: ansible_os_family == "Linux" diff --git a/Ansible/roles/eryn/tasks/xorg.yml b/Ansible/roles/eryn/tasks/xorg.yml new file mode 100644 index 0000000..6956952 --- /dev/null +++ b/Ansible/roles/eryn/tasks/xorg.yml @@ -0,0 +1,23 @@ +--- +# TODO: This likely will require a lot more packages to install. IIRC, X.org +# also requires input and video packages to run in a basic state. Not to +# mention, graphics acceleration, window management, etc. + +- name: "Xorg : Install X.org" + ansible.builtin.package: + name: xorg + state: present + notify: Rebuild local facts + +# Make sure local facts are rebuilt so the steps below can correctly detect +# if X.org is present. +- name: "Xorg : Flush handlers" + meta: flush_handlers + +- name: "Xorg : Configure" + when: ansible_local.xorg.exists + block: + - name: "Xorg : Symlink Xdefaults" + ansible.builtin.include_tasks: symlink_dotfile_directory.yml + vars: + dotfile_src: Xdefaults