45 comments

[ 2.3 ms ] story [ 87.1 ms ] thread
Looks interesting, though the installation documentation needs a bit of love. The PPA is quite out of date and the install from source instructions aren't super easy to follow.
We don't show favoritism to any downstream distros, so sway packages for any particular distro are maintained by users of that distribution. Unfortunately, the state of the Ubuntu port isn't great, this would be a great place for you to volunteer as a representative of your distro :)

I would also like to hear more detail about where you ran into issues with the source installation instructions.

Great news!! Tired it on arch sometime back and a few missing i3 compatible features made me go back to i3. Will be trying to switch now and see!! Thanks a lot @Sir_Cmpwn!
when using `sway` from community you will get sway running with `wlc` compositor instead of `wlroots`. `wlc` does not work with dynamic external monitor connection (which was a deal breaker for me, maybe other issues). `wlroots` solves that.
(comment deleted)
"You can also now do crazy stuff like having multiple mice with multiple cursors, and linking keyboards, mice, drawing tablets, and touchscreens to each other arbitrarily. You can now have your dvorak keyboard for normal use and a second qwerty keyboard for when your coworker comes over for a pair programming session. You can even give your coworker the ability to focus and type into separate windows from what you’re working on."

has this been done ever before ?

I'm certain multiple mice is (or at least, was) supported on Windows, i remember some of Reflexive Entertainment's games from around mid-2000s having what they called "Mouse Party" which was basically a local multiplayer mode with multiple mice connected to the same PC (their games were casual indie games with simple control schemes that often supported something like that).

In theory multiple mice and keyboards are possible on X too since late 80s/90s, at least assuming the XInput extension is available on the server since the core events do not provide any way to differentiate between devices. But like everything with X, the feature might be there, but it is up to the clients to actually use it and use it properly (which isn't always the case and a lot of "X cannot do <thing>" you hear really means "due to the way we use X, we cannot do <thing>"). And even if the feature is there, if it is a niche case, it may be so buggy that it isn't practically usable (of course this applies to almost every open source project that is older than a couple of years, especially those that are big and have a small number of contributors).

An example of this would be multiple focused windows (one per keyboard) - despite XInput allowing for such a thing, i doubt many window managers and toolkits would be able to handle it (and to be frank, neither does my own toolkit and most likely will never have support for it - it is so niche of a feature, it isn't worth the time and increase in complexity and potential future maintenance).

No idea about macOS.

"You can now have your dvorak keyboard for normal use and a second qwerty keyboard for when your coworker comes over for a pair programming session"

Well over a decade ago, I had multiple keyboards with different layouts hooked up to my linux laptop, and could use both of them at the same time with no problem.

I'm not sure why this is supposed to be so novel.

We had to start everything over again from scratch on Wayland. It's not novel for Linux desktops in general, but it is novel for Wayland.
> You can even give your coworker the ability to focus and type into separate windows from what you’re working on.
Multiple mice was supported by the Amiga. IIRC the Amiga version of Lemmings utilized it for two-player mode.
I had never heard of this before, this sounds crazy impressive. Just a few years ago there was nothing really useable, everything still had their bugs and there were no guides to making a compositor or shell plug-in. This seems to have changed. Finally!

The dream of Wayland ("soon!") has been out for many years, but it seems to finally become real.

Very exited. Will install this on a Void VM and try it out.
Note that the only hypervisor which is supported by sway is qemu.
Slightly OT, but I hope you’ll indulge: The main thing keeping me from trying i3 and by extension Sway, is that I got used to a mostly default set of Xmonad keybinding and I’ve been too lazy to figure out how to configure i3/Sway to work like Xmonad.

Has anyone here gotten their i3 to behave like Xmonad? How is it? Care to share your config / tips for getting it rolling?

I'm a sysadmin who works with Linux on the servers and does not have the interest or know-how with window managers. Is there a easy way to try Sway? Like a pre-built OS distribution or VM?

I'm imagining something like Debian/Fedora/Ubuntu - Sway edition..

The desktop side of Linux makes me feel like I'm lost in the city where I live. Am I missing easy instructions to try this somewhere?

(No snark of any kind intended. Based on comments, I think this must be an amazing open source project. I'm just wondering how I can get myself started to see what it really is...)

Sway isn't really an entry-level Linux desktop, though you're welcome to try. RebeccahBlackOS comes with it pre-installed, but it's more of a demo distro than one which is usable in the long-term.
:( What can I do with my desktop? Replacing my nvidia card is hardly an option but I want Sway.
You can use the nouveau driver, which is supported and works well. Or you could sell your card and get an AMD one. If not, there's nothing wrong with sticking to i3+X11 until a more convenient time.
Nouveau is useless for a card like the 1080Ti, you get 10% of the performance and much worse energy efficiency.

Yes, I also dislike nvidia but a few years ago AMD was absolutely awful under Linux.

Yeah, not much wrong with i3 but I really like what you're doing with Sway. :)

What was true a few years ago has little bearing on what's true now. People buying new cards should be buying AMD. If your current circumstances don't make this possible for you, though, then there's nothing wrong with staying on X.
I use nouveau on my 960, and the performance is pretty much the same. 10% seems like a big overstatement.
It very much depends upon the generation, the 1000 series cards aren't well supported but they do work.
> Yes, I also dislike nvidia but a few years ago AMD was absolutely awful under Linux.

I can assure you that these days are gone. I just got a new Thinkpad with a Ryzen APU and nearly [1] everything worked out of the box. The R9 Nano in my desktop also works perfectly with the AMDGPU driver.

[1] "Nearly" because I needed to add "iommu=soft" to the kernel parameters to get Linux to boot.

Unfortunately that's the world we live in. You can either keep your nvidia card and have the best hardware, or you can vote with your wallet and have a lack-luster experience. Pretty much been the story of using Linux Desktop for a long time.
Your experience is not lackluster with non-nvidia cards. These days AMD cards are competetive in both price and performance.
I bought my 1080Ti two years ago and have custom watercooling on it. I can spend a lot of money now and get an AMD card that's a bit slower and consumes much more power. Sure, I should be voting with my wallet but it's not a cheap vote.
AMD cards are not slower, but they do get somewhat worse performance per watt.
What is your use case for external GPU? If you need a good GPU for gaming on Linux, it is better to sell your 1080ti and get a AMD RX580 or even AMD Vega. If it is for CUDA, you can use your CPU's IGP or buy a cheap AMD GPU for desktop and only use NVIDIA for CUDA.

So unless you don't have a IGP and your motherboard doesn't have spare PCI-e slots, it is better to use a dual GPU approach of if you really need a NVIDIA card. Otherwise selling your NVIDIA card and buying a AMD one is a good choice.

Of course, YMMV and you know better than me what is good for you.

Can you not run sway with an Nvidia card?
There are two Linux drivers for Nvidia GPUs: proprietary (nvidia) and open source (nouveau). Only the latter is supported by sway, and it has inferior performance and doesn't support newer cards well.
You can, but only with nouveau, which performs considerably worse. This is because Sway only supports GBM and nVidia only supports EGLStreams.
There might be an option to swap your nvidia card with your integrated GPU through some kernel modesetting scripts if your bios doesn't disable the integrated GPU.
The big news here is fraction scaling without hacks! The hidpi support is awesome.

You can specify a fractional scale instead of a non-fractional one for the ui and then adjusting the fonts/using xrandr.

I setup sway couple days ago from source (with wlroots instead of wlc) and agree with the statement that sway now has the best hidpi support on Linux. I have UHD 15.6 inch laptop monitor and use FullHD 21.5 inch external monitor. Setting the scaling properly was super easy, and the performance is much better compared to my previous Xorg setup. The only thing missing for me currently is tray icons support.
I've been running this for a couple of hours and it seems really solid so far. Feels great to finally have atomic layout updates and absolutely no tearing.

I hope these questions aren't too off-topic:

- How can I get GTK to stop ignoring my theme? It works with Qt using qtstyleplugins, but not with GTK itself, oddly enough. The theme also works fine when using the x11 backend.

- How can I force floating windows to have title bars? Calling 'swaymsg border normal' manually works, but I can't find a way to set a default. Setting 'default_floating_border normal' doesn't help.

- HiDPI support is claimed to be the best in sway, but Qt appears to ignore 'scale 1' on my HiDPI screen and displays it as 'scale 2'.

1 and 3 are problems with GTK and Qt respectively, not something I'm too sure of as a sway developer. Qt's Wayland support and HiDPI support both leave a lot to be desired, but I think you can configure it through environment variables. I'm not sure how to address your GTK problem.

As for forcing floating windows to have title bars, you might have encountered a bug. Can you open a ticket?

Yeah, I figured those might be out of your scope, thanks anyways. I'll open a ticket for the title bar thing in a bit.

Also, thank you for sway and wlroots!

qt scaling worked for me with QT_AUTO_SCREEN_SCALE_FACTOR=1 and QT_FONT_DPI=287.
> Other cool features include support for daisy-chained DisplayPort configurations and improved Redshift support.

Wayland can do redshift now? I thought it wasn't possible yet. Guess it's time to move off of Xorg.

Where can I find a fork where support for EGLStreams has been re-added?
Thank you for all of the hard work you've put into this. i3/sway are what I love most about my Linux desktop!