Wayfire
Wayfire is a wayland compositor based on wlroots. It aims to create a customizable, extendable and lightweight environment without sacrificing its appearance.
Get Wayfire From ko-fi
And Support Archcraft Development.
Installation
Follow the instructions below to install Wayfire :
- Download wayfire.tar.gz file from ko-fi, and save it in a directory.
- Open a terminal in same directory and run the following command to extract the tar file :
$ tar -xzvf wayfire_YYYY-MM-DD.tar.gz
- Once the file is extracted, change to the extracted directory which should be
wayfire
- Install On Archcraft
- Install On Other Distributions
On Archcraft, You can simply install the provided package in pkg directory with :
$ sudo pacman -U archcraft-wayfire-X.Y-Z-any.pkg.tar.zst
If you want to install this setup on Arch Linux or on any other distro, follow the points below :
- Install the following programs on your Linux distro:
wayfire
swaybg
swayidle
swaylock
wlroots
wl-clipboard
waybar
wofi
kanshi
foot
mako
grim
slurp
wf-recorder
light
yad
wlogout
thunar
geany
mpv
mpd
mpc
viewnior
imagemagick
xfce-polkit
xorg-xwayland
xdg-desktop-portal-wlr
playerctl
pastel
python-pywal
alacritty
rofi
pulsemixer
- After installing programs above, Copy Everything from dotfiles to
~/.config
:
$ cp -r ./dotfiles/* ~/.config/
- Logout and login to your amazingly configured Wayfire wayland compositor.
Install the fonts from
fonts
and GTK theme, icons and cursor fromgtk
directory for overall appearance.
Wayfire comes pre-installed on Archcraft WSE
and Archcraft Prime
ISOs.
Configuration
Wayfire is pre-configured in Archcraft. In this section, We'll see how the Wayfire wayland compositor is configured, what tools and utilities are used to make it look and work like a complete desktop environment.
Config Structure
The configuration structure of Wayfire in Archcraft looks something like this:
~/.config
├── wayfire.ini : master config file
└── wayfire : shared Files
├── alacritty : alacritty terminal config
├── foot : foot terminal config
├── mako : notification daemon config
│ └── icons : notification icons
├── rofi : rofi config files
├── scripts : various scripts for functionality
├── theme : current theme and pywal themes
├── wallpapers : wallpapers
├── waybar : statusbar config
├── wlogout : wlogout config
│ └── icons : session icons
└── wofi : launcher config
Terminal
- Default
- Alternate
Alacritty is the default terminal. In the Wayfire wayland compositor, alacritty is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ~/.config/wayfire/alacritty
directory. These are the following config files you can modify to change the behaviour of your alacritty terminal:
~/.config/wayfire/alacritty/alacritty.toml
: Main configuration file
~/.config/wayfire/alacritty/colors.toml
: Colors configurations
~/.config/wayfire/alacritty/fonts.toml
: Fonts configurations
If you need any help with alacritty config, run :
man 5 alacritty
in terminal.
Foot is the secondary/alternate terminal. In the Wayfire wayland compositor, foot is launched with an alternative config file. If you need to change anything, make sure you modify the config files in ~/.config/wayfire/foot
directory. These are the following config files you can modify to change the behaviour of your foot terminal:
~/.config/wayfire/foot/foot.ini
: Main configuration file
~/.config/wayfire/foot/colors.ini
: Colors configurations
~/.config/wayfire/foot/fonts.ini
: Fonts configurations
If you need any help with foot config, run :
man foot.ini
in terminal.
By Default, alacritty is used But, If you want to use foot as your default terminal, just edit the ~/.config/wayfire.ini
file and comment the keybindings for Terminal : alacritty
and uncomment the bindings for Terminal : foot
When you change the theme
, the colors.toml file of alacritty and colors.ini file of foot get overwritten by the theme script.
Notification
Mako is used as a notification daemon for notifications in Wayfire. In the Wayfire wayland compositor, mako is launched with an alternative config file, which is ~/.config/wayfire/mako/config
. So, If you need to modify anything, make sure you edit this file.
If you need any help with mako config, run :
man 5 mako
in terminal.
When you change the theme
, the colors in config file get overwritten by the theme script.
Wallpaper
swaybg sets the wallpaper in the Wayfire. If you want to change the wallpaper, Edit ~/.config/wayfire/scripts/wallpaper
script and add your wallpaper here :
WALLPAPER='/path/to/your/wallpaper'
When you change the theme
, the wallpaper path in wallpaper
script get overwritten by the theme script.
Statusbar
Waybar is used as the statusbar in Archcraft's Wayfire wayland compositor.
The configurations for waybar can be found inside ~/.config/wayfire/waybar
. If you want to modify the waybar settings, or perhaps want to add/remove modules, then you need to edit the following files :
~/.config/wayfire/waybar/config
: Main config file
~/.config/wayfire/waybar/modules
: Modules config file
~/.config/wayfire/waybar/style.css
: CSS file for styling
~/.config/wayfire/waybar/colors.css
: CSS colors file
If you need any help with waybar config, run :
man waybar
When you change the theme
, the colors.css file of waybar get overwritten by the theme script.
Launchers and Applets
- Rofi
- Wofi
- Wlogout
Rofi is used for application launchers, command runner and various applets. To modify the rofi config, edit ~/.config/rofi/config.rasi
file.
If you need any help with rofi config, run :
man rofi
in terminal.
The scripts for rofi that are used in Wayfire can be found it ~/.config/wayfire/scripts
directory. These are the following scripts that uses rofi to provide the launchers and applets in Wayfire :
rofi_bluetooth
: bluetooth applet to quickly connect to BT devices
rofi_launcher
: an application launcher, cmd runner, file manager and task manager
rofi_music
: music applet, that controls MPD with mpc
rofi_network
: network manager applet
rofi_powermenu
: power menu, with confirmation dialog
rofi_runner
: quickly lets you run a command
rofi_screenshot
: screenshot applet that works with grim
If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts.
The configuration of each script can be found inside ~/.config/wayfire/rofi
directory.
Let's say that you want to modify the looks of launcher, then you need to edit the ~/.config/wayfire/rofi/launcher.rasi
file. Same goes for every other applet, Edit the respective file in the same directory.
If you need any help with rofi theming, run :
man rofi-theme
in terminal.
To change the colors and fonts of the launchers and applets, Edit the ~/.config/wayfire/rofi/shared/colors.rasi
and ~/.config/wayfire/rofi/shared/fonts.rasi
files.
Alternatively, Wofi is used for application launcher and powermenu.
If you need any help with wofi config, run :
man 5 wofi
in terminal.
The scripts for wofi that are used in Wayfire can be found it ~/.config/wayfire/scripts
directory. These are the following scripts that uses wofi to provide the launchers and powermenu applets in Wayfire :
wofi_menu
: application launcher
wofi_powermenu
: power menu, with confirmation dialog
If you want to modify any applet or perhaps want to extend the functionality of the applet, just edit these scripts.
The configuration of wofi can be found inside ~/.config/wayfire/wofi
directory.
To change the colors and fonts of the launchers and applets, Edit the ~/.config/wayfire/wofi/style.css
file.
Wlogout, A Wayland logout menu is also configured for session management is Wayfire.
Edit ~/.config/wayfire/scripts/wlogout
script to adjust the looks of wlogout. The configuration of wlogout can be found inside ~/.config/wayfire/wlogout
directory.
If you want to use wlogout instead of rofi and wofi, Edit the config file ~/.config/wayfire.ini
and uncomment wlogout keybindings.
If you need any help with wlogout config, run :
man wlogout
in terminal.
By default, rofi is used as app launcher. But, If you want to use wofi instead of rofi, Edit the config file ~/.config/wayfire.ini
and uncomment wofi keybindings (and, comment the rofi bindings).
When you change the theme
, the shared/colors.rasi file of rofi and style.css file of wofi and wlogout gets overwritten by the theme script.
wayland compositor
The main configuration file of Wayfire is ~/.config/wayfire.ini
. Edit this file for everything, from plugins to keybindings, etc. The changes are automatically loaded in-place.
If you need any help with wayfire configuration, visit : Wayfire Configuration
When you change the theme
, colors in wayfire.ini file gets overwritten by the theme script.
Keybindings
Here's a list of some important keybinds you need to know for operating Wayfire easily. If you want to view, modify or add new keybinds, Edit ~/.config/wayfire.ini
file.
Applications
Keys | Action |
---|---|
super + Return | Open terminal |
super + shift + Return | Open fullscreen terminal |
super + F | Open file manager (thunar) |
super + E | Open text editor (geany) |
super + W | Open web browser (firefox) |
Menu and Applets
Keys | Action |
---|---|
super + D | Open application launcher |
super + R | Open command runner |
super + N | Open network manager applet |
super + M | Open music applet |
super + X | Open powermenu applet |
super + S | Open screenshots applet |
super + B | Open bluetooth applet |
Hardware Keys
Keys | Action |
---|---|
Take screenshot | |
alt + Print | Take screenshot in 5 seconds delay |
shift + Print | Take screenshot in 10 seconds delay |
super + Print | Take screenshot of selected area |
XF86AudioRaiseVolume | Increase volume |
XF86AudioLowerVolume | Decrease volume |
XF86AudioMute | Toggle mute speakers |
XF86AudioMicMute | Toggle mute microphone |
XF86MonBrightnessUp | Increase display brightness |
XF86MonBrightnessDown | Decrease display brightness |
Workspaces
Keys | Action |
---|---|
super | Expo : Show overview of all workspace |
super + 1..9 | Switch to respective workspace |
super + shift + 1..9 | Switch to respective workspace with focused window |
super + ctrl + 1..9 | Move focused window to respective workspace |
super + ctrl + Left/Right/Up/Down | Switch to Left/Right/Top/Bottom workspace respectively |
super + ctrl + shift + Left/Right/Up/Down | Switches to workspace Left/Right/Top/Bottom with the focused window |
super + ctrl + alt + Left/Right/Up/Down | Send the focused window to the workspace Left/Right/Top/Bottom |
super + ctrl + L | Switches to last active workspace |
super + alt + 1/2/3 | Switch to workspace set 1/2/3 |
super + shift + alt + 1/2/3 | Send the currently focused window to workspace set 1/2/3 |
ctrl + alt + Left/Right | Left/Right workspace (cube) |
super + O | Switch to next output |
super + shift + O | Switch to next output with focued window |
Window Management
Keys | Action |
---|---|
super + C/Q | Kill active window |
super + V | Show all windows on current workspace |
super + shift + V | Show all windows from all workspaces |
alt + Tab | Task switcher |
super + Tab | Quick task switcher |
super + Left | Tile window to the left edge |
super + Right | Tile window to the right edge |
super + Up | Maximize window |
super + Down | Restore window's initial state |
super + H | Tile window to the top-left edge |
super + J | Tile window to the bottom-left edge |
super + K | Tile window to the top-right edge |
super + L | Tile window to the bottom-right edge |
super + Comma | Tile window to the bottom edge |
super + Dot | Tile window to the top edge |
Wayland Compositor
Keys | Action |
---|---|
super + I | Invert output colors |
super + Z | Toggle idle |
super + T | Toggle tile mode |
super + ctrl + F | Toggle fisheye effect |
super + Space | Toggle fullscreen |
super + shift + T | Toggle Always on top |
super + shift + S | Toggle sticky mode |
super + shift + M | Toggle Maximize |
super + shift + D | Toggle Show desktop |
super + shift + B | Toggle Send to back |
super + alt + B | Toggle Blur |
Misc Keys
Keys | Action |
---|---|
ctrl + alt + L | Trigger lockscreen |
super + P | Run colorpicker |
Mouse Bindings
Button | Action |
---|---|
super + left | Move/Drag Window |
super + right | Resize Window |
super + scroll | Zoom the Desktop |
super + alt + scroll | Adjust Opacity |
super + ctrl + right | Rotate Window (2D) |
super + shift + right | Rotate Window (3D) |
ctrl + alt + left | Activate Cube |
Nvidia
If you're on Archcraft
and install the provided package, There's nothing else you need to do in order to run it on Nvidia machine. When you install Archcraft on a machine that has Nvidia, It does all the operations (mentioned below) required to run a wayland compositor on such machines. The compositor should work fine.
If you're running any other distribution and want to install this setup on your Nvidia machine, You need to do some tweaking. In this guide, I'm assuing you're using Arch Linux. Follow the steps below to make this wayland compositor work on Nvidia :
- Install Nvidia Drivers on your system. NVIDIA
- Edit
/etc/mkinitcpio.conf
file and addnvidia
kernel modules
MODULES="nvidia nvidia_modeset nvidia_uvm nvidia_drm"
- In the same file, Remove
kms
hook from hooks array if present. - Rebuild your initrd file with :
sudo mkinitcpio -P linux
- Edit
/etc/default/grub
file and addnvidia_drm.modeset=1
kernel parameter for Nvidia
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia_drm.modeset=1 ..."
- Update your grub config file with :
sudo grub-mkconfig -o /boot/grub/grub.cfg
- Reboot your Nvidia Machine and login to your wayland compositor, It should work now.
More Information: NVIDIA#Installation, NVIDIA#DRM_kernel_mode_setting
Screenshots
Desktop
Here's few screenshots of Wayfire
desktop. These'll give you an idea of the experience of Wayfire in Archcraft.
Desktop 1 | Desktop 2 | Desktop 3 | Desktop 4 |
---|---|---|---|
Desktop 5 | Desktop 6 | Desktop 7 | Desktop 8 |
---|---|---|---|
Desktop 9 | Desktop 10 | Desktop 11 | Desktop 12 |
---|---|---|---|
Desktop 13 | Desktop 14 | Desktop 15 | Desktop 16 |
---|---|---|---|
Desktop 17 | Desktop 18 |
---|---|
Checkout all the videos here : Wayfire Playlist
Themes
To Change the theme, Click on Color Palette
icon on waybar. To apply a random theme, Left Click
on the theme module and To restore the default theme, Right Click
on the theme module.
- Default Theme
- Random Themes
There's only one theme available for Wayfire.
Auto Generated themes with pywal
.
FAQs
How to update my config to new configs?
Download the updated package from ko-fi (for free) and just install it to update to new configs.
Steps to get updates (or re-download files):
- Login to you Ko-fi account
- Go to your
Ko-fi Payments History
- Select the purchases you've made
- Click on
View Details
- Then, Click on
View Content
to download the updated files.
Why my cursor is not visible?
When using certain graphics drivers (e.g. the VMSVGA graphics controller or the proprietary NVIDIA driver), the cursor is invisible. This can be fixed by using software cursors :
$ export WLR_NO_HARDWARE_CURSORS=1
How to change GTK theme, icons and cursor?
To change GTK theme, icons and cursor in Wayfire session, Edit ~/.config/wayfire/scripts/gtkthemes
script and restart Wayfire to apply the changes.
THEME='Manhattan'
ICONS='Luv-Folders-Dark'
FONT='Noto Sans 9'
CURSOR='Qogirr-Dark'
How to manage multiple monitors and resolution in Wayfire?
If you use multiple monitors with Wayfire wayland compositor, you can manage them as follow:
- You can get the names of your outputs with
wlr-randr
- Edit
~/.config/wayfire.ini
file and modify the output configuration section as follow :
# External monitor, mode: 1920x1080, position: right of laptop, scale: 1.5
[output:HDMI-A-1]
mode = 1920x1080@60000
position = 1920,0
transform = 90
scale = 1.500000
Why Alacritty is not working on my computer?
Since Alacritty is a OpenGL based terminal emulator, It may not work on some computer hardwares. You can make it work on such computers by following these methods :
- Open alacritty with LIBGL_ALWAYS_SOFTWARE=1 variable. Edit the keybindings/script launching alacritty and replace
alacritty
withLIBGL_ALWAYS_SOFTWARE=1 alacritty
- Edit /usr/share/applications/Alacritty.desktop desktop file and replace
Exec=alacritty
withExec=env LIBGL_ALWAYS_SOFTWARE=1 alacritty