Remove i3 desktop profile and st terminal

Elimina completamente la sessione desktop i3 (X11), ormai non più usata
(gli host espongono solo sway e Hyprland su Wayland):
- ruolo profile_desktop_i3 e voce emptty i3.desktop
- desktop_i3_packages e i guard 'i3' in desktop_sessions_enabled
- desktop_i3_dotfiles e host_i3_dotfiles (autorandr X11)
- dotfiles i3/X11: .xinitrc, i3, i3blocks, picom, polybar, autorandr
- task host-specifici i3 (copy dotfiles, wrap prime-run su nymph)
- rimuove st (terminale X11 da sorgente) da desktop_void_source_tools
- consolida lo script live in scripts/remove_i3.sh, elimina cleanup-i3.sh
- aggiorna la documentazione (README/AGENTS/CLAUDE/knowledge)

Config Emacs lasciata invariata di proposito.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Fabio Scotto di Santolo
2026-06-21 16:59:08 +02:00
parent 01840c82e0
commit ae8a6161cd
48 changed files with 21 additions and 1308 deletions

View File

@@ -52,23 +52,22 @@ Ansible-driven personal infrastructure repo for Void desktops, Linux workstation
- Use `no_log: true` for secret-bearing task inputs or outputs.
## Desktop Notes
- `profile_desktop_common` owns the shared desktop bootstrap; `profile_desktop_i3` (X11), `profile_desktop_sway` (Wayland/SwayFX), and `profile_desktop_hyprland` (Wayland) install their respective sessions in parallel and are wired into the `void` play in `ansible/site.yml`. `desktop_sessions_enabled` and `desktop_default_session` in host vars decide which sessions are exposed in `emptty` and which is preselected.
- `profile_desktop_common` owns the shared desktop bootstrap; `profile_desktop_sway` (Wayland/SwayFX) and `profile_desktop_hyprland` (Wayland) install their respective sessions in parallel and are wired into the `void` play in `ansible/site.yml`. `desktop_sessions_enabled` and `desktop_default_session` in host vars decide which sessions are exposed in `emptty` and which is preselected.
- `.emacs.d` is deployed by a dedicated `profile_desktop_common` task tagged `emacs`.
- NTFS filesystem support is provided by `ntfs-3g` in `ansible/inventory/group_vars/void.yml`.
- Void user services are managed by `turnstile` and live under `dotfiles/desktop/.config/service/`.
- `ssh-agent` keeps the stable socket `~/.local/state/ssh-agent/socket`.
- Critical session entrypoints:
- `dotfiles/desktop/.xinitrc` (i3 / X11)
- `dotfiles/desktop/.config/sway/config` plus `host.conf` and `session-env` deployed via `host_sway_dotfiles` (sway / Wayland)
- `dotfiles/desktop/.config/hypr/hyprland.conf` plus `host.conf` and `session-env` deployed via `host_hyprland_dotfiles` (Hyprland / Wayland)
- Do not auto-restart `emptty` during playbook runs on active Void desktop hosts; restart it manually from another TTY/SSH session if needed.
- `nymph` is a Void laptop with NVIDIA Optimus, running sway (Wayland) and Hyprland (Wayland); host-specific tasks in `profile_desktop_host/tasks/nymph.yml` handle GRUB NVIDIA cmdline params, `prime-run` wrapper, and the WirePlumber camera priority config. Multi-monitor on X11 is driven by `autorandr`; on sway it is driven by `kanshi` (config deployed via `host_sway_dotfiles`), and on Hyprland by host-specific Hyprland monitor/workspace rules.
- `nymph` is a Void laptop with NVIDIA Optimus, running sway (Wayland) and Hyprland (Wayland); host-specific tasks in `profile_desktop_host/tasks/nymph.yml` handle GRUB NVIDIA cmdline params, `prime-run` wrapper, and the WirePlumber camera priority config. Multi-monitor on sway is driven by `kanshi` (config deployed via `host_sway_dotfiles`), and on Hyprland by host-specific Hyprland monitor/workspace rules.
## Void Package And Dotfile Bucket Rules
The four Void desktop package lists in `ansible/inventory/group_vars/void.yml` are kept disjoint by role:
- `void_packages_base` — system runtime only (init/services, kernel, audio core, networking, filesystem, firewall, hardware daemons, runit logging).
- `desktop_common_packages` — WM-agnostic GUI infra (GTK theme, polkit, keyring, NM-applet, blueman, audio GUI, file manager backend + GVFS, portal, flatpak, printing/scanning).
- `desktop_i3_packages` / `desktop_sway_packages` / `desktop_hyprland_packages` — binaries specific to each session. Cross-WM packages used by both (`dunst`, `rofi`, `alacritty`) are intentionally duplicated in the two lists.
- `desktop_sway_packages` / `desktop_hyprland_packages` — binaries specific to each session. Cross-WM packages used by both (`dunst`, `rofi`, `alacritty`) are intentionally duplicated in the two lists.
`profile_packages` in the same file is cross-distro and is overridden by `group_vars/server.yml` and the workstation group vars; do not move desktop-specific Void entries through it.
The dotfile vars follow the same split: `desktop_common_dotfiles` (in `group_vars/desktop.yml`) carries WM-agnostic GUI config and user scripts (Thunar, mimeapps, GTK theme setup, Udiskie, fontconfig, WirePlumber, mpv, …); `desktop_void_dotfiles` (in `group_vars/void.yml`) is reserved for files that need Void runtime (turnstile services, bash runit/dbus/ssh-agent fragments, `update-turnstile-env`).

View File

@@ -55,7 +55,7 @@ Dotfiles under `dotfiles/` mirror the same layer split: `common/`, `desktop/`, `
- `void_packages_base` — system runtime (init, kernel, audio core, networking, firewall, hw daemons)
- `desktop_common_packages` — WM-agnostic GUI infra (GTK theme, polkit, keyring, portals, flatpak, printing)
- `desktop_i3_packages` / `desktop_sway_packages` — session-specific binaries; cross-WM packages used by both (`dunst`, `rofi`, `alacritty`) are intentionally duplicated
- `desktop_sway_packages` / `desktop_hyprland_packages` — session-specific binaries; cross-WM packages used by both (`dunst`, `rofi`, `alacritty`) are intentionally duplicated
- `profile_packages` — cross-distro; do not move desktop-only Void entries into it
Dotfile var split follows the same logic: `desktop_common_dotfiles` (WM-agnostic), `desktop_void_dotfiles` (Void runtime — turnstile services, bash fragments).

View File

@@ -90,7 +90,7 @@ Lo stato attuale del profilo desktop include, tra le altre cose:
- pacchetti Void Linux e servizi runit; le liste pacchetti Void desktop sono separate per criterio:
- `void_packages_base` per il runtime sistema (init, kernel, audio core, networking, firewall, hw daemons)
- `desktop_common_packages` per l'infrastruttura GUI WM-agnostic (tema, polkit, keyring, NM-applet, blueman, audio GUI, file manager backend, portal, flatpak, printing/scanning)
- `desktop_i3_packages`, `desktop_sway_packages` e `desktop_hyprland_packages` per i binari specifici di ciascuna sessione
- `desktop_sway_packages` e `desktop_hyprland_packages` per i binari specifici di ciascuna sessione
- `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`
@@ -98,7 +98,7 @@ Lo stato attuale del profilo desktop include, tra le altre cose:
- Flatpak con remoto Flathub
- GNOME Keyring e bootstrap della posta via script dedicato
- `udiskie` come backend per automount/LUKS
- `autorandr` per profili monitor X11 host-specifici (`nymph` ha profili `dual` e `solo`); sotto sway il multi-monitor è gestito da `kanshi` (config host-specifica in `host_sway_dotfiles` su `nymph`); sotto Hyprland gli override monitor vivono in `host_hyprland_dotfiles`
- multi-monitor: sotto sway è gestito da `kanshi` (config host-specifica in `host_sway_dotfiles` su `nymph`); sotto Hyprland gli override monitor vivono in `host_hyprland_dotfiles`
- override NVIDIA Optimus su `nymph`: parametri kernel GRUB iniettati in modo idempotente in `GRUB_CMDLINE_LINUX`, wrapper `prime-run` e config WirePlumber per priorità telecamera
---
@@ -247,7 +247,6 @@ I principali ruoli attualmente presenti sono:
| services_runit | gestione servizi runit |
| services_systemd | gestione servizi systemd |
| profile_desktop_common | bootstrap desktop Void condiviso |
| profile_desktop_i3 | sessione desktop i3 (X11) |
| profile_desktop_sway | sessione desktop sway / SwayFX (Wayland) |
| profile_desktop_hyprland | sessione desktop Hyprland (Wayland) |
| profile_desktop_host | override desktop specifici per host |
@@ -266,7 +265,7 @@ Il playbook `ansible/site.yml` e attualmente composto da sei blocchi:
```text
all -> dotfiles_common
void -> packages_void + services_runit + profile_desktop_common + profile_desktop_i3 + profile_desktop_sway + profile_desktop_hyprland + profile_desktop_host
void -> packages_void + services_runit + profile_desktop_common + profile_desktop_sway + profile_desktop_hyprland + profile_desktop_host
workstation_dev_fedora -> packages_fedora + services_systemd + profile_workstation_dev_common
workstation_host_linux -> profile_workstation_gnome
workstation_dev_wsl -> packages_ubuntu + services_systemd + profile_workstation_dev_common + profile_workstation_dev_wsl
@@ -349,7 +348,7 @@ ansible-playbook ansible/site.yml
Allo stato attuale questo comando:
- distribuisce i dotfiles comuni a tutti gli host
- per gli host Void applica bootstrap desktop condiviso, sessione i3 e override specifici per host
- per gli host Void applica bootstrap desktop condiviso, sessioni sway/Hyprland e override specifici per host
- per `workstation_dev_fedora` applica pacchetti Fedora, servizi systemd e profilo dev comune
- per `workstation_host_linux` applica il layer host Linux GNOME
- per `workstation_dev_wsl` applica pacchetti Ubuntu, servizi systemd, profilo dev comune e tweak WSL dedicati
@@ -409,7 +408,6 @@ Allo stato attuale `ansible/site.yml` espone questi tag:
| `dotfiles:workstation` | dotfiles dedicati alle workstation | workstation Linux, WSL |
| `emptty` | gestione display manager `emptty` | desktop Void |
| `gnome` | configurazione host GNOME | workstation host Linux, parte desktop |
| `i3` | sessione/configurazione i3 (X11) | desktop Void |
| `sway` | sessione/configurazione sway / SwayFX (Wayland) | desktop Void |
| `hyprland` | sessione/configurazione Hyprland (Wayland) | desktop Void |
| `npm` | installazione pacchetti npm globali | desktop Void, workstation Linux, WSL |
@@ -422,7 +420,7 @@ Allo stato attuale `ansible/site.yml` espone questi tag:
Esempi pratici:
```bash
ansible-playbook ansible/site.yml --limit nymph --tags dotfiles:desktop,i3 --check --diff
ansible-playbook ansible/site.yml --limit nymph --tags dotfiles:desktop,sway --check --diff
ansible-playbook ansible/site.yml --limit ikaros --tags sway,portal --check --diff
ansible-playbook ansible/site.yml --limit ikaros --tags hyprland,portal --check --diff
ansible-playbook ansible/site.yml --limit deadalus-fedora --tags packages,vscode --check --diff

View File

@@ -140,44 +140,6 @@ desktop_emacs_dotfiles:
dest: .emacs.d/
mode: preserve
desktop_i3_dotfiles:
- name: i3 config
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: picom config
src: .config/picom/picom.conf
dest: .config/picom/picom.conf
mode: "0644"
- name: polybar config
src: .config/polybar/config.ini
dest: .config/polybar/config.ini
mode: "0644"
- name: polybar launcher
src: .config/polybar/launch.sh
dest: .config/polybar/launch.sh
mode: "0755"
- name: alacritty config
src: .config/alacritty/
dest: .config/alacritty/
mode: preserve
- name: .xinitrc
src: .xinitrc
dest: .xinitrc
mode: "0644"
desktop_sway_dotfiles:
- name: alacritty config
src: .config/alacritty/

View File

@@ -3,13 +3,6 @@ void_xbps_repositories:
- name: hyprland-void
url: https://raw.githubusercontent.com/sofijacom/hyprland-void/repository-x86_64-glibc
desktop_void_source_tools:
- name: st
repo: https://codeberg.org/fscotto/st
build_cmd: make
binary_name: st
install_name: st
void_packages_base:
- 7zip
- NetworkManager
@@ -133,31 +126,6 @@ desktop_common_packages:
- xdg-user-dirs
- xfce-polkit
desktop_i3_packages:
- arandr
- autorandr
- feh
- i3
- i3blocks
- i3blocks-blocklets
- i3lock-color
- i3status
- dunst
- picom
- polybar
- rofi
- scrot
- setxkbmap
- volumeicon
- xclip
- xfce4-clipman-plugin
- xfce4-screenshooter
- xkbutils
- xorg-fonts
- xorg-minimal
- xss-lock
- xdotool
desktop_sway_packages:
- cliphist
- dunst

View File

@@ -33,10 +33,5 @@ host_sshd_allow_users:
host_authorized_ssh_keys: "{{ vault_ikaros_authorized_ssh_keys | default([]) }}"
host_i3_dotfiles:
- src: .config/autorandr/
dest: .config/autorandr/
mode: preserve
host_enabled_services:
- sshd

View File

@@ -24,14 +24,6 @@ host_packages:
host_enabled_services:
- tlp
host_i3_dotfiles:
- src: .config/autorandr/
dest: .config/autorandr/
mode: preserve
- src: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf
dest: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf
mode: "0644"
host_sway_dotfiles:
- src: .config/sway/host.conf
dest: .config/sway/host.conf

View File

@@ -115,11 +115,6 @@
else []
)
+ (desktop_common_packages | default([]))
+ (
(desktop_i3_packages | default([]))
if 'i3' in (desktop_sessions_enabled | default([]))
else []
)
+ (host_packages | default([]))
)
| difference(

View File

@@ -56,11 +56,6 @@
+ (void_packages_base | default([]))
+ (profile_packages | default([]))
+ (desktop_common_packages | default([]))
+ (
(desktop_i3_packages | default([]))
if 'i3' in (desktop_sessions_enabled | default([]))
else []
)
+ (
(desktop_sway_packages | default([]))
if 'sway' in (desktop_sessions_enabled | default([]))

View File

@@ -4,21 +4,6 @@
ansible.builtin.include_tasks: nymph.yml
when: hostname == 'nymph'
- name: Copy host-specific i3 dotfiles
tags: [dotfiles, dotfiles:desktop, dotfiles:host, i3]
ansible.builtin.copy:
src: "{{ playbook_dir }}/../dotfiles/{{ hostname }}/{{ item.src }}"
dest: "{{ user_home }}/{{ item.dest }}"
owner: "{{ username }}"
group: "{{ user_group }}"
mode: "{{ item.mode }}"
loop: "{{ host_i3_dotfiles | default([]) }}"
loop_control:
label: "{{ item.dest }}"
when:
- "'i3' in (desktop_sessions_enabled | default([]))"
- (host_i3_dotfiles | default([])) | length > 0
- name: Copy host-specific sway dotfiles
tags: [dotfiles, dotfiles:desktop, dotfiles:host, sway]
ansible.builtin.copy:

View File

@@ -53,11 +53,3 @@
group: "{{ user_group }}"
mode: "0755"
force: false
- name: Wrap alacritty with prime-run for NVIDIA PRIME offload
tags: [nvidia, dotfiles, dotfiles:desktop, dotfiles:host]
ansible.builtin.lineinfile:
path: "{{ user_home }}/.config/i3/config"
regexp: '^bindsym \$mod\+Return exec --no-startup-id /usr/bin/alacritty'
line: 'bindsym $mod+Return exec --no-startup-id ~/.local/bin/prime-run /usr/bin/alacritty'
when: "'i3' in (desktop_sessions_enabled | default([]))"

View File

@@ -1,8 +0,0 @@
[Desktop Entry]
Name=i3
Comment=improved dynamic tiling window manager
Exec=i3
TryExec=i3
Type=Application
DesktopNames=i3
Keywords=tiling;wm;windowmanager;window;manager;

View File

@@ -1,41 +0,0 @@
---
- name: Ensure i3 config directories exist
tags: [dotfiles, dotfiles:desktop, i3]
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{ username }}"
group: "{{ user_group }}"
mode: "0755"
loop:
- "{{ user_home }}/.config/alacritty"
- "{{ user_home }}/.config/dunst"
- "{{ user_home }}/.config/i3"
- "{{ user_home }}/.config/i3blocks"
- "{{ user_home }}/.config/picom"
- "{{ user_home }}/.config/polybar"
- "{{ user_home }}/.config/rofi"
when: "'i3' in (desktop_sessions_enabled | default([]))"
- name: Install allowed emptty X11 sessions
tags: [packages, services, emptty, i3]
ansible.builtin.copy:
src: i3.desktop
dest: /etc/emptty/xsessions/i3.desktop
owner: root
group: root
mode: "0644"
when: "'i3' in (desktop_sessions_enabled | default([]))"
- name: Copy i3 desktop dotfiles
tags: [dotfiles, dotfiles:desktop, i3]
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_i3_dotfiles | default([]) }}"
loop_control:
label: "{{ item.dest }}"
when: "'i3' in (desktop_sessions_enabled | default([]))"

View File

@@ -24,7 +24,6 @@
- packages_void
- services_runit
- profile_desktop_common
- profile_desktop_i3
- profile_desktop_sway
- profile_desktop_hyprland
- profile_desktop_host

View File

@@ -1,4 +1,4 @@
# Desktop
- i3 primary
- XFCE components selectively
- Wayland only: sway (SwayFX) and Hyprland
- Hyprland is the default session

View File

@@ -1,249 +0,0 @@
# i3 config for nymph
set $mod Mod4
set $refresh_i3status killall -SIGUSR1 i3status
font pango:LiterationMono Nerd Font 10
# Start XDG autostart entries (.desktop), useful on Void for pipewire/wireplumber/etc.
exec --no-startup-id dex --autostart --environment i3
exec --no-startup-id gnome-keyring-daemon --start --components=secrets
exec_always --no-startup-id setxkbmap -layout us -variant intl
exec_always --no-startup-id feh --bg-center ~/.config/i3/wallpapers/wallpaper-161664.jpg
exec_always --no-startup-id ~/.config/i3/scripts/setup-gtk-theme.sh
exec --no-startup-id /usr/libexec/xdg-desktop-portal
# Audio
exec --no-startup-id pipewire
exec --no-startup-id pipewire-pulse
exec --no-startup-id wireplumber
# Compositor
exec_always --no-startup-id picom -b
# Status bar
exec_always --no-startup-id ~/.config/polybar/launch.sh
# Monitor configuration
exec --no-startup-id autorandr --persistent --change
# Tray services
exec --no-startup-id dunst
exec --no-startup-id /usr/libexec/xfce-polkit
exec --no-startup-id nm-applet
exec --no-startup-id blueman-applet
exec --no-startup-id udiskie
exec --no-startup-id volumeicon
exec --no-startup-id xfce4-clipman
# Lock screen on suspend (handled by elogind)
exec --no-startup-id xss-lock -- ~/.config/i3/scripts/lockscreen
# General behavior
focus_follows_mouse no
mouse_warping none
floating_modifier $mod
tiling_drag modifier titlebar
# Borders
default_border pixel 2
default_floating_border pixel 2
new_window pixel 2
new_float pixel 2
hide_edge_borders none
# Gaps (i3 >= 4.22)
gaps inner 10
gaps outer 4
smart_gaps on
smart_borders on
# vim-like directions
set $left h
set $down j
set $up k
set $right l
# Terminal
bindsym $mod+Return exec --no-startup-id /usr/bin/alacritty
# Emergency terminal fallback
bindsym $mod+Shift+Return exec --no-startup-id st
# Emacs client
bindsym $mod+Shift+e exec --no-startup-id emacsclient -c -n
# Launcher
#bindsym $mod+d exec --no-startup-id "rofi -modi drun,run -show drun"
bindsym $mod+d exec --no-startup-id "rofi -show drun -theme ~/.config/rofi/config.rasi"
# Audio panel control
bindsym $mod+Shift+v exec --no-startup-id pavucontrol
# File manager
bindsym $mod+Shift+f exec thunar
# Manual lock screen
bindsym $mod+Shift+x exec ~/.config/i3/scripts/lockscreen
# Kill focused window
bindsym $mod+Shift+q kill
# Screenshot
bindsym Print exec xfce4-screenshooter
bindsym Shift+Print exec xfce4-screenshooter -r
bindsym Alt+Print exec xfce4-screenshooter -w
# Focus
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Move windows
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# Split
bindsym $mod+b split h
bindsym $mod+v split v
# Layouts
bindsym $mod+f fullscreen toggle
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Floating / focus mode
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent
# Scratchpad
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show
# Volume (PipeWire / PulseAudio compatibility)
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle
# Brightness
bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set +10% && pkill -RTMIN+5 i3blocks
bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 10%- && pkill -RTMIN+5 i3blocks
# Media keys
bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause
bindsym XF86AudioNext exec --no-startup-id playerctl next
bindsym XF86AudioPrev exec --no-startup-id playerctl previous
# Workspaces
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
workspace $ws1 output primary
workspace $ws2 output primary
workspace $ws3 output primary
workspace $ws4 output primary
workspace $ws5 output primary
workspace $ws6 output primary
workspace $ws7 output primary
workspace $ws8 output primary
workspace $ws9 output primary
workspace $ws10 output primary
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
bindsym $mod+comma workspace prev
bindsym $mod+period workspace next
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
# Reload / restart / exit
bindsym $mod+Shift+c reload
bindsym $mod+Shift+r restart
bindsym $mod+Shift+BackSpace exec --no-startup-id i3-msg exit
bindsym $mod+Shift+Escape exec --no-startup-id ~/.config/i3/scripts/powermenu.sh
# Resize mode
mode "resize" {
bindsym $left resize shrink width 10 px or 10 ppt
bindsym $down resize grow height 10 px or 10 ppt
bindsym $up resize shrink height 10 px or 10 ppt
bindsym $right resize grow width 10 px or 10 ppt
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# i3bar + i3status (disabilitato: ora gestito da polybar)
# bar {
# status_command i3blocks
# position bottom
# tray_output primary
# font pango:Liberation Mono 10
#
# colors {
# background #1f1f28
# statusline #d0d0d0
# separator #3a3a46
#
# focused_workspace #4a90d9 #4a90d9 #ffffff
# active_workspace #3a3a46 #2b2b36 #d0d0d0
# inactive_workspace #1f1f28 #1f1f28 #9a9a9a
# urgent_workspace #c7162b #c7162b #ffffff
# }
# }
client.focused #4a90d9 #4a90d9 #ffffff #4a90d9 #4a90d9
client.focused_inactive #3a3a46 #2b2b36 #eeeeee #3a3a46 #3a3a46
client.unfocused #2b2b36 #1f1f28 #bcbcbc #2b2b36 #2b2b36
client.urgent #c7162b #c7162b #ffffff #c7162b #c7162b
client.placeholder #1f1f28 #1f1f28 #bcbcbc #1f1f28 #1f1f28
client.background #1f1f28

View File

@@ -1,94 +0,0 @@
#!/usr/bin/env bash
battery_json() {
local total_now=0
local total_full=0
local overall_status=""
local now full status bat capacity icon color
shopt -s nullglob
for bat in /sys/class/power_supply/BAT*; do
[[ -d "$bat" ]] || continue
if [[ -r "$bat/energy_now" && -r "$bat/energy_full" ]]; then
now=$(<"$bat/energy_now")
full=$(<"$bat/energy_full")
elif [[ -r "$bat/charge_now" && -r "$bat/charge_full" ]]; then
now=$(<"$bat/charge_now")
full=$(<"$bat/charge_full")
else
continue
fi
status=$(<"$bat/status")
(( total_now += now ))
(( total_full += full ))
case "$status" in
Charging)
overall_status="Charging"
;;
Discharging)
[[ "$overall_status" != "Charging" ]] && overall_status="Discharging"
;;
Full)
[[ -z "$overall_status" ]] && overall_status="Full"
;;
*)
[[ -z "$overall_status" ]] && overall_status="$status"
;;
esac
done
(( total_full > 0 )) || return 1
capacity=$(( 100 * total_now / total_full ))
case "$overall_status" in
Charging) icon="⚡" ;;
Discharging) icon="🔋" ;;
Full) icon="✔" ;;
*) icon="?" ;;
esac
if (( capacity <= 15 )); then
color="#ff5555"
elif (( capacity <= 30 )); then
color="#f1fa8c"
else
color="#ffffff"
fi
printf '{"full_text":"%s %s%%","name":"battery","color":"%s"}' \
"$icon" "$capacity" "$color"
}
i3status | while IFS= read -r line; do
case "$line" in
'{"version":'* | '[')
printf '%s\n' "$line"
;;
,*)
batt="$(battery_json)"
if [[ -n "$batt" ]]; then
line="${line#,}"
printf ',[%s,%s\n' "$batt" "${line#\[}"
else
printf '%s\n' "$line"
fi
;;
\[*)
batt="$(battery_json)"
if [[ -n "$batt" ]]; then
printf '[%s,%s\n' "$batt" "${line#\[}"
else
printf '%s\n' "$line"
fi
;;
*)
printf '%s\n' "$line"
;;
esac
done

View File

@@ -1,37 +0,0 @@
#!/bin/sh
wallpaper="$HOME/.config/i3/wallpapers/maxresdefault.jpg"
cached="$HOME/.cache/i3lock/wallpaper.png"
dims_cache="$HOME/.cache/i3lock/dims.txt"
dims=$(xdotool getdisplaygeometry | tr ' ' 'x')
if [ ! -f "$cached" ] || \
[ "$(stat -c %Y "$wallpaper")" -gt "$(stat -c %Y "$cached")" ] || \
[ "$dims" != "$(cat "$dims_cache" 2>/dev/null)" ]; then
mkdir -p "$HOME/.cache/i3lock"
convert "$wallpaper" -resize "$dims^" -extent "$dims" PNG:- > "$cached"
echo -n "$dims" > "$dims_cache"
fi
i3lock \
--image "$cached" \
--clock \
--indicator \
--radius 100 \
--ring-width 8 \
--color=000000ff \
--ring-color=2f4058ff \
--inside-color=1f1f28ff \
--line-color=00000000 \
--separator-color=3a3a46ff \
--keyhl-color=6daeeaff \
--bshl-color=c7162bff \
--ringver-color=4a90d9ff \
--insidever-color=1f1f28ff \
--ringwrong-color=c7162bff \
--insidewrong-color=1f1f28ff \
--time-color=d0d0d0ff \
--date-color=9a9a9aff \
--layout-color=d0d0d0ff \
--verif-color=d0d0d0ff \
--wrong-color=d0d0d0ff

View File

@@ -1,29 +0,0 @@
#!/bin/sh
choice="$(printf "⏻ Shutdown\n Reboot\n Logout\n Lock\n⏾ Suspend" \
| rofi -dmenu \
-i \
-p "Power" \
-theme ~/.config/rofi/config.rasi \
-theme-str 'window { width: 20%; location: center; anchor: center; } listview { columns: 1; spacing: 6px; }')"
[ -z "$choice" ] && exit 0
case "$choice" in
*Lock)
~/.config/i3/scripts/lockscreen
;;
*Logout)
i3-msg exit
;;
*Suspend)
~/.config/i3/scripts/lockscreen
loginctl suspend
;;
*Reboot)
loginctl reboot
;;
*Shutdown)
loginctl poweroff
;;
esac

View File

@@ -1,53 +0,0 @@
#!/bin/sh
THEME="Yaru-blue-dark"
ICONS="Yaru-blue-dark"
CURSOR="Yaru"
FONT_UI="Liberation Sans 10"
mkdir -p "$HOME/.config/gtk-3.0"
mkdir -p "$HOME/.config/gtk-4.0"
cat > "$HOME/.gtkrc-2.0" <<EOF
gtk-theme-name="$THEME"
gtk-icon-theme-name="$ICONS"
gtk-cursor-theme-name="$CURSOR"
gtk-font-name="$FONT_UI"
gtk-button-images=1
gtk-menu-images=1
EOF
cat > "$HOME/.config/gtk-3.0/settings.ini" <<EOF
[Settings]
gtk-theme-name=$THEME
gtk-icon-theme-name=$ICONS
gtk-cursor-theme-name=$CURSOR
gtk-font-name=$FONT_UI
gtk-application-prefer-dark-theme=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
EOF
cat > "$HOME/.config/gtk-4.0/settings.ini" <<EOF
[Settings]
gtk-theme-name=$THEME
gtk-icon-theme-name=$ICONS
gtk-cursor-theme-name=$CURSOR
gtk-font-name=$FONT_UI
gtk-application-prefer-dark-theme=1
EOF
# esporta variabili utili
export GTK_THEME=$THEME
export XCURSOR_THEME=$CURSOR
export XCURSOR_SIZE=24
if command -v gsettings >/dev/null 2>&1; then
gsettings set org.gnome.desktop.interface gtk-theme "$THEME" >/dev/null 2>&1 || true
gsettings set org.gnome.desktop.interface icon-theme "$ICONS" >/dev/null 2>&1 || true
gsettings set org.gnome.desktop.interface cursor-theme "$CURSOR" >/dev/null 2>&1 || true
gsettings set org.gnome.desktop.interface color-scheme prefer-dark >/dev/null 2>&1 || true
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

View File

@@ -1,31 +0,0 @@
separator=true
separator_block_width=15
[memory]
command=~/.config/i3blocks/scripts/memory
interval=10
color=#d0d0d0
[temperature]
command=~/.config/i3blocks/scripts/temperature
interval=10
[backlight]
command=~/.config/i3blocks/scripts/backlight
interval=once
signal=5
color=#7dcfff
[essid]
command=~/.config/i3blocks/scripts/wifi
interval=10
color=#4a90d9
[battery]
command=~/.config/i3blocks/scripts/battery
interval=30
[time]
command=date '+%Y-%m-%d %H:%M'
interval=60
color=#d0d0d0

View File

@@ -1,14 +0,0 @@
#!/bin/sh
cur="$(brightnessctl g 2>/dev/null)"
max="$(brightnessctl m 2>/dev/null)"
[ -n "$cur" ] || exit 0
[ -n "$max" ] || exit 0
[ "$max" -gt 0 ] || exit 0
pct=$((100 * cur / max))
echo "BL ${pct}%"
echo "BL ${pct}%"
echo "#6daeea"

View File

@@ -1,47 +0,0 @@
#!/bin/sh
total_now=0
total_full=0
status=""
for bat in /sys/class/power_supply/BAT*; do
[ -d "$bat" ] || continue
if [ -r "$bat/energy_now" ] && [ -r "$bat/energy_full" ]; then
now=$(cat "$bat/energy_now")
full=$(cat "$bat/energy_full")
elif [ -r "$bat/charge_now" ] && [ -r "$bat/charge_full" ]; then
now=$(cat "$bat/charge_now")
full=$(cat "$bat/charge_full")
else
continue
fi
st=$(cat "$bat/status" 2>/dev/null)
total_now=$((total_now + now))
total_full=$((total_full + full))
case "$st" in
Charging) status="⚡" ;;
Discharging) [ -z "$status" ] && status="🔋" ;;
Full) [ -z "$status" ] && status="✔" ;;
esac
done
[ "$total_full" -gt 0 ] || exit 0
pct=$((100 * total_now / total_full))
[ -n "$status" ] || status="BAT"
text="$status $pct%"
if [ "$pct" -le 15 ]; then
color="#ff5555"
elif [ "$pct" -le 30 ]; then
color="#f1fa8c"
else
color="#9ece6a"
fi
printf '%s\n%s\n%s\n' "$text" "$text" "$color"

View File

@@ -1,17 +0,0 @@
#!/bin/sh
state="$(xset q 2>/dev/null)"
caps="$(printf '%s\n' "$state" | grep 'Caps Lock:' | awk '{print $4}')"
num="$(printf '%s\n' "$state" | grep 'Num Lock:' | awk '{print $8}')"
out=""
[ "$caps" = "on" ] && out="${out} CAPS"
[ "$num" = "on" ] && out="${out} NUM"
[ -n "$out" ] || exit 0
echo "$out"
echo "$out"
echo "#9a9a9a"

View File

@@ -1,19 +0,0 @@
#!/bin/sh
mem=$(free | awk '/^Mem:/ {print $3/$2 * 100.0}')
mem=${mem%.*}
if [ "$mem" -ge 90 ]; then
color="#c7162b"
elif [ "$mem" -ge 70 ]; then
color="#e95420"
else
color="#d0d0d0"
fi
used=$(free -h | awk '/^Mem:/ {print $3}')
total=$(free -h | awk '/^Mem:/ {print $2}')
echo "RAM $used/$total"
echo "RAM $used/$total"
echo "$color"

View File

@@ -1,18 +0,0 @@
#!/bin/sh
t=$(cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null)
[ -n "$t" ] || exit 0
temp=$((t / 1000))
if [ "$temp" -ge 85 ]; then
color="#c7162b"
elif [ "$temp" -ge 70 ]; then
color="#e95420"
else
color="#d0d0d0"
fi
echo "CPU ${temp}°C"
echo "CPU ${temp}°C"
echo "$color"

View File

@@ -1,16 +0,0 @@
#!/bin/sh
mute=$(pactl get-sink-mute @DEFAULT_SINK@ 2>/dev/null | awk '{print $2}')
vol=$(pactl get-sink-volume @DEFAULT_SINK@ 2>/dev/null | awk '/Volume:/ {print $5; exit}')
[ -n "$vol" ] || exit 0
if [ "$mute" = "yes" ]; then
text="VOL mute"
color="#7aa2f7"
else
text="VOL $vol"
color="#c0caf5"
fi
printf '%s\n%s\n%s\n' "$text" "$text" "$color"

View File

@@ -1,9 +0,0 @@
#!/bin/sh
ssid=$(nmcli -t -f active,ssid dev wifi | awk -F: '$1=="yes"{print $2}')
[ -n "$ssid" ] || exit 0
echo "WIFI $ssid"
echo "WIFI $ssid"
echo "#4a90d9"

View File

@@ -1,57 +0,0 @@
backend = "glx";
vsync = true;
use-damage = true;
detect-rounded-corners = true;
detect-client-opacity = true;
detect-transient = true;
corner-radius = 10;
rounded-corners-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'",
"class_g = 'i3-frame'"
];
shadow = true;
shadow-radius = 18;
shadow-opacity = 0.55;
shadow-offset-x = -10;
shadow-offset-y = -10;
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"_GTK_FRAME_EXTENTS@:c",
"window_type = 'dock'",
"window_type = 'desktop'"
];
fading = true;
fade-in-step = 0.05;
fade-out-step = 0.05;
fade-delta = 6;
blur-method = "dual_kawase";
blur-strength = 5;
blur-background = true;
blur-background-frame = true;
blur-background-fixed = false;
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'",
"class_g = 'i3-frame'",
"class_g = 'Dunst'",
"_GTK_FRAME_EXTENTS@:c"
];
opacity-rule = [];
wintypes:
{
tooltip = { fade = true; shadow = true; opacity = 0.95; focus = true; };
dock = { shadow = false; };
dnd = { shadow = false; };
popup_menu = { opacity = 0.95; };
dropdown_menu = { opacity = 0.95; };
};

View File

@@ -1,208 +0,0 @@
[colors]
background = #1f1f28
background-alt = #2b2b36
foreground = #d0d0d0
foreground-alt = #9a9a9a
primary = #4a90d9
secondary = #7dcfff
warm = #e0af68
success = #9ec07c
info = #bb9af7
alert = #c7162b
disabled = #3a3a46
[bar/main]
monitor = ${env:MONITOR:}
bottom = false
width = 100%
height = 24pt
radius = 0
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 2pt
border-size = 0
padding-left = 1
padding-right = 1
module-margin = 1
font-0 = LiterationMono Nerd Font:size=10;2
font-1 = Symbols Nerd Font Mono:size=12;2
modules-left = i3
modules-center = date
modules-right = cpu memory disk temperature backlight wifi battery
tray-position = right
tray-padding = 2
cursor-click = pointer
wm-restack = i3
override-redirect = false
[module/i3]
type = internal/i3
pin-workspaces = false
show-urgent = true
strip-wsnumbers = true
enable-scroll = false
index-sort = true
ws-icon-0 = 1;I
ws-icon-1 = 2;II
ws-icon-2 = 3;III
ws-icon-3 = 4;IV
ws-icon-4 = 5;V
ws-icon-5 = 6;VI
ws-icon-6 = 7;VII
ws-icon-7 = 8;VIII
ws-icon-8 = 9;IX
ws-icon-9 = 10;X
ws-icon-default =
label-focused = %icon%
label-focused-foreground = #ffffff
label-focused-background = ${colors.primary}
label-focused-padding = 1
label-unfocused = %icon%
label-unfocused-foreground = ${colors.foreground-alt}
label-unfocused-padding = 1
label-visible = %icon%
label-visible-foreground = ${colors.foreground}
label-visible-background = ${colors.background-alt}
label-visible-padding = 1
label-urgent = %icon%
label-urgent-foreground = #ffffff
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
[module/date]
type = internal/date
interval = 60
date = %Y-%m-%d
time = %H:%M
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
label = %date% %time%
label-foreground = ${colors.foreground}
[module/memory]
type = internal/memory
interval = 10
format = <label>
format-prefix = " "
format-prefix-foreground = ${colors.secondary}
label = %gb_used% / %gb_total%
label-foreground = ${colors.secondary}
[module/temperature]
type = internal/temperature
interval = 10
thermal-zone = 0
warn-temperature = 80
format = <label>
format-prefix = " "
format-prefix-foreground = ${colors.warm}
format-warn = <label-warn>
format-warn-prefix = " "
format-warn-prefix-foreground = ${colors.alert}
label = %temperature-c%
label-foreground = ${colors.warm}
label-warn = %temperature-c%
label-warn-foreground = ${colors.alert}
[module/backlight]
type = internal/backlight
card = intel_backlight
use-actual-brightness = true
enable-scroll = true
format = <label>
format-prefix = " "
format-prefix-foreground = ${colors.foreground}
label = %percentage%%
label-foreground = ${colors.foreground}
[module/wifi]
type = internal/network
interface-type = wireless
interval = 5
format-connected = <label-connected>
format-connected-prefix = " "
format-connected-prefix-foreground = ${colors.primary}
format-disconnected = <label-disconnected>
format-disconnected-prefix = " "
format-disconnected-prefix-foreground = ${colors.disabled}
label-connected = %essid% %signal%%
label-connected-foreground = ${colors.primary}
label-disconnected = offline
label-disconnected-foreground = ${colors.disabled}
[module/battery]
type = internal/battery
battery = BAT0
adapter = AC
full-at = 98
low-at = 15
format-charging = <animation-charging> <label-charging>
format-discharging = <ramp-capacity> <label-discharging>
format-full = <label-full>
format-low = <label-low>
format-full-prefix = " "
format-full-prefix-foreground = ${colors.success}
label-charging = %percentage%%
label-charging-foreground = ${colors.success}
label-discharging = %percentage%%
label-discharging-foreground = ${colors.foreground}
label-full = full
label-full-foreground = ${colors.success}
label-low = %percentage%%
label-low-foreground = ${colors.alert}
ramp-capacity-0 =
ramp-capacity-1 =
ramp-capacity-2 =
ramp-capacity-3 =
ramp-capacity-4 =
ramp-capacity-foreground = ${colors.foreground}
animation-charging-0 =
animation-charging-1 =
animation-charging-2 =
animation-charging-3 =
animation-charging-4 =
animation-charging-foreground = ${colors.success}
animation-charging-framerate = 750
[module/cpu]
type = internal/cpu
interval = 5
format = <label>
format-prefix = " "
format-prefix-foreground = ${colors.info}
label = %percentage%%
label-foreground = ${colors.info}
[module/disk]
type = internal/fs
mount-0 = /
interval = 60
format-mounted = <label-mounted>
format-mounted-prefix = " "
format-mounted-prefix-foreground = ${colors.success}
label-mounted = %used% / %total%
label-mounted-foreground = ${colors.success}
format-unmounted = <label-unmounted>
format-unmounted-prefix = " "
format-unmounted-prefix-foreground = ${colors.disabled}
label-unmounted = %mountpoint% n/a
label-unmounted-foreground = ${colors.disabled}
[settings]
screenchange-reload = true
pseudo-transparency = false

View File

@@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Restart polybar on each connected monitor.
polybar-msg cmd quit >/dev/null 2>&1 || true
while pgrep -u "$UID" -x polybar >/dev/null; do
sleep 0.1
done
if command -v xrandr >/dev/null 2>&1; then
monitors=$(xrandr --query | awk '/ connected/ {print $1}')
fi
if [ -n "${monitors:-}" ]; then
for m in $monitors; do
MONITOR="$m" polybar main >/dev/null 2>&1 &
done
else
polybar main >/dev/null 2>&1 &
fi

View File

@@ -1,21 +0,0 @@
#!/bin/sh
[ $# -gt 0 ] || set -- i3
[ -r /etc/profile ] && . /etc/profile
[ -r "$HOME/.profile" ] && . "$HOME/.profile"
session_name=${1##*/}
export XDG_CURRENT_DESKTOP="$session_name"
export XDG_SESSION_DESKTOP="$session_name"
export XDG_SESSION_TYPE=x11
export SSH_AUTH_SOCK="$HOME/.local/state/ssh-agent/socket"
exec dbus-run-session sh -eu -c '
umask 077
printf "%s\n" "$DBUS_SESSION_BUS_ADDRESS" > "$HOME/.dbus-session-bus-address"
gpgconf --launch gpg-agent
"$HOME/.local/bin/update-turnstile-env"
exec "$@"
' sh "$@"

View File

@@ -1,28 +0,0 @@
output HDMI-A-0
off
output DisplayPort-0
off
output DisplayPort-1
off
output DisplayPort-2
off
output DisplayPort-3
off
output DisplayPort-4
off
output DisplayPort-5
off
output HDMI-A-1
crtc 0
mode 3440x1440
pos 0x0
primary
rate 99.99
x-prop-colorspace Default
x-prop-max_bpc 16
x-prop-non_desktop 0
x-prop-scaling_mode None
x-prop-tearfree auto
x-prop-underscan off
x-prop-underscan_hborder 0
x-prop-underscan_vborder 0

View File

@@ -1 +0,0 @@
HDMI-A-1 00ffffffffffff0061a9443400000000101e0103805021782a64f5ad5049a322135054adcf00714f81c0814081809500a9c0b300d1c0216870a0d0a02950302035001d4e3100001a000000fd0030791eaa3c000a202020202020000000fc004d69204d6f6e69746f720a2020000000ffd03030303030303030303030303001ae020335f14c010203040590111213141f3f23090707830100006a030c001000383c20000067d85dc40178c003681a000001013079ed40d070a0d0a02950584045001d4e3100001ea348b86861a03250304035001d4e3100001ef57c70a0d0a02950302035001d4e3100001a565e00a0a0a02950302035001d4d3100001a000038

View File

@@ -1,27 +0,0 @@
output HDMI-1
off
output DP-2
off
output HDMI-2
off
output eDP-1
crtc 0
mode 1920x1080
pos 0x0
rate 60.01
x-prop-broadcast_rgb Automatic
x-prop-colorspace Default
x-prop-max_bpc 12
x-prop-non_desktop 0
x-prop-scaling_mode Full aspect
output DP-1
crtc 1
mode 3440x1440
pos 1920x0
primary
rate 100.00
x-prop-audio auto
x-prop-broadcast_rgb Automatic
x-prop-colorspace Default
x-prop-max_bpc 12
x-prop-non_desktop 0

View File

@@ -1,2 +0,0 @@
DP-1 00ffffffffffff0061a9443400000000101e0104b55021783b64f5ad5049a322135054adcf00714f81c0814081809500a9c0b300d1c0226870a0d0a02950302035001d4e3100001a20fd70a0d0a03c50302035001d4e3100001e000000fd003090a0a03c010a202020202020000000fc004d69204d6f6e69746f720a202002ac020320f44c010203040590111213141f3f2309070783010000e6060701605d29023a801871382d40582c96001d4e3100001e20ac00a0a0382d40302035001d4e3100001ef0d270a0d0a03c50302035001d4e3100001ea348b86861a03250304035001d4e3100001ef57c70a0d0a02950302035001d4e3100001e00000000006b7012790000030014bf2f01046f0d9f002f001f009f053b000280040007000a0881000804000402100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e190
eDP-1 00ffffffffffff0006af3d1000000000001a0104951f117802c32592575a942a22505400000001010101010101010101010101010101143780b2703828403064310035ad100000180000000f0000000000000000000000000020000000fe0041554f0a202020202020202020000000fe004231343048414b30312e30200a00bd

View File

@@ -1,19 +0,0 @@
output DP-1
off
output HDMI-1
off
output DP-2
off
output HDMI-2
off
output eDP-1
crtc 0
mode 1920x1080
pos 0x0
primary
rate 60.01
x-prop-broadcast_rgb Automatic
x-prop-colorspace Default
x-prop-max_bpc 12
x-prop-non_desktop 0
x-prop-scaling_mode Full aspect

View File

@@ -1 +0,0 @@
eDP-1 00ffffffffffff0006af3d1000000000001a0104951f117802c32592575a942a22505400000001010101010101010101010101010101143780b2703828403064310035ad100000180000000f0000000000000000000000000020000000fe0041554f0a202020202020202020000000fe004231343048414b30312e30200a00bd

View File

@@ -1,103 +0,0 @@
#!/usr/bin/env sh
# Remove i3 session artifacts: exclusive packages, dotfiles and the emptty
# xsessions entry. Shared resources with sway (dunst, rofi, alacritty,
# xfce4-screenshooter) are left untouched.
set -eu
I3_PACKAGES="
arandr
autorandr
feh
i3
i3blocks
i3blocks-blocklets
i3lock-color
i3status
picom
polybar
scrot
setxkbmap
volumeicon
xclip
xfce4-clipman-plugin
xkbutils
xorg-fonts
xorg-minimal
xss-lock
xdotool
"
I3_DOTFILES="
$HOME/.config/i3
$HOME/.config/i3blocks
$HOME/.config/picom
$HOME/.config/polybar
$HOME/.xinitrc
"
EMPTTY_SESSION=/etc/emptty/xsessions/i3.desktop
confirm() {
printf '%s [y/N] ' "$1"
read -r answer
case "$answer" in
y|Y|yes|YES) return 0 ;;
*) return 1 ;;
esac
}
filter_installed() {
for p in $1; do
if xbps-query -p pkgver "$p" >/dev/null 2>&1; then
printf '%s\n' "$p"
fi
done
}
if ! command -v xbps-remove >/dev/null 2>&1; then
printf 'Error: xbps-remove not found (not a Void host?)\n' >&2
exit 1
fi
installed=$(filter_installed "$I3_PACKAGES" | tr '\n' ' ' | sed 's/ *$//')
printf '== i3 cleanup ==\n\n'
printf 'Packages to remove (installed only):\n'
if [ -n "$installed" ]; then
printf ' %s\n' $installed
else
printf ' (none)\n'
fi
printf '\nDotfiles to remove:\n'
for d in $I3_DOTFILES; do
if [ -e "$d" ] || [ -L "$d" ]; then
printf ' %s\n' "$d"
fi
done
printf '\nEmptty session entry:\n'
if [ -e "$EMPTTY_SESSION" ]; then
printf ' %s\n' "$EMPTTY_SESSION"
else
printf ' (absent)\n'
fi
printf '\nShared (NOT removed): dunst, rofi, alacritty, xfce4-screenshooter and their configs.\n\n'
confirm 'Proceed?' || { printf 'Aborted.\n'; exit 0; }
if [ -n "$installed" ]; then
# shellcheck disable=SC2086
sudo xbps-remove -Ry $installed
fi
for d in $I3_DOTFILES; do
if [ -e "$d" ] || [ -L "$d" ]; then
rm -rf -- "$d"
fi
done
if [ -e "$EMPTTY_SESSION" ]; then
sudo rm -f -- "$EMPTTY_SESSION"
fi
printf '\nDone.\n'

View File

@@ -1,11 +1,13 @@
#!/bin/sh
# Rimuove i3 e relativi dotfiles dall'host corrente.
# Eseguire dopo aver verificato che sway funzioni correttamente.
# Rimuove i3 (sessione X11) e relativi artefatti dall'host Void corrente:
# pacchetti i3-only, dotfiles, voce emptty e profili autorandr host-specifici.
# Eseguire dopo aver verificato che sway/Hyprland funzionino correttamente.
# I pacchetti condivisi con sway/Hyprland (dunst, rofi, alacritty) NON vengono rimossi.
set -e
HOSTNAME=$(hostname)
# Pacchetti i3-only (dunst e rofi sono condivisi con sway, non rimossi)
# Pacchetti i3-only (X11). dunst/rofi/alacritty sono condivisi e non vengono rimossi.
sudo xbps-remove -R arandr autorandr feh i3 i3blocks i3blocks-blocklets \
i3lock-color i3status picom polybar scrot setxkbmap volumeicon xclip \
xfce4-clipman-plugin xfce4-screenshooter xkbutils xorg-fonts xorg-minimal \
@@ -14,15 +16,15 @@ sudo xbps-remove -R arandr autorandr feh i3 i3blocks i3blocks-blocklets \
# Dotfiles i3-only
rm -rf ~/.config/i3 ~/.config/i3blocks
rm -f ~/.config/picom/picom.conf
rmdir --ignore-fail-on-non-empty ~/.config/picom
rmdir --ignore-fail-on-non-empty ~/.config/picom 2>/dev/null || true
rm -f ~/.config/polybar/config.ini ~/.config/polybar/launch.sh
rmdir --ignore-fail-on-non-empty ~/.config/polybar
rmdir --ignore-fail-on-non-empty ~/.config/polybar 2>/dev/null || true
rm -f ~/.xinitrc
# Session file emptty
# Session file emptty (X11)
sudo rm -f /etc/emptty/xsessions/i3.desktop
# Dotfiles host-specifici
# Dotfiles host-specifici (autorandr = multi-monitor X11)
case "$HOSTNAME" in
ikaros|nymph)
rm -rf ~/.config/autorandr