DK Window Manager

I’ve been working on a window manager since Dec 2019 and it’s finally at a point where I feel ok making it public. Even though I am using it as my daily driver this should still be considered very alpha software and you should expect issues/unwanted behaviour, if you do experience this please post an issue here on or on the tracker linked below, I use a limited set of applications so many issues will go unnoticed unless others bring them to my attention.


It’s a dynamic, layout based tiling window manager, loosely based off dwm (from scratch, not forked) so you kinda know what to expect. yax has more features and supports more freedesktop standards so integration with other programs should be less problematic.

Some noteworthy features are:

  • Fully scriptable.
  • Dynamic or static workspaces.
  • More dynamic tile layout.
  • Gaps, fancy borders, extra layouts and more.
  • Better support for mouse and floating windows.
  • Startup script for configuration and running programs.
  • More layouts and improved tile layout, eg. for a workspace with 6 windows, nmaster set to 1 and nstack set to 2, we would get:
|       |    | s2 |
|       | s1 |----|
|   M   |----| s2 |
|       | s1 |----|
|       |    | s2 |

Check the project README for installation instructions and more info.

I’ll continue to update this post as things change.

Known Issues/ Things being worked on:

  • Better support for taskbars displaying the correct windows/workspace on the correct monitor regardless of whether it’s active or not.


I learned almost everything I know about window management from dwm and that was only possible because of how short and well written it is, I’m trying (but failing) to keep dk like that.


Make a post here or on the issue tracker.


@natemaia have you tried it on a non-arch base? If you’d like, I will give it a go on MXLinux (assuming I can install it and get it off the ground).

1 Like

You don’t need to ask to try it. Please test and report if any issues.

1 Like

What @dimaom said, should work on any system with the xcb library

Back to what we were talking about:

    gdk_win = Gtk.Widget.get_window(win)

Possibly I’m doing something wrong, but this stops my window from being shown at all on X11, and throws numerous warnings on sway.

What I actually need, is just to make the overlay window borderless. Is there a way to set border width 0 to a single window in yaxwm?

Kinda messy but you could use a callback function in the config.h, something like

noborder(Client *c)
    resizehint(c, c->x, c->y, c->w, c->h, (c->bw = 0), 0);
/* use resize(c, c->x, c->y, c->w, c->h, (c->bw = 0)); 
* if you don't care about size hints and want to just force a resize */

Rule rules[] = {
    /*  match,        monitor,  workspace, floating, callback */
    { "^somestring$",  NULL,      -1,         1,      noborder},

I can’t really recommend doing something like this as a standard approach for applications though, let me do a little looking into pygobject and see what I can find.

1 Like

Compiles and runs without any issues on Void.

One trivial annoyance - on a Toshiba laptop, I get that default, fugly right mouse arrow (bspwm does the same thing).


xsetroot -cursor_name left_ptr

to the startup script fixes the problem.

1 Like

I was wondering if you were going to attempt implementing iconify in some way.

My 2 cents: while moving the mouse pointer from one display to another, after leaving screen_0, it appears in the center of screen_1, instead of the proper margin.

Top @natemaia . Thx for the work.


This shouldn’t happen when moving the mouse, the pointer is warped only when the workspace entered is on a different monitor and the switch was not caused by the user moving the mouse.

Just pushed the fix for it, thanks for the catch.

1 Like

I confirm: works well now.

1 Like

Just cloned version: dragging windows between displays (including Alacritty) works properly.

1 Like

Very nice, was meaning to test that out.

1 Like

Question: is there an equivalent to killclient to use from CLI?


Sadly i can’t like this post as many times as i want. So happy about discovering yaxwm and this community. Using it daily, includes all i need, growing according our goals. What can be better? Maybe thoughts reading interface, which will project to my eye nerve, using tiling and controlled based on eye guestures? Who knows. Will see quite soon. Stay tuned.


Sadly no, currently there is no way to interact with/use internal functions aside from bindings, key word being currently. I’ve got something in the works but it will be a bit before it’s at a point where I’ll “release” it.

Until then: Most applications will have means of closing themselves, exit for terminals, dropdown menus for most others, for those that don’t we’re stuck with xkill as @dimaom said or I generally use pkill.

Nothing urgent. Just wanted to configure the exit menu with sgtk-bar. But I must say this: i3-msg and swaymsg are the greatest invention since the invention of the wheel. :wink:

A few short videos showcasing some recent work, still in initial stages and only limited options available.

Edit: Sorry, I just realized how shit the compression is on those after uploading, won’t waste my time with imgur for vids again.