dmedvinsky / gsimplecal

Simple and lightweight GTK calendar (BSD license)
http://dmedvinsky.github.io/gsimplecal
Other
197 stars 19 forks source link

provide config to make gsimplecal floating #8

Closed thkoch2001 closed 13 years ago

thkoch2001 commented 13 years ago

Hi,

I'm using the awesome wm and usually have the fullscreen layout selected. When starting gsimplecal it thus occupies the full screen. As I understand it's possible for an application to tell the wm that it would prefer to be displayed in floating mode? Could you make this a configuration item?

Thx, Thomas Koch

dmedvinsky commented 13 years ago

Sure, I'll see what I can do.

dmedvinsky commented 13 years ago

Can't find anything about floating mode hints in the EHWM specs. I'm still digging into this, but not sure this is possible.

Here is a solution for you for a while, or maybe forever, if it's not possible. :-) You should add this line in your awful.rules.rules object in your rc.lua:

-- Set Gsimplecal to the currently focused tag, as floating
{ rule = { class = "Gsimplecal" }, properties = { floating = true } },

Look here for the full example: http://git.sysphere.org/awesome-configs/tree/rc.lua#n486

thkoch2001 commented 13 years ago

Hi,

I might have found how awesome decides whether it should float a client or not.

lib/awful/client.lua.in, function floating.get(c):

        if c.type ~= "normal"
            or c.fullscreen
            or c.maximized_vertical
            or c.maximized_horizontal
            or isfixed(c) then
            return true

the isfixed logic from the same file:

h = c.size_hints
    if h.min_width and h.max_width
        and h.max_height and h.min_height
        and h.min_width > 0 and h.max_width > 0
        and h.max_height > 0 and h.min_height > 0
        and h.min_width == h.max_width
        and h.min_height == h.max_height
        return true

So you could give gsimplecal any other _NET_WM_WINDOW_TYPE value then NORMAL or make the isfixed(c) function return true. (see http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#NORESIZE )

dmedvinsky commented 13 years ago

Hey Thomas,

I've actually been playing with it today in the morning, trying to set all kinds of hints and their combinations (actually, I tried everything I thought might do the trick from the GtkWindow documentation) and gtk_window_set_resizable worked for me.

The problem is, I'm currently using XMonad, and Awesome is not in the Arch Repositories, and building it by hand required installing to many deps, and I sort of gave up on testing it.

So if you could test the latest master with Awesome that would be great.

thkoch2001 commented 13 years ago

Thank you. I tested it and awesome indeed opens the calendar in floating mode, if the window is set to be unresizable. You may mention this in the documentation as I've indicated in a comment to the commit.

dmedvinsky commented 13 years ago

Yeah, thanks, I will.