Sway's default controls for manipulating windows are similar to vi. Window focus is controlled by a combination of the Super key and one of the arrow keys or h, j, k, and l. Window movement is performed by the same combination of keys with the addition of the shift key.
Like i3, Sway can be extended and manipulated using its Unix domain socket and JSON-based IPC interface from many programming languages.[5]
Sway's first stable release was on March 11, 2019, after 3.6 years of development.[6]
Features
Sway replicates several of i3's features:
Configuration is performed via a plain text file.[5]
Window tiling is handled manually, rather than dynamically.
Windows can be split horizontally or vertically.
Windows can be arranged in a tabbed (horizontal listing like that found in web browsers) or stacked (vertical listing) layout.
Tiled and floated windows can be resized or moved using both the mouse and keyboard.[7]
Sway can be completely driven from the keyboard.[8]
Sway also provides several unique features:
Supports multiple non-modifier keys when assigning key bindings.[9]
Windows on the same workspace can be split into multiple containers, such that one set of windows might be arranged in a tabbed layout while the other windows on the workspace might be tiled normally, floating, or arranged in a stacked layout.
Handles input, output, and wallpaper configurations instead of relying on separate programs.
Has its own ecosystem of utilities such as swaybg, swaybar, and swayidle.