Julien Danjou
862fe193ee
Rewrite {tag,task}list in Lua.
...
This removes the C implementation of taglist and tasklist widgets and
use a Lua one.
This works by letting .widgets property of wiboxes to be a table with
table, and setting a special metatable on them which notify awesome on
newindex events, updating wiboxes.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-20 20:06:09 +02:00
Julien Danjou
7cf2b6615f
client: split X props; handle fullscreen status
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou
5449374e3d
client: check for visibility before arranging
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:53 +02:00
Alex Cornejo
00721a15ea
layout: add fair layout
...
Based on the original idea of Nathan Huesken, which was then implemented by
Gwenhael Le Moine, I completed and corrected the layout.
I added icons for the layout and modified the makefile and the aweseomerc.lua.in
to include the fair layout.
In the process I also decided to modify layoutgen.sh and tag.c, so that in the
future new layouts can be added without touching tag.c.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-11 13:31:28 +02:00
Julien Danjou
7409f6e778
Lua API documentation fixes
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-25 18:04:42 +02:00
Julien Danjou
065d7f8a86
lua: otable can now be index by object values
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-17 07:52:04 +02:00
Julien Danjou
07b82b1825
tag: export clients as simple table
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-13 22:06:20 +02:00
Julien Danjou
d69b602e52
tag: export clients as a function
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-13 17:59:01 +02:00
Julien Danjou
62c2fb1293
tag: unref later
...
I somehow miss that patch in the merge.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-13 11:35:52 +02:00
Julien Danjou
40c455046b
screen: make tags array overwritable
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-13 10:33:15 +02:00
Julien Danjou
5758a3919a
tag: remove get and geti methods
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 18:26:09 +02:00
Julien Danjou
abd0216194
tag: allow view only if tag has a screen
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-11 18:23:47 +02:00
Julien Danjou
b92a07c2ed
Revert "Alternative export method of arrays from C to Lua"
...
This reverts commit 4ab499fe26
.
Conflicts:
lua.h
2008-08-11 02:21:21 +02:00
Konstantin
4ab499fe26
Alternative export method of arrays from C to Lua
...
The patch is mainly to export client_array_t object to Lua,
but can be used to export any ..._array_t object.
The idea: export to Lua not a table, but userdata with
metamethods to get/set/define length of ..._array_t object
directly.
Now when I get clients field from tag object C code
creates full copy of client_array_t structure into Lua table.
It takes traversing a whole array of data.
I did it in other way: userdata is exported, with __index,
__newindex, and __len meta-methods defined, and Lua
script gains direct access to client_array_t C-array:
it can get client object, get length of array and assign
client objects to some index in C-array.
Pros:
No overhead of creation a copy of C-structure into Lua-table:
if I want just to test a number of clients for a tag, I don't need
a whole loop to build table, I just want to read clients->len field,
and I do so via __len meta-method.
Also if I want to get some client from tags.clients, I don't need
to create ALL clients Lua-objects, I just get client_t C-struct
and create Lua-object from it. Just in place.
So Lua-loop enuming all tag.clients is not 2 loops internally
(first create copy of tag.clients into Lua-table, then enum this table),
but only one, and if I break out of loop in the middle, I create
only some client Lua-objects, not all of them from tag.clients.
Contras:
As far as clients field is not a table, I cant use pairs/ipairs
and other table functions for it.
But it can be implemented in other way:
for k,c pairs(tag.clients) => for k = 1, #tag.clients,
table.insert(tag.clients, client) => tag.clients[#tag.clients+1] = client
etc.
One more Pro now:
As far as tag.clients in current implementation returns copy of data
table.insert doesn't do what's expected: it doesn't really add client
into tag.clients "array".
With my implementation client is added as expected, as we work with
client_array_t structure directly.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-10 16:18:59 +02:00
Julien Danjou
856eb1a9b2
tag: add support for tag screen change
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-08 14:39:03 +02:00
Julien Danjou
4dd5a2b6b0
tag: check for screen number before invalidate
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-08 14:34:50 +02:00
Julien Danjou
9cb22b96eb
lua: exports client.tags and tags.clients
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-07 16:39:45 +02:00
Julien Danjou
80b79717ba
various documentation update for _index()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-28 16:03:38 +02:00
Julien Danjou
21f1f4cf0a
statusbar: use screen attribute to add to screen
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-24 17:37:24 +02:00
Julien Danjou
4f73b51e6f
tag: remove add(), use screen attribute
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-24 17:07:24 +02:00
Julien Danjou
a791fe5290
tag: allow for tag name modification
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-24 16:37:09 +02:00
Julien Danjou
015f529928
documentation update and disallow tag name change
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-10 11:02:10 +02:00
Julien Danjou
1723cc160a
lua: introduce luaA_usemetatable
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 19:25:58 +02:00
Julien Danjou
4ddf692ee4
tag: layout use index
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 15:06:20 +02:00
Julien Danjou
9b74cdbc0a
draw: iso2utf now gets len as arg
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:44:19 +02:00
Julien Danjou
282dc95042
tag: use index for name
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:31:47 +02:00
Julien Danjou
e012a4ba49
tag: use index for ncol
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:23:06 +02:00
Julien Danjou
d328904d30
tag: use index for nmaster
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:17:07 +02:00
Julien Danjou
ef7379c983
tag: remove mwfact_{get,set}, use {new,}index
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 13:59:40 +02:00
Julien Danjou
f750124d5c
tag: add {new,}index, use it for selected
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 11:38:40 +02:00
Julien Danjou
45b0a2df80
lua: replace .new() by __call meth
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 14:11:54 +02:00
Julien Danjou
f2d2a10d9b
lua: remove luaA_name_init
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 13:50:49 +02:00
Julien Danjou
91b2926d8d
screen: merge tag_client_with_current_selected() code
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 23:00:20 +02:00
Julien Danjou
013b2afe62
remove useless #include
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 18:10:45 +02:00
Julien Danjou
db88877587
lua: split getopt_string/getopt_lstring; fix mouse corner
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 17:33:05 +02:00
Pierre Habouzit
f84e66ddc6
Avoid lists of tag/client pairs, use an array per tag.
...
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 14:30:13 +02:00
Pierre Habouzit
14f4e02e66
Replace tag_t lists with arrays.
...
This improves lots of code efficiency (we *know* how many tags we have
now, YA'RLY).
Also fix a \todo in client.c: since knowing the number of tags is cheap,
ignore props that don't match it.
Use many p_alloca for things that depends on the number of tags (no sane
user will have *thousands* of tags. This saves a few more mallocs.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 17:37:19 +02:00
Julien Danjou
ab5119732d
use more tokenizer, with len
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:01:33 +02:00
Julien Danjou
dc8a309c95
fix comments typo
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 20:00:24 +02:00
Julien Danjou
2aab3415e0
tag: fix comments typo
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 19:44:31 +02:00
Julien Danjou
92f369e3aa
lua: userdata_new is now macro
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 18:31:35 +02:00
Julien Danjou
6cfa589f03
tag: introduce geti() to get tag with numbers as index
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 17:56:24 +02:00
Julien Danjou
c7fc344cd3
titlebar: check for widget uniqness
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 16:37:26 +02:00
Julien Danjou
471e0f1088
tag: tag.get() now returns an 'hash' table
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 16:04:49 +02:00
Julien Danjou
9490c0c3fd
ewmh: add support for _NET_WORKAREA
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 22:12:30 +02:00
Julien Danjou
16646c86ab
lua: __eq methods are not macros
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-16 11:37:55 +02:00
Julien Danjou
6e36717163
lua: _gc are now macros
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-16 11:31:38 +02:00
Michael Gehring
276f5f8849
[doxygen] Add \lvalue and convert existing doc.
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-11 07:36:34 +02:00
Michael Gehring
1ca55927f0
[doxygen] Convert Lua documentation
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 20:12:51 +02:00
Julien Danjou
aa6bfc560a
[draw] Do inline UTF-8 conversion
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 07:32:35 +02:00
Julien Danjou
1049393840
Revert "Replace tags by workspaces"
...
This reverts commit 00f966ea04
.
Revert "[focus] Fix bogus arguments"
This reverts commit 816b5d16bc
.
Revert "[mouse] Fix bug with floating"
This reverts commit 89daa72790
.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 21:56:03 +02:00
Julien Danjou
00f966ea04
Replace tags by workspaces
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 16:30:46 +02:00
Julien Danjou
98119d5d3f
[lua] Check for object validity
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 18:27:10 +02:00
Julien Danjou
0a44e90cb6
[lua] Fix garbage collectors
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 18:17:47 +02:00
Julien Danjou
aba52508c7
[tag] Documentation update
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 10:13:28 +02:00
Julien Danjou
6ad47dc828
[layouts] Add magnifier layout
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 20:54:53 +02:00
Julien Danjou
4b3e7f766c
[tag] Fix tag add checking
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 16:20:38 +02:00
Julien Danjou
be44700669
[doc] Add new Lua based documentation generator for API
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-26 15:25:40 +02:00
Julien Danjou
971d51918b
[tag] Check that tag has not been added before.
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 17:43:09 +02:00
Fabienne Ducroquet
834405425e
Rearrange the screen when changing layout
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 15:46:40 +02:00
Julien Danjou
21ae849d9f
Rename VirtScreen to screen_t
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 09:01:49 +02:00
Julien Danjou
0bbd2d4b3e
Rename AwesomeConf to awesome_t
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 08:59:27 +02:00
Julien Danjou
4e4a7d2703
[tag] Add luaA_tag_userdata_new() function
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 08:40:41 +02:00
Julien Danjou
c6261b028b
[tag] Add function to manipulate layouts
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 16:59:05 +02:00
Julien Danjou
2c548ef816
[tag] Add lua function to get/set tag's name.
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 15:57:18 +02:00
Julien Danjou
0142f0efc9
[layout] Rename LayoutArrange to layout_t
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 15:11:59 +02:00
Julien Danjou
ccb2a2db77
[lua] Remove regex matching
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 13:17:02 +02:00
Julien Danjou
1c4acbe38c
[tag] Make static and remove useless functions
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 19:58:34 +02:00
Julien Danjou
1f046b3c9f
[everything] Switch from libconfuse to Lua
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 18:01:15 +02:00
Julien Danjou
48482f3712
[tag] Add missing elements in tag_push_to_screen()
2008-05-09 22:45:32 +02:00
Julien Danjou
e4d091ab2e
[tag] Rename Tag type to tag_t
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou
d1635db59f
[client] Rename Client type to client_t
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou
c9f4c45007
[rules] Rename Rule to rule_t
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Arnaud Fontaine
dafafd077c
Port Awesome to XCB
2008-05-03 12:00:59 +02:00
Fabienne Ducroquet
b12a5235a5
[doc] Fix some typos, modify a few descriptions
...
Before awesome 2.3 release, I've decided to look for typos in the
awesome* manpages, here is the result. I've also modified some options'
descriptions that I didn't find very clear, I hope I have not
added/missed too many mistakes as I'm not a native English speaker...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-11 07:34:45 +02:00
Julien Danjou
40eaa6b997
[doc] Add a bunch of documentation
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-08 09:45:48 +02:00
Julien Danjou
4bfcfc5a9b
[tags] Check that at least one tag is vieedw on toggletag (FS#143)
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-01 09:00:14 +02:00
Steffen Schulz
981c47835e
[uicb] uicb_client_toggletag() with NULL use as sticky toggle
...
The following modification to client_toggletag will make it possible to
make windows sticky/unsticky via client_toggletag(0).
Upon unsticky, the window will stay at the currently selected tags.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-26 09:06:53 +01:00
Julien Danjou
2a6292db29
Add documentation for tag_new()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-26 08:53:14 +01:00
Julien Danjou
b39529b44d
Clean EWMH desktop calls
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou
0a6c6e017b
Store physical screen id in statusbar and client, change get_phys_s() to screen_virttophys()
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou
f88d403d1c
Update various copyrights
2008-03-23 15:52:19 +01:00
Julien Danjou
14798753ca
Bugfix in client_toggletag and checking if not tag selected
2008-03-12 16:09:56 +01:00
Julien Danjou
1b87c2be2a
Verify user input for tag values (mwfact, nmaster and ncol)
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-08 10:26:51 +01:00
Michael Kaminsky
6fb68f5d90
Fix segfault after viewing same tag twice and doing a tag_prev_selected.
...
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-26 22:22:38 +01:00
Julien Danjou
0b6129e625
remove {load,save}awesomeprops()
...
this is too bugged
2008-02-12 15:43:57 +01:00
Julien Danjou
105f89a58b
fix was_selected tag attribute handling
2008-02-04 14:32:06 +01:00
Julien Danjou
ab8d95f13d
rework include
2008-01-29 11:27:14 +01:00
Julien Danjou
d9298f6edb
rename get_current_tags to tags_get_current()
2008-01-29 08:31:13 +01:00
Julien Danjou
6a05197297
add tag_view_byinde()
2008-01-23 08:45:02 +01:00
Julien Danjou
668702b777
move list.h and util.[ch] to common/
2008-01-21 18:14:59 +01:00
Julien Danjou
6e4d13c9dc
add a new cache system for arrange()ing
2008-01-21 16:31:15 +01:00
Julien Danjou
5f72c9f056
use tag_list_next_cycle()
2008-01-21 16:31:15 +01:00
Julien Danjou
3b1526ea5b
store screen in tag
2008-01-21 16:31:15 +01:00
Julien Danjou
67c155c0dd
add tag_view() function
2008-01-21 16:31:15 +01:00
Julien Danjou
2592d3032c
add more functions to manipulate tags
2008-01-21 16:31:15 +01:00
Julien Danjou
4ee9cdcd67
make tag_view_prev and next to by cycling
2008-01-21 16:31:14 +01:00
Julien Danjou
94197429e5
tag_client_with_rule() only tag is a rule match
2008-01-21 16:31:14 +01:00
Julien Danjou
47ee745425
rewrite client_manage()
2008-01-21 16:31:14 +01:00
Julien Danjou
f700e483d6
rename TagClientLink to tag_client_node_t
2008-01-21 16:31:14 +01:00