mirror of
https://github.com/fscotto/infra.git
synced 2026-09-27 19:03:47 +00:00
Refactor Emacs for authoring workflows
This commit is contained in:
@@ -9,6 +9,29 @@ effective_user_group: "{{ user_group }}"
|
||||
effective_user_home: "{{ user_home }}"
|
||||
emacs_enabled: false
|
||||
|
||||
emacs_dotfiles:
|
||||
- name: Bash Emacs client fragment
|
||||
src: .bashrc.d/25-emacs-client-desktop.sh
|
||||
dest: .bashrc.d/25-emacs-client-desktop.sh
|
||||
mode: "0644"
|
||||
- name: Emacs authoring configuration
|
||||
src: .emacs.d/
|
||||
dest: .emacs.d/
|
||||
mode: preserve
|
||||
|
||||
emacs_authoring_directories:
|
||||
- .bashrc.d
|
||||
- Org
|
||||
- Org/documentation
|
||||
- Org/meetings
|
||||
- Org/projects
|
||||
|
||||
emacs_authoring_files:
|
||||
- name: Org HTML stylesheet
|
||||
src: .emacs.d/templates/org/org.css
|
||||
dest: Org/org.css
|
||||
mode: "0644"
|
||||
|
||||
xdg_user_directories:
|
||||
- Desktop
|
||||
- Documents
|
||||
|
||||
@@ -157,16 +157,6 @@ desktop_minimal_managed_paths:
|
||||
- .config/wlogout
|
||||
- .local/bin/udiskie-password
|
||||
|
||||
desktop_emacs_dotfiles:
|
||||
- name: Bash Emacs client fragment
|
||||
src: .bashrc.d/25-emacs-client-desktop.sh
|
||||
dest: .bashrc.d/25-emacs-client-desktop.sh
|
||||
mode: "0644"
|
||||
- name: Emacs config
|
||||
src: .emacs.d/
|
||||
dest: .emacs.d/
|
||||
mode: preserve
|
||||
|
||||
desktop_sway_dotfiles:
|
||||
- name: alacritty config
|
||||
src: .config/alacritty/
|
||||
|
||||
@@ -36,7 +36,6 @@ fedora_desktop_packages:
|
||||
- liberation-fonts
|
||||
- libasan
|
||||
- libubsan
|
||||
- libvterm-devel
|
||||
- libX11-devel
|
||||
- libXft-devel
|
||||
- meld
|
||||
@@ -58,7 +57,6 @@ fedora_desktop_packages:
|
||||
- syncthing
|
||||
- tealdeer
|
||||
- terminus-fonts
|
||||
- texlive
|
||||
- tmux
|
||||
- wl-clipboard
|
||||
- ty
|
||||
|
||||
@@ -21,6 +21,11 @@ fedora_intellij_package_name: intellij-idea-ultimate
|
||||
|
||||
fedora_emacs_packages:
|
||||
- emacs-pgtk
|
||||
- pandoc
|
||||
- latexmk
|
||||
- texlive-latex
|
||||
- texlive-luatex
|
||||
- texlive-collection-latexrecommended
|
||||
|
||||
fedora_docker_packages:
|
||||
- docker-ce
|
||||
@@ -55,7 +60,6 @@ fedora_workstation_dev_packages:
|
||||
- gnupg2-gpg-agent
|
||||
- libfido2
|
||||
- openssh-clients
|
||||
- pandoc
|
||||
- shellcheck
|
||||
|
||||
workstation_host_linux_packages_fedora:
|
||||
|
||||
@@ -11,6 +11,15 @@ ubuntu_packages_base:
|
||||
|
||||
ubuntu_manage_docker_repo: true
|
||||
|
||||
ubuntu_emacs_packages:
|
||||
- emacs
|
||||
- pandoc
|
||||
- latexmk
|
||||
- texlive-luatex
|
||||
- texlive-latex-base
|
||||
- texlive-latex-recommended
|
||||
- texlive-fonts-recommended
|
||||
|
||||
ubuntu_docker_packages:
|
||||
- docker-ce
|
||||
- docker-ce-cli
|
||||
|
||||
@@ -195,7 +195,6 @@ profile_packages:
|
||||
- libspa-bluetooth
|
||||
- libreoffice
|
||||
- liberation-fonts-ttf
|
||||
- libvterm-devel
|
||||
- libX11-devel
|
||||
- libXft-devel
|
||||
- meld
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
---
|
||||
emacs_enabled: true
|
||||
|
||||
workstation_dev_packages:
|
||||
- distrobox
|
||||
- gnupg
|
||||
- gpg-agent
|
||||
- libfido2-1
|
||||
- openssh-client
|
||||
- pandoc
|
||||
- shellcheck
|
||||
|
||||
workstation_user_directories:
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
---
|
||||
emacs_enabled: true
|
||||
|
||||
workstation_host_linux_packages:
|
||||
- croc
|
||||
- gnome-shell-extension-manager
|
||||
|
||||
@@ -25,6 +25,43 @@
|
||||
group: "{{ effective_user_group }}"
|
||||
when: "'desktop' in group_names"
|
||||
|
||||
- name: Ensure Emacs authoring directories exist
|
||||
tags: [dotfiles, dotfiles:common, emacs]
|
||||
ansible.builtin.file:
|
||||
path: "{{ effective_user_home }}/{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ effective_username }}"
|
||||
group: "{{ effective_user_group }}"
|
||||
mode: "0755"
|
||||
loop: "{{ emacs_authoring_directories | default([]) }}"
|
||||
when: emacs_enabled | default(false) | bool
|
||||
|
||||
- name: Deploy the shared Emacs authoring configuration
|
||||
tags: [dotfiles, dotfiles:common, emacs]
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../dotfiles/desktop/{{ item.src }}"
|
||||
dest: "{{ effective_user_home }}/{{ item.dest }}"
|
||||
owner: "{{ effective_username }}"
|
||||
group: "{{ effective_user_group }}"
|
||||
mode: "{{ item.mode }}"
|
||||
loop: "{{ emacs_dotfiles | default([]) }}"
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
when: emacs_enabled | default(false) | bool
|
||||
|
||||
- name: Deploy Emacs authoring assets
|
||||
tags: [dotfiles, dotfiles:common, emacs]
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../dotfiles/desktop/{{ item.src }}"
|
||||
dest: "{{ effective_user_home }}/{{ item.dest }}"
|
||||
owner: "{{ effective_username }}"
|
||||
group: "{{ effective_user_group }}"
|
||||
mode: "{{ item.mode }}"
|
||||
loop: "{{ emacs_authoring_files | default([]) }}"
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
when: emacs_enabled | default(false) | bool
|
||||
|
||||
- name: Ensure SSH socket directory exists
|
||||
tags: [dotfiles, dotfiles:common]
|
||||
ansible.builtin.file:
|
||||
|
||||
@@ -103,8 +103,7 @@
|
||||
+ (
|
||||
(fedora_emacs_packages | default([]))
|
||||
if (
|
||||
'graphical_desktop' in group_names
|
||||
and (emacs_enabled | default(false) | bool)
|
||||
emacs_enabled | default(false) | bool
|
||||
)
|
||||
else []
|
||||
)
|
||||
|
||||
@@ -136,6 +136,11 @@
|
||||
+ (ubuntu_packages_base | default([]))
|
||||
+ (ubuntu_docker_packages | default([]))
|
||||
+ (profile_packages | default([]))
|
||||
+ (
|
||||
(ubuntu_emacs_packages | default([]))
|
||||
if (emacs_enabled | default(false) | bool)
|
||||
else []
|
||||
)
|
||||
+ (workstation_dev_packages | default([]))
|
||||
+ (
|
||||
(workstation_host_linux_packages | default([]))
|
||||
|
||||
@@ -315,19 +315,6 @@
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
|
||||
- name: Copy Emacs desktop dotfiles
|
||||
tags: [dotfiles, dotfiles:desktop, emacs]
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../dotfiles/desktop/{{ item.src }}"
|
||||
dest: "{{ user_home }}/{{ item.dest }}"
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
mode: "{{ item.mode }}"
|
||||
loop: "{{ desktop_emacs_dotfiles | default([]) }}"
|
||||
when: emacs_enabled | default(false) | bool
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
|
||||
- name: Render git configuration with private values
|
||||
tags: [dotfiles, dotfiles:desktop, git]
|
||||
ansible.builtin.template:
|
||||
|
||||
@@ -45,19 +45,6 @@
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
|
||||
- name: Copy GNOME Emacs desktop dotfiles
|
||||
tags: [dotfiles, dotfiles:desktop, emacs, gnome]
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../dotfiles/desktop/{{ item.src }}"
|
||||
dest: "{{ user_home }}/{{ item.dest }}"
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
mode: "{{ item.mode }}"
|
||||
loop: "{{ desktop_emacs_dotfiles | default([]) }}"
|
||||
when: emacs_enabled | default(false) | bool
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
|
||||
- name: Configure GNOME gpg-agent for Fedora
|
||||
tags: [dotfiles, dotfiles:desktop, git, gnome]
|
||||
ansible.builtin.copy:
|
||||
|
||||
Reference in New Issue
Block a user