Migrate nymph desktop to SwayFX and Noctalia

This commit is contained in:
Fabio Scotto di Santolo
2026-04-21 23:04:52 +02:00
parent 3ef9356737
commit 4632f20c87
15 changed files with 170 additions and 419 deletions

View File

@@ -13,15 +13,11 @@ desktop_ollama_enabled: false
desktop_common_packages:
- brightnessctl
- dex
- dunst
- emptty
- network-manager-applet
- pinentry-emacs
- pinentry-gtk
- rofi
- turnstile
- udiskie
- xfce-polkit
- xdg-desktop-portal
- xdg-desktop-portal-gtk
- xdg-user-dirs
@@ -35,10 +31,15 @@ desktop_i3_packages:
- i3blocks-blocklets
- i3lock-color
- i3status
- dunst
- network-manager-applet
- rofi
- scrot
- setxkbmap
- blueman
- volumeicon
- xclip
- xfce-polkit
- xfce4-clipman-plugin
- xfce4-screenshooter
- xkbutils
@@ -50,20 +51,13 @@ desktop_sway_packages:
- grim
- kanshi
- slurp
- SwayOSD
- sway
- swayidle
- swaylock
- Waybar
- swayfx
- wl-clipboard
- xfce4-clipman-plugin
- xfce4-screenshooter
- xdg-desktop-portal-wlr
profile_packages:
- alacritty
- bluez
- blueman
- bridge-utils
- celluloid
- ctags
@@ -168,10 +162,6 @@ desktop_common_dotfiles:
src: .config/autostart/
dest: .config/autostart/
mode: preserve
- name: dunst config
src: .config/dunst/
dest: .config/dunst/
mode: preserve
- name: alacritty config
src: .config/alacritty/
dest: .config/alacritty/
@@ -180,10 +170,6 @@ desktop_common_dotfiles:
src: .config/Thunar/
dest: .config/Thunar/
mode: preserve
- name: rofi config
src: .config/rofi/
dest: .config/rofi/
mode: preserve
- name: MIME application defaults
src: .config/mimeapps.list
dest: .config/mimeapps.list
@@ -248,14 +234,6 @@ desktop_common_dotfiles:
src: .local/bin/setup-gtk-theme
dest: .local/bin/setup-gtk-theme
mode: "0755"
- name: Lock session script
src: .local/bin/lock-session
dest: .local/bin/lock-session
mode: "0755"
- name: Powermenu script
src: .local/bin/powermenu
dest: .local/bin/powermenu
mode: "0755"
- name: Turnstile environment update script
src: .local/bin/update-turnstile-env
dest: .local/bin/update-turnstile-env
@@ -280,10 +258,18 @@ desktop_i3_dotfiles:
src: .config/i3/
dest: .config/i3/
mode: preserve
- name: dunst config
src: .config/dunst/
dest: .config/dunst/
mode: preserve
- name: i3blocks config
src: .config/i3blocks/
dest: .config/i3blocks/
mode: preserve
- name: rofi config
src: .config/rofi/
dest: .config/rofi/
mode: preserve
- name: .xinitrc
src: .xinitrc
dest: .xinitrc
@@ -294,10 +280,6 @@ desktop_sway_dotfiles:
src: .config/sway/
dest: .config/sway/
mode: preserve
- name: Waybar config
src: .config/waybar/
dest: .config/waybar/
mode: preserve
- name: Sway wallpaper assets
src: .config/i3/wallpapers/
dest: .config/sway/wallpapers/
@@ -306,10 +288,6 @@ desktop_sway_dotfiles:
src: .local/bin/start-sway-session
dest: .local/bin/start-sway-session
mode: "0755"
- name: Wayland screenshot script
src: .local/bin/screenshot-wayland
dest: .local/bin/screenshot-wayland
mode: "0755"
desktop_flatpak_packages:
- be.alexandervanhee.gradia

View File

@@ -2,29 +2,58 @@
hostname: nymph
desktop_sessions_enabled:
- i3
- sway
desktop_prompt_for_session: true
desktop_default_session: sway
desktop_default_session_env: wayland
desktop_emptty_session_error_logging: rotate
host_xbps_repositories:
- name: noctalia
url: https://universalrepo.r1xelelo.workers.dev/void
host_packages:
- cliphist
- grimshot
- nvidia
- noctalia-shell
- power-profiles-daemon
- mesa-dri
- vulkan-loader
- mesa-vulkan-intel
- intel-video-accel
- tlp
- tlp-rdw
- upower
host_remove_packages:
- arandr
- autorandr
- feh
- i3
- i3blocks
- i3blocks-blocklets
- i3lock-color
- i3status
- dunst
- network-manager-applet
- rofi
- scrot
- setxkbmap
- blueman
- volumeicon
- xclip
- xfce-polkit
- xfce4-clipman-plugin
- xfce4-screenshooter
- xkbutils
- xorg-fonts
- xorg-minimal
- xss-lock
host_enabled_services:
- tlp
host_i3_dotfiles:
- src: .config/autorandr/
dest: .config/autorandr/
mode: preserve
host_sway_dotfiles:
- src: .config/sway/host.conf
dest: .config/sway/host.conf

View File

@@ -67,7 +67,16 @@
else []
)
+ (host_packages | default([]))
) | unique
)
| unique
}}
state: present
update_cache: false
- name: Remove host-specific packages on Void Linux
tags: [packages]
community.general.xbps:
name: "{{ (host_remove_packages | default([])) | unique }}"
state: absent
update_cache: false
when: (host_remove_packages | default([])) | length > 0

View File

@@ -9,10 +9,23 @@
mode: "0755"
loop:
- "{{ user_home }}/.config/sway"
- "{{ user_home }}/.config/waybar"
- "{{ user_home }}/.config/kanshi"
when: "'sway' in (desktop_sessions_enabled | default([]))"
- name: Ensure Noctalia config directories exist
tags: [dotfiles, dotfiles:desktop, sway, noctalia]
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{ username }}"
group: "{{ user_group }}"
mode: "0755"
loop:
- "{{ user_home }}/.config/noctalia"
- "{{ user_home }}/.config/noctalia/plugins"
- "{{ user_home }}/.local/share/noctalia-plugins"
when: "'sway' in (desktop_sessions_enabled | default([]))"
- name: Install Sway emptty session entry
tags: [packages, services, emptty, sway]
ansible.builtin.template:
@@ -35,3 +48,18 @@
loop_control:
label: "{{ item.dest }}"
when: "'sway' in (desktop_sessions_enabled | default([]))"
- name: Render Sway shell config
tags: [dotfiles, dotfiles:desktop, sway]
ansible.builtin.template:
src: shell.conf.j2
dest: "{{ user_home }}/.config/sway/shell.conf"
owner: "{{ username }}"
group: "{{ user_group }}"
mode: "0644"
when: "'sway' in (desktop_sessions_enabled | default([]))"
- name: Manage Noctalia shell plugins
tags: [dotfiles, dotfiles:desktop, sway, noctalia]
ansible.builtin.include_tasks: noctalia.yml
when: "'sway' in (desktop_sessions_enabled | default([]))"

View File

@@ -0,0 +1,32 @@
---
- name: Bootstrap official Noctalia plugins checkout
ansible.builtin.git:
repo: https://github.com/noctalia-dev/noctalia-plugins.git
dest: "{{ user_home }}/.local/share/noctalia-plugins/official"
version: main
update: true
become_user: "{{ username }}"
environment:
HOME: "{{ user_home }}"
- name: Bootstrap Clipper plugin checkout
ansible.builtin.git:
repo: https://github.com/blackbartblues/noctalia-clipper.git
dest: "{{ user_home }}/.config/noctalia/plugins/clipper"
version: master
update: true
become_user: "{{ username }}"
environment:
HOME: "{{ user_home }}"
- name: Link official Noctalia plugins
ansible.builtin.file:
src: "{{ user_home }}/.local/share/noctalia-plugins/official/{{ item }}"
dest: "{{ user_home }}/.config/noctalia/plugins/{{ item }}"
state: link
force: true
owner: "{{ username }}"
group: "{{ user_group }}"
loop:
- polkit-agent
- screenshot

View File

@@ -0,0 +1,29 @@
set $menu qs -c noctalia-shell ipc call launcher toggle
set $audio_panel qs -c noctalia-shell ipc call volume openPanel
set $locker qs -c noctalia-shell ipc call lockScreen lock
set $powermenu qs -c noctalia-shell ipc call sessionMenu toggle
set $screenshot_full qs -c noctalia-shell ipc call plugin:screenshot takeScreenshot output
set $screenshot_region qs -c noctalia-shell ipc call plugin:screenshot takeScreenshot region
set $screenshot_window qs -c noctalia-shell ipc call plugin:screenshot takeScreenshot window
set $audio_raise qs -c noctalia-shell ipc call volume increase
set $audio_lower qs -c noctalia-shell ipc call volume decrease
set $audio_mute qs -c noctalia-shell ipc call volume muteOutput
set $audio_mic_mute qs -c noctalia-shell ipc call volume muteInput
set $brightness_up qs -c noctalia-shell ipc call brightness increase
set $brightness_down qs -c noctalia-shell ipc call brightness decrease
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE XCURSOR_THEME XCURSOR_SIZE
exec systemctl --user import-environment WAYLAND_DISPLAY DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE XCURSOR_THEME XCURSOR_SIZE
exec ~/.local/bin/update-turnstile-env
exec dex --autostart --environment sway
exec gnome-keyring-daemon --start --components=secrets
exec ~/.local/bin/setup-gtk-theme
exec pipewire
exec pipewire-pulse
exec wireplumber
exec kanshi
exec udiskie
exec wl-paste --watch cliphist store
exec qs -c noctalia-shell
bindsym $mod+c exec qs -c noctalia-shell ipc call launcher clipboard