mirror of
https://github.com/fscotto/infra.git
synced 2026-05-30 15:39:58 +00:00
Split Emacs dotfiles deployment
This commit is contained in:
@@ -38,6 +38,7 @@ Ansible-driven personal infrastructure repo for Void desktops, Linux workstation
|
||||
- WSL dev: `ansible-playbook ansible/site.yml --limit deadalus-wsl --check --diff`
|
||||
- Server: `ansible-playbook ansible/site.yml --limit prometheus --check --diff`
|
||||
- Focused checks:
|
||||
- Emacs dotfiles only: `ansible-playbook ansible/site.yml --limit ikaros --tags emacs --check --diff` or `--limit nymph --tags emacs --check --diff`
|
||||
- Waybar JSON: `python3 -m json.tool dotfiles/desktop/.config/waybar/config-sway.jsonc >/dev/null`
|
||||
- Mail bootstrap: `sh -n scripts/bootstrap_mail.sh` and `shellcheck scripts/bootstrap_mail.sh`
|
||||
- Windows bootstrap parse: `pwsh -NoProfile -Command "[void][System.Management.Automation.Language.Parser]::ParseFile('scripts/bootstrap_windows_workstation.ps1', [ref]$null, [ref]$null)"`
|
||||
@@ -53,6 +54,7 @@ Ansible-driven personal infrastructure repo for Void desktops, Linux workstation
|
||||
|
||||
## Desktop Void Notes
|
||||
- `profile_desktop_common` owns the shared desktop bootstrap.
|
||||
- `.emacs.d` is deployed by a dedicated `profile_desktop_common` task tagged `emacs`.
|
||||
- User services are managed by `turnstile` and live under `dotfiles/desktop/.config/service/`.
|
||||
- `ssh-agent` runs under `turnstile` with stable socket `~/.local/state/ssh-agent/socket`.
|
||||
- Critical session entrypoints:
|
||||
|
||||
@@ -87,6 +87,7 @@ Lo stato attuale del profilo desktop include, tra le altre cose:
|
||||
- pacchetti Void Linux e servizi runit
|
||||
- `turnstile` per i servizi utente, inclusi `emacs` e `ssh-agent`
|
||||
- `ssh-agent` con socket stabile condiviso tra shell, SSH ed Emacs in `~/.local/state/ssh-agent/socket`
|
||||
- `.emacs.d` distribuito da un task dedicato Ansible con tag `emacs`
|
||||
- `ollama` eseguito via container Podman
|
||||
- `tmux` con plugin gestiti da TPM al bootstrap del profilo desktop
|
||||
- Flatpak con remoto Flathub
|
||||
@@ -218,6 +219,13 @@ ansible-playbook ansible/site.yml --limit prometheus -e server_username=myuser -
|
||||
|
||||
# Composizione della configurazione
|
||||
|
||||
Deploy mirato della configurazione Emacs sui desktop Void:
|
||||
|
||||
```bash
|
||||
ansible-playbook ansible/site.yml --limit ikaros --tags emacs
|
||||
ansible-playbook ansible/site.yml --limit nymph --tags emacs
|
||||
```
|
||||
|
||||
La configurazione finale di una macchina è ottenuta combinando più livelli.
|
||||
|
||||
```text
|
||||
|
||||
@@ -233,10 +233,6 @@ desktop_common_dotfiles:
|
||||
src: .tmux/bin/
|
||||
dest: .tmux/bin/
|
||||
mode: preserve
|
||||
- name: Emacs config
|
||||
src: .emacs.d/
|
||||
dest: .emacs.d/
|
||||
mode: preserve
|
||||
- name: GPG authinfo for LLM APIs
|
||||
src: .authinfo.gpg
|
||||
dest: .authinfo.gpg
|
||||
@@ -266,6 +262,12 @@ desktop_common_dotfiles:
|
||||
dest: .ssh/config
|
||||
mode: "0600"
|
||||
|
||||
desktop_emacs_dotfiles:
|
||||
- name: Emacs config
|
||||
src: .emacs.d/
|
||||
dest: .emacs.d/
|
||||
mode: preserve
|
||||
|
||||
desktop_i3_dotfiles:
|
||||
- name: i3 config
|
||||
src: .config/i3/
|
||||
|
||||
@@ -264,6 +264,18 @@
|
||||
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([]) }}"
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
|
||||
- name: Render desktop templates with private values
|
||||
tags: [dotfiles, dotfiles:desktop]
|
||||
ansible.builtin.template:
|
||||
|
||||
Reference in New Issue
Block a user