Hi Cedric,

At 1251423969 time_t, Cedric GESTES wrote:
> i reloaded tabulous from heaven.

That's brave!

> The first patch is tabulous itself. The second one is a patch against
> tasklist to display something like Tab[1/3] in the name of tabbed
> client.

Well, this is bad, you are not allowed to make awful depends on anything
else that is not in awful.

> I wonder if awful.tab would be a better and standard name than tabulous.

If you want to make awful's tasklist depends on tabulous, that's
mandatory. But I'm not sure adding tab support in awful's tasklist is
nice.

You maybe can add a special label function in tabulous that can be used
in awful's tasklist.

> I refactored tabulous and tried to cleanup the code at the maximum. I
> removed the hook on tag. I cant find a utility to that one (was
> unhidding client not in the first selected tag). Am I wrong?
> Now the code support multiple tag.

I'm not sure anyone can answer your question. At least I can't, I wrote
that a year ago and can't remember anything about it. And it has been
re-hacked meanwhile, so… You're the boss now. :)

> The autotab_start feature seem's wrong when using teardrop for
> example. I dont think it's the good way to implement it, as well as
> the function was there before with the same implementation. I should I
> get ride of it? (maybe this belong to a user modified rc.lua)

Probably yes.

> There is a little issues with tab, when switching from one tab to
> another there is a little flickering and sometime focus is not on the
> good client. I thing lua/c hacking is needed to remove it, and I dont
> know Awesome so well to do that for now. Because now the following
> happens:
> --keep the client at the same place
> cl:swap(p)

FWIW, you should not rely on client order to arrange your tab. It's
maybe easier to say than it is to implement, but keep in mind FS#571.

> --ouch
> cl.hidden = false
> --double ouch
> p.hidden = true
> --Bang! (insert a little sleep here and the focus is always good)
> capi.client.focus = cl

Seems like a bug indeed. This might be related to koniu already
reported. I'd need a simple way to reproduce it (like a patch to default
config with some keybinding or whatever).

> I would like to display a new tabbar upside the client window to
> switch between each client in a tab, but I wonder if it would not be
> better to wait for the $FS542 ? Titlebar seems a little broken in
> HEAD.

I'm not sure you have to wait this bug to be closed to implement
titlebar. All you want to add in tabulous is not a full titlebar I
guess, but rather a simple widget that can be put in titlebar to display
some sort of information.

> diff --git a/lib/tabulous.lua.in b/lib/tabulous.lua.in
> new file mode 100644
> index 0000000..e837f6b
> --- /dev/null
> +++ b/lib/tabulous.lua.in
> @@ -0,0 +1,384 @@
> +---------------------------------------------------------------------------
> +-- @author Lucas de Vries <lucasdevr...@gmail.com>
> +-- @author Julien Danjou <jul...@danjou.info>
> +-- @author Cedric GESTES <cta...@gmail.com>
> +-- @copyright 2008 Julien Danjou, Lucas de Vries
> +-- @copyright 2009 Cedric GESTES

@copyright can be only on one line.

> +-- @release @AWESOME_VERSION@
> +---------------------------------------------------------------------------
> +
> +------------------------
> +--- Samples keybindings:
> +-- --- Tabulous, tab manipulation
> +-- <code>
> +--  globalkeys = awful.util.table.join(globalkeys,
> +-- -- remove the focused client from the tab
> +-- awful.key({ modkey, "Shift"   }, "y", tabulous.tab_remove),
> +-- -- cycle through clients in a tab
> +-- awful.key({ modkey,           }, "y", tabulous.tab_cycle),
> +-- -- create a new tab and/or add the next client to the tab
> +-- awful.key({ modkey, "Control" }, "y", tabulous.tab_add_next_client),
> +-- -- create a tab from all marked clients
> +-- awful.key({ modkey, 'Shift'   }, "t", tabulous.tab_create_from_marked)
> +-- )
> +-- </code>
> +-- the autotab_start function can be used to append client to the current tab
> +-- when a client is created and the current focused client is tabbed
> +
> +--------------------
> +--- Emitted Signals:
> +-- client:("tabbed")   when a client is added to a tab
> +-- client:("untabbed") when a client is removed from a tab
> +-- client:("tabhide")  when a client is hidden in a tab
> +-- client:("tabshow")  when a client is shown in a tab
> +
> +--------------------------
> +--- Possible Improvements:
> +-- the tab_display function is not perfect (there is flickering)
> +

Your code is nice but totally not handled by luadoc where it is. It
should be just before module(). Take example at the awful.rules file,
that you already know.

I'd also suggest to prefix events so there's not conflicts with possibly
another module doing the same kind of things in a long future.

Like tabulous::tabbed or tab::tabbed, etc. As you wish.

Anyway, good job. :)

Cheers,
-- 
Julien Danjou
// ᐰ <jul...@danjou.info>   http://julien.danjou.info
// 9A0D 5FD9 EB42 22F6 8974  C95C A462 B51E C2FE E5CD
// Ferns will rule the world.

Attachment: signature.asc
Description: Digital signature

Reply via email to