My current set of dotfiles. Attempts to establish the same desktop environment across the Sway, Hyprland, labwc, and Niri compositors. Dotfiles are not always equally maintained, so one set may be outdated.
Across all configurations, the following keybinds are available. (Mod = Windows key)
| Action | Keybind |
|---|---|
| Open terminal | Mod+Enter |
| Program launcher | Mod+D |
| Close window* | Mod+Shift+Q |
| Move window | Mod+Left Mouse |
| Resize window* | Mod+Right Mouse |
| Toggle tabbed layout* | Mod+W |
| Toggle fullscreen view | Mod+F |
| Take a screenshot | PrntScr |
| Exit compositor* | Mod+Shift+E |
*Not available on labwc, since it is a stacking compositor, not a tiling one.
Written for Arch Linux.
# Packages
sudo pacman -S sddm hyprpicker xdg-desktop-portal-gtk mako waybar wl-clipboard grim slurp foot archlinux-xdg-menu
# Setup MIME types
sudo ln -s /etc/xdg/menus/arch-applications.menu /etc/xdg/menus/applications.menu
# Enable SDDM
sudo systemctl enable sddm
# Enable dark mode
dconf write /org/gnome/desktop/interface/color-scheme '"prefer-dark"'Make sure to delete the existing config.jsonc symlink and rename one of the config.jsonc.* files in waybar to config.jsonc. The existing symlink points to config.jsonc.sway.
NOTE: Keyboard layout display isn't supported on labwc due to the compositor's strict adherance to wlroots protocols.
# Packages
sudo pacman -S hyprland hyprpaper hypridle hyprlock xdg-desktop-portal-hyprland hyprpolkitagent dolphin swayimg
# User services
systemctl --user enable --now hyprpaper.service
systemctl --user enable --now hypridle.service
systemctl --user enable --now waybar.service# Packages
sudo pacman -S sway swaylock swayidle swayimg swaybg dolphin- Certain keybinds are not available due to labwc being a stacking compositor instead of a tiling one.
- labwc provides no mechanism for output configuration, so
wlr-randris used to adjust monitors. Edit/labwc/autostartto configure.
# Packages
sudo pacman -S labwc swaylock swayidle swayimg swaybg dolphin wlr-randr- Niri works best with GDM, therefore
uwsmisn't necessary. Instead of KDE apps to provide system basics, we use GNOME's (for better or for worse).
# Packages
sudo pacman -S niri gdm xdg-desktop-portal-gnome gnome-keyring swaybg swayidle swaylock nautilus sushi loupe gnome-text-editor
# User services
systemctl --user enable --now waybar.service
# Enable display manager
systemctl enable gdm