Nwg-shell for sway Wayland compositor

Hi guys and gals,

@sammiev pointed me to this place and showed the Garuda Sway thread by @OdiousImp - many thanks!

I abandoned GNOME - the most beautiful, but far too stiff DE - in 2019, and switched to sway, that fits my workflow best. As I am a compulsive DIY enthusiast, until now I wrote quite a lot of stuff to give sway the feel and look to my taste. Feel free to use it for even better sway experience.

nwg-shell is not really a thing so far, but rather a set of my projects aimed (at least primarily) at sway. Let me introduce them to you.

  • autotiling: a script that uses the i3ipc-python library to switch the layout splith/splitv depending on the currently focused window dimensions. Works on sway and i3.

  • Azote: GTK+3 - based picture browser and background setter, as the frontend to the swaybg (sway/Wayland) and feh (X windows) commands. Developed with multi-headed setups in mind. Azote also includes several colour management tools.

  • nwg-launchers: a set of launchers including application grid, windowed dmenu replacement and a multi-purpose button bar. This project is a C++ successor of sgkt-menu, which was written in python, but turned out too slow. As I'm in fact useless at C, it's been heavily improved by Contributors, first of all Sergey Smirnykh.

  • nwg-panel: GTK3-based graphical panel with all the bells and whistles you might have loved in tint2. Includes the Controls module, that displays a GNOME-like popup window, and 7 other modules: Clock, CustomButton, Executor, Playerctl, Scratchpad, SwayTaskbar, SwayWorkspaces. Supports tint2-like executors, so may display anything you want.

  • gopsuinfo: Go version of my old psuinfo python script. Provides output to use in nwg-panel executors.

  • nwg-dock: not yet packaged last piece of the puzzle, written in golang. Displays a dock for dock lovers. :smiley:

If someone of you is interested in the stuff above, I could inform you on updates in this thread.


@nwg always enjoyed testing some of your work. Nwg Control Center was one of the great projects you have done as well.
Thanks for all your hard work. :+1:


All the stuff, translated into python, went to the Controls module in the panel. :slight_smile:


By the way:

nwg-panel 0.2.1 released

Azote 1.9.1 released


I know I've thanked you before. But seriously, thank you again for this. It's one of my absolute favorite AUR packages of all time. Welcome to Garuda!


Thank you! Honestly, I couldn't live without it, too. :slight_smile:


@nwg Nice to meet you here! nwg-lauchers is one of the my favourite menu launcher. I am using it for some time, it is also default menu in Qtile.


Nice to meet you, too!

Even though I heavily use python, I haven't seen qtile for over a year. Need to take a look.



are now in chaotic-aur repo


Excellent, many thanks!


Autotiling 1.5 released


Almost ready: nwg-dock. It's a fully configurable (w/ command line arguments and css) dock, written in Go, aimed exclusively at sway. In the pictures below shown together with nwg-panel. Help in the last screen. More info on GitHub.


Will it work with wayfire?


No. Needs sway ipc.


nwg-dock 0.1.0

Includes improvement to autohide mode. See README.


Hey dude, I like what you've done with things on the Wayland side. I remember talking with you back in the fall, nice progress since.
I'm not sure (as you said yourself) the dock is what I expect with Sway (for instance), but the possibility of putting together something closer to a traditional GUI DE as a gateway drug for non-tiling users is quite neat.
Have you seen the River project? Much like bspwm. I could see it being tricked out nicely with your tools...in fact I may try that and see what works w/o sway ipc.
Anyway, thanks for your work!



Initially I wanted my stuff to work on as many WMs, as possible. It's a mistake, that inevitably leads to unwanted trade-offs. And testing takes ages. For instance: current development version of nwg-launchers Siborgium is working on behaves perfectly well on sway, but still can't be published due to X11-related issues. I do regret not limiting its appliance to wlroots-based WMs only.

Have you seen the River project?

Not yet. What I would expect to work: Azote, nwg-launchers, nwg-panel (except for SwayTaskbar & SwayWorkspaces modules). But I can't be sure.

Possibly one day I'll be able to add some wlr-taskbar to the panel, but for now it exceeds my skills. I'm just a hobbyist, after hours programmer, not a pro.


Work out of the box on my i3wm :slight_smile:

X window managers (i3, Openbox, dwm etc.)

X window managers (i3, Openbox, dwm etc.)

You need to execute ~/.fehbg from your window manager’s startup file. You'll also need optional feh and xorg-xrandr packages.

Important: optional xorg-xrandr and feh packages are necessary.

Maybe the problems start if I remove nitrogen :wink: or on next boot. :wink:

I like it very much, not only because of the beautiful preview of my wallpapers. :smiley:

Very good work. Thank you @nwg .

Will add it to the Garuda i3wm ISO soon instead of nitrogen. :slight_smile:



Yes, Azote should work anywhere, where swaybg or feh does. It's just a frontend to them, not a setter. Especially aimed at multi-headed setups.


nwg-dock 0.1.1

  • setting command env variables hopefully fixed
  • dock window bound to hotspot's gdk.Monitor in autohide mode: closes #2
  • refreshing hidden dock restored, for aesthetic reasons