Clean up Arch profile: remove i3/Void-specific config and fix GNOME integration

- Remove XFCE/i3-specific packages and dotfiles from Arch path (xarchiver,
  udiskie, Thunar, xfce-polkit, clipman, screenshooter)
- Separate per-OS dotfiles: mimeapps, udiskie config, GTK theme script,
  udiskie-password, dbus-session and ssh-agent fragments moved to Void-only
- Add mimeapps.arch.list with Nautilus/GNOME associations for nymph
- Move dunst/rofi directory creation from common to profile_desktop_i3
- Add gnome-keyring PAM hooks for GDM (gdm-password) in profile_desktop_gnome
- Remove ssh-agent.service from desktop_systemd_user_services on Arch;
  drop ssh-agent dependency and hardcoded socket from emacs.service
- Add ttf-hack-nerd to Arch font packages
- Fix rustup bootstrap: use rustup-init on Void, rustup toolchain install on Arch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Fabio Scotto di Santolo
2026-05-12 23:37:39 +02:00
parent 0c11698e50
commit 8957f4e7d3
8 changed files with 324 additions and 39 deletions

View File

@@ -64,7 +64,6 @@ arch_desktop_common_packages:
- brightnessctl
- dex
- pinentry
- udiskie
- xdg-desktop-portal
- xdg-desktop-portal-gtk
- xdg-user-dirs
@@ -116,12 +115,12 @@ arch_profile_packages:
- texlive-binextra
- texlive-latex
- texlive-latexextra
- ttf-hack-nerd
- ttf-liberation
- ttf-nerd-fonts-symbols
- ctags
- uv
- virt-manager
- xarchiver
- xournalpp
- zstd
@@ -135,7 +134,6 @@ enabled_services:
- ufw
desktop_systemd_user_services:
- ssh-agent.service
- emacs.service
- syncthing.service
- rclone-pcloud.service

View File

@@ -50,14 +50,6 @@ desktop_common_dotfiles:
src: .config/alacritty/
dest: .config/alacritty/
mode: preserve
- name: Thunar config
src: .config/Thunar/
dest: .config/Thunar/
mode: preserve
- name: MIME application defaults
src: .config/mimeapps.list
dest: .config/mimeapps.list
mode: "0644"
- name: fastfetch config
src: .config/fastfetch/
dest: .config/fastfetch/
@@ -78,10 +70,6 @@ desktop_common_dotfiles:
src: .config/mpv/
dest: .config/mpv/
mode: preserve
- name: Udiskie config
src: .config/udiskie/
dest: .config/udiskie/
mode: preserve
- name: Bash cargo env fragment
src: .bashrc.d/08-cargo-env.sh
dest: .bashrc.d/08-cargo-env.sh
@@ -94,14 +82,6 @@ desktop_common_dotfiles:
src: .bashrc.d/12-manpages.sh
dest: .bashrc.d/12-manpages.sh
mode: "0644"
- name: Bash DBus session fragment
src: .bashrc.d/14-dbus-session.sh
dest: .bashrc.d/14-dbus-session.sh
mode: "0644"
- name: Bash SSH agent socket fragment
src: .bashrc.d/16-ssh-agent-socket.sh
dest: .bashrc.d/16-ssh-agent-socket.sh
mode: "0644"
- name: Bash editor fragment
src: .bashrc.d/20-editor-desktop.sh
dest: .bashrc.d/20-editor-desktop.sh
@@ -138,14 +118,6 @@ desktop_common_dotfiles:
src: .authinfo.gpg
dest: .authinfo.gpg
mode: "0600"
- name: GTK theme setup script
src: .local/bin/setup-gtk-theme
dest: .local/bin/setup-gtk-theme
mode: "0755"
- name: Udiskie password helper
src: .local/bin/udiskie-password
dest: .local/bin/udiskie-password
mode: "0755"
- name: Calibre database Flatpak wrapper
src: .local/bin/calibredb
dest: .local/bin/calibredb
@@ -160,6 +132,10 @@ desktop_arch_dotfiles:
src: .config/systemd/user/
dest: .config/systemd/user/
mode: preserve
- name: MIME application defaults
src: .config/mimeapps.arch.list
dest: .config/mimeapps.list
mode: "0644"
desktop_emacs_dotfiles:
- name: Emacs config

View File

@@ -88,10 +88,38 @@ desktop_void_dotfiles:
src: .config/service/
dest: .config/service/
mode: preserve
- name: Thunar config
src: .config/Thunar/
dest: .config/Thunar/
mode: preserve
- name: MIME application defaults
src: .config/mimeapps.list
dest: .config/mimeapps.list
mode: "0644"
- name: Bash DBus session fragment
src: .bashrc.d/14-dbus-session.sh
dest: .bashrc.d/14-dbus-session.sh
mode: "0644"
- name: Bash SSH agent socket fragment
src: .bashrc.d/16-ssh-agent-socket.sh
dest: .bashrc.d/16-ssh-agent-socket.sh
mode: "0644"
- name: Bash runit desktop fragment
src: .bashrc.d/15-runit-desktop.sh
dest: .bashrc.d/15-runit-desktop.sh
mode: "0644"
- name: GTK theme setup script
src: .local/bin/setup-gtk-theme
dest: .local/bin/setup-gtk-theme
mode: "0755"
- name: Udiskie password helper
src: .local/bin/udiskie-password
dest: .local/bin/udiskie-password
mode: "0755"
- name: Udiskie config
src: .config/udiskie/
dest: .config/udiskie/
mode: preserve
- name: Turnstile environment update script
src: .local/bin/update-turnstile-env
dest: .local/bin/update-turnstile-env

View File

@@ -19,10 +19,7 @@
loop:
- "{{ user_home }}/.config"
- "{{ user_home }}/.config/autostart"
- "{{ user_home }}/.config/dunst"
- "{{ user_home }}/.config/alacritty"
- "{{ user_home }}/.config/Thunar"
- "{{ user_home }}/.config/rofi"
- "{{ user_home }}/.config/systemd"
- "{{ user_home }}/.config/systemd/user"
- "{{ user_home }}/.bashrc.d"
@@ -504,14 +501,27 @@
path: "{{ user_home }}/.cargo/bin/rustc"
register: rustup_initialized
- name: Run rustup-init with cargo env sourced
- name: Run rustup-init with cargo env sourced (Void)
ansible.builtin.shell:
cmd: . ~/.cargo/env && rustup-init -y --no-modify-path
creates: "{{ user_home }}/.cargo/bin/rustc"
become_user: "{{ username }}"
environment:
HOME: "{{ user_home }}"
when: not rustup_initialized.stat.exists
when:
- not rustup_initialized.stat.exists
- "'void' in group_names"
- name: Install Rust stable toolchain via rustup (Arch)
ansible.builtin.command:
cmd: rustup toolchain install stable
creates: "{{ user_home }}/.cargo/bin/rustc"
become_user: "{{ username }}"
environment:
HOME: "{{ user_home }}"
when:
- not rustup_initialized.stat.exists
- "'arch' in group_names"
- name: Ensure cargo env is sourced in shell profile
ansible.builtin.lineinfile:

View File

@@ -16,3 +16,27 @@
force: true
owner: root
group: root
- name: Enable gnome-keyring PAM auth hook for GDM
tags: [gnome]
ansible.builtin.lineinfile:
path: /etc/pam.d/gdm-password
insertafter: '^auth\s+include\s+system-local-login$'
line: "auth optional pam_gnome_keyring.so"
state: present
- name: Enable gnome-keyring PAM session hook for GDM
tags: [gnome]
ansible.builtin.lineinfile:
path: /etc/pam.d/gdm-password
insertafter: '^session\s+include\s+system-local-login$'
line: "session optional pam_gnome_keyring.so auto_start"
state: present
- name: Enable gnome-keyring PAM password hook for GDM
tags: [gnome]
ansible.builtin.lineinfile:
path: /etc/pam.d/gdm-password
insertafter: '^password\s+include\s+system-local-login$'
line: "password optional pam_gnome_keyring.so use_authtok"
state: present

View File

@@ -8,8 +8,10 @@
group: "{{ user_group }}"
mode: "0755"
loop:
- "{{ user_home }}/.config/dunst"
- "{{ user_home }}/.config/i3"
- "{{ user_home }}/.config/i3blocks"
- "{{ user_home }}/.config/rofi"
when: "'i3' in (desktop_sessions_enabled | default([]))"
- name: Install allowed emptty X11 sessions