Hyprland
Aujourd'hui je vous propose de découvrir ensemble l'environnement de bureau que j'utilise depuis quelques mois : Hyprland
Sommaire
00:00 Introduction
00:27 Pourquoi Hyprland ?
03:44 Installation de l'OS
08:38 Installation d'Hyprland
14:22 Installation de Firefox
15:32 Driver nvidia
17:15 Shell fish
18:49 Gestion du son (pipewire)
21:05 Partage d'écran
24:34 Gestionnaire de fichier (thunar)
25:26 Lanceur d'application (rofi)
28:43 Barre (waybar)
32:46 Gestionnaire réseau (nm-applet)
34:06 Notifications (dunst)
35:47 Capture d'écran (grim + slurp)
37:00 Color picker (hyprpicker)
38:17 Bureau spécial
39:04 Personnalisation
43:51 Fond d'écran (hyprpaper)
45:31 Thème GTK & Dark theme
46:45 xwayland
Pourquoi Hyprland ?
Hyprland est un Tiling Window Manager. J'avais déjà expérimenté ce type de gestionnaire avec i3 et aujourd'hui, je ne peux plus m'en passer. Chaque fenêtre occupe automatiquement l'espace disponible à l'écran. Pas besoin de redimensionner ou déplacer les fenêtres à la main, tout est géré automatiquement. En plus, un système de bureaux virtuels permet en plus de s'organiser en plaçant les fenêtre dans des espaces facilement accessible via des racourcis claviers.
L'autre point positif concerne la documentation qui est extrèmement claire et complète (chose qui manque trop souvent sur d'autres environnements que j'ai pu tester). Chaque option est expliquée avec ses impacts et les cas d'utilisation et des guides sont proposé pour des cas plus particuliers (comme l'utilisation d'un GPU Nvidia).
Enfin, Hyprland se repose sur le protocole d'affichage Wayland, qui offre une meilleur gestion du rendu graphique avec des options qui permettent la gestion de périphériques modernes (comme la gestion de la fréquence d'image et de la mise à l'échelle par écran).
Installation
Afin de faciliter la découverte de cet environnement, je vous propose de découvrir ensemble comment l'installer et les outils qu'il est nécessaire d'avoir pour un environnement fonctionnel.
Création de la clef USB bootable
Hyprland peut techniquement être installé sur n'importe qu'elle distribution Linux mais dans mon cas je vais choisir d'utiliser la distribution EndeavourOS (pour son live iso) et Rufus pour créer une clef USB Bootable.
Il n'y a pas grand chose spécifique à ce niveau là si ce n'est de bien vérifier le disque sur lequel vous allez installer l'ISO pour ne pas formatter le mauvais disque.
Installation d'EndeavourOS
Une fois la clef USB formattée, on peut l'utiliser pour démarrer le live ISO qui nous permettra de lancer le processus d'installation.
- Choisir "Installation en ligne".
- Sélectionner la langue, le fuseau horaire et le clavier (AZERTY dans mon cas).
- Choisir "Pas d’environnement de bureau" (on installera hyprland à la main).
- Désactiver les composants inutiles (pare-feu, correcteur orthographique, Firefox préinstallé, etc.). On ne garde que la partie réseau et filesystem.
- On choisit ensuite le disque dur où on veut installer le système (faites bien attention à ne pas faire d'erreur à ce niveau là).
- Définir le nom d’utilisateur, le nom du PC et un mot de passe.
- Confirmer les choix et lancer l’installation.
A la fin de l'installation vous pouvez redémarrer la machine.
Installation d'Hyprland
Après le redémarrage on se retrouve sur un simple terminal (car on n'a pas choisi d'environnement de bureau). On va commencer par installer 3 composants de base :
hyrpland
, compositeur waylandkitty
, terminal utilisé par défaut par Hyprlandsddm
, gestionnaire de session
Une fois installé on activera le service SDDM.
sudo pacman -S hyprland kitty sddm
sudo systemctl enable sddm
sudo systemctl start sddm
Et on sélectionne hyprland
comme environnement de bureau.
Configuration de base
Une fois connecté on est accueilli avec un simple écran de fond et on peut ouvrir un nouveau terminal avec le racourci SUPER + Q (attention, le clavier est par défaut en QWERTY donc vous devrez peut être utiliser SUPER + A). On peut modifier la configuration du clavier ainsi que les racourcis en modifiant le fichier de configuration hyprland.
# ~/.config/hypr/hyprland.conf
# On passe la clavier en AZERTY
input {
kb_layout = fr
}
# On change les racourcis numériques pour changer de Workspace
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, code:10, workspace, 1
bind = $mainMod, code:11, workspace, 2
bind = $mainMod, code:12, workspace, 3
bind = $mainMod, code:13, workspace, 4
bind = $mainMod, code:14, workspace, 5
bind = $mainMod, code:15, workspace, 6
bind = $mainMod, code:16, workspace, 7
bind = $mainMod, code:17, workspace, 8
bind = $mainMod, code:18, workspace, 9
bind = $mainMod, code:19, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, code:10, movetoworkspace, 1
bind = $mainMod SHIFT, code:11, movetoworkspace, 2
bind = $mainMod SHIFT, code:12, movetoworkspace, 3
bind = $mainMod SHIFT, code:13, movetoworkspace, 4
bind = $mainMod SHIFT, code:14, movetoworkspace, 5
bind = $mainMod SHIFT, code:15, movetoworkspace, 6
bind = $mainMod SHIFT, code:16, movetoworkspace, 7
bind = $mainMod SHIFT, code:17, movetoworkspace, 8
bind = $mainMod SHIFT, code:18, movetoworkspace, 9
bind = $mainMod SHIFT, code:19, movetoworkspace, 10
Pour la configuration plus complète, vous pouvez suivre la documentation d'hyprland ou vous inspirer de ma configuration.
Vous pouvez aussi en profiter pour suivre les instructions de cette page dans le cas où vous êtes sur un GPU Nvidia.
Environnement de bureau
Maintenant qu'Hyprland est installé on va pouvoir installer tous les outils qui vont permettre d'avoir une expérience de bureau convenable.
Le son
Pour gérer le son sur notre système on va utiliser
- pipewire, pour la gestion bas niveau.
- pipewire-pulse, pour la compatibilité avec les applications pulseaudio.
- pavucontrol, pour l'interface visuel de gestion du son.
Une fois installé, il faudra utiliser pavucontrol pour définir le périphérique de sortie audio par défaut.
sudo pacman -S pipewire pipewire-pulse pavucontrol
systemctl --user start pipewire
systemctl --user start pipewire-pulse
Partage d'écran
Wayland propose un modèle de sécurité plus important par rapport à X11 qui empèche les fenêtres d'accéder sans limitation à l'écran. Les applications doivent utiliser un portail pour accéder aux ressources externes.
sudo pacman -S xdg-desktop-portal-hyprland
Pour fonctionner le portail a besoin de variables d'environnement pour fonctionner. On peut modifier le fichier de configuration d'hyprland pour la définir automatiquement au démarrage.
# hyprland.conf
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
Lanceur d'application (rofi)
Pour lancer les application rapidement j'utilise le lanceur rofi.
sudo pacman -S rofi-wayland
J'ajoute ensuite un racourci clavier pour l'utiliser
# hyprland.conf
bind = $mainMod, D, exec, rofi -show drun
Pour personnaliser l'apparence vous pouvez utiliser un fichier de configuration.
Barre de navigation
Pour visualiser le workspace actif et d'autres informations en haut de mon bureau j'utilise waybar.
sudo pacman -S waybar
On peut ensuite le lancer à l'aide de la commande waybar
en l'ajoutant aux applications de démarrage.
# hyprland.conf
exec-once = waybar
La configuration se fait au travers d'un [https://github.com/Alexays/Waybar/wiki/Configuration](fichier de configuration) ~/.config/waybar/config.jsonc
dans lequel on peut spécifier les modules à afficher parmi une liste de modules prédéfinis. Le module hyprland/workspaces permet par exemple d'afficher la liste des workspaces et de mettre en surbrillance le workspace actif.
Si vous voulez une base de départ vous pouvez vous inspirer de ces exemples.
Notifications
Pour les notifications on va se contenter d'installer dunst.
sudo pacman -S dunst
# Pour tester
notify-send "Hello world"
Comme pour le reste des applications vous pouvez personnaliser son apparence à l'aide d'un fichier de configuration.
La touche print screen
Pour la touche capture d'écran on va utiliser une combinaison de 3 outils.
sudo pacman -S grim slurp wl-clipboard
Et on peut ensuite ajouter un racourci clavier.
# hyprland.conf
bind = , Print, exec, grim -g "$(slurp -d)" - | wl-copy
Autre outil intéréssant que l'on peut installer est un color picker.
sudo pacman -S hyprpicker
Puis on ajoute aussi un raccourci clavier
# hyprland.conf
bind = $mainMod, C, exec, hyprpicker -a
Personnalisation
Côté hyprland il est possible de personnaliser l'apparence des fenêtre et les animations au travers de la configuration. Pour personnaliser l'apparence de certaines application il faudra personnaliser le thème utilisé.
Thème GTK
Pour personnaliser les applications qui se basent sur GTK on installe un thème (vous pouvez choisir celui que vous voulez) et on l'applique à l'aide de nwg-look
.
sudo pacman -S nwg-look arc-gtk-theme-eos
On peut ensuite utiliser nwg-look pour sélectionner le thème, mais aussi pour activer le mode dark (qui sera compris par les navigateurs).
Fond d'écran
Pour changer le fond d'écran on peut utiliser hyprpaper.
sudo pacman -S hyprpaper
Et ensuite on peut définir l'image à utiliser via le fichier de configuration ~/.config/hypr/hyprpaper.conf
.
preload = /home/me/wallpaper.png
wallpaper = , /home/me/wallpaper.png
XWayland
Certaines applications ne supportent pas Wayland nativement mais elles fonctionnent quand même gràce à XWayland qui fournit un server X au sein de wayland.
Les applications électrons (basées sur chromium) supportent souvent Wayland mais il faut activer ce support via des drapeaux particuliers --ozone-platform=wayland --enable-features=WaylandWindowDecorations
.
Pour les éditeurs Jetbrains, ils n'utilisent pas Wayland par défaut mais il est possible d'activer le support à l'aide d'une option pour la machine virtuelle Java (même si cela désactive certaines fonctionnalité comme le drag'n drop).