Sway is a lightweight window manager that seamlessly tiles windows and provides quick access to multiple workspaces.
Sway
Why Sway?
Sway has very much become my favourite window manager. I love having a minimal display with only what I want or need on screen at a given time. Of course there are benefits to having files saved on a desktop, or a taskbar showing all open applications, but these are things that I honestly do not miss since trying without them.
Sway does, however, have quite a learning curve. It can be installed alongside GNOME, or any of the other major window managers and switched to at the login screen. I would definitely recommend trying it this way before fully committing.
How to Sway
One thing you may notice when logging in to Sway for the first time, is that you can’t really do anything. You can look at the default wallpaper and move the cursor around, but that’s about it. If you had any keyboard shortcuts you were used to in your prior window manager, chances are they don’t work any more. If you’re used to launching apps from a taskbar, tough luck.
To avoid such situations you can edit the config file at
~/.config/sway/configfirst. If the file doesn’t exist yet, you can find a default one with plenty of helpful comments here.If you want to quickly download and set that up you can run the following:
mkdir -p ~/.config/sway curl https://raw.githubusercontent.com/swaywm/sway/refs/heads/master/config.in > ~/.config/sway/configEditing the Config
The config file is where everything lives, keybindings, wallpaper settings and default launch applications. This is all stored in fairly readable plain text.
The Modifier Key
First things first you’ll want to set your modifier key (or leave it as the default). By default this is the super key, (‘windows’ or ‘command’ on most keyboards) this is referred to in the config as
$mod. The vast majority of Sway commands use this modifier in some regard, so it’s good to have it be something you otherwise don’t use in applications, and something you can easily reach alongside other keys.Default Keybindings
Possibly the most important keybinding is
$mod + Return. This opens a terminal, which can be extremely useful if you want to power off or reboot (although you can set up more convenient ways to do this).Other useful keybindings are:
$mod + d Opens the application launcher (I prefer $mod + Space). This will require one to be installed and defined in the config. I would recommend fuzzel, although there are plenty of other options.$mod + Shift + q Close the currently focused window$mod + [1-9] Switch to a numbered workspace$mod + Shift + [1-9] Move the focused window to a numbered workspace$mod + Shift + e Exit sway :(Sway will automatically tile windows as vertical columns, but you can switch this to horizontal rows with $mod + b or back to vertical with $mod + v. You can also toggle fullscreen on a given window with $mod + f, or floating mode with $mod + Shift + Space. You can move windows around with $mod + Shift + [arrow keys]
This can be a bit of a learning curve, similar to Vim, but once you begin to get a feel for it Sway really starts to shine.
Sway is great, but gains a lot more functionality with some additional packages. For almost everything on this list there will be alternatives, but I have found these to work well.
Ultimately, Sway is very flexible, and (subjectively) fun to customise. You can even define different settings depending on the display in use, which is great if you want a config shared between devices, or for a docked/undocked laptop.