This is the new window manager based on the Wayland protocol, which is being adopted by the linux community as a replacement to xorg.
Coming from xorg, sway treats each display/monitor separately, meaning they have their own independent workspace, and you cannot drag your mouse across them. However, the same controls that allow you to re-arrange "containers" on a single monitor directly apply to the second. To summarize, no additional or different bindsym
commands are needed for multi-monitor controls.
With waybar
you can minify corectrl
to the system tray by clicking its icon. It seems this package breaks often, so it may require the user to regularly rebuild.
Screen sharing on discord is broken until the developers fix it or implement pipewire support.
There is currently no support for restoring containers to their previous workspaces. This makes restarting significantly more messy, as launching a common utility like firefox
or subl
(sublime text), will open all containers in the current workspace, and you have to manually re-arrange them.
The ~/.config/sway/config.d/
directory should be used to establish overrides such as custom resolutions, special enhancements, or specific monitor bindings:
# dual monitor configuration
output HDMI-A-1 mode --custom 2560x1440@60Hz position 0 0
output DP-1 mode 3440x1440@144Hz pos 3440 0 adaptive_sync on
# bind workspaces 9 and 10 to HDMI/HDTV
workspace 9 output HDMI-A-1
workspace 10 output HDMI-A-1
# bind workspaces 1-5 to DP
workspace 1 output DP-1
workspace 2 output DP-1
workspace 3 output DP-1
workspace 4 output DP-1
workspace 5 output DP-1
Strange problem with global push-to-talk; had to start it once in order to trigger it, and the state may or may not persist on reboots.
There does not appear to be a way to add temperature support to waybar
, since by default it reads the first hwmon
resource, which is often unrelated or unimportant, and selecting the correct ones for CPU and GPU is entirely hardware dependent. It may be possible to write a script that generalizes running sensors
and scanning for common or known driver names in order to grab the correct data.
The scratchpad is a bit messy in that the "cycle" for pulling windows out involves show/hide/show/hide on repeat, rather than show to show to show swapping the pulled window instead. It may be possible to script this with swaymsg
with an iterator.
Since the nvidia proprietary driver is unsupported you may need these in your ~/.bash_profile
:
export WLR_NO_HARDWARE_CURSORS=1
alias sway='sway --unsupported-gpu'