mirror of
https://github.com/fscotto/infra.git
synced 2026-05-30 15:39:58 +00:00
Enhance Sway/Noctalia integration and align desktop docs
- Add canonical usb-drive-manager plugin to Noctalia (symlink from official) - Remove nm-applet and blueman packages from nymph Sway session - Run udiskie without tray (backend for automount/LUKS, UI via usb-drive-manager) - Add screenOverrides support to Noctalia bar via inventory variables - Add host_packages_absent task to packages_void role - Update desktop docs with full plugin list and config layering - Add focused validation check for Sway/Noctalia bootstrap
This commit is contained in:
@@ -39,6 +39,7 @@ Ansible-driven personal infrastructure repo for Void desktops, Linux workstation
|
||||
- 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`
|
||||
- Sway/Noctalia bootstrap on nymph: `ansible-playbook ansible/site.yml --limit nymph --tags packages,dotfiles:desktop,sway --check --diff`
|
||||
- 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)"`
|
||||
- Server compose render: `docker compose -f /opt/docker/server/docker-compose.yml config`
|
||||
@@ -60,6 +61,10 @@ Ansible-driven personal infrastructure repo for Void desktops, Linux workstation
|
||||
- `dotfiles/desktop/.xinitrc`
|
||||
- `dotfiles/desktop/.local/bin/start-sway-session`
|
||||
- Do not auto-restart `emptty` during playbook runs on active desktop hosts; restart it manually from another TTY/SSH session if needed.
|
||||
- `profile_desktop_sway` owns the Sway session, Noctalia config rendering, and official plugin linking.
|
||||
- Noctalia shared config lives in `dotfiles/desktop/.config/noctalia/`; bar monitors and `screenOverrides` come from inventory (`noctalia_bar_monitors`, `noctalia_screen_overrides`).
|
||||
- On Sway hosts, `udiskie` is the backend for automount/LUKS but runs without tray; USB device UI is handled by `usb-drive-manager`.
|
||||
- Do not re-introduce `network-manager-applet` or `blueman` on Sway hosts without an explicit host-specific reason.
|
||||
|
||||
## Workstation / Windows Notes
|
||||
- Native Linux workstation hosts can combine `workstation_host_linux` with an OS-specific dev group.
|
||||
|
||||
@@ -82,7 +82,7 @@ Queste macchine condividono la stessa configurazione base desktop e vengono mant
|
||||
Lo stato attuale del profilo desktop include, tra le altre cose:
|
||||
|
||||
- dotfiles comuni e desktop
|
||||
- sessione i3 su `ikaros` e sessione SwayFX su `nymph`
|
||||
- sessione i3 su `ikaros` e sessione Sway su `nymph`
|
||||
- `emptty` con default host-specific per il desktop attivo su ogni host
|
||||
- pacchetti Void Linux e servizi runit
|
||||
- `turnstile` per i servizi utente, inclusi `emacs` e `ssh-agent`
|
||||
@@ -91,8 +91,10 @@ Lo stato attuale del profilo desktop include, tra le altre cose:
|
||||
- `tmux` con plugin gestiti da TPM al bootstrap del profilo desktop
|
||||
- Flatpak con remoto Flathub
|
||||
- GNOME Keyring e bootstrap della posta via script dedicato
|
||||
- shell Noctalia per SwayFX su `nymph`, con plugin per clipboard, polkit e screenshot
|
||||
- shell Noctalia su Sway su `nymph`, con plugin ufficiali per clipboard (`clipper`), polkit (`polkit-agent`), screenshot (`screenshot`) e gestione USB (`usb-drive-manager`); config condivisa in `dotfiles/desktop/.config/noctalia/` e `settings.json` renderizzato da template Ansible con variabili host-specifiche
|
||||
- `udiskie` come backend per automount/LUKS su Sway, senza tray; la UI dei dispositivi removibili è demandata a `usb-drive-manager`
|
||||
- `kanshi` su `nymph` per il profilo monitor Wayland, con workspace Sway deterministici: in dual monitor `1` resta su `eDP-1` e `2-10` vanno su `DP-1`, mentre in laptop-only tutti tornano su `eDP-1`
|
||||
- monitor Noctalia e `screenOverrides` dichiarati in inventory (`noctalia_bar_monitors`, `noctalia_screen_overrides`) per host `nymph`
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -298,6 +298,8 @@ desktop_sway_dotfiles:
|
||||
noctalia_bar_monitors:
|
||||
- DP-1
|
||||
|
||||
noctalia_screen_overrides: []
|
||||
|
||||
desktop_flatpak_packages:
|
||||
- be.alexandervanhee.gradia
|
||||
- ch.protonmail.protonmail-bridge
|
||||
|
||||
@@ -42,3 +42,14 @@ host_sway_dotfiles:
|
||||
|
||||
noctalia_bar_monitors:
|
||||
- DP-1
|
||||
- eDP-1
|
||||
|
||||
noctalia_screen_overrides:
|
||||
- name: DP-1
|
||||
enabled: false
|
||||
- name: eDP-1
|
||||
enabled: false
|
||||
|
||||
host_packages_absent:
|
||||
- network-manager-applet
|
||||
- blueman
|
||||
|
||||
@@ -72,3 +72,10 @@
|
||||
}}
|
||||
state: present
|
||||
update_cache: false
|
||||
|
||||
- name: Remove host-absent packages on Void Linux
|
||||
tags: [packages]
|
||||
community.general.xbps:
|
||||
name: "{{ host_packages_absent | default([]) }}"
|
||||
state: absent
|
||||
when: (host_packages_absent | default([])) | length > 0
|
||||
@@ -113,6 +113,21 @@
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
|
||||
- name: Check if usb-drive-manager is a real directory (needs migration to symlink)
|
||||
ansible.builtin.stat:
|
||||
path: "{{ user_home }}/.config/noctalia/plugins/usb-drive-manager"
|
||||
follow: false
|
||||
register: usb_drive_manager_path_state
|
||||
|
||||
- name: Remove old usb-drive-manager directory (migration to symlink)
|
||||
ansible.builtin.file:
|
||||
path: "{{ user_home }}/.config/noctalia/plugins/usb-drive-manager"
|
||||
state: absent
|
||||
when:
|
||||
- usb_drive_manager_path_state.stat.exists
|
||||
- usb_drive_manager_path_state.stat.isdir
|
||||
- not (usb_drive_manager_path_state.stat.islnk | default(false))
|
||||
|
||||
- name: Link official Noctalia plugins
|
||||
ansible.builtin.file:
|
||||
src: "{{ user_home }}/.local/share/noctalia-plugins/official/{{ item }}"
|
||||
@@ -124,3 +139,4 @@
|
||||
loop:
|
||||
- polkit-agent
|
||||
- screenshot
|
||||
- usb-drive-manager
|
||||
|
||||
@@ -70,7 +70,14 @@
|
||||
"rightClickAction": "controlCenter",
|
||||
"rightClickCommand": "",
|
||||
"rightClickFollowMouse": true,
|
||||
"screenOverrides": [],
|
||||
"screenOverrides": [
|
||||
{% for override in noctalia_screen_overrides | default([]) %}
|
||||
{
|
||||
"enabled": {{ override.enabled | lower }},
|
||||
"name": "{{ override.name }}"
|
||||
}{% if not loop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
],
|
||||
"showCapsule": true,
|
||||
"showOnWorkspaceSwitch": true,
|
||||
"showOutline": false,
|
||||
|
||||
@@ -22,7 +22,7 @@ exec pipewire
|
||||
exec pipewire-pulse
|
||||
exec wireplumber
|
||||
exec kanshi
|
||||
exec udiskie
|
||||
exec udiskie --no-tray
|
||||
exec wl-paste --watch cliphist store
|
||||
exec qs -c noctalia-shell
|
||||
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
"screenshot": {
|
||||
"enabled": true,
|
||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
},
|
||||
"usb-drive-manager": {
|
||||
"enabled": true,
|
||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
}
|
||||
},
|
||||
"version": 2
|
||||
|
||||
Reference in New Issue
Block a user