Re: Obvious and Wiki
[...] Is Obvious officially supported or not? This is because I want to put it on the page to incite people to use Obvious repo so it grows/gets more support. [...] If you mean Is obvious a part of Awesome, then no, it's not a part of awesome, it's an own project. If you however mean Can I go to #awesome and ask about Obvious?, then yes. Garoth and I hang out there nearly 24/7, and as it's out project, we'd be glad to help anyone getting started with it. Seeing that wicked is also mentioned on the front page, and that wicked is also a seperate project, I think it won't hurt to link it there. Thanks a lot for your effort :) -- GCS/IT/M d- s+:- a--- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o-- K- w--- O M-- V PS+ PE- Y+ PGP+++ t+ 5 X+ R tv+ b++ DI+++ D+++ G+ e- h! r y+ Gregor Best pgpL4LaWFRZtj.pgp Description: PGP signature
Re: Spiral Layout
On Sun, Jul 12, 2009 at 12:08:09AM -0400, Andrei Thorp wrote: [...] clockwork on IRC (with really poor English) has requested that I ask whether someone would be interesting in writing spiral in lua for him. He seemed to really like it. Anyway, perhaps someone wants to do this. [...] Actually, this morning I thought about porting the fibonacci layout to 3.3, but sadly, my time is a bit limited atm (I want to focus on widget layouts for the time being) -- GCS/IT/M d- s+:- a--- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o-- K- w--- O M-- V PS+ PE- Y+ PGP+++ t+ 5 X+ R tv+ b++ DI+++ D+++ G+ e- h! r y+ Gregor Best pgpKJ7CHNrqaf.pgp Description: PGP signature
Re: [Draft] Introduction of Widget Layouts
On Thu, Jul 09, 2009 at 02:03:43PM +0200, Uli Schlachter wrote: Julien Danjou wrote: At 1247139117 time_t, Uli Schlachter wrote: Where exactly is that endless loop? I can't seem to find it. And frankly said, if you use looping tables for your widgets, you shouldn't be surprised :P You get what you deserve.. ok, you win Clearly. Somehow I wonder if luaA_isloop() is even worth keeping around. If you do bad stuff, you're screwed. We're not going to check everything the use does in Lua. We're not a sand box. A warn()ing is way more informative and easier to debug than awesome using 100% cpu. Plus I like sandboxes, it's a lot of fun to play with them... Uli I just noticed, in luaA_wibox_newindex, the wibox already checks the widget table for whether it is a loop and prints a warning and returns without setting the widget table. So I'd say, in this regard we're absolutely save. -- GCS/IT/M d- s+:- a--- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o-- K- w--- O M-- V PS+ PE- Y+ PGP+++ t+ 5 X+ R tv+ b++ DI+++ D+++ G+ e- h! r y+ Gregor Best pgp7XZYVKsXDT.pgp Description: PGP signature
Re: Obvious and Wiki
On Sun, Jul 12, 2009 at 11:41 AM, Andrei Thorpgar...@gmail.com wrote: On Sat, Jul 11, 2009 at 11:24 PM, masterLokimasterlo...@gmail.com wrote: Hi there: I wrote a small entry on the Wiki referring to the Obvious repo and I have a doubt. Yep, it's pretty official-ish in that some of us Awesome devs support it, but it's not in the default distribution. Thanks a lot for the wiki pages, much love. I've rewritten part of the English one to explain some things better, imo. Thanks for getting the ball rolling though! -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.
Re: Adding new module to Obvious
I just thought I'd mention that I'm working on this. It's really buggy though. -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.
Re: [Draft] Introduction of Widget Layouts
I noticed a few essential noops in my patch, a fixed version is attached Yay for code-shrinkage :) -- GCS/IT/M d- s+:- a--- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o-- K- w--- O M-- V PS+ PE- Y+ PGP+++ t+ 5 X+ R tv+ b++ DI+++ D+++ G+ e- h! r y+ Gregor Best From 2e02de81c85e30c83fcd9c563155b6450f0d1630 Mon Sep 17 00:00:00 2001 From: Gregor Best farha...@googlemail.com Date: Sun, 12 Jul 2009 17:24:14 +0200 Subject: [PATCH 02/10] wtable: update on change, regardless of what was changed this simplifies the code a bit and allows us to react to changes on wtable entries that are neither tables nor widgets (for example the layout function) --- luaa.c | 22 ++ 1 files changed, 2 insertions(+), 20 deletions(-) diff --git a/luaa.c b/luaa.c index 992c6ae..2c3ab79 100644 --- a/luaa.c +++ b/luaa.c @@ -379,32 +379,14 @@ luaA_wtable_index(lua_State *L) static int luaA_wtable_newindex(lua_State *L) { -bool invalid = false; - -/* push key on top */ -lua_pushvalue(L, 2); -/* get current key value in content table */ -lua_rawget(L, lua_upvalueindex(1)); -/* if value is a widget, notify change */ -if(lua_istable(L, -1) || luaA_toudata(L, -1, widget)) -invalid = true; - -lua_pop(L, 1); /* remove value */ - -/* if new value is a widget or a table */ +/* if new value is a table, update the wibox widget table */ if(lua_istable(L, 3)) -{ luaA_table2wtable(L); -invalid = true; -} -else if(!invalid luaA_toudata(L, 3, widget)) -invalid = true; /* upvalue 1 is content table */ lua_rawset(L, lua_upvalueindex(1)); -if(invalid) -luaA_wibox_invalidate_byitem(L, lua_topointer(L, 1)); +luaA_wibox_invalidate_byitem(L, lua_topointer(L, 1)); return 0; } -- 1.6.3.3 pgpHaGYmYdcMX.pgp Description: PGP signature
Request for icons (was: Spiral Layout)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Andrei Thorp wrote: Hello, clockwork on IRC (with really poor English) has requested that I ask whether someone would be interesting in writing spiral in lua for him. He seemed to really like it. Anyway, perhaps someone wants to do this. Hi, attached is the patch, have fun. ;) Could someone create some layout icons for this? The ones from awesome 2 are... improvable. Apropos icons: Could we do something to clean up / unify themes/default/layouts/ and themes/sky/layouts/? Or do we really need so many different icons? That kind of makes it a little more difficult to add new layouts... Uli - -- Do you know that books smell like nutmeg or some spice from a foreign land? -- Faber in Fahrenheit 451 -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) iQEcBAEBCAAGBQJKWiz9AAoJECLkKOvLj8sG2E8H/A1/L8iTQhB698GJT8l9s0jK wSGXNrXb+fVBybqZ2/mb4lT+rhUTtDiV3jniuwWtdMLtrObsmRTgnK6JOOx+7aRQ 5htbvi35Js22M26vJzAY5G6/8k7IVf/vZ6IY2M74a7s7+ufkKyYNgy3DAJDt/BOV gynDBYDFRnrNFYAbMVBcs0PRGRPuin8vXs6vvDnVEcIh5NK6c+TTSY5dw9PfUvL6 DKiyq+67GURDRpnSYhB/uyMtb/qb/Qm1VWiy4H2RMpx/gr5OrZPPkyrObTqdUoT5 1OJEzMPGrGpLVj8ttm9SD3tA2C+mPWR+bxWv1YRGKlZFToG+bLDkmFAPnLQHBek= =sjBN -END PGP SIGNATURE- From 7c3399a71eae23077b8bbb6356769b01f1455c5b Mon Sep 17 00:00:00 2001 From: Uli Schlachter psyc...@znc.in Date: Sun, 12 Jul 2009 20:27:41 +0200 Subject: [PATCH] Add fibanocci layouts ported from the C version This is based on the C code from commit b9320be372be84f8b9140fce62b77c7462490. Signed-off-by: Uli Schlachter psyc...@znc.in --- awesomerc.lua.in|2 + lib/awful/layout/suit/init.lua.in |1 + lib/awful/layout/suit/spiral.lua.in | 79 +++ 3 files changed, 82 insertions(+), 0 deletions(-) create mode 100644 lib/awful/layout/suit/spiral.lua.in diff --git a/awesomerc.lua.in b/awesomerc.lua.in index 4783c2f..53ae46f 100644 --- a/awesomerc.lua.in +++ b/awesomerc.lua.in @@ -36,6 +36,8 @@ layouts = awful.layout.suit.tile.top, awful.layout.suit.fair, awful.layout.suit.fair.horizontal, +awful.layout.suit.spiral, +awful.layout.suit.spiral.dwindle, awful.layout.suit.max, awful.layout.suit.max.fullscreen, awful.layout.suit.magnifier, diff --git a/lib/awful/layout/suit/init.lua.in b/lib/awful/layout/suit/init.lua.in index ae83edf..d5d4e3f 100644 --- a/lib/awful/layout/suit/init.lua.in +++ b/lib/awful/layout/suit/init.lua.in @@ -3,6 +3,7 @@ require(awful.layout.suit.tile) require(awful.layout.suit.fair) require(awful.layout.suit.floating) require(awful.layout.suit.magnifier) +require(awful.layout.suit.spiral) --- Suits for awful module(awful.layout.suit) diff --git a/lib/awful/layout/suit/spiral.lua.in b/lib/awful/layout/suit/spiral.lua.in new file mode 100644 index 000..0c00644 --- /dev/null +++ b/lib/awful/layout/suit/spiral.lua.in @@ -0,0 +1,79 @@ +--- +-- @author Uli Schlachter lt;psyc...@znc.ingt; +-- @copyright 2009 Uli Schlachter +-- @copyright 2008 Julien Danjou +-- @release @AWESOME_VERSION@ +--- + +-- Grab environment we need +local ipairs = ipairs + +module(awful.layout.suit.spiral) + +local function spiral(p, dwindle) +local wa = p.workarea +local cls = p.clients + +local i = 0 +local n = #cls +local nx = wa.x +local ny = wa.y +local nw = wa.width +local nh = wa.height + +for k, c in ipairs(cls) do +if (i % 2 == 1 and nh / 2 2 * c.border_width) + or (i % 2 == 0 and nw / 2 2 * c.border_width) then +if i n - 1 then +if i % 2 == 1 then +nh = nh / 2 +else +nw = nw / 2 +end +if i % 4 == 2 and not dwindle then +nx = nx + nw +elseif i % 4 == 3 and not dwindle then +ny = ny + nh +end +end +if i % 4 == 0 then +if dwindle then +ny = ny + nh +else +ny = ny - nh +end +elseif i % 4 == 1 then +nx = nx + nw +elseif i % 4 == 2 then +ny = ny + nh +elseif i % 4 == 3 then +if dwindle then +nx = nx + nw +else +nx = nx - nw +end +end +if i == 0 then +ny = wa.y +end +i = i + 1 +end +local geom = { x = nx, y = ny, width = nw, height = nh } +c:geometry(geom) +end +end + +--- Dwindle layout +dwindle = {} +dwindle.name = dwindle +function dwindle.arrange(p) +return spiral(p, true) +end + +---
Re: Request for icons (was: Spiral Layout)
On Sun, Jul 12, 2009 at 08:35:42PM +0200, Uli Schlachter wrote: [...] Could someone create some layout icons for this? The ones from awesome 2 are... improvable. [...] I created two icons which sould work with the default theme. Both are attached, but maybe we need something which shows the difference a bit more. -- GCS/IT/M d- s+:- a--- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o-- K- w--- O M-- V PS+ PE- Y+ PGP+++ t+ 5 X+ R tv+ b++ DI+++ D+++ G+ e- h! r y+ Gregor Best attachment: dwindle.pngattachment: spiral.png pgpd1UgtIMXUW.pgp Description: PGP signature
Re: Obvious and Wiki
Andrei Thorp escribió: On Sun, Jul 12, 2009 at 11:41 AM, Andrei Thorpgar...@gmail.com wrote: On Sat, Jul 11, 2009 at 11:24 PM, masterLokimasterlo...@gmail.com wrote: Hi there: I wrote a small entry on the Wiki referring to the Obvious repo and I have a doubt. Yep, it's pretty official-ish in that some of us Awesome devs support it, but it's not in the default distribution. Thanks a lot for the wiki pages, much love. I've rewritten part of the English one to explain some things better, imo. Thanks for getting the ball rolling though! You're welcome! :) A small edit on the Wiki says that this is an independent project with community support. Also edited the spanish version to reflect changes. -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.
Re: [Patch] awful.layout: also arrange on client tag change
Pardon me, that patch had some debug stuff left in it. I attached a version without that cruft. -- GCS/IT/M d- s+:- a--- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o-- K- w--- O M-- V PS+ PE- Y+ PGP+++ t+ 5 X+ R tv+ b++ DI+++ D+++ G+ e- h! r y+ Gregor Best From 96e3d85baab17f44236d4ab6e1b2ceb9ce3e29b2 Mon Sep 17 00:00:00 2001 From: Gregor Best farha...@googlemail.com Date: Mon, 13 Jul 2009 01:13:21 +0200 Subject: [PATCH] awful.layout: also arrange on client tag change Signed-off-by: Gregor Best farha...@googlemail.com --- lib/awful/layout/init.lua.in | 15 +-- 1 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/awful/layout/init.lua.in b/lib/awful/layout/init.lua.in index 7cabfbc..d730a0b 100644 --- a/lib/awful/layout/init.lua.in +++ b/lib/awful/layout/init.lua.in @@ -10,11 +10,14 @@ local type = type local tag = require(awful.tag) local util = require(awful.util) local suit = require(awful.layout.suit) -local client = require(awful.client) local wibox = require(awful.wibox) local ascreen = require(awful.screen) -local capi = { screen = screen } local hooks = require(awful.hooks) +local capi = { +screen = screen, +client = client +} +local client = require(awful.client) --- Layout module for awful module(awful.layout) @@ -140,5 +143,13 @@ hooks.clients.register(function() end end) hooks.tags.register(function(screen, tag, action) on_arrange(screen) end) +hooks.tagged.register(function(c, tag) +if not tag.screen then return end +on_arrange(tag.screen) +if not capi.client.focus or not client.focus:isvisible() then +local c = client.focus.history.get(tag.screen, 0) +if c then capi.client.focus = c end +end +end) -- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80 -- 1.6.3.3 pgpWdVbeZFYKT.pgp Description: PGP signature
Re: [Draft] Introduction of Widget Layouts
I noticed a fluke in the last patch in the current series (which adds layout support to the titlebars). A fixed version is attached, it removes the changeset which modifies awful.widget.layout.horizontal -- GCS/IT/M d- s+:- a--- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o-- K- w--- O M-- V PS+ PE- Y+ PGP+++ t+ 5 X+ R tv+ b++ DI+++ D+++ G+ e- h! r y+ Gregor Best From ed6eb2cde5e4e5e9485fd773d671039c3d2c2da2 Mon Sep 17 00:00:00 2001 From: Gregor Best farha...@googlemail.com Date: Thu, 2 Jul 2009 01:41:26 +0200 Subject: [PATCH 10/10] titlebar: add widget layout support Signed-off-by: Gregor Best farha...@googlemail.com --- lib/awful/titlebar.lua.in | 47 +++- 1 files changed, 29 insertions(+), 18 deletions(-) diff --git a/lib/awful/titlebar.lua.in b/lib/awful/titlebar.lua.in index e1a90ee..f99fe51 100644 --- a/lib/awful/titlebar.lua.in +++ b/lib/awful/titlebar.lua.in @@ -24,6 +24,7 @@ local util = require(awful.util) local widget = require(awful.widget) local mouse = require(awful.mouse) local client = require(awful.client) +local layout = require(awful.widget.layout) --- Titlebar module for awful module(awful.titlebar) @@ -93,8 +94,8 @@ function add(c, args) -- data[c].button_sets for late updates and add the -- individual buttons to the array part of the widget -- list -local widget_list = { appicon = appicon, title = title } -local iw = #widget_list +local widget_list = { layout = layout.horizontal.rightleft } +local iw = 1 local is = 1 data[c].button_sets = {} for i = 1, #button_groups do @@ -109,7 +110,16 @@ function add(c, args) end end -tb.widgets = widget_list +tb.widgets = { +widget_list, +{ +appicon = appicon, +title = title, +layout = layout.horizontal.flex +}, +layout = layout.horizontal.leftright +} + c.titlebar = tb update(c) @@ -122,13 +132,13 @@ function update(c, prop) if type(c) == client and c.titlebar and data[c] then local widgets = c.titlebar.widgets if prop == name then -if widgets.title then -widgets.title.text = span font_desc=' .. data[c].font .. +if widgets[2].title then +widgets[2].title.text = span font_desc=' .. data[c].font .. ' .. util.escape(c.name) .. /span end elseif prop == icon then -if widgets.appicon then -widgets.appicon.image = c.icon +if widgets[2].appicon then +widgets[2].appicon.image = c.icon end end if capi.client.focus == c then @@ -328,14 +338,6 @@ end --Finally the last parameter is the action for mouse --button 1 -local close_buttons = button_group(close, - { align = left }, - select_state_focus, - { idx = n, img = normal, - action = function (w, t) t.client:kill() end }, - { idx = f, img = focus, - action = function (w, t) t.client:kill() end }) - local ontop_buttons = button_group(ontop, { align = right }, function(c,p) return select_state(c, p, ontop) end, @@ -375,6 +377,15 @@ local maximized_buttons = button_group(maximized, { idx = f/a, img = focus_active, action = function(w, t) t.client.maximized_horizontal = false t.client.maximized_vertical = false end }) + +local close_buttons = button_group(close, + { align = left }, + select_state_focus, + { idx = n, img = normal, + action = function (w, t) t.client:kill() end }, + { idx = f, img = focus, + action = function (w, t) t.client:kill() end }) + local function floating_update(w, t) client.floating.toggle(t.client) end @@ -387,11 +398,11 @@ local floating_buttons = button_group(floating, { idx = n/a, img = normal_active, action = floating_update }, { idx = f/a, img = focus_active, action = floating_update }) -button_groups = { ontop_buttons, +button_groups = { close_buttons, + ontop_buttons, sticky_buttons, maximized_buttons, - floating_buttons, - close_buttons } + floating_buttons } -- Register standards hooks
Re: Obvious and Wiki
On Sun, Jul 12, 2009 at 2:53 PM, masterLokimasterlo...@gmail.com wrote: Andrei Thorp escribió: On Sun, Jul 12, 2009 at 11:41 AM, Andrei Thorpgar...@gmail.com wrote: On Sat, Jul 11, 2009 at 11:24 PM, masterLokimasterlo...@gmail.com wrote: Hi there: I wrote a small entry on the Wiki referring to the Obvious repo and I have a doubt. Yep, it's pretty official-ish in that some of us Awesome devs support it, but it's not in the default distribution. Thanks a lot for the wiki pages, much love. I've rewritten part of the English one to explain some things better, imo. Thanks for getting the ball rolling though! You're welcome! :) A small edit on the Wiki says that this is an independent project with community support. Also edited the spanish version to reflect changes. Cool, thanks for the translation :) -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.
Re: Request for icons (was: Spiral Layout)
On Sun, Jul 12, 2009 at 2:49 PM, Gregor Bestg...@intepi.net wrote: On Sun, Jul 12, 2009 at 08:35:42PM +0200, Uli Schlachter wrote: [...] Could someone create some layout icons for this? The ones from awesome 2 are... improvable. [...] I created two icons which sould work with the default theme. Both are attached, but maybe we need something which shows the difference a bit more. -- GCS/IT/M d- s+:- a--- C++ UL+++ US UB++ P+++ L+++ E--- W+ N+ o-- K- w--- O M-- V PS+ PE- Y+ PGP+++ t+ 5 X+ R tv+ b++ DI+++ D+++ G+ e- h! r y+ Gregor Best I think those layout icons will be pretty invisible at small size. How do you folks feel about the old style spiral/dwindle icons? I thought those were good. About different icons for different themes: Well, for sky, one main motivation was that the default colour is white in the layout icons. I personally don't like using plain white/black in my work, and also there was no pure white in Sky, so it stood out. Of course, sky gained almost no popularity, and even I don't use it :} -- I think no one would miss it if it were deleted. However, some of the layout icons there are very nice, I think. I still use the floating icon on a permanent basis on my toolbar. In general, the Sky layout icons seemed to be better quality. We could just use those as default -- thoughts? -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.
Re: Adding new module to Obvious
On Sun, Jul 12, 2009 at 7:18 PM, masterLokimasterlo...@gmail.com wrote: I've just applied the patch, and I saw the changes in the code. As for now I'm using EMACS (with viper mode) to do my coding, but I'll keep in mind the style in the bottom of init.lua. I'll be asking on how to read and log the output awesome provides. - Why bother with EMACS if you're going to use Viper? Just use Vim. - EMACS can understand Vim-style modelines -- the line at the bottom of the init.lua. It can use these settings automatically. Vim of course also does so. - Basically, you want to start awesome as awesome /home/you/awesome.log. captures all output from awesome and redirects it to a file. You can then use tail -f to watch this file constantly and see what the errors in your code are. I use this extensively. Also, if you're in a TTY because awesome/X crashed, you can use: echo awesome.restart() | DISPLAY=:0 awesome-client To restart it. Combine these things for proper debugging: watch the log, implement fixes to errors, and restart awesome until it stops having errors. logic errors, comparisons between strings and ints, and a terrible style with 3 space indents, 4 space indents, and tabs. I understand it's rough work... but I changed/rewrote nearly every line in your code to make it run. I'm new in lua, but I thinks I'll be needing to read more on it if I want really help. Sorry if it consumed your time in a way you didn't want to spend it I'm glad for your attitude and I think I've judged you correctly. You've had initiative to help on the wiki and in the source. We had a laugh about some of your mistakes, but it's not really code skill that I value first and foremost -- its willingness to learn and desire to work. With a desire to help/learn, lack of skill can be overcome, but skill without desire is a waste. Keep it up. I see the crashing coming that's why I asked how to ask for a parameter when initializing the widget (i.e. 'obvious.temp_zone(TSZ0)' or 'obvious.temp_zone(/path/to/my/thermal/zone)' You can do this by modifying your metatable setup -- but I don't recommend it. So far, in Obvious, what we've done in this situation is: a) In the case that the default settings don't work, output an error message but don't crash Awesome (check if the file exists before trying to use it. See awful.util for some tools to help with this.) b) Provide functions like obvious.temp_info.set_zone(TSZO) that the user can use rather than making them add it as obvious.temp_info(TSZO) -- there is no real difference, but it's just the custom so far. Oh, also! I've pushed up your patch + my fixes to the obvious repo, temperature-widget branch. This isn't in master yet because it needs a lot more work. Also see attached. Thanks for push!! I've really appreciate it! I guess there's some more work to do. And I'll be doing it this week. Yep, no problems. The idea is that stuff that's not ready for prime time, but is worthy of testing/exposure goes into a branch in git. When it's cleaned up and ready to be used by all, we merge it into the master branch. Awesome does something similar. Cheers, and keep it up. -Andrei Garoth Thorp -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.
Re: [Draft] Introduction of Widget Layouts
Man, by the time these goddamn features land in master, they'll be bug free at this rate! What the heck are you doing?! Honestly: the Awesome project's code review system is much more extensive than any software company I've worked at. Cut it out you guys, you're making everyone everywhere look bad! ;) Hhahaa, cheers. -AGT -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.