You are not logged in.

#26 2012-08-14 15:04:38

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Alright, thats definitely something different then.  It seems I have a good bit of tinkering to do to track that down.  I have not had that result yet.

Edit: doomicide, when you say the whole statusbar disappeared, you mean clock and all?  The only way that should even be possible is if you have another WM in xinitrc after ttwm and ttwm crashes and the other takes over.  The statusbar is drawn directly on the root window, there is no way for the root window to be redrawn without it (while ttwm is running).  If the statusbar is gone, what is left in it's place?

Last edited by Trilby (2012-08-14 21:14:02)


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

Offline

#27 2012-08-15 16:13:49

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Haven't had the freezes since the last commit. Experienced the ghost-clients, though. Some minor "issues": xkill doesn't work, "floating" gtk and java windows doesn't work, for urxvt it does; I know this functionality is a byproduct and I don't need/expect any solution for this. wink

EDIT: Freeze happened again, this time when mplayer finished playing a video and closed... The only thing in common to those freezes, I noticed, is that jDownloader (a java app) is running everytime it happens....

EDIT2: It happened again without jDownloader and again a window closed, I'm starting to suspect it has to do with that. Maybe a window was closing on another ws when I thought it froze without it.

Last edited by Doomcide (2012-08-16 07:20:08)

Offline

#28 2012-08-17 15:13:51

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

Re: Alopex: a tiling tagging tabbed window manager with fur

I wrote a patch for ttwm that gets rid of the status bar. This is the first time I do something in C other than editing config.h files wink
patch

I'll try to write one for ratpoison-like messages (current window, stack windows etc.) on the weekend. Maybe using notify-send?

Edit: Just noticed ttwm uses ~100% with the patch. Will look into this later, tips are highly appreciated.

Last edited by Doomcide (2012-08-17 15:50:53)

Offline

#29 2012-08-17 16:12:32

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

Re: Alopex: a tiling tagging tabbed window manager with fur

I wonder if this would help with the problems you're having with Java windows:
http://tools.suckless.org/wmname

Offline

#30 2012-08-17 16:22:20

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

Re: Alopex: a tiling tagging tabbed window manager with fur

For an early excursion into C, I have to say you did a damn good job.  It seems you pretty cleanly got rid of everything the status bar uses.

You could simplify the main loop further to be just the following (lines 339-354 in that diff)

    while(running && !XNextEvent(dpy, &ev))
        if(handler[ev.type]) handler[ev.type](&ev);

All the file descriptor stuff was added only to allow for the update status to run on a timer while also receiving events from the X server.  The above replacement will probably get rid of the high cpu use.

This weekend I'll try to play around with some Java apps to see if I can replicate your errors.  In my day to day use I only use urxvt, mupdf, and a web browser.  I know these work well wink

I do have a couple java apps I can play with to see if I can cause, then solve, problems.

EDIT: Thanks Hellomynameisphil, that gives me a good starting point.  I'll see how hard it would be to make ttwm play nice with jdk on it's own, but if it would require any acrobatics in the code, I'll just recommend that suckless tool for anyone who wants to use java apps.

EDIT: Some relevant info on Java in nonreparenting WMs.  Doomcide, could you try one of the solutions on that page?  If they work I'll be sure to link to them or describe them in the TTWM documentation.  If they don't work, I'll know the problem is elsewhere.

I just tested with Jabref (a java app) and it seems to work.  I occassionally got a plain/empty grey box, but it was repainted when I switched workspaces and came back.  I did not get anything more severe though.  Exporting the variable as described in the awesome wm wiki seems to have fixed the blank grey box issue with jabref.

Last edited by Trilby (2012-08-17 16:40:06)


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

Offline

#31 2012-08-17 17:15:40

bgc1954
Member
From: Edmonton, AB, Canada
Registered: 2006-03-14
Posts: 1,160

Re: Alopex: a tiling tagging tabbed window manager with fur

Just playing around with ttwm this morning and I was having a hard time getting it to accept keyboard commands on my desktop.  After some time, I was checking my .xinitrc for something that might be interfering with the keyboard and realized ttwm has a problem if the numlock key is on.  My .xinitrc calls for numlockx and I remembered having some issues with numlock on goomwwm as well on my desktop but not on my netbook--of course the netbook has no numlock key.  Just thought I'd point it out.  Nice work so far. smile


Time is a great teacher, but unfortunately it kills all its pupils ... - Louis Hector Berlioz

Offline

#32 2012-08-17 17:23:58

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Thanks for the info.  In comparison with that of DWM, my key handling functions are very 'simple'.  I suspect the added bits in DWM allow it to be more robust in such situations.  I'll see if I can find a happy medium.


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

Offline

#33 2012-08-17 18:53:13

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Trilby wrote:

For an early excursion into C, I have to say you did a damn good job.  It seems you pretty cleanly got rid of everything the status bar uses.

You could simplify the main loop further to be just the following (lines 339-354 in that diff)

    while(running && !XNextEvent(dpy, &ev))
        if(handler[ev.type]) handler[ev.type](&ev);

Thank you for the compliment and the code, it works smoothly now smile

hellomynameisphil wrote:

I wonder if this would help with the problems you're having with Java windows:
http://tools.suckless.org/wmname

Trilby wrote:

This weekend I'll try to play around with some Java apps to see if I can replicate your errors.  In my day to day use I only use urxvt, mupdf, and a web browser.  I know these work well wink

I do have a couple java apps I can play with to see if I can cause, then solve, problems.

EDIT: Thanks Hellomynameisphil, that gives me a good starting point.  I'll see how hard it would be to make ttwm play nice with jdk on it's own, but if it would require any acrobatics in the code, I'll just recommend that suckless tool for anyone who wants to use java apps.

EDIT: Some relevant info on Java in nonreparenting WMs.  Doomcide, could you try one of the solutions on that page?  If they work I'll be sure to link to them or describe them in the TTWM documentation.  If they don't work, I'll know the problem is elsewhere.

I just tested with Jabref (a java app) and it seems to work.  I occassionally got a plain/empty grey box, but it was repainted when I switched workspaces and came back.  I did not get anything more severe though.  Exporting the variable as described in the awesome wm wiki seems to have fixed the blank grey box issue with jabref.

I'm already using wmname, but I set the Variable (_JAVA_AWT_WM_NONREPARENTING=1) and see if it helps. Although I'm not really sure if the java app is responsible for it, as it wasn't running one time the freeze happened.

EDIT: Before you waste more time in troubleshooting, I have to inform you that my mainboard died yesterday and the first thing that stopped working was the graphics card, so I'm pretty sure the problem was on my end and related to that. I'll inform you if it should happen again wink

Last edited by Doomcide (2012-08-18 09:40:24)

Offline

#34 2012-08-18 19:54:00

fijit
Member
Registered: 2012-07-06
Posts: 24

Re: Alopex: a tiling tagging tabbed window manager with fur

Thanks Trilby for sharing this. I have been testing ttwm for the last couple of days and it fits very well with my way of working. No bugs found (so far)!

Offline

#35 2012-08-23 18:37:05

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

Re: Alopex: a tiling tagging tabbed window manager with fur

In ttwm.c line 289:

void killclient(const char *arg)

Why is the argument needed? killclient is initialized without one and doesn't need any.

Offline

#36 2012-08-23 20:27:18

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Hmm, I'll have to check the initialization, it should have an argument because (I believe) the keybinding set up requires all functions called from key bindings to have the same argument type.

DWM gets around this issue by using a union, but that always seemed a little odd to me.  I just decided to use a const char * as the argument for all keybound functions.  In some cases a NULL pointer can be passed and ignored as in the case of killclient.  But this argument is still needed to have the keybinding array work.

I will double check my assumption on that though to see if there is any streamlining that could be done.

Edit: it seems there was a typo in the function prototype - I'm surprised the compiler didn't complain about it.  As a function that can be used in a keybinding, though, killclient does need to match the (*void)(const char *) type that the key array expects.  The typo fix will be in the next push - but as it causes no error (nor surprisingly even a compiler warning from what I can see) it's not worth updating just yet.

Last edited by Trilby (2012-08-24 00:37:20)


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

Offline

#37 2012-08-26 14:09:56

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Just wanted to point out that I wrote some more patches, implementing, among other stuff, a simple rule system.
-> https://github.com/Doomicide/ttwm-patches/
Some functions aren't initialized at the proper line (not alphabetically sorted), but doing so would break compability between the patches.
All Feedback is much appreciated smile

Last edited by Doomcide (2012-08-26 14:10:14)

Offline

#38 2012-08-26 14:46:03

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Cool, good stuff.  I thought you said you just started with C ... I haven't tried these patches, but they all look well written.

I added a link to your patches to the README.

Last edited by Trilby (2012-08-26 14:50:19)


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

Offline

#39 2012-08-26 14:53:05

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

Re: Alopex: a tiling tagging tabbed window manager with fur

FYI: I've just found a 'bug' I'll patch up tomorrow:
The calculation of window sizes is a little rough and seems to cause a 1px overlap of the two panels.  It doesn't cause any real problems, but it can be a bit ugly at times.


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

Offline

#40 2012-08-28 01:01:26

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Another big bug I'd like some help tracking down.

I just realized the mouse bindings for moving and resizing windows don't work.  I rarely use these so I don't know when it started.  It seems to work on terminal windows but nothing else which makes it a bit more odd.  I look through the code and everything looks to be in order.  I even simplified the relevant parts to be more like the TinyWM ancestor, but it didn't help.

To start from the opposite side, I thought I'd go to a plain vanilla TinyWM code base again, and start adding on until it quit working.  But even TinyWM straight out of the AUR no longer can move or resize windows on my computer.  Can anyone else check this (first in tinywm, then in ttwm).  I have this problem on three computers with ttwm, and just found it with one computer for tinywm.  I'll try tiny on the other two tomorrow.

Last edited by Trilby (2012-08-28 01:01:52)


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

Offline

#41 2012-08-28 01:09:33

2ManyDogs
Forum Moderator
Registered: 2012-01-15
Posts: 4,642

Re: Alopex: a tiling tagging tabbed window manager with fur

I just built tinywm from the AUR and I can move and resize windows normally (I'm posting from tinywm now). I didn't know ttwm had move and resize windows; I'll go check those now.

(edit) -- I lied; I can move and resize any window in ttwm. I don't know why you can't.

Last edited by 2ManyDogs (2012-08-28 01:18:34)


How to post. A sincere effort to use modest and proper language and grammar is a sign of respect toward the community.

Offline

#42 2012-08-28 01:15:59

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Boy do I feel stupid.  Yes, TinyWM is working fine.  As I'm not sure how (or if there is a way) to launch apps in a vanilla tinywm, I launched urxvt from xinitrc ... but I forgot to background it with a "&".

Thanks for checking, but sorry for wasting your time on that.  Now to figure out why this is failing in ttwm.

TTWM kept this code from TinyWM.  I always thought it was working because, as now, it works with terminals (at least urxvt).  But I've found it doesn't seem to work with any other window I've tried.  I think I have a vague idea why this might be ... but so far it is a very vague idea.  The thought I have is that in most GUI windows, all the "tools" and buttons and textboxes, can be subwindows.  Perhaps TTWM is trying and failing to resize those while terminals don't have subwindows.

But if this is the case, I have no idea why it'd work in TinyWM.

Edit: thanks for the follow up info.  I can resize and move urxvt windows freely just as in tinywm ... quite odd this one is.

Last edited by Trilby (2012-08-28 01:17:11)


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

Offline

#43 2012-08-28 01:19:25

2ManyDogs
Forum Moderator
Registered: 2012-01-15
Posts: 4,642

Re: Alopex: a tiling tagging tabbed window manager with fur

I just tried to move a firefox window and I can move and resize that too. I swear it wasn't working when I first tried it, but it is now.

(edit) this is weird. I opened a leafpad window and I can't move or resize that. I can still move and resize firefox and urxvt, but not leafpad. I'll try to see if I can make some consistent sense out of what's happening.

Last edited by 2ManyDogs (2012-08-28 01:23:14)


How to post. A sincere effort to use modest and proper language and grammar is a sign of respect toward the community.

Offline

#44 2012-08-28 01:23:19

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Hmm.  I put some print-to-stderr checks in the even handler.  TTWM is registering all the mouse events properly, but it just fails at resizing some windows.

For me urxvt works as expected.  Luakit and leafpad do not.  I just tried firefox too, and that can be moved and resized as expected.

At least this is gathering some data to form a pattern, but no pattern is becoming apparent to me.

Edit:

Works                                                   Fails
=============================
Urxvt                                                    Luakit
Firefox                                                  Leafpad
VirtualBox (Qt)                                     Battle for wesnoth
Kate (KDE text editor)                          LXAppearance (just installed to test)
                                                             Sqliteman
                                                             Qtfm
                                                             Rox
                                                             XSheet (another personal project with no toolkit dependency whatsoever - but a crap load of errors left from the last half-done git push).

Could this be a toolkit (gtk) related issue....

Last edited by Trilby (2012-08-28 01:42:26)


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

Offline

#45 2012-08-28 01:26:31

2ManyDogs
Forum Moderator
Registered: 2012-01-15
Posts: 4,642

Re: Alopex: a tiling tagging tabbed window manager with fur

Well, at least it works the same way for both of us. I don't have luakit, but I tried dwb and I can't move or resize that either. I'll try to get more data.


How to post. A sincere effort to use modest and proper language and grammar is a sign of respect toward the community.

Offline

#46 2012-08-28 01:27:02

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

Re: Alopex: a tiling tagging tabbed window manager with fur

I'm trying to find some more non-gtk gui apps to test.

OK, it seems a pattern may be forming.  GTK apps fail.  QT and other toolkits (Mozilla) or non-toolkit apps seem to work (MAYBE ... at least this is a testable idea).

Last edited by Trilby (2012-08-28 01:29:40)


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

Offline

#47 2012-08-28 01:33:48

2ManyDogs
Forum Moderator
Registered: 2012-01-15
Posts: 4,642

Re: Alopex: a tiling tagging tabbed window manager with fur

I can't resize or move qtfm. But qtorrent works.

Last edited by 2ManyDogs (2012-08-28 01:37:28)


How to post. A sincere effort to use modest and proper language and grammar is a sign of respect toward the community.

Offline

#48 2012-08-28 01:37:00

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

Re: Alopex: a tiling tagging tabbed window manager with fur

Just verified, I can't move or resize qtfm either.

Reminds me of the cartoon line "That's a nice hypothesis you have there, it'd be a shame if someone tested it."  Back to the drawing board.


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

Offline

#49 2012-08-28 01:38:36

2ManyDogs
Forum Moderator
Registered: 2012-01-15
Posts: 4,642

Re: Alopex: a tiling tagging tabbed window manager with fur

Just to make sure I tried moving and resizing all these apps in tinywm, and they all work there. So it must have something to do with what you changed.

(there's no built-in way to launch things in tinywm, I just use xbindkeys and create a sequence for urxvt and one for dmenu)

Last edited by 2ManyDogs (2012-08-28 01:39:53)


How to post. A sincere effort to use modest and proper language and grammar is a sign of respect toward the community.

Offline

#50 2012-08-28 01:43:06

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

Re: Alopex: a tiling tagging tabbed window manager with fur

AHA!  Found it.  Thank you so much for your help 2ManyDogs.  It turns out I must have overeagerly copied and pasted a line from TinyWM into the wrong place.  There are three relevant events, and a conditional test that should only be in the buttonpress event, but I also had it in the motion notify event.

It was the first line of the motionnotify event.  The fixed version is up on git.  I'm verifying with an aur rebuild now.

Edit: verified, a fresh AUR build is working for me.

Edit2: for "instructional" purposes, these are the very same mouse bindings from TinyWM, so they work just the same.  But the floating state of the window is a transient state: it will be put back into tiling at the next call to the stack function (eg, and window creation or closing, any changing of desktops, or switching window focus).

Last edited by Trilby (2012-08-28 01:56:13)


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

Offline

Board footer

Powered by FluxBB