You are not logged in.

#1 2013-08-29 13:40:43

Unia
Member
From: Stockholm, Sweden
Registered: 2010-03-30
Posts: 2,486
Website

DragonflyWM: a modern EWMH-compliant tiling window manager

Before I start and introduce my Window Manager, yes here is yet another one! I know you've been thinking it since you saw the title wink

Going to show off what I've been working on the last three weeks; my own window manager. It's basically MonsterWM with some EWMH compliancy to work with 3rd party panels, pagers and window switchers. Minimizing clients is still on the todo-list, but there are some bugs I have to squish first.

I'm just putting it out here to get it known by people that I know can handle beta software (I haven't had any crashes ever (duh, it's based on an already stable and widely used WM!), but there are some strange things now and then) and who can possibly contribute some as I am mostly hitting dead ends now in my attempts to solve the remaining bugs.

It has multiple layout à la MonsterWM:

schermafdrukvan2013-08-29125713.png

schermafdrukvan2013-08-29125730.png

schermafdrukvan2013-08-29125735.png

schermafdrukvan2013-08-29125732.png

A 3rd party window switcher (xwinmosaic):
schermafdrukvan2013-08-29130322.png

If you are interested in trying this out or reviewing the code, the GitHub repository can be found here: https://github.com/Unia/dragonflywm

Build instructions can be found in the README and for the default configurations options, see config.def.h or the manpage. For bugs or the todo list, see TODO.

Thanks! big_smile


If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres

Offline

#2 2013-08-29 14:04:37

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Unia wrote:

Before I start and introduce my Window Manager, yes here is yet another one! I know you've been thinking it since you saw the title

I was hoping this was an already-existing WM I somehow missed ;P



Looks nice. Feel free to add it to the wiki.

Offline

#3 2013-08-29 14:12:46

Unia
Member
From: Stockholm, Sweden
Registered: 2010-03-30
Posts: 2,486
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

karol wrote:
Unia wrote:

Before I start and introduce my Window Manager, yes here is yet another one! I know you've been thinking it since you saw the title

I was hoping this was an already-existing WM I somehow missed ;P

Impossible tongue

karol wrote:

Looks nice. Feel free to add it to the wiki.

Thanks, I will when I have added all the features I want and fixed (most of) the bugs.


If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres

Offline

#4 2013-08-29 15:27:08

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,442
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Unia wrote:

Thanks, I will when I have added all the features I want and fixed (most of) the bugs.

Ha ... window managers are never done.  They just reach various levels of stagnation.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#5 2013-08-29 15:44:55

Unia
Member
From: Stockholm, Sweden
Registered: 2010-03-30
Posts: 2,486
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Trilby wrote:
Unia wrote:

Thanks, I will when I have added all the features I want and fixed (most of) the bugs.

Ha ... window managers are never done.  They just reach various levels of stagnation.

True.. but we haven't yet managed to get to level one! By the way, have you seen the email I send you?


If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres

Offline

#6 2013-08-29 15:52:08

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,442
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Crap ... yes, I did.  And I planned to reply.  But working at a university the start of a semester is pretty crazy.  That went into the "reply to later" pile - which any academic knows is a pergatory from which tasks never escape.  Let me go pull it back up.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#7 2013-08-29 15:54:27

Unia
Member
From: Stockholm, Sweden
Registered: 2010-03-30
Posts: 2,486
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Sure thing, take your time! wink


If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres

Offline

#8 2013-08-31 04:32:33

tommykr
Member
From: Poland
Registered: 2009-03-15
Posts: 51

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Hi.
This WM look very nice.
I have one question. In config.h I must define all costom commands (ex. term, browser) ? I tried insert keyboard shortcut without this, ex.

 { 0,                 0x1008ff11,     spawn,          {.com = "amixer set -q Master 5%-"}},

but not working.

Offline

#9 2013-08-31 05:48:50

bohoomil
Member
Registered: 2010-09-04
Posts: 2,376
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

You keep surprising me. And I think my sense of adventure has just woken up. Time to test! smile


:: Registered Linux User No. 223384

:: github
:: infinality-bundle+fonts: good looking fonts made easy

Offline

#10 2013-08-31 11:01:05

Unia
Member
From: Stockholm, Sweden
Registered: 2010-03-30
Posts: 2,486
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

tommykr wrote:

Hi.
This WM look very nice.
I have one question. In config.h I must define all costom commands (ex. term, browser) ? I tried insert keyboard shortcut without this, ex.

 { 0,                 0x1008ff11,     spawn,          {.com = "amixer set -q Master 5%-"}},

but not working.

You have to do it like the examples/defaults.

EDIT: For that command, you would do something like this:

static const char *voldown[] = { "amixer", "-q", "sset", "Master", "5%-", "unmute", NULL };
....
{ 0,                 0x1008ff11,     spawn,          {.com = voldown}},
bohoomil wrote:

You keep surprising me. And I think my sense of adventure has just woken up. Time to test! smile

Great, thanks!

Last edited by Unia (2013-08-31 11:03:54)


If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres

Offline

#11 2013-08-31 12:12:56

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,442
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Wouldn't this also work:

{ 0,                 0x1008ff11,     spawn,          {.com = { "amixer", "-q", "sset", "Master", "5%-", "unmute", NULL }}},

"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#12 2013-08-31 12:18:28

tommykr
Member
From: Poland
Registered: 2009-03-15
Posts: 51

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Unia wrote:

EDIT: For that command, you would do something like this:

static const char *voldown[] = { "amixer", "-q", "sset", "Master", "5%-", "unmute", NULL };
....
{ 0,                 0x1008ff11,     spawn,          {.com = voldown}},

Thanks for Your answer.
I had big hope that I would not write definitions hmm

Time for tests...

Offline

#13 2013-08-31 12:18:55

Unia
Member
From: Stockholm, Sweden
Registered: 2010-03-30
Posts: 2,486
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

@Trilby,

Honestly, it didn't even occur to me to try it like that wink I guess it will!

Last edited by Unia (2013-08-31 12:19:13)


If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres

Offline

#14 2013-08-31 12:29:01

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,442
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Also you could have one macro definition like some other wm's do:

#define SHCMD(cmd)        {.com = (const char *[]) { "/bin/sh", "-c", cmd, NULL } }
...
{ 0,                 0x1008ff11,     spawn,          SHCMD("amixer -q sset Master 5%- unmute") },

Of course I've always found this ugly ... it spawns a new and completely useless shell for everything that you launch.

Last edited by Trilby (2013-08-31 12:30:45)


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#15 2013-08-31 12:53:18

Unia
Member
From: Stockholm, Sweden
Registered: 2010-03-30
Posts: 2,486
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

The macro is there in config.def.h

Last edited by Unia (2013-08-31 12:53:25)


If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres

Offline

#16 2013-08-31 14:31:34

Awebb
Member
Registered: 2010-05-06
Posts: 6,272

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

When I read the name, I thought I had read about this WM a million times before. Then I realized, that I expected something related to BSD.

Anyway, one can never have enough different window managers :-D

Offline

#17 2013-08-31 14:39:19

tommykr
Member
From: Poland
Registered: 2009-03-15
Posts: 51

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Trilby wrote:

Also you could have one macro definition like some other wm's do:

#define SHCMD(cmd)        {.com = (const char *[]) { "/bin/sh", "-c", cmd, NULL } }
...
{ 0,                 0x1008ff11,     spawn,          SHCMD("amixer -q sset Master 5%- unmute") },

Of course I've always found this ugly ... it spawns a new and completely useless shell for everything that you launch.

Thanks, Trilby. Unfortunately, I already converted all my shortcuts from other wm... alopex smile

Offline

#18 2013-09-01 22:43:19

hellomynameisphil
Member
From: /home/phil/Vancouver
Registered: 2009-10-02
Posts: 257
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

I was getting warnings re: missing field initializers in app rules when running make on source from git. I added extra fields to my app rules as below and the warnings disappeared, but my attachaside preferences still don't seem to be respected:

static const AppRule rules[] = { \
    /* class      instance  title  desktop  follow  float  attachaside */
    { "Firefox",    NULL,   NULL,     0,    False,  False, True },
    { "MPlayer",    NULL,   NULL,     3,    True,   True,  True },
    { "Gimp",       NULL,   NULL,     3,    False,  False, True },
};

Also getting some funky behaviour when toggling the panel gap. (I realize the expression 'funky behaviour' does not constitute a rigorous bug report. smile Is this a known issue?

Offline

#19 2013-09-02 09:26:39

Doomcide
Member
Registered: 2011-08-22
Posts: 221

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

Ha, I knew it. This was only a matter of time. I'll try it later, good job Unia! smile

Offline

#20 2013-09-02 14:27:44

Unia
Member
From: Stockholm, Sweden
Registered: 2010-03-30
Posts: 2,486
Website

Re: DragonflyWM: a modern EWMH-compliant tiling window manager

hellomynameisphil wrote:

I was getting warnings re: missing field initializers in app rules when running make on source from git. I added extra fields to my app rules as below and the warnings disappeared, but my attachaside preferences still don't seem to be respected

This should be fixed by now - I forgot to update config.def.h.

hellomynameisphil wrote:

Also getting some funky behaviour when toggling the panel gap. (I realize the expression 'funky behaviour' does not constitute a rigorous bug report. smile Is this a known issue?

I see what you mean, I wasn't aware of this yet. It's added to the list wink

Doomcide wrote:

Ha, I knew it. This was only a matter of time. I'll try it later, good job Unia! smile

Thanks!


If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres

Offline

Board footer

Powered by FluxBB