Accueil > Linux > Nouvelle interface graphique : Sway

Nouvelle interface graphique : Sway

vendredi 28 mai 2021, par Rémi

[Mise à jours : 07/06/2021]
→ Conky se lance automatiquement au démarrage desession sway mais au bout de 15/20 minutes, il s’arrète sans crier gare, ni trace dans les logs. Je n’ai pas encore compris pourquoi.
→ J’ai viré foot, et remplacé par terminator

apt purge foot
apt install terminator

puis modifier dans le fichier de configuration de sway, la ligne
set $term foot
par
set $term terminator
Par contre, la configuration est étrange : on peut ouvrir la boite de dialogue de configuration mais pas la fermer ! Il faut tuer Terminator et l’ouvrir à nouveau pour voir les changements demandés !
[fin des mises à jours]

Avec le nouveau serveur (cf. article nouveau serveur (matériel) et Nouveau serveur (logiciels)), j’ai voulu viré le serveur X, mais garder au moins un tty avec une interface graphique, sans trop de fioritures. Pour être plus pratique en cas de recherche sur le net. Mais sans X, pas facile. Alors j’ai regardé du côté de Wayland, et j’ai installé Sway. La configuration n’a pas été facile.

En premier, il faut copier les fichiers de config de /etc/sway/ vers $HOME/.config/sway/ (Je placerai mon fichier de config quand il sera finalisé)
Ensuite, les modifications se font dans notre .config/sway/sway.conf. (à la limite, une copie de celui ci par sécurité)

La config pour que qu’il démarre dès la connexion, est très simple. Pas de gestionnaire de connexion : on se connecte sur un tty, et Sway est exécuté. Je configure qu’un seul tty (le second) avec Sway. Là, j’ai suivi la doc : modifier le .profile (je l’ai créé) et mis dedans :

vi ~/.bash_profile
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty2 ]]; then
   exec sway
fi

Premier constat à la connexion, Sway, est très rapide, mais ce n’est pas très user friendly. Il n’y a pas de barre d’applications, pas d’information, tout repose sur les raccourcis claviers.
Dans le fichier de configuration, il faut définir une touche "de base" qui permettra d’avoir des raccourcies claviers personnalisé. Par exemple, il est écrit : "Use Mod1 for Alt". Ok, c’est utile, mais si j’ai une application qui utilise la touche Alt, c’est ballot, je vais être constamment perturbé. Il faudrait une touche qui ne sert à rien... "Win" par exemple => "Mod5" dans la terminologie Sway et le tour est joué :

# Logo key. Use Mod1 for Alt.
set $mod Mod5

Bon, tout ça, c’est très bien, mais les miens n’ont pas l’air de fonctionner comme il faut... Ahhh ! Mais je n’ai pas le clavier en français. Pour que ça fonctionne, il faut ajouter la configuration du clavier dans le fichier de config :

 
# config clavier français
#
input type:keyboard {
    xkb_layout "fr"
}

J’ai cherché quelque temps aussi pourquoi le clavier numérique n’était pas actif. J’ai ajouté ces deux lignes dans le fichier de config :
pour les majuscules : input * xkb_capslock enable
pour le pavé numérique : input * xkb_numlock enable

Il faut aussi améliorer le reste de l’interface/gestionnaire graphique. A y réfléchir, cela me fait penser à mon défi de faire tourner Debian sur un ssd de 8go ( Conky ) avec une interface graphique, en paramétrant tout à la main !
Les autres logiciels installés :

  • slurp <- pas de paramétrage particulier
  • grim <- pas de paramétrage particulier
  • rofi <- cf. .config/rofi/config voir plus loin

Pour les utiliser, je place les lignes suivantes dans le fichier /.config/sway/config

# copie d'écran
bindsym Print exec grim $HOME/Images/caputre-ecran-$(date +%Y-%m-%d_%H-%m-%s).png
#copie d’écran avec région sélectionnée
bindsym $mod+Print exec grim -g "$(slurp)" $HOME/Images/caputre-ecran-$(date +%Y-%m-%d_%H-%m-%s).png

Pour les copier/coller : sous linux, le surlignage puis ’Shift +insert’ fonctionne, comme d’habitude, mais il n’y a pas d’historique de presse papier, et d’autres soucis. J’ai installé :

  • Clipman

et paramétrer dans le fichier config de Sway :

exec wl-paste -t text --watch clipman store --max-items=60 --histpath="~/.config/clipman/clipman.json"
bindsym $mod+y exec clipman pick --tool="wofi" --max-items=30 --

Pour rofi, il faut commencer par demander à Sway de l’utiliser :

set $menu 'rofi -modi run, drun, window -show drun'

Puis configurer rofi.

Conky et Firefox fonctionne mais il m’a fallu installer xwayland (ce n’est pas toute la suite xserver-xorg, heureusement)

Chose amusante(!) Conky prend toute la surface de l’écran quand il est exécuté seul. Comme toute application d’ailleurs, par défaut. Même avec les limites de dimensions dans son fichier de conf, cela donne un drôle d’affichage. Peut-être que ceci va aider :

for_window [class="Conky"] floating enable

ScreenLock : Sway sait verrouiller l’écran (ici au bout de 30 minutes) si on lui demande de le faire :

exec swayidle -w \
	timeout 1800 'swaylock' \
	timeout 1805 'swaymsg "output * dpms off"' \
	resume 'swaymsg "output * dpms on"'
exec /usr/bin/timeout 10 'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi'

Les ressources sur le net :

https://swaywm.org/ https://github.com/swaywm/sway/wiki (et git en général)
https://wiki.archlinux.org/title/Sway https://www.reddit.com/r/swaywm/
conky.conf
Fichier de surveillance du serveur en mode graphique
Sway wayland et conky
copie d’écran du bureau sway avec l’affichage de conky