cloudberries

navigation

swaying

[tags] linux
[date]
2026.02.12

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/config first. 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/config

Editing 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 :(

Tiling Windows

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.

Other Extras

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.

Essentials

  • Swaylock Screen locker
  • Swayidle Idle management daemon
  • Swaybg Wallpaper tool for Sway

Very Nice to Have

  • Waybar Configurable top bar to show active workspace, clock and whatever else you want
  • Fuzzel App launcher
  • Grim Screenshot tool for Wayland
  • Slurp To allow area selection for screenshots

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.