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