luaL_dostring(L, s) is a macro that expands to
luaL_loadstring(L,s)||lua_pcall(L,0,LUA_MULTRET,0). Then,
lua_pcall(L,n,r,f) sometimes (since Lua 5.3?) is a macro that expands to
lua_pcallk(L,n,r,f,0,NULL), but can sometimes also just be a function.
Explaining all the above would make this section more complicated and
apparently no one uses this hint anyway, because no one told us yet that
this hint does not work.
Signed-off-by: Uli Schlachter <psychon@znc.in>
In awesome 3.5, the default themes set a global variable called "theme".
This was, I think, not intentional and we changed this when luacheck
found this issue. However, the "my first awesome" document from the old
wiki made use of this fact and so many people were using this hack. This
commit fixes our copy of "my first awesome".
Signed-off-by: Uli Schlachter <psychon@znc.in>
This is a follow-up to 052cda939b. Expressions like 's.index == 2'
and 's == screen.primary' might work at first. However, they are not
"dynamic": If screens are added/removed or the primary screen changes,
then the widgets are not updated to follow this.
Instead, the example now uses the new awful.widget.only_on_screen
container which provides the needed dynamic behaviour.
This is arguably "the real fix" to #1562 and #1565.
Signed-off-by: Uli Schlachter <psychon@znc.in>
ldoc formatting has problems with code block lines that start with
spaces. use non-blocking-space (unicode 0xa0) as a work around.
Signed-off-by: Justin Charette <charetjc@gmail.com>
- added note that `awesome.quit` must be wrapped in an anonymous
function when used as a menu command.
- corrected tasklist diff to include missing lines from rc.lua. the
porting guide code doesn't make much sense otherwise.
- cleaned up diff columns on a couple other code blocks.
Signed-off-by: Justin Charette <charetjc@gmail.com>
Some `+` and `-` were missing because it re-indented the content
based on the first code line. It then truncated whatever was
below.
Pushing this to master because Ubuntu/Z, Debian/Sid and Arch just
upgraded to 4.0 and angry reports are coming in *fast*.
io.open returns nil, an error message and an error code on failure. This
perfectly fits assert which will make the script fail with the error
message. Previously it would fail with "attempted to index a nil value".
Reference: https://www.reddit.com/r/awesomewm/comments/5kyqji/cant_build_git_awesome/
Signed-off-by: Uli Schlachter <psychon@znc.in>
This adds a short text with some hopefully helpful pointers to the top
of the index.html generated by ldoc.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This document is based on the "my first awesome"-page in the old wiki.
Large parts of it are taken almost verbatim from it while others were
handled more freely. For example, instead of referring to the man page
for an overview of the available key bindings, this now mentions Mod4+S.
The "Add widgets"-section is just a todo. The wiki page refers to
Vicious which does not really work for our api documentation. However, I
also didn't want to just drop this part.
Signed-off-by: Uli Schlachter <psychon@znc.in>
I am no longer sure why I added this file. It doesn't really belong into
the awesome source code. It is better suited to be added to our web
page, I think.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Cleanup and point to the GitHub page for the recent contributors.
Some older contributors don't have GitHub accounts, so are
invisible, so I left the old list intact.
This commit doesn't add any useful documentation, but adds
previously hidden documentation variables. It can be the basis
of a better layout documentation.
Fix#1246
This function was iterating over a table with pairs() to generate output (the
sample theme file). Since pairs() does not guarantee any iteration order, this
lead to a different order each time this file was generated. This is, for
example, visible in the diffs in the generate api documentation repository.
Fix this by using a self-made iteration function which behaves like pairs(), but
guarantees an iteration order sorted by keys.
Signed-off-by: Uli Schlachter <psychon@znc.in>
It does not provide much value. The version number is already known to
ldoc globally in the "description" variable.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Previously, this mentioned non-existent arguments (widget) and
duplicated parts of the (not yet really existing) API documentation for
find_widgets().
Signed-off-by: Uli Schlachter <psychon@znc.in>
Just because they sound similar to mouse::press and mouse::release does
not mean that the arguments are the same. Perhaps they should be, but
that's another story.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This adds a tparam alias "@screen" for "@tparam screen" (when used to
document e.g. arguments for callbacks), and "@screen_or_idx" when a
function accepts a "screen" or "number".
The default config had tables like mywibox and mywibox[s] was the wibox
that is visible on screen s. When a screen is removed, nothing cleans up
these tables and so the screen and the wibox could not be garbage
collected. The same applies to the layoutbox, taglist etc.
This commit removes the global mywibox table and instead saves it as a
property on the screen. This way, the screen is not explicitly
referenced and when it is removed, the screen, its wibox and all of its
widgets become unreachable and can be garbage collected.
This commit also updates the docs and the tests that referenced things
(mostly the wibox) via mywibox[s] to now use s.mywibox.
Fixes: https://github.com/awesomeWM/awesome/issues/1125
Signed-off-by: Uli Schlachter <psychon@znc.in>
This meta-lua script takes the "raw" awesomerc.lua and turn it
into the final file and generate a documentation page from its
parsed content. It support
* Turn {{{ into markdown categories
* Turn top level comments into documentation
* Add custom documentation sections
* Parse the code to add links for each API calls
This helps generate a good entry point for new users wanting to
understand the content of rc.lua without searching the API by
hand.
Over time, this will also become the basis of the documentation.
If `rc.lua` is separated into several files, this will be easy to fix
this script. It could even do the separation itself from a monolitic
file using the already implemented {{{ parser.
This uses the new support introduced in f0f31bc305 in the docs and in
tests/run.sh, removing an useless use of cat/echo.
Signed-off-by: Uli Schlachter <psychon@znc.in>
The requirement to call add_signal() was added to catch typos. However, this
requirement became increasingly annoying with property::<name> signals and e.g.
gears.object allowing arbitrary properties to be changed.
All of this ended up in a single commit because tests/examples fails if I first
let add_signal() emit a deprecation warning.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This system allow containers, widgets and layouts to be listed in
the documentation with an example screenshot.
It uses raw HTML due to ldoc limitations, but as it is autogenerated,
it wont be user visible.
This was only partly converted to markdown. It still refers to wiki pages with
wiki syntax, because we first have to decide on what happens with the wiki
before this can be updated.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This is the current version of the FAQ in the wiki converted to markdown, but
some IMO bogus content was stripped (e.g. references to awesome being a
non-reparenting WM).
Signed-off-by: Uli Schlachter <psychon@znc.in>
ldoc doesn't allow to specify fields from class "A" into class "B",
so the only solution is to merge the 2.
Also, one of the most common complain on IRC since Awesome 3.0 is
that the client API doc is confusing since it is in 2 different files.
Also restore the `awful.client` doc link, point to `client`
This will avoid broken links.
Previously, the `Signals` section was shown before the `Functions`.
This was confusing and different from other framework documentation.
It partially work. Not all ldoc output display the functions at the
top, but some does. Previously, none did.
This commit also add 3 new sections:
* property: For object properties, replacing the "fields" table
from the current documentations.
* deprecated: For deprecated methods
* beautiful: For widgets theme options
Instead of copying images to ${BUILD_DIR}/docs/images, which is the directory
with the input to ldoc, this now copies the images to ${BUILD_DIR}/doc/images,
which is where ldoc generates its output. That way, the images are together with
the html files and are automatically picked up by a lot of stuff.
Fixes: https://github.com/awesomeWM/awesome/issues/681
Signed-off-by: Uli Schlachter <psychon@znc.in>
Instead of `client.client`, the client object is now referred to as
`client.object` and the client class as `client.class`.
This moves the documentation of `client.focus` to the class.
Closes https://github.com/awesomeWM/awesome/pull/349.
Adding @AWESOME_VERSION@ to the LDoc description is useful to have on
the index page. While at it, it makes the description more
verbose/correct.
For docs/02-contributing.md, it lists the current aliases for typed
parameters, prefers/mentions `@tparam` and `@treturn` only, and fixes
some minor wording.
Closes#262.
This builds and installs awesome (which runs its checks) and displays
--version.
- Build libxcb-cursor-dev and lua-lgi manually.
- A lot of dependencies are installed manually from Git or luarocks.
- Include Travis status in README.
Closes https://github.com/awesomeWM/awesome/pull/208.
This patch provides functions to get/set current keyboard layout.
Current implementation doesn't support any configuration of layout,
it's a merely a layout indicator and switcher, however layout
configuration can be set by tools like setxkbmap or by any third-party
tools.
This moves all of the documentation into a separate folder, which keeps
everything in one place and avoids unnecessary clutter.
This will pay off when proper guides are written for various aspects of
using awesome or contributing to it.
This also updates the building system, so that the docs are properly
generated with new directories.
Signed-off-by: Ignas Anikevicius (gns_ank) <anikevicius@gmail.com>