First time messing with Sway

It's Chinese New Year (or Lunar New Year), whatever and I have a long vocation with my family, being lazy and whatnot. I decided to today I'm too bored to do anything scrious. I ended up trying to use a tiling window manager for once. Why? Because they feels very cool the first time I saw somone using one (I think it was i3). And because the claimed productivity imrovments over a floating model.

I am a long time Gnome user. I feel I'm very efficent on Gnome. Can Sway improve upon that? We'll see.

Installation

Installing Sway is honestly easy. I'm using Arch Linux, so I just installed it from the official repos. The Arch Wiki, as usual, has a very good guide on how to install and configure Sway. Some quick commands get you up and running:

❯ sudo pacman -S sway

To start Sway, you can either use the sway command in an actual text mode terminal (not emulator). And Sway is up instantly. However, major configuration is needed to make it anyware useful. Espically becaue I'm on a laptop with no physical touchpad button (it's under the touchpad) exposed. I need tap to click to work. Instead of reading man sway.5 like I should. I found a good looking config on GitHub to ~/.config/sway/config and put in on my conputer.

It instantly made my life a lot easier. Tap to click works. But a lot is still missing. The mose obvious being wallpaper. Turns out Sway, like real UNIX tools, is very modular. I need the swaybg command for that to work. Also other tools like waybar, wl-clipboard and fofi, etc.. Some change is also made to the config file to match my computer,

❯ sudo pacman -S swaybg waybar wl-clipboard wofi mako birghtnessctl slurp grim

I also stole the Waybar config from someone else on GitHub. And some styles are changed to adapt to my preferences. I might still tune it a bit more.

Looks much nicer then the default.

Impressions and the pros

After I learned the basic key bindings to Sway I instantly understand why some may prefer tiling window manager. It's like VIM, moving from window to window is no longer bottlenecked by how fast your hand can move from keyboard to mouse or if you can remember the order of Windows when you Alt-Tab. Tiling WM strongly perferes a few window in a single workspace. And spread your windows across workspaces.

For example, I find me having a window of Firefox with two terminals on the side. So I can search for problems also able to quickly iterate solution on the side.

How I use Firefox and terminals together
Image: How I use Firefox and terminals together

And I tend to keep large applications like VSCode and GIMP on their own workspace. So I can quickly switch to them when I need them. I had to say switching between workspaces is very fast. Unlike Gnome I (mostly) switch from left to right. Sway asks me to mostly switch using the Mod + 1-9 keys. Which is a bit of a change. But saves me a ton of button presses, espically I usually have 3-4 workspaces open at a time.

Keeps VSCode in its own workspace
Image: Keeps VSCode in its own workspace

There's also definatelly faster access to basic information of the computer. Waybar shows CPU, memory, temperature, battery, etc.. I just need to move my eye up and I have them. Unlike Gnome where I need to open system monitor or run the sensor command.

(This one is really Gnome's fault) Firefox's swipe left/right to go back/forward is broken on Gnome. This is because Gnome uses the same gesture to switch between workspaces. Sway doesn't have this problem.

Firefox's swipe left/right swipe works!
Image: Firefox's swipe left/right swipe works!

The cons

Although I see the speed improvments bring by sway. I don't feel it's that faster compared to Gnome. Espically on a laptop. With Gnome. I just move my hand from the keys to touchpad and swipe up to show all windows in the current worspace. Gnome's layout is good enough to make me instantly find which window to move to. Likewise, a quick move on the touchpad to the left and type gets me to the application I want. It's not that slow compared to wofi.

I also miss the ablity to insert workspace between workspaces. It's helpful for example I need to add more window related to something I am working on in the current workspace. The scratchpad helps a bit. But it's not the same.

More pictures

The Rofi menu

Rofi on an empty workspace
Image: Rofi on an empty workspace

Browsing Gemini on Lagrange

Lagrange on Sway while working on my GNUnet project
Image: Lagrange on Sway while working on my GNUnet project


I'll likely keep on trying Sway for a bit. Maybe I'll completely switch to it if I ended up with a small laptop. Otherwise, I still like Gnome better.

Author's profile. Photo taken in VRChat by my friend Tast+
Martin Chang
Systems software, HPC, GPGPU and AI. I mostly write stupid C++ code. Sometimes does AI research. Chronic VRChat addict

I run TLGS, a major search engine on Gemini. Used by Buran by default.


  • marty1885 \at protonmail.com
  • Matrix: @clehaxze:matrix.clehaxze.tw
  • Jami: a72b62ac04a958ca57739247aa1ed4fe0d11d2df