Sway (Italiano)
sway è un compositor per Wayland concepito per essere completamente compatibile con i3. Secondo il sito ufficiale:
- Sway è un compositor per Wayland di tipo tiling ed un perfetto sostituto di i3 per X11. Funziona con la tua configurazione esistente di i3 e supporta tutte le funzionalità di i3 più qualche extra.
Installazione
sway può essere installato con il pacchetto sway . La versione di sviluppo può essere installata tramite wlroots-gitAUR e sway-gitAUR. E' consigliabile di aggiornare wlroots quando aggiorni sway, a causa della loro stretta interdipendenza.
E' consigliabile anche installare swaylock e swayidle per bloccare lo schermo e gestire l'inattività.
Il launcher per le applicazioni predefinito è dmenu ed il terminale predefinito è alacritty. Prima di avviare sway è consigliato installarli o configurare un nuovo launcher e terminale nella configurazione.
Avvio
Manuale
Per avviare Sway, digita semplicemente sway
nella tua console Linux.
Automaticamente al TTY login
Proprio come X, Sway può essere avviato aggiungendolo al tuo file di inizializzazione della shell (visita Command-line shell#Login shell)
if [ -z $DISPLAY ] && [ "$(tty)" == "/dev/tty1" ]; then exec sway fi
Per più informazioni visita Xinit#Autostart X at login
Da un display manager
La sessione sway si trova in /usr/share/wayland-sessions/sway.desktop
. E' riconosciuta automaticamente dai moderni display manager come It is automatically recognized by modern display managers like GDM and SDDM.
E' anche possibile configurare sway come un servizio utente systemd tramite il display manager.
Alternativamente puoi anche configurare un display manager testuale, visita Display manager (Italiano)#Testuali.
Configurazione
Se utilizzi già i3 puoi copiare il tuo file di configurazione in ~/.config/sway/config
e dovrebbe funzionare senza nessuna modifica aggiuntiva. Alternativamente, puoi copiare il file di configurazione di esempio da /etc/sway/config
in ~/.config/sway/config
. Consulta sway(5) per più informazioni sulla configurazione.
Mappatura tastiera
Sway si avvia con la mappatura predefinita US QWERTY. Per configurare l'input:
~/.config/sway/config
input * { xkb_layout "us,de,ru" xkb_variant "colemak,,typewriter" xkb_options "grp:win_space_toggle" } input <identifier> xkb_model "pc101"
Più dettagli disponibili in xkeyboard-config(7) e sway-input(5).
La mappatura tastiera può essere configurata anche attraverso le variabili d'ambiente (XKB_DEFAULT_LAYOUT
, XKB_DEFAULT_VARIANT
, etc.) quando si avvia sway sway
. Il file di configurazione ha la precedenza sulle variabili d'ambiente.
Ritardo della digitazione e velocità
Per cambiare il ritardo della digitazione digitazione e velocità, aggiungi le seguenti righe nella sezione input
:
~/.config/sway/config
input <identifier> repeat_delay 300 input <identifier> repeat_rate 30
Barra di stato
sway contiene la barra di stato swaybar che gira in un ambiente Wayland puro. swaybar può invocare script shell o altri programmi per mostrare le informazioni nella barra di stato. Consulta sway-bar(5) e swaybar-protocol(7) per dettagli.
Installare i3status è un'opzione per avare una barra pratica predefinita sotto Wayland. Tutto ciò che devi fare è aggiungere le seguenti righe alla fine del tuo file di configurazione sway:
~/.config/sway/config
bar { status_command i3status }
Se vuoi abilitare l'output colorato per i3status, è necessario aggiustare le seguenti parti nella configurazione di i3status:
~/.config/i3status/config
general { colors = true interval = 5 }
Sfondo
Lo sfondo il sway è gestito da un programma dedicato distribuito separatamente come swaybg. E' necessario per avviare il comando output.
La seguente riga, che può essere aggiunta alla fine del tuo file di configurazione sway, imposta un'immagine di sfondo su tutti i display
The following line, which can be appended at the end of your sway configuration, sets a background image on all displays (output individua tutti i display tramite "*"
):
~/.config/sway/config
output "*" bg /path/to/image fill
Il nome del file e il percorso deve essere adattato a seconda della posizione del file immagine.
I colori a tinta unita possono essere impostati tramite:
output * bg #000000 solid_color
Puoi usare azoteAUR come internafaccia GTK3 per swaybg.
Dispositivi di input
E' possibile configurare separatamente i dispositivi di input. per Esempio per abilitare il tap-to-click e lo scorrimento naturale per tutti i touchpad:
~/.config/sway/config
input type:touchpad { tap enabled natural_scroll enabled }
Per configurare invece un determinato touchpad, usa swaymsg -t get_inputs
per ottenere l'identificatore e usalo invece di type:touchpad
.
swaymsg -t get_inputs
potrebbe contenere escape symbols come "\" (e.g. "2:14:ETPS\/2_Elantech_Touchpad"
). Questi devono essere rimossi.Più documentazione e opzioni come i profili di accelerazione possono essere trovati in sway-input(5).
HiDPI
Per impostare la tua scala di fattori per il display usa ai comando output
nel file di configurazione. La scala di fattori può essere frazionale, ma solitamente corrisponde a 2 negli schermi HiDPI.
~/.config/sway/config
output <name> scale <factor>
Puoi scoprire il nome del display attraverso il seguente comando:
$ swaymsg -t get_outputs
Scorciatoie personalizzate
Gli Special keys della tua tastiera possono essere usati per eseguire comandi, per esempio per controllare il volume, la luminosità dello schermo o i player multimediali:
~/.config/sway/config
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle bindsym XF86MonBrightnessDown exec brightnessctl set 5%- bindsym XF86MonBrightnessUp exec brightnessctl set +5% bindsym XF86AudioPlay exec playerctl play-pause bindsym XF86AudioNext exec playerctl next bindsym XF86AudioPrev exec playerctl previous bindsym XF86Search exec bemenu-run
Consulta PulseAudio#Keyboard volume control, Advanced Linux Sound Architecture#Keyboard volume control, Backlight#Backlight utilities e MPRIS per ulteriori dettagli e strumenti alternativi.
Per permettere ad una scorciatoia di funzionare a schermo bloccato aggiungi il parametro --locked
a bindsym.
bindsym --locked XF86AudioPlay exec playerctl play-pause
Barre di indicazione grafiche
Può essere utile mostrare alcune impostazioni come luminosità e volume attraverso una barra grafica quando vengono modificate. Una buona opzione per avere questa funzionalità in Sway è wobAUR (alternativamente wob-gitAUR), che fornisce parte delle funzionalità del famoso strumento per X xobAUR ma con implementazione nativa Wayland. Consulta il sito del progetto per esempi d'utilizzo.
Inattività
Sway ha un demone di gestione dell'inattività dedicato chiamato chiamato swayidle. Ci sono differenti modi di avviarlo e configurare il demone. Il più semplice è usare il file di configurazione di sway stasso. swayidle accetta una moltitudine di argomenti per gestire gli eventi come timeout
(inattività), resume
(ripresa),before-sleep
etc. Consulta swayidle(1) per maggiori dettagli e ulteriori spiegazioni sugli eventi. Ad ogni evento può essere associata un'azione. Per assegnare più azioni ad un evento semplicemente duplica l'evento.
Con il seguente swayidle
blocca lo schermo dopo 30 minuti e lo spegne 5 secondi dopo:
~/.config/sway/config
exec swayidle -w \ timeout 1800 'swaylock' \ timeout 1805 'swaymsg "output * dpms off"' \ resume 'swaymsg "output * dpms on"'
Per spegnere un schermo bloccato molto prima, per esempio dopo 10 secondi, esegui grep sulla lista dei processi dal gestore d'inattività ed esegui swaymsg "output * dpms off"
come
timeout 10 'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi'
Per mettere in pausa i file multimediali in riproduzione, aggiungi le seguenti istruzioni al comando swayidle:
before-sleep 'playerctl pause' before-sleep 'swaylock'
Finestre fluttuanti
Per abilitare le finestre fluttuanti o le assegnazioni di finestre, apri l'applicazione e poi usa gli attributi app_id
, class
, instance
e title
per abilitare le finestre fluttuanti/assegnazioni di finestre. Il seguente comando elencherà le proprietà di tutte le finestre aperte:
$ swaymsg -t get_tree
Per ottenere solo l' app_id
di tutte le finestre aperte usare:
$ swaymsg -t get_tree | grep "app_id"
Per ottenere l' app_id
della finestra focalizzata usare:
$ swaymsg -t get_tree | grep "app_id": $ swaymsg -t get_tree | jq -r '..|try select(.focused == true)'
Se l' app_id
è nullo per alcune finestre, potresti dover usare gli attributi class
e/o instance
per abilitare le assegnazioni della modalità per la finestra fluttuante. Puoi cercare nell'output e creare regole per le tue finestre.
~/.config/sway/config
for_window [app_id="galculator"] floating enable assign [class="firefox"] -> 3 assign [class="^Urxvt$" instance="^htop$"] -> 9
Questo è simile all'uso di xorg-xprop per trovare gli attributi class
o wm_name
in X11.
Clipboard
Per impostazione predefinita, la clipboard viene svuotata ogni volta che una finestra viene chiusa. Questo può essere un comportamento predefinito sorprendente.
Un "clipboard manager" deve essere installato per rendere il contenuto degli appunti condiviso tra le finestre.
Un esempio di gestore degli appunti, progettato per Wayland, è clipman, che può essere installato da clipmanAUR o clipman-gitAUR.
Per avviare clipman con Sway, aggiungete la seguente linea al vostro file di configurazione:
~/.config/sway/config
exec wl-paste -t text --watch clipman store
Xresources
Copia ~/.Xresources
in ~/.Xdefaults
per usarle in Sway.
XWayland
Vedere Wayland#XWayland per i dettagli ed una panoramica dei pacchetti disponibili.
L'uso di XWayland è abilitato di default.
Se vuoi disabilitare completamente XWayland ed eseguire una sessione Wayland "pura" imposta la seguente chiave di configurazione per disattivare l'uso di XWayland:
~/.config/sway/config
xwayland disable
Trucchi e consigli
Abilita CapsLock/NumLock
Abilitate il capslock e/o il numlock aggiungendo le seguenti linee alla vostra configurazione di sway
~/.config/sway/config
input * xkb_capslock enable input * xkb_numlock enable
Layout attuale della tastiera
Il layout corrente della tastiera può essere recuperato come segue, dove kbd_identifier
deve essere sostituito con l'identificatore della tua tastiera:
$ swaymsg -t get_inputs | jq -r '.[] | select(.identifier == "kbd_identifier") | .xkb_active_layout_name'