From: Ben Hutchings Date: Tue, 15 May 2007 00:13:09 +0000 (+0000) Subject: [svn-upgrade] Integrating new upstream version, ion3 (20070506) X-Git-Tag: ion3-20070506 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=ion3-doc.git;a=commitdiff_plain;h=da1e04def26932e7f91a2106c885142e7fafe59b [svn-upgrade] Integrating new upstream version, ion3 (20070506) --- diff --git a/ChangeLog b/ChangeLog index 00fe495..c73b316 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,75 @@ +2007-05-06 14:40 UTC Tuomo Valkonen + tagged ion-doc-3rc-20070506 + +2007-05-06 14:25 UTC Tuomo Valkonen + * mod_mgmtmode removal + +2007-05-06 13:09 UTC Tuomo Valkonen + * Removed obsolete example + +2007-05-04 21:46 UTC Tuomo Valkonen + * Fixes and updates to binding docs + +2007-05-04 16:13 UTC Tuomo Valkonen + * Documen the submap leave/enter stuff + +2007-04-26 22:44 UTC Tuomo Valkonen + * Improved string marking + +2007-04-26 22:28 UTC Tuomo Valkonen + * Drawing stuff doc improvements + +2007-04-22 18:14 UTC Tuomo Valkonen + * Document is_dockapp + +2007-04-22 12:29 UTC Tuomo Valkonen + * Winprop doc. improvements/fixes + +2007-04-22 00:16 UTC Tuomo Valkonen + * Minor fixes and improvements + +2007-04-20 16:36 UTC Tuomo Valkonen + * Document is_transient + +2007-04-15 12:33 UTC Tuomo Valkonen + * Updates to implementation notes + +2007-04-08 12:38 UTC Tuomo Valkonen + * Removed quotation abuse + +2007-04-08 12:37 UTC Tuomo Valkonen + * Size policy documentation + +2007-04-08 11:53 UTC Tuomo Valkonen + * Quote changes + +2007-04-08 11:49 UTC Tuomo Valkonen + * Fixed typos etc. + +2007-04-08 11:34 UTC Tuomo Valkonen + * Intro improvements + +2007-04-06 11:27 UTC Tuomo Valkonen + * Systray stuff improvs + +2007-04-06 11:23 UTC Tuomo Valkonen + * Year changed.. + +2007-04-06 11:17 UTC Tuomo Valkonen + * Function reference building improvements + +2007-04-05 16:32 UTC Tuomo Valkonen + * Bah, stupid latex2html + +2007-04-05 16:27 UTC Tuomo Valkonen + * mod_statusbar documentation + +2007-04-05 15:21 UTC Tuomo Valkonen + * Oops, mod_statusbar.lua was missing from sources + +2007-03-20 11:27 UTC Tuomo Valkonen + * Fixes + 2007-03-18 20:09 UTC Tuomo Valkonen tagged ion-doc-3ds-20070318 diff --git a/Makefile b/Makefile index aa203d8..ca10058 100644 --- a/Makefile +++ b/Makefile @@ -15,9 +15,9 @@ L2H=latex2html -show_section_numbers -short_index -local_icons -noaddress \ DOCS=ionconf ionnotes -FNTEXES=ioncore-fns.tex mod_tiling-fns.tex \ - mod_query-fns.tex de-fns.tex mod_menu-fns.tex \ - mod_dock-fns.tex mod_sp-fns.tex mod_statusbar-fns.tex +FNTEXES=ioncore.exports mod_tiling.exports \ + mod_query.exports de.exports mod_menu.exports \ + mod_dock.exports mod_sp.exports mod_statusbar.exports # Generic rules ###################################### @@ -106,29 +106,13 @@ realclean: clean # Function reference rules ###################################### -ioncore-fns.tex: $(TOPDIR)/ioncore/*.c $(TOPDIR)/ioncore/*.lua - $(MKEXPORTS) -module ioncore -mkdoc -o $@ $+ +include $(TOPDIR)/libmainloop/rx.mk -mod_tiling-fns.tex: $(TOPDIR)/mod_tiling/*.c - $(MKEXPORTS) -module mod_tiling -mkdoc -o $@ $+ +$(TOPDIR)/%/exports.tex: + $(MAKE) -C $$(dirname $@) _exports_doc -mod_query-fns.tex: $(TOPDIR)/mod_query/*.c $(TOPDIR)/mod_query/mod_query.lua - $(MKEXPORTS) -module mod_query -mkdoc -o $@ $+ - -mod_menu-fns.tex: $(TOPDIR)/mod_menu/*.c $(TOPDIR)/mod_menu/mod_menu.lua - $(MKEXPORTS) -module mod_menu -mkdoc -o $@ $+ - -mod_dock-fns.tex: $(TOPDIR)/mod_dock/*.c - $(MKEXPORTS) -module mod_dock -mkdoc -o $@ $+ - -mod_sp-fns.tex: $(TOPDIR)/mod_sp/*.c - $(MKEXPORTS) -module mod_sp -mkdoc -o $@ $+ - -mod_statusbar-fns.tex: $(TOPDIR)/mod_statusbar/*.c - $(MKEXPORTS) -module mod_statusbar -mkdoc -o $@ $+ - -de-fns.tex: $(TOPDIR)/de/*.c - $(MKEXPORTS) -module de -mkdoc -o $@ $+ +%.exports: $(TOPDIR)/%/exports.tex + cp $< $@ # Function list ###################################### diff --git a/conf-bindings.tex b/conf-bindings.tex index 9afb2b8..efec6a4 100644 --- a/conf-bindings.tex +++ b/conf-bindings.tex @@ -8,7 +8,7 @@ This, however, does not have to be so as long as the module has been loaded prior to defining any module-specific bindings. Bindings are defined by calling the function -\fnrefx{ioncore}{defbindings} with the ''context'' of the +\fnrefx{ioncore}{defbindings} with the ``context'' of the bindings and the a table of new bindings to make. The context is simply string indicating one of the classes of regions (or modes such as \type{WMoveresMode}) introduced in section \ref{sec:objects}, and fully @@ -23,7 +23,7 @@ defbindings("WFrame", { \end{verbatim} There has been some confusion among users about the need to define the -''context'' for each binding, so let me try to explain this design +``context'' for each binding, so let me try to explain this design decision here. The thing is that if there was a just a simple 'bind this key to this action' method without knowledge of the context, some limitations would have to be made on the available actions and writing @@ -34,27 +34,27 @@ classes being based on \type{WMPlex}, and in the stock configuration the switch to $n$:th workspaces is bound to \key{Mod1+n} while the switch to $n$:th tab is bound to the sequence \key{Mod1+k n}. -Currently known ''contexts'' include: -\code{WScreen}, -\code{WMPlex}, -\code{WMPlex.toplevel}, -\code{WFrame}, -\code{WFrame.toplevel}, -\code{WFrame.floating}, -\code{WFrame.tiled}, -\code{WFrame.transient}, -\code{WMoveresMode}, -\code{WGroup}, -\code{WGroupCW}, -\code{WGroupWS}, -\code{WClientWin}, -\code{WTiling}, and -\code{WStatusBar}. +Currently known contexts include: +\codestr{WScreen}, +\codestr{WMPlex}, +\codestr{WMPlex.toplevel}, +\codestr{WFrame}, +\codestr{WFrame.toplevel}, +\codestr{WFrame.floating}, +\codestr{WFrame.tiled}, +\codestr{WFrame.transient}, +\codestr{WMoveresMode}, +\codestr{WGroup}, +\codestr{WGroupCW}, +\codestr{WGroupWS}, +\codestr{WClientWin}, +\codestr{WTiling}, and +\codestr{WStatusBar}. Most of these should be self-explanatory, corresponding to objects -of class with the same name. The ones with \code{.toplevel} suffix -refer to screens and ''toplevel'' frames, i.e. frames that are -not used for transient windows. Likewise \code{.transient} refers -to frames in transient mode, and \code{.tiled} and \code{.floating} +of class with the same name. The ones with \codestr{.toplevel} suffix +refer to screens and ``toplevel'' frames, i.e. frames that are +not used for transient windows. Likewise \codestr{.transient} refers +to frames in transient mode, and \codestr{.tiled} and \codestr{.floating} to frames in, respectively, tiled and floating modes. @@ -75,9 +75,9 @@ gets to handle the action. \subsection{Binding handlers and special variables} Unlike in Ion2, in Ion3 binding handlers are not normally passed as -''anonymous functions'', although this is still possible. The preferred -method now is to pass the code of the handler as a string. Two special -variables are available in this code. These are +``anonymous functions'', although this is still possible. The preferred +method now is to pass the code of the handler as a string. Two following +special variables are available in this code. \begin{tabularx}{\linewidth}{lX} \tabhead{Variable & Description} @@ -93,11 +93,12 @@ variables are available in this code. These are the binding. \\ \code{_chld} & Object corresponding to the currently active child window of the - object referred to by \code{_}. + object referred to by \code{_}. This should seldom be needed. \end{tabularx} -For example, supposing '\code{_}' is a \type{WFrame}, the following -handler should move the active window to the right, if possible: +For example, supposing \code{_} (underscore) is a \type{WFrame}, the +following handler should move the active window to the right, if +possible: \begin{verbatim} "_:inc_index(_sub)" @@ -106,14 +107,14 @@ handler should move the active window to the right, if possible: \subsection{Guards} To suppress error messages, each binding handler may also be accompanied -by a ''guard'' expression that blocks the handler from being called when +by a ``guard'' expression that blocks the handler from being called when the guard condition is not met. Currently the following guard expressions are supported (for both \code{_sub} and \code{_chld}): \begin{tabularx}{\linewidth}{lX} \tabhead{Guard & Description} - \code{"_sub:non-nil"} & The \code{_sub} parameter must be set. \\ - \code{"_sub:SomeClass"} & The \code{_sub} parameter must be member + \codestr{\_sub:non-nil} & The \code{_sub} parameter must be set. \\ + \codestr{\_sub:SomeClass} & The \code{_sub} parameter must be member of class \type{SomeClass}. \\ \end{tabularx} @@ -127,27 +128,33 @@ functions. Key presses: \begin{itemize} - \item \fnref{kpress}\code{(keyspec, handler [, guard])}, - \item \fnref{kpress_wait}\code{(keyspec, handler [, guard])} and - \item \fnref{submap}\code{(keyspec, \{ ... more key bindings ... \})}. + \item \fnrefx{ioncore}{kpress}, and + \fnrefx{ioncore}{kpress_wait}\code{(keyspec, handler [, guard])}. + \item \fnrefx{ioncore}{submap}\code{(keyspec, \{ ... more key bindings ... \})}. + \item \fnrefx{ioncore}{submap_enter}, and + \fnrefx{ioncore}{submap_wait}\code{(handler [, guard])}. \end{itemize} Mouse actions: \begin{itemize} - \item \fnref{mclick}\code{(buttonspec, handler [, guard])}, - \item \fnref{mdblclick}\code{(buttonspec, handler [, guard])}, - \item \fnref{mpress}\code{(buttonspec, handler [, guard])} and - \item \fnref{mdrag}\code{(buttonspec, handler [, guard])}. + \item \fnrefx{ioncore}{mclick}, + \fnrefx{ioncore}{mdblclick}, + \fnrefx{ioncore}{mpress}, and + \fnrefx{ioncore}{mdrag}\code{(buttonspec, handler [, guard])}. \end{itemize} The actions that most of these functions correspond to should be clear -and as explained in the reference, \fnref{kpress_wait} is simply -\fnref{kpress} with a flag set instructing Ioncore wait for all -modifiers to be released before processing any further actions. +and as explained in the reference, \fnrefx{ioncore}{kpress_wait} is simply +\fnrefx{ioncore}{kpress} with a flag set instructing Ioncore wait for +all modifiers to be released before processing any further actions. This is to stop one from accidentally calling e.g. -\fnref{WRegion.rqclose} multiple times in a row. The \fnref{submap} -function is used to define submaps or ''prefix maps''. The second -argument to this function is table listing the key press actions -(\fnref{kpress}) in the submap +\fnref{WRegion.rqclose} multiple times in a row. The +\fnrefx{ioncore}{submap} function is used to define submaps or +``prefix maps''. The second argument to this function is table listing +the key press actions (\fnrefx{ioncore}{kpress}) in the submap. +The \fnrefx{ioncore}{submap_enter} handler is called when the submap +is entered, in which this handler is defined. Likewise, the +\fnrefx{ioncore}{submap_wait} handler is called when all modifiers +have been released while waiting for further key presses in the submap. The parameters \var{keyspec} and \var{buttonspec} are explained below in detail. The parameter \var{handler} is the handler for the binding, @@ -195,10 +202,10 @@ Most of the key names are quite intuitive while some are not. For example, the \key{Enter} key on the main part of the keyboard has the less common name \key{Return} while the one the numpad is called \key{KP\_Enter}. -The \var{keyspec} string may optionally have multiple ''modifier'' names +The \var{keyspec} string may optionally have multiple ``modifier'' names followed by a plus sign (\code{+}) as a prefix. X defines the following modifiers: -\begin{quotation} + \key{Shift}, \key{Control}, \key{Mod1} to \key{Mod5}, \key{AnyModifier} and \key{Lock}. \index{Shift@\key{Shift}} @@ -206,14 +213,13 @@ modifiers: \index{ModN@\key{ModN}} \index{AnyModifier@\key{AnyModifier}} \index{Lock@\key{Lock}} -\end{quotation} X allows binding all of these modifiers to almost any key and while this list of modifiers does not explicitly list keys such as \key{Alt}\index{Alt@\key{Alt}} that are common on modern keyboards, such keys are bound to one of the \key{ModN}. On systems running XFree86 \key{Alt} is usually \key{Mod1}. On Suns \key{Mod1} is the diamond key -and \key{Alt} something else. One of the ''flying window'' keys on so +and \key{Alt} something else. One of the ``flying window'' keys on so called Windows-keyboards is probably mapped to \key{Mod3} if you have such a key. Use the program \file{xmodmap}\index{xmodmap@\file{xmodmap}} to find out what exactly is bound where. @@ -241,8 +247,8 @@ and one of the button names \key{Button1} to specification may end with an optional area name following an @-sign. Only frames currently support areas, and the supported values in this case are -\code{"border"}, \code{"tab"}, \code{"empty_tab"}, \code{"client"} and -\code{nil} (for the whole frame). +\codestr{border}, \codestr{tab}, \codestr{empty\_tab}, \codestr{client} +and \code{nil} (for the whole frame). For example, the following code binds dragging a tab with the first button pressed to initiate tab drag\&drop handling: @@ -258,7 +264,7 @@ defbindings("WFrame", { The default binding configuration contains references to the variables \code{META} and \code{ALTMETA} instead of directly using the default -values of \code{"Mod1+"} and \code{""} (nothing). As explained in +values of \codestr{Mod1+} and \codestr{} (nothing). As explained in section \ref{sec:walkthrough}, the definitions of these variables appear in \file{cfg\_ion.lua}. This way you can easily change the the modifiers used by all bindings in the default configuration without diff --git a/conf-menus.tex b/conf-menus.tex index f47a5a8..531f63a 100644 --- a/conf-menus.tex +++ b/conf-menus.tex @@ -44,26 +44,26 @@ just like the menus defined as above. \begin{tabularx}{\linewidth}{lX} \tabhead{Menu name & Description} - \code{windowlist} & + \codestr{windowlist} & List of all client windows. Activating an entry jumps to that window. \\ - \code{workspacelist} & + \codestr{workspacelist} & List of all workspaces. Activating an entry jumps to that workspaces. \\ - \code{focuslist} & + \codestr{focuslist} & List of client windows with recent activity in them, followed by previously focused client windows. \\ - \code{focuslist_} & + \codestr{focuslist\_} & List of previously focused client windows. \\ - \code{stylemenu} & + \codestr{stylemenu} & List of available \file{look\_*.lua} style files. Activating an entry loads that style and ask to save the selection. \\ - \code{ctxmenu} & + \codestr{ctxmenu} & Context menu for given object. \\ \end{tabularx} \subsection{Defining context menus} -The ''ctxmenu'' is a special menu that is assembled from a defined context +The ``ctxmenu'' is a special menu that is assembled from a defined context menu for the object for which the menu was opened for, but also includes the context menus for the manager objects as submenus. @@ -81,9 +81,9 @@ defctxmenu("WFrame", { }) \end{verbatim} -Some of the same ''modes'' as were available for some bindings -may also be used: \code{WFrame.tiled}, \code{WFrame.floating}, -and \code{WFrame.transient}. +Some of the same ``modes'' as were available for some bindings +may also be used: \codestr{WFrame.tiled}, \codestr{WFrame.floating}, +and \codestr{WFrame.transient}. \subsection{Displaying menus} @@ -105,10 +105,7 @@ handlers (and elsewhere): \fnref{mod_menu.grabmenu} & A special version of \fnref{mod_menu.menu} that grabs the keyboard and is scrolled with a given key until all modifiers have been released, - after which the selected entry is activated. This function is meant to - be used for implementing, for example, Win***s-style \key{Alt-Tab} - handling.\footnote{See the \file{wcirculate.lua} script in the Ion - scripts repository \url{http://iki.fi/tuomov/repos/ion-scripts-3/}.} \\ + after which the selected entry is activated. \\ \end{tabularx} The \fnrefx{mod_menu}{grabmenu} function takes the extra key parameter, but diff --git a/conf-statusbar.tex b/conf-statusbar.tex new file mode 100644 index 0000000..2475552 --- /dev/null +++ b/conf-statusbar.tex @@ -0,0 +1,124 @@ +\section{The statusbar} +\label{sec:statusbar} + +The \file{mod\_statusbar} module provides a statusbar that adapts to +layouts of tilings, using only the minimal space needed. Ion only +supports one adaptive ``status display'' object per screen, so this +statusbar is mutually exclusive with the embedded mode of \file{mod\_dock} +docks. + +The statusbar is configured in \file{cfg\_statusbar.lua}. Typically, +the configuration consists of two steps: creating a statusbar with +\fnref{mod\_statusbar.create}, and then launching the separate +\command{ion-statusd} status daemon process with +\fnref{mod_statusbar.launch_statusd}. This latter phase is done +automatically, if it was not done by the configuration file, but +the configuration file may pass extra parameters to \command{ion-statusd} +monitors. (See Section \ref{sec:statusd} for more information on +writing \command{ion-statusd} monitors.) + +A typical \file{cfg\_statusbar.lua} configuration might look as follows: + + +\begin{verbatim} +-- Create a statusbar +mod_statusbar.create{ + screen = 0, -- First screen, + pos = 'bl', -- bottom left corner + systray = true, -- Swallow systray windows + + -- The template + template = "[ %date || load:% %>load || mail:% %>mail_new/%>mail_total ]" + .. " %filler%systray", +} + +-- Launch ion-statusd. +mod_statusbar.launch_statusd{ + -- Date meter + date={ + -- ISO-8601 date format with additional abbreviated day name + date_format='%a %Y-%m-%d %H:%M', + }, +} +\end{verbatim} + + +\subsection{The template} + +The template specifies what is shown on the statusbar; for information +on the other options to \fnref{mod_statusbar.create}, see the reference. +Strings of the form \codestr{\%spec} tokens specially interpreter by +the statusbar; the rest appears verbatim. The \code{spec} typically +consists of the name of the value/meter to display (beginning with a latin +alphabet), but may be preceded by an alignment specifier and a number +specifying the minimum width. The alignment specifiers are: \codestr{>} +for right, \codestr{<} for left, and \codestr{|} for centring. Additionally, +space following \codestr{\%} (that is, the string \codestr{\% }), adds +``stretchable space'' at that point. The special string \codestr{\%filler} +may be used to flush the rest of the template to the right end of +the statusbar. + +The stretchable space works as follows: \file{mod\_statusbar} remembers +the widest string (in terms of graphical presentation) that it has +seen for each meter, unless the width has been otherwise constrained. +If there is stretchable space in the template, it tries to make the +meter always take this much space, by stretching any space found in +the direction indicated by the alignment specifier: the opposite +direction for left or right alignment, and both for centring. + +\subsection{The systray} + +The special \codestr{\%systray} and \codestr{\%systray\_*} +(\codestr{*} varying) monitors indicate where to place system tray +windows. There may be multiple of these. KDE-protocol system tray +icons are placed in \codestr{\%systray} automatically, unless disabled +with the \var{systray} option. Otherwise the \var{statusbar} winprop may +be used to place any window in any particular \codestr{\%systray\_*}. + +\subsection{Monitors} + +The part before the first +underscore of each monitor name, describes the script/plugin/module +that provides the meter, and any configuration should be passed +in the a corresponding sub-table \fnref{mod_statusbar.launch_statusd}. +Ion comes with date, load and mail (for plain old mbox) +\command{ion-statusd} monitor scripts. More may be obtained from +the scripts repository \cite{scripts}. These included scripts +provide the following monitors and their options + +\subsubsection{Date} + +Options: \var{date_format}: The date format in as seen above, +in the usual \code{strftime} format. \code{formats}: table of +formats for additional date monitors, the key being the name +of the monitor (without the \codestr{date\_} prefix). + +Monitors: \codestr{date} and other user-specified ones with the +\codestr{date\_} prefix. + + +\subsubsection{Load} + +Options: \var{update_interval}: Update interval in milliseconds +(default 10s). \var{important_threshold}: Threshold above which +the load is marked as important (default 1.5), so that the +drawing engine may be suitably hinted. \var{critical_threshold}: +Threshold above which the load is marked as critical (default 4.0). + + +Monitors: \codestr{load} (for all three values), +\codestr{load\_1min}, \codestr{load\_5min} and \codestr{load\_15min}. + + +\subsubsection{Mail} + +Options: \var{update_interval}: Update interval in milliseconds +(default 1min). \var{mbox}: mbox-format mailbox location +(default \verb!$MAIL!). +\var{files}: list of additional mailboxes, the key giving the +name of the monitor. + +Monitors: \codestr{mail\_new}, \codestr{mail\_unread}, +\codestr{mail\_total}, and corresponding +\codestr{mail\_*\_new}, \codestr{mail\_*\_unread}, and \codestr{mail\_*\_total} +for the additional mailboxes (\codestr{*} varying). diff --git a/conf-winprops.tex b/conf-winprops.tex index e564b47..e5e0133 100644 --- a/conf-winprops.tex +++ b/conf-winprops.tex @@ -1,7 +1,7 @@ \section{Winprops} \label{sec:winprops} -The so-called ''winprops''\index{Winprops} can be used to change how +The so-called ``winprops''\index{Winprops} can be used to change how specific windows are handled and to set up some kludges to deal with badly behaving applications. They are defined by calling the function \code{defwinprop} with a table containing the properties to set and the @@ -94,9 +94,9 @@ usual method of identifying windows, and how to obtain this information. \begin{winprop}{statusbar}{string} \index{statusbar@\var{statusbar}} Put the window in the statusbar, in the named tray component, - (The default tray component is called simply \code{"systray"}, + (The default tray component is called simply \codestr{systray}, and others you give names to in your custom template, always - prefixed by \code{"systray_"}. + prefixed by \codestr{systray\_}. \end{winprop} @@ -116,10 +116,10 @@ usual method of identifying windows, and how to obtain this information. \begin{winprop}{transient_mode}{string} \index{transient-mode@\var{transient_mode}} - \code{"normal"}: No change in behaviour. \code{"current"}: + \codestr{normal}: No change in behaviour. \codestr{current}: The window should be thought of as a transient for the current active client window (if any) even if it is not marked as a - transient by the application. \code{"off"}: The window should + transient by the application. \codestr{off}: The window should be handled as a normal window even if it is marked as a transient by the application. \end{winprop} @@ -159,15 +159,22 @@ only for floating windows. \subsection{Classes, roles and instances} \label{sec:classesrolesinstances} -The identification information in the winprop specification is usually the +The identification information supported are \var{class}\index{class@\var{class}!winprop}, \var{role}\index{role@\var{role}!winprop}, -\var{instance}\index{instance@\var{instance}!winprop} and -\var{name} -of the window. The \var{name} field is a Lua-style regular expression -matched against the window's title and the rest are strings that must -exactly match the corresponding window information. It is not necessary -to specify all of these fields. +\var{instance}\index{instance@\var{instance}!winprop}, +\var{name}\index{name@\var{name}!winprop}, +\var{is_transient}\index{is-transient@\var{is_transient}!winprop}, and +\var{is_dockapp}\index{is-dockapp@\var{is_dockapp}!winprop}. +It is not necessary to specify all of these fields. +The first three are strings, and must exactly match the +corresponding information obtained from the window's properties. +The \var{name} field is a Lua-style regular expression matched against +the window's title. The \var{is_transient} field is a boolean that can +be used to include or exclude transients only, while the \var{is_dockapp} +field is set by Ion for the dock windows of Window Maker dockapp protocol +dockapps. Usually this is the only information available for these +\emph{icon} windows. Ion looks for a matching winprop in the order listed by the following table. An 'E' indicates that the field must be set in the winprop @@ -179,7 +186,7 @@ fields) is tried. \begin{center} \begin{tabular}{llll} - \tabhead{\var{class} & \var{role} & \var{instance} & \var{name}} + \tabhead{\var{class} & \var{role} & \var{instance} & other} E & E & E & E \\ E & E & E & * \\ E & E & * & E \\ @@ -191,8 +198,10 @@ fields) is tried. \end{tabular} \end{center} -If there are multiple winprops with other identification information -the same but different \var{name}, the longest match is chosen. +If there are multiple matching winprops with the same +\var{class}, \var{role} and \var{instance}, but other information +different, the most recently defined one is used. + \subsection{Finding window identification} @@ -209,10 +218,10 @@ windows have this property -- use the command \command{xprop WM_ROLE}. This method, however, will not work on transients. \index{transient} -So-called ''transient windows'' are usually short-lived dialogs (although +So-called ``transient windows'' are usually short-lived dialogs (although some programs abuse this property) that have a parent window that they are -''transient for''. On tiled workspaces Ion displays these windows -simulatenously with the parent window at the bottom of the same frame. +``transient for''. On tiled workspaces Ion displays these windows +simultaneously with the parent window at the bottom of the same frame. Unfortunately \command{xprop} is stupid and can't cope with this situation, returning the parent window's properties when the transient is clicked on. For this reason you'll have to do a little extra work to get the properties @@ -221,9 +230,13 @@ fix this, but nothing seems to be happening with respect to including it in XFree86.} Finally, it should be mentioned that too many authors these days -''forget'' to set this vital identification to anything meaningful: -everything except name is the same for all of the programs's -windows, for example. +``forget'' to set this vital identification to anything meaningful: +everything except name is the same for all of the program's +windows, for example. Some other programs only set this information +after the window has been mapped, i.e. the window manager has been +told to start managing it, which is obviously too late. +Gtk applications in particular are often guilty on both counts. + \subsection{Some common examples} @@ -239,28 +252,6 @@ defwinprop{ } \end{verbatim} -\subsubsection{Fixing a Mozilla Firebird transient} - -Mozilla Firebird (0.7) incorrectly does not set the \code{WM_TRANSIENT_FOR} -property for the dialog that is used to ask the action to take for a file. -It, however, sets the the property point to the main window for the save -dialog. This can be annoying and confusing, as the first dialog is not -closed before the second is displayed. - -We'd like the first dialog to be transient to the main window. The closest -we can get to that is to consider it transient to the current window (if -there's one). Unfortunately Firebird does not set any meaningful classes, -instances or roles for the windows, so we'll have to rely on an ugly title -match. - -\begin{verbatim} -defwinprop{ - class = "MozillaFirebird-bin", - name = "Opening .*", - transient_mode = "current", -} -\end{verbatim} - \subsubsection{Forcing newly created windows in named frames} The following winprop should place xterm started with command-line parameter @@ -275,7 +266,7 @@ defwinprop{ \end{verbatim} For this example to work, we have to somehow create a frame named -\code{sysmonframe}. One way to do this is to make the following +\codestr{sysmonframe}. One way to do this is to make the following call in the \key{Mod1+F3} Lua code query: \begin{verbatim} @@ -285,5 +276,5 @@ mod_query.query_renameframe(_) Recall that \code{_} points to the multiplexer (frame or screen) in which the query was opened. Running this code should open a new query prefilled with the current name of the frame. In our example we would change the -name to \code{sysmonframe}, but we could just as well have used the +name to \codestr{sysmonframe}, but we could just as well have used the default name formed from the frame's class name and an instance number. diff --git a/conf.tex b/conf.tex index eb0f565..ed19b51 100644 --- a/conf.tex +++ b/conf.tex @@ -15,8 +15,8 @@ configuration file \file{ion.lua} is provided in section \ref{sec:walkthrough}. How keys and mouse action are bound to functions is described in detail in \ref{sec:bindings} and in section \ref{sec:winprops} winprops are -explained. For a reference on exported functions, see section -\ref{sec:exports}. +explained. Finally, the statusbar is explained in \ref{sec:statusbar}. +For a reference on exported functions, see section \ref{sec:exports}. \section{The configuration files} \label{sec:conffiles} @@ -44,7 +44,7 @@ file in \file{\~{}/.ion3/} and modify this file. When searching for a file, if no extension or path component is given, compiled \file{.lc} files are attempted before \file{.lua} files. -All the configuration files are named \file{cfg\_*.lua} with the ''\file{*}'' +All the configuration files are named \file{cfg\_*.lua} with the ``\file{*}'' part varying. The configuration file for each module \file{mod\_modname} is \file{cfg\_modname.lua}, with \file{modname} varying by the module in question. The following table summarises these and other configuration @@ -91,19 +91,21 @@ file. Some basic 'feel' settings are usually configured there and the necessary modules and other configuration files configuring some more specific aspects of Ion are loaded there. In this section we take a walk through the stock \file{cfg\_ion.lua}. -Notice that most of the settings are commented-out (\code{--} is a +Notice that most of the settings are commented-out (\verb!--! is a line comment in Lua) in the actual file, as they're the defaults nevertheless. -The first thing one in the file is to set +The first thing done in the file, is to set \begin{verbatim} META="Mod1+" ALTMETA="" \end{verbatim} These settings cause most of Ion's key bindings to use \key{Mod1} as the -modifier key. If \code{ALTMETA} is set, it is used as modifier for the keys -that don't normally use a modifier. for details on modifiers and key -binding setup in general see section \ref{sec:bindings}. +modifier key. If \code{ALTMETA} is set, it is used as modifier for the +keys that don't normally use a modifier. Note that these two are Lua +variables used in the configuration files only, and not Ion settings. +For details on modifiers and key binding setup in general, see section +\ref{sec:bindings}. Next we do some basic feel configuration: @@ -134,7 +136,7 @@ There are some other options as well; see the documentation for \fnref{ioncore.set} for details. As a next step, in the actual \file{cfg\_ion.lua} file, we load -\file{cfg\_defaults.lua}. However, it is merely a conveniency file for +\file{cfg\_defaults.lua}. However, it is merely a convenience file for doing exactly what we will going through below, and what is commented out in the actual file. If you do not want to load what \file{cfg\_defaults.lua} loads, just comment out the corresponding @@ -150,8 +152,8 @@ dopath("cfg_layouts") Most bindings and menus are defined in \file{cfg\_ioncore.lua}. Details on making such definitions follow in sections \ref{sec:bindings} and \ref{sec:menus}, respectively. -some kludges or ''winprops'' to make some applications behave better -under Ion are colledted in \file{cfg\_kludges.lua}; see section +some kludges or ``winprops'' to make some applications behave better +under Ion are collected in \file{cfg\_kludges.lua}; see section \ref{sec:winprops} for details. In addition to these, this file lists quite a few statements of the form \begin{verbatim} @@ -184,3 +186,7 @@ dopath("mod_sp") \input{conf-menus.tex} \input{conf-winprops.tex} + +\input{conf-statusbar.tex} + + diff --git a/confintro.tex b/confintro.tex index 9331614..a04af82 100644 --- a/confintro.tex +++ b/confintro.tex @@ -1,52 +1,50 @@ \chapter{Introduction} -This document is an ''advanced user'' manual for Ion, the X11 window manager, -and version 3 specifically. It is an attempt attempt at documenting what is -in Ion's configuration files, how to configure Ion by simple modifications +This document is an ``advanced user'' manual for the X11 window manager +Ion, version 3. It is an attempt at documenting things that go into Ion's +configuration files, how to configure Ion by simple modifications to these files and how to write more complex extensions in Lua, the lightweight configuration and scripting language used by Ion. -Readers unfamiliar with Lua is advised to first glance at the Lua manual at +Readers unfamiliar with Lua might first want to first glance at some +Lua documentation at -\centerurl{http://www.lua.org/docs.html} +\begin{center} + \url{http://www.lua.org/docs.html}, or \\ + \url{http://lua-users.org/wiki/LuaTutorial}, +\end{center} -and perhaps some tutorial pages at the lua-users wiki: - -\centerurl{http://lua-users.org/wiki/LuaTutorial} +although this should not be strictly necessary for basic modifications +of configuration files for anyone with at least some familiarity with +programming languages. Back in this document, first in chapter \ref{chap:prelim} some key -concepts and relations are explained. These include the module system -and Ion's object and class hierarchies. While it might not at first -occur that knowing such things would be necessary to \emph{configure} -a program, this material is essential because of the object-oriented -nature of most of Ion's scripting interface. - -The new user, fed up with the default key bindings and eager to just -quickly configure Ion to his liking may question the reasons for -exposing the ''heavy'' internal OO structure in the scripting and -configuration interface. I'm not the one to blame him for that. -Sure it would be faster to configure Ion to everyone's liking -if a simpler binding configuration interface was provided. Such an -interface would, however, also be far more limited and make writing -extensions more complicated and the advantages from using a real -scripting language would be partly lost. One more advantage from -a rich scripting and configuration interface is that it allows -implementing scripts to read alternate configuration file formats, -ones that could be, for example, modified by external configuration tools. - -In chapter \ref{chap:config} the very basic Ion configuration know-how -is provided. All the different configuration files and their locations -are explained and instructions are given to allow the reader to -configure bindings and so-called ''winprops''. Chapter \ref{chap:gr} -explains the notion of drawing engines and graphical styles and how to -write new looks for Ion and more advanced aspects of Ion's scripting -interface are documented in chapter \ref{chap:tricks} (a work in -progress). - +concepts and relations are explained. These include the module system, +and Ion's object (or ``region'') and class hierarchies. While it may +not be necessary to study the latter for basic copy-paste modifications +of configuration files -- for that you should not really need this +manual either -- it is, however, essential to for more extensive +customisation, due to the semi-object-oriented nature of most of +Ion's scripting interface. Knowing the different object types also +helps dealing with the different binding ``contexts'' (see +Section \ref{sec:bindings}) that to some extent mirror these classes. + +The new user, fed up with the default key bindings and eager to +just quickly configure Ion to his liking, may therefore just want +to skip to Chapter \ref{chap:config}, and attempt to work from therefore. +That chapter provides the very basic Ion configuration know-how +is provided: all the different configuration files and their locations +are explained, instructions are given to allow the reader to +configure bindings and so-called ``winprops'', and the statusbar +templates are also explained. + +Next, Chapter \ref{chap:gr} explains the notion of drawing engines +and graphical styles and how to write new looks for Ion. More advanced +aspects of Ion's scripting interface are documented in Chapter +\ref{chap:tricks}. Finally, most of the functions provided by Ion's scripting interface -are listed and documented in the Function reference in chapter -\ref{sec:exports}. At the end of the document is an alphabetical -listing of all these functions. - +are listed and documented in the Function reference in Chapter +\ref{sec:exports}. At the end of the document an alphabetical +listing of all these functions may be found. diff --git a/cstyle.tex b/cstyle.tex index 328a7c3..e7f5917 100644 --- a/cstyle.tex +++ b/cstyle.tex @@ -1,6 +1,6 @@ \section{C coding style} -If you want to submit patches to Ion, you MUST follow my coding +If you want to submit patches to Ion, you \textbf{must} follow my coding style, even if you think it is the root of all evil. We don't want the code to be an incomprehensible mess of styles and I have better things to do than fix other people's style to match mine. The style @@ -10,7 +10,7 @@ things to take note of. \subsection{Whitespace} \begin{itemize} - \item Indentations of 4 with \emph{tab size=4}. + \item Indentations of 4 with spaces. \item No extra spaces between operators, delimiters etc. except \begin{itemize} diff --git a/de.tex b/de.tex index 4697dc6..93402a7 100644 --- a/de.tex +++ b/de.tex @@ -5,7 +5,9 @@ This chapter first gives in section \ref{sec:engines} a general outline of how drawing engines are used, of style specifications and then in section \ref{sec:defaultde} describes how to specify styles -for the default drawing engine. +for the default drawing engine. Some additional settings and +user attributes are explained in Sections \ref{sec:grmisc}. + \section{Drawing engines, style specifications and sub-styles} \label{sec:engines} @@ -13,7 +15,7 @@ for the default drawing engine. Ion's drawing routines are abstracted into so-called drawing engine modules that can, again depending on the system, be dynamically -loaded as needed. The drawing engine modules provide ''brushes'' +loaded as needed. The drawing engine modules provide ``brushes'' that objects can use to draw some high-level primitives such as borders and text boxes (in addition to simple text and rectangle drawing) on their windows and configure e.g. the shape and @@ -28,16 +30,16 @@ are strings of the form element1-element2-...-elementn \end{verbatim} -An example of such a style specification is \code{tab-frame}; +An example of such a style specification is \codestr{tab-frame}; see the table in subsection \ref{sec:styles} for more styles. When an object asks for a brush of certain style, the selected drawing engine will attempt to find the closest match to this specification. The styles/brushes defined by the drawing engines -may have asterisks (\verb!*!) as some of the elements indicating +may have asterisks (\codestr{*}) as some of the elements indicating a match to anything. Exact matches are preferred to asterisk matches and longer matches to shorter. For example, let a brush -for style \code{foo-bar-baz} be queried, then the following +for style \codestr{foo-bar-baz} be queried, then the following brushes are in order of preference: \begin{verbatim} @@ -70,19 +72,19 @@ tag and drag states.) \begin{tabularx}{\linewidth}{lX} \tabhead{Style name & Description} -\code{frame} & Style for frames. - Substyle attributes: \code{active}/\code{inactive} +\codestr{frame} & Style for frames. + Substyle attributes: \codestr{active}/\codestr{inactive} (mutually exclusive) and - \code{quasiactive}\nobreak/\code{not_quasiactive}. + \codestr{quasiactive}/\codestr{not\_quasiactive}. A frame is ``quasiactive'' when an active region - has a backlink to it, such as a detached window. \\ -\code{frame-tiled} & A more specific style for tiled frames. - Substyle attributes as for \code{frame}. \\ -\code{frame-tiled-alt} & An alternative style for tiled frames. + has a back-link to it, such as a detached window. \\ +\codestr{frame-tiled} & A more specific style for tiled frames. + Substyle attributes as for \codestr{frame}. \\ +\codestr{frame-tiled-alt} & An alternative style for tiled frames. Often used to disable the tab-bar. \\ -\code{frame-floating} & A more specific style for floating +\codestr{frame-floating} & A more specific style for floating frames. \\ -\code{frame-transient} & A more specific style for frames +\codestr{frame-transient} & A more specific style for frames containing transient windows. \\ \end{tabularx} @@ -90,25 +92,25 @@ tag and drag states.) \begin{tabularx}{\linewidth}{lX} \tabhead{Style name & Description} -\code{tab} & Style for frames' tabs and menu entries. +\codestr{tab} & Style for frames' tabs and menu entries. Substyle attributes: - \code{active}\nobreak/\code{inactive} and - \code{selected}\nobreak/\code{unselected} \\ -\code{tab-frame} & A more specific style for frames' tabs. + \codestr{active}/\codestr{inactive} and + \codestr{selected}/\codestr{unselected} \\ +\codestr{tab-frame} & A more specific style for frames' tabs. Additional substyle attributes include: - \code{tagged}\nobreak/\code{not_tagged}, - \code{dragged}\nobreak/\code{not_dragged}, - \code{activity}\nobreak/\code{no_activity} and - \code{quasiactive}\nobreak/\code{not_quasiactive}. \\ -\code{tab-frame-tiled}, & \\ -\code{tab-frame-tiled-alt}, & \\ -\code{tab-frame-floating}, & \\ -\code{tab-frame-transient} & More specific styles for frames in the + \codestr{tagged}/\codestr{not\_tagged}, + \codestr{dragged}/\codestr{not\_dragged}, + \codestr{activity}/\codestr{no\_activity}, + \codestr{quasiactive}/\codestr{not\_quasiactive}. \\ +\codestr{tab-frame-tiled}, & \\ +\codestr{tab-frame-tiled-alt}, & \\ +\codestr{tab-frame-floating}, & \\ +\codestr{tab-frame-transient} & More specific styles for frames in the different modes. \\ -\code{tab-menuentry} & A more specific style for entries in \type{WMenu}s. - Additional substyle attributes include \code{submenu} and - occasionally also \code{activity} is used.\\ -\code{tab-menuentry-bigmenu} & +\codestr{tab-menuentry} & A more specific style for entries in \type{WMenu}s. + Additional substyle attributes include \codestr{submenu} and + occasionally also \codestr{activity} is used.\\ +\codestr{tab-menuentry-bigmenu} & An alternate style for entries in \type{WMenu}s. \\ \end{tabularx} @@ -116,16 +118,21 @@ tag and drag states.) \begin{tabularx}{\linewidth}{lX} \tabhead{Style name & Description} -\code{input} & A style for \type{WInput}s. \\ -\code{input-edln} & A more specific style for \type{WEdln}s. - Substyle attributes: \code{selection} for selected text and - \code{cursor} for the cursor indicating current editing point. \\ -\code{input-message} & A more specific style for \type{WMessage}s. \\ -\code{input-menu} & A more specific style for \type{WMenu}s. \\ -\code{input-menu-bigmenu} & An alternate style for \type{WMenu}s. \\ -\code{moveres_display} & The box displaying position/size when +\codestr{input} & A style for \type{WInput}s. \\ +\codestr{input-edln} & A more specific style for \type{WEdln}s. + Substyle attributes: \codestr{selection} for selected text and + \codestr{cursor} for the cursor indicating current editing point. \\ +\codestr{input-message} & A more specific style for \type{WMessage}s. \\ +\codestr{input-menu} & A more specific style for \type{WMenu}s. \\ +\codestr{input-menu-bigmenu} & An alternate style for \type{WMenu}s. \\ +\codestr{moveres\_display} & The box displaying position/size when moving or resizing frames. \\ -\code{dock} & The dock. \\ +\codestr{stdisp} & Any status display. \\ +\codestr{stdisp-dock} & The dock. \\ +\codestr{stdisp-statusbar} & The statusbar. Substyles include: + the name of any monitor/meter (such as \codestr{date}), and + the supplied hint. Typical hints are: \codestr{normal}, + \codestr{important}, and \codestr{critical}. \\ \end{tabularx} @@ -153,13 +160,13 @@ end The \fnref{gr.select_engine} function sees if the engine given as argument is registered (the default drawing engine is -simply called ''de''). If the engine could not be found, it +simply called ``de''). If the engine could not be found, it tries to load a module of the same name. If the engine still -is not registered, \fnref{gr.select_engine} returns \code{false} +is not registered, \fnref{gr.select_engine} returns \codestr{false} and in this case we also exit the style setup script. If the engine was found, \fnref{gr.select_engine} sees that further requests for brushes are forwarded to that engine -and returns \code{true}. +and returns \codestr{true}. Before defining new styles it may be a good idea to clear old styles from memory so if the old configuration defines more @@ -230,16 +237,16 @@ in \file{/usr/X11R6/lib/X11/rgb.txt} (exact path varying). \begin{tabularx}{\linewidth}{lX} \tabhead{Field & Description} \var{highlight_colour} & - Colour for the ''highlight'' part of a border. \\ + Colour for the ``highlight'' part of a border. \\ \var{shadow_colour} & - Colour for the ''highlight'' part of a border. \\ + Colour for the ``shadow'' part of a border. \\ \var{foreground_colour} & Colour for the normal drawing operations, e.g. text. \\ \var{background_colour} & Window background colour (unless transparency is enabled) and background colour boxes. \\ \var{padding_colour} & - Colour for the ''padding'' part of a border border. Set to + Colour for the ``padding'' part of a border border. Set to \var{background_colour} if unset. \\ \end{tabularx} @@ -252,12 +259,12 @@ indicating a number of pixels. \begin{tabularx}{\linewidth}{lX} \tabhead{Field & Description} \var{border_style} & A string indicating the style of border; one of - elevated/inlaid/ridge/groove as seen in the - above sketch. \\ + \codestr{elevated}/\codestr{inlaid}/\codestr{ridge}/\codestr{groove} + as seen in the above sketch. \\ \var{border_sides} & A string indicating which sides of the border - to draw: all/tb/lr for all, top and bottom, and - left and right. To control between left/right - and top/bottom, use the pixel options below. \\ + to draw: \codestr{all}/\codestr{tb}/\codestr{lr} for all, + top and bottom, and left and right. To control between + left/right and top/bottom, use the pixel options below. \\ \var{highlight_pixels} & Width of the highlight part of the border in pixels. \\ \var{shadow_pixels} & @@ -276,7 +283,7 @@ indicating a number of pixels. \var{font} & Font to be used in text-drawing operations; standard X font name. \\ \var{text_align} & How text is to be aligned in text boxes/tabs; one of - the strings left\nobreak/right\nobreak/center. \\ + the strings \codestr{left}/\codestr{right}/\codestr{center}. \\ \end{tabularx} @@ -295,13 +302,13 @@ indicating a number of pixels. \subsubsection{Substyles} As discussed in previous sections, styles may have substyles to e.g. -indicate different states of the object being drawn. The ''de'' engine +indicate different states of the object being drawn. The ``de'' engine limits what can be configured in substyles to the set of colours in the first table above, but also specifically interprets for the main style -\code{tab-frame} the substyles \code{*-*-tagged} and \code{*-*-*-dragged} +\codestr{tab-frame} the substyles \codestr{*-*-tagged} and \codestr{*-*-*-dragged} by, respectively, drawing a right angle shape at the top right corner of a tab and by shading the tab with a stipple pattern. Also for -menus the substyles \code{*-*-submenu} are handled as a special case. +menus the substyles \codestr{*-*-submenu} are handled as a special case. Substyles are defined with the function \fnref{de.substyle} within the table defining the main style. The parameters to this function are @@ -359,18 +366,32 @@ de.defstyle("tab-frame", { \section{Miscellaneous settings} +\label{sec:grmisc} + + +\subsection{Frame user attributes} + +The function \fnref{WFrame.set_grattr} may be used to give frames +(and their tabs) arbitrary extra attributes to be passed to the +drawing engine. Hence, by configuring such substyles in the style +configuration files, and turning on the attribute when needed, +scripts may display visual cues related to the frame. There is +also one extra attribute specially interpreted by the default +drawing engine: the \codestr{numbered} attribute, which causes +numbers to be displayed on the tabs. + + +\subsection{Extra fields for style \codestr{frame}} The following style fields are independent of the drawing engine used, but are related to objects' styles and therefore configured in the drawing engine configuration file. -\subsection{Extra fields for style \code{frame}} - \begin{tabularx}{\linewidth}{lX} \tabhead{Field & Description} \code{bar} & Controls the style of the tab-bar. Possible values - are the strings \code{"none"}, \code{"inside"}, \code{"outside"} - and \code{"shaped"}, with the last providing the PWM-style + are the strings \codestr{none}, \codestr{inside}, \codestr{outside} + and \codestr{shaped}, with the last providing the PWM-style tab-bars for floating frames. \\ \code{floatframe_tab_min_w} & Minimum tab width in pixels for the shaped style, given that this number times number of tabs @@ -380,15 +401,17 @@ engine configuration file. interval $(0, 1]$. \end{tabularx} -\subsection{Extra fields for style \code{dock}} + + +\subsection{Extra fields for style \codestr{dock}} \begin{tabularx}{\linewidth}{lX} \tabhead{Field & Description} \code{outline_style} & How borders are drawn: - \code{"none"} -- no border, - \code{"all"} -- border around whole dock, - \code{"each"} -- border around each dockapp. \\ -\code{tile_size} & A table with entries \code{width} and \code{height}, + \codestr{none} -- no border, + \codestr{all} -- border around whole dock, + \codestr{each} -- border around each dockapp. \\ +\code{tile_size} & A table with entries \codestr{width} and \codestr{height}, indicating the width and height of tiles in pixels. \end{tabularx} diff --git a/designnotes.tex b/designnotes.tex index 4bb6485..e22ed89 100644 --- a/designnotes.tex +++ b/designnotes.tex @@ -6,8 +6,8 @@ To keep Ion's code as simple as possible yet safe, there are restrictions when the \type{WObj} \code{destroy_obj}\index{destroy-obj@\code{destroy_obj}} function that calls watches, the deinit routine and frees memory may -be called directly. In all other cases the -\code{defer_destroy}\index{defer-destroy@\code{defer_destroy}} +be called directly. In all other cases the \code{mainloop_defer_destroy}% +\index{mainloop-defer-destroy@\code{mainloop_defer_destroy}} function should be used to defer the call of \code{destroy_obj} until Ioncore returns to its main event loop. @@ -20,8 +20,8 @@ following cases: that wants to get rid of the object. This is the case, for example, when the function created a frame to manage some other object but for some reason failed to reparent the object to this frame. - \item In a deferred action handler set with - \code{defer_action}\index{defer-action@\code{defer_action}}. + \item In a deferred action handler set with \code{mainloop_defer_action}% + \index{mainloop-defer-action@\code{mainloop_defer_action}}. Like deferred destroys, other deferred actions are called when Ioncore has returned to the main loop. \item You are absolute sure that C code outside your code has no @@ -30,7 +30,7 @@ following cases: If there are no serious side effects from deferring destroying the object or you're unsure whether it is safe to destroy the object -immediately, use \code{defer_destroy}. +immediately, use \code{mainloop_defer_destroy}. \subsection{The types \code{char*} and \code{const char*} as function parameters and return values} @@ -47,7 +47,7 @@ parameters to functions. For further reference a copy must be made. \\ \code{char*} & The string is the caller's responsibility and it \emph{must} free it when no longer needed. & - The called function may modify the string but the ''owner'' of + The called function may modify the string but the ``owner'' of the string is case-dependant. \\ \end{tabularx} diff --git a/exact-version b/exact-version index 483b164..8549f12 100644 --- a/exact-version +++ b/exact-version @@ -1,5 +1,5 @@ Context: -[TAG ion-doc-3ds-20070318 -Tuomo Valkonen **20070318200902] +[TAG ion-doc-3rc-20070506 +Tuomo Valkonen **20070506144001] diff --git a/fnref.tex b/fnref.tex index c0590b6..7c6e45a 100644 --- a/fnref.tex +++ b/fnref.tex @@ -3,40 +3,44 @@ \section{Functions defined in \file{ioncore}} \label{sec:ioncoreref} -\input{ioncore-fns.tex} +\input{ioncore.exports} \section{Functions defined in \file{mod\_tiling}} \label{sec:tilingref} -\input{mod_tiling-fns.tex} +\input{mod_tiling.exports} %\section{Functions defined in \file{mod\_panews}} %\label{sec:panewsref} -%\input{mod_panews-fns.tex} +%\input{mod_panews.exports} \section{Functions defined in \file{mod\_query}} \label{sec:queryref} -\input{mod_query-fns.tex} +\input{mod_query.exports} \section{Functions defined in \file{mod\_menu}} \label{sec:menuref} -\input{mod_menu-fns.tex} +\input{mod_menu.exports} \section{Functions defined in \file{mod\_dock}} \label{sec:dockref} -\input{mod_dock-fns.tex} +\input{mod_dock.exports} \section{Functions defined in \file{mod\_sp}} \label{sec:spref} -\input{mod_sp-fns.tex} +\input{mod_sp.exports} \section{Functions defined in \file{mod\_statusbar}} \label{sec:statusbarref} -\input{mod_statusbar-fns.tex} +\input{mod_statusbar.exports} \section{Functions defined in \file{de}} \label{sec:deref} -\input{de-fns.tex} +\input{de.exports} \section{Hooks} \label{sec:hookref} \input{hookref} + +\section{Miscellaneous} +\label{sec:miscref} +\input{miscref} diff --git a/fullhierarchy.tex b/fullhierarchy.tex index 8e1cfa9..51a0e84 100644 --- a/fullhierarchy.tex +++ b/fullhierarchy.tex @@ -11,7 +11,6 @@ |-->WHook |-->WTimer |-->WMoveresMode - |-->WMgmtMode (mod_mgmtmode) |-->WRegion | |-->WClientWin | |-->WWindow diff --git a/hookref.tex b/hookref.tex index 4c26562..5e0c05f 100644 --- a/hookref.tex +++ b/hookref.tex @@ -12,7 +12,7 @@ \var{switchto} & bool & Do we want to switch to the client window. \\ \var{jumpto} & bool & Do we want to jump to the client window. \\ \var{userpos} & bool & Geometry set by user. \\ - \var{dockapp} & bool & Client window is a dockapp. \\ + \var{dockapp} & bool & Client window is a dock-app. \\ \var{maprq} & bool & Map request (and not initialisation scan). \\ \var{gravity} & number & Window gravity. \\ \var{geom} & table & Requested geometry; \var{x}, \var{y}, \var{w}, \var{h}.\\ @@ -75,9 +75,9 @@ reg:attach(cwin) \begin{tabularx}{\linewidth}{llX} \tabhead{Field & Type & Description} \var{reg} & WFrame & The frame in question \\ - \var{mode} & string & \var{"switchonly"}, \var{"reorder"}, - \var{"add"} or \var{"remove"} \\ - \var{sw} & bool & Switch occured \\ + \var{mode} & string & \codestr{switchonly}, \codestr{reorder}, + \codestr{add} or \codestr{remove} \\ + \var{sw} & bool & Switch occurred \\ \var{sub} & WRegion & The managed region (primarily) affected \\ \end{tabularx} \end{funcdesc} @@ -111,7 +111,7 @@ reg:attach(cwin) \hookparams{()} \begin{funcdesc} Called when Ion has done all initialisation and is almost ready to - enter the mainloop, except no windows are yet being managed. + enter the main-loop, except no windows are yet being managed. \end{funcdesc} \end{function} @@ -126,6 +126,16 @@ reg:attach(cwin) \end{function} +\begin{function} + \index{ioncore-submap-ungrab-hook@\code{ioncore_submap_ungrab_hook}} + \hookname{ioncore_submap_ungrab_hook} + \hookparams{()} + \begin{funcdesc} + This hook is used to signal whenever Ion leaves the submap grab mode. + \end{funcdesc} +\end{function} + + \begin{function} \index{tiling-placement-alt@\code{tiling_placement_alt}} \hookname{tiling_placement_alt} @@ -141,7 +151,7 @@ reg:attach(cwin) the moment) to be placed \\ \var{mp} & \type{table} & This table contains the same fields as the parameter of \fnref{clientwin_do_manage_alt} \\ - \var{res_frame} & \type{WFrame} & A succesfull handler should + \var{res_frame} & \type{WFrame} & A successful handler should return the target frame here. \\ \end{tabularx} This hook is just for placing within a given workspace after the @@ -196,12 +206,12 @@ reg:attach(cwin) \code{unset_manager} & The region no longer has a manager. \\ \code{set_manager} & The region now has a manager. \\ \code{tag} & Tagging state has changed. \\ - \code{pseudoactivated} & The region has become pseudoactive + \code{pseudoactivated} & The region has become pseudo-active (see below). \\ - \code{pseudoinactivated} & The region is no longer pseudoactive. \\ + \code{pseudoinactivated} & The region is no longer pseudo-active. \\ \end{tabularx} - A region is pseudoactive, when a) it is itself not active (does + A region is pseudo-active, when a) it is itself not active (does not not have the focus, and may not even have a window that could have it), but b) some region managed by it is active. \end{funcdesc} diff --git a/ionconf.dvi.gz b/ionconf.dvi.gz index acdd808..f7e0ba9 100644 Binary files a/ionconf.dvi.gz and b/ionconf.dvi.gz differ diff --git a/ionconf.out b/ionconf.out index 7882440..385ef4f 100644 --- a/ionconf.out +++ b/ionconf.out @@ -26,6 +26,10 @@ \BOOKMARK [2][-]{subsection.3.5.2}{ Classes, roles and instances}{section.3.5} \BOOKMARK [2][-]{subsection.3.5.3}{ Finding window identification}{section.3.5} \BOOKMARK [2][-]{subsection.3.5.4}{ Some common examples}{section.3.5} +\BOOKMARK [1][-]{section.3.6}{ The statusbar}{chapter.3} +\BOOKMARK [2][-]{subsection.3.6.1}{ The template}{section.3.6} +\BOOKMARK [2][-]{subsection.3.6.2}{ The systray}{section.3.6} +\BOOKMARK [2][-]{subsection.3.6.3}{ Monitors}{section.3.6} \BOOKMARK [0][-]{chapter.4}{ Graphical styles}{} \BOOKMARK [1][-]{section.4.1}{ Drawing engines, style specifications and sub-styles}{chapter.4} \BOOKMARK [2][-]{subsection.4.1.1}{ Known styles and substyles}{section.4.1} @@ -34,15 +38,16 @@ \BOOKMARK [2][-]{subsection.4.2.2}{ Defining the styles}{section.4.2} \BOOKMARK [2][-]{subsection.4.2.3}{ An example}{section.4.2} \BOOKMARK [1][-]{section.4.3}{ Miscellaneous settings}{chapter.4} -\BOOKMARK [2][-]{lstlisting.4.-399}{ Extra fields for style !frame!}{section.4.3} -\BOOKMARK [2][-]{lstlisting.4.-421}{ Extra fields for style !dock!}{section.4.3} +\BOOKMARK [2][-]{subsection.4.3.1}{ Frame user attributes}{section.4.3} +\BOOKMARK [2][-]{subsection.4.3.2}{ Extra fields for style `frame'}{section.4.3} +\BOOKMARK [2][-]{subsection.4.3.3}{ Extra fields for style `dock'}{section.4.3} \BOOKMARK [0][-]{chapter.5}{ Scripting}{} \BOOKMARK [1][-]{section.5.1}{ Hooks}{chapter.5} \BOOKMARK [1][-]{section.5.2}{ Referring to regions}{chapter.5} \BOOKMARK [2][-]{subsection.5.2.1}{ Direct object references}{section.5.2} \BOOKMARK [2][-]{subsection.5.2.2}{ Name-based lookups}{section.5.2} \BOOKMARK [1][-]{section.5.3}{ Alternative winprop selection criteria}{chapter.5} -\BOOKMARK [1][-]{lstlisting.5.-462}{ Writing !ion-statusd! monitors}{chapter.5} +\BOOKMARK [1][-]{lstlisting.5.-266}{ Writing !ion-statusd! monitors}{chapter.5} \BOOKMARK [0][-]{chapter.6}{ Function reference}{} \BOOKMARK [1][-]{section.6.1}{ Functions defined in ioncore}{chapter.6} \BOOKMARK [2][-]{subsection.6.1.1}{ WClientWin functions}{section.6.1} @@ -50,17 +55,19 @@ \BOOKMARK [2][-]{subsection.6.1.3}{ WGroup functions}{section.6.1} \BOOKMARK [2][-]{subsection.6.1.4}{ WGroupCW functions}{section.6.1} \BOOKMARK [2][-]{subsection.6.1.5}{ WGroupWS functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.6}{ WInfoWin functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.7}{ WMPlex functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.8}{ WMoveresMode functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.9}{ WRegion functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.10}{ WRootWin functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.11}{ WScreen functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.12}{ WWindow functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.13}{ global functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.14}{ gr functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.15}{ string functions}{section.6.1} -\BOOKMARK [2][-]{subsection.6.1.16}{ table functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.6}{ WHook functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.7}{ WInfoWin functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.8}{ WMPlex functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.9}{ WMoveresMode functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.10}{ WRegion functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.11}{ WRootWin functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.12}{ WScreen functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.13}{ WTimer functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.14}{ WWindow functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.15}{ global functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.16}{ gr functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.17}{ string functions}{section.6.1} +\BOOKMARK [2][-]{subsection.6.1.18}{ table functions}{section.6.1} \BOOKMARK [1][-]{section.6.2}{ Functions defined in mod\137tiling}{chapter.6} \BOOKMARK [2][-]{subsection.6.2.1}{ WSplit functions}{section.6.2} \BOOKMARK [2][-]{subsection.6.2.2}{ WSplitInner functions}{section.6.2} @@ -80,6 +87,9 @@ \BOOKMARK [2][-]{subsection.6.7.1}{ WStatusBar functions}{section.6.7} \BOOKMARK [1][-]{section.6.8}{ Functions defined in de}{chapter.6} \BOOKMARK [1][-]{section.6.9}{ Hooks}{chapter.6} +\BOOKMARK [1][-]{section.6.10}{ Miscellaneous}{chapter.6} +\BOOKMARK [2][-]{subsection.6.10.1}{ Size policies}{section.6.10} \BOOKMARK [0][-]{appendix.A}{ The GNU General Public License}{} \BOOKMARK [0][-]{appendix.B}{ Full class hierarchy visible to Lua-side}{} -\BOOKMARK [0][-]{section*.17}{Index}{} +\BOOKMARK [0][-]{section*.19}{Index}{} +\BOOKMARK [0][-]{section*.21}{Bibliography}{} diff --git a/ionconf.ps.gz b/ionconf.ps.gz index 3f368d7..c59b71a 100644 Binary files a/ionconf.ps.gz and b/ionconf.ps.gz differ diff --git a/ionconf.tex b/ionconf.tex index b12cb17..1bd52af 100644 --- a/ionconf.tex +++ b/ionconf.tex @@ -10,7 +10,7 @@ \title{Configuring and extending Ion3 with Lua} \author{Tuomo Valkonen \\ tuomov at iki.fi} -\date{2007-03-18} +\date{2007-05-06} \makeindex @@ -20,7 +20,7 @@ \maketitle Configuring and extending Ion3 with Lua\\ -Copyright \copyright\ 2003--2005 Tuomo Valkonen. +Copyright \copyright\ 2003--2007 Tuomo Valkonen. This document is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ the Free Software Foundation; either version 2 of the License, or This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -chapter entitled ''GNU General Public License'' for more details. +chapter entitled ``GNU General Public License'' for more details. \tableofcontents @@ -70,4 +70,9 @@ chapter entitled ''GNU General Public License'' for more details. \printindex +\begin{thebibliography}{9} + \bibitem{scripts} The Ion 3 scripts repository, + \url{http://iki.fi/tuomov/repos/ion-scripts-3/}. +\end{thebibliography} + \end{document} diff --git a/ionconf/images.log b/ionconf/images.log index 2475ca5..aee5f70 100644 --- a/ionconf/images.log +++ b/ionconf/images.log @@ -1,4 +1,4 @@ -This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.2.4) 18 MAR 2007 22:35 +This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.4.8) 6 MAY 2007 17:46 entering extended mode **./images.tex (./images.tex @@ -353,42 +353,42 @@ LaTeX Font Info: External font `cmex10' loaded for size (Font) <8> on input line 235. LaTeX Font Info: External font `cmex10' loaded for size (Font) <6> on input line 235. -l2hSize :tex2html_wrap_inline1041:7.0626pt::0.0pt::7.1201pt. +l2hSize :tex2html_wrap_inline1055:7.0626pt::0.0pt::7.1201pt. [1 ] -l2hSize :tex2html_wrap_inline1045:7.48248pt::0.0pt::48.86426pt. +l2hSize :tex2html_wrap_inline1059:7.48248pt::0.0pt::48.86426pt. [2 ] -l2hSize :tex2html_wrap_inline2020:8.7125pt::8.7125pt::23.6642pt. +l2hSize :tex2html_wrap_inline2241:8.7125pt::8.7125pt::23.6642pt. [3 ] -l2hSize :tex2html_wrap_inline6387:7.5626pt::7.5626pt::14.53923pt. +l2hSize :tex2html_wrap_inline5502:7.5626pt::7.5626pt::14.53923pt. [4 ] -l2hSize :tex2html_wrap_inline6389:7.5626pt::7.5626pt::14.53923pt. +l2hSize :tex2html_wrap_inline5504:7.5626pt::7.5626pt::14.53923pt. [5 ] -l2hSize :tex2html_wrap_inline9409:8.7125pt::8.7125pt::86.9574pt. +l2hSize :tex2html_wrap_inline7754:8.7125pt::8.7125pt::86.9574pt. [6 ] (./images.aux) ) Here is how much of TeX's memory you used: - 4443 strings out of 94501 - 62984 string characters out of 1175795 - 122206 words of memory out of 1000000 - 7587 multiletter control sequences out of 10000+50000 + 4467 strings out of 94501 + 63452 string characters out of 1175795 + 123525 words of memory out of 1000000 + 7611 multiletter control sequences out of 10000+50000 7874 words of font info for 24 fonts, out of 500000 for 2000 580 hyphenation exceptions out of 8191 28i,5n,21p,200b,182s stack positions out of 1500i,500n,5000p,200000b,5000s diff --git a/ionconf/images.pl b/ionconf/images.pl index 6d0ccb4..d6e7651 100644 --- a/ionconf/images.pl +++ b/ionconf/images.pl @@ -2,5 +2,41 @@ # Associate images original text with physical files. +$key = q/-1;MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$-1$|; + +$key = q/(0,1];MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$(0, 1]$|; + +$key = q/N=1{ldots}5;MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$N=1{\ldots} 5$|; + +$key = q/-2;MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$-2$|; + +$key = q/n;MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$n$|; + +$key = q/{t,m,b}times{t,c,b};MSF=1.6;LFS=11;AAT/; +$cached_env_img{$key} = q|$\{t,m,b\}\times\{t,c,b\}$|; + 1; diff --git a/ionconf/images.tex b/ionconf/images.tex index 8ab5731..2912e90 100644 --- a/ionconf/images.tex +++ b/ionconf/images.tex @@ -18,8 +18,7 @@ \usepackage{calc} -\urlstyle{rm}% -\providecommand{\centerurl}[1]{\begin{center}\url{#1}\end{center}} +\urlstyle{tt} % \providecommand{\note}[1]{\color{red}**#1**}% @@ -31,6 +30,7 @@ % \providecommand{\key}[1]{\textbf{#1}}% \providecommand{\code}[1]{\texttt{#1}}% +\providecommand{\codestr}[1]{`\texttt{#1}'}% \providecommand{\var}[1]{\texttt{#1}}% \providecommand{\command}[1]{\texttt{#1}} @@ -82,7 +82,7 @@ \title{Configuring and extending Ion3 with Lua} \author{Tuomo Valkonen \\tuomov at iki.fi} -\date{2007-03-18} +\date{2007-05-06} \makeindex @@ -231,7 +231,7 @@ \stepcounter{section} \stepcounter{section} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline1041}% +\lthtmlinlinemathA{tex2html_wrap_inline1055}% $n$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} @@ -242,7 +242,7 @@ $n$% \stepcounter{subsection} \stepcounter{subsection} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline1045}% +\lthtmlinlinemathA{tex2html_wrap_inline1059}% $N=1{\ldots} 5$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} @@ -275,6 +275,12 @@ $N=1{\ldots} 5$% \stepcounter{subsection} \stepcounter{subsubsection} \stepcounter{subsubsection} +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} \stepcounter{subsubsection} \stepcounter{chapter} \stepcounter{section} @@ -293,8 +299,9 @@ $N=1{\ldots} 5$% \stepcounter{subsection} \stepcounter{section} \stepcounter{subsection} +\stepcounter{subsection} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline2020}% +\lthtmlinlinemathA{tex2html_wrap_inline2241}% $(0, 1]$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} @@ -316,14 +323,15 @@ $(0, 1]$% \stepcounter{subsection} \stepcounter{subsection} \stepcounter{subsection} +\stepcounter{subsection} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline6387}% +\lthtmlinlinemathA{tex2html_wrap_inline5502}% $-1$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline6389}% +\lthtmlinlinemathA{tex2html_wrap_inline5504}% $-2$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} @@ -337,6 +345,7 @@ $-2$% \stepcounter{subsection} \stepcounter{subsection} \stepcounter{subsection} +\stepcounter{subsection} \stepcounter{section} \stepcounter{subsection} \stepcounter{subsection} @@ -352,7 +361,7 @@ $-2$% \stepcounter{section} \stepcounter{subsection} {\newpage\clearpage -\lthtmlinlinemathA{tex2html_wrap_inline9409}% +\lthtmlinlinemathA{tex2html_wrap_inline7754}% $\{t,m,b\}\times\{t,c,b\}$% \lthtmlinlinemathZ \lthtmlcheckvsize\clearpage} @@ -362,6 +371,8 @@ $\{t,m,b\}\times\{t,c,b\}$% \stepcounter{subsection} \stepcounter{section} \stepcounter{section} +\stepcounter{section} +\stepcounter{subsection} \appendix \stepcounter{chapter} \addtocounter{enumi}{-1} diff --git a/ionconf/img1.png b/ionconf/img1.png index e69de29..9d458d5 100644 Binary files a/ionconf/img1.png and b/ionconf/img1.png differ diff --git a/ionconf/img2.png b/ionconf/img2.png index e69de29..d681364 100644 Binary files a/ionconf/img2.png and b/ionconf/img2.png differ diff --git a/ionconf/img3.png b/ionconf/img3.png index e69de29..38071fe 100644 Binary files a/ionconf/img3.png and b/ionconf/img3.png differ diff --git a/ionconf/img4.png b/ionconf/img4.png index e69de29..3d3a3ef 100644 Binary files a/ionconf/img4.png and b/ionconf/img4.png differ diff --git a/ionconf/img5.png b/ionconf/img5.png index e69de29..38fbe56 100644 Binary files a/ionconf/img5.png and b/ionconf/img5.png differ diff --git a/ionconf/img6.png b/ionconf/img6.png index e69de29..3601ccb 100644 Binary files a/ionconf/img6.png and b/ionconf/img6.png differ diff --git a/ionconf/index.html b/ionconf/index.html index a2f4405..4783107 100644 --- a/ionconf/index.html +++ b/ionconf/index.html @@ -25,27 +25,27 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -57,13 +57,13 @@ original version by: Nikos Drakos, CBLU, University of Leeds

Tuomo Valkonen

tuomov at iki.fi

-

2007-03-18

+

2007-05-06

Configuring and extending Ion3 with Lua
-Copyright © 2003-2005 Tuomo Valkonen. +Copyright © 2003-2007 Tuomo Valkonen.

This document is free; you can redistribute it and/or modify @@ -75,7 +75,7 @@ the Free Software Foundation; either version 2 of the License, or This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -chapter entitled ''GNU General Public License'' for more details. +chapter entitled ``GNU General Public License'' for more details.



@@ -83,264 +83,294 @@ chapter entitled ''GNU General Public License'' for more details.
-
  • A. The GNU General Public License
    -
  • B. Full class hierarchy visible to Lua-side -
  • List of functions -
  • Index -
  • About this document ... +
  • Bibliography +
  • About this document ...

    diff --git a/ionconf/internals.pl b/ionconf/internals.pl index 0c3453a..e2b61be 100644 --- a/ionconf/internals.pl +++ b/ionconf/internals.pl @@ -18,6 +18,10 @@ $key = q/fn:gr.select_engine/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WHook.add/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.x_get_window_property/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -26,6 +30,14 @@ $key = q/fn:WEdln.context/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.get_hook/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + +$key = q/fn:ioncore.tabnum.clear/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:mod_query.query_exec/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -34,11 +46,11 @@ $key = q/fn:ioncore.goto_first/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.insstr/; +$key = q/fn:WClientWin.quote_next/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WClientWin.quote_next/; +$key = q/fn:WEdln.insstr/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -50,11 +62,19 @@ $key = q/fn:WFrame.is_shaded/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/sec:sizepolicies/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + +$key = q/fn:WTimer.set/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.goto_activity/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WTiling.farthest/; +$key = q/fn:ioncore.submap_enter/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -62,11 +82,11 @@ $key = q/fn:ioncore.create_ws/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.finish/; +$key = q/fn:WTiling.farthest/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.mark/; +$key = q/fn:WEdln.finish/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -74,6 +94,10 @@ $key = q/fn:WEdln.bskip_word/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WEdln.mark/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WMPlex.switch_prev/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -106,19 +130,19 @@ $key = q/fn:ioncore.kpress/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.is_mapped/; +$key = q/fn:ioncore.goto_prev_screen/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.goto_prev_screen/; +$key = q/fn:WRegion.is_mapped/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.transpose_words/; +$key = q/sec:ioncoreref/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/sec:ioncoreref/; +$key = q/fn:WEdln.transpose_words/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -146,6 +170,10 @@ $key = q/fn:ioncore.shutdown/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:mod_statusbar.launch_statusd/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.getbindings/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -166,6 +194,10 @@ $key = q/fn:ioncore.defmenu/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WTimer.reset/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fig:borders/; $ref_files{$key} = "$dir".q|node5.html|; $noresave{$key} = "$nosave"; @@ -198,8 +230,8 @@ $key = q/fn:WMoveresMode.resize/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WStatusBar.is_systray_extl/; -$ref_files{$key} = "$dir".q|node7.html|; +$key = q/sec:statusbar/; +$ref_files{$key} = "$dir".q|node4.html|; $noresave{$key} = "$nosave"; $key = q/fn:WMenu.select_nth/; @@ -214,6 +246,10 @@ $key = q/fn:ioncore.warn_traced/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.create_timer/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WTiling.managed_i/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -226,7 +262,7 @@ $key = q/sec:modules/; $ref_files{$key} = "$dir".q|node3.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplitSplit.tl/; +$key = q/fn:ioncore.defctxmenu/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -234,7 +270,7 @@ $key = q/fn:mod_tiling.mkbottom/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.defctxmenu/; +$key = q/fn:WSplitSplit.tl/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -246,11 +282,11 @@ $key = q/fn:WInput.scrollup/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.set_name_exact/; +$key = q/fn:WMPlex.switch_nth/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WMPlex.switch_nth/; +$key = q/fn:WRegion.set_name_exact/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -266,6 +302,10 @@ $key = q/fn:ioncore.menuentry/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WFrame.set_grattr/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WEdln.forward/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -298,6 +338,10 @@ $key = q/fn:ioncore.snapshot/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.tabnum.show/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/region_do_warp_alt/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -314,6 +358,10 @@ $key = q/fn:ioncore.write_savefile/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:mod_statusbar.inform/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.tagged_i/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -378,6 +426,10 @@ $key = q/fn:WFrame.p_tabdrag/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/cite_scripts/; +$ref_files{$key} = "$dir".q|node12.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.clientwin_i/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -394,11 +446,11 @@ $key = q/fn:WMPlex.switch_next/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.unsqueeze/; +$key = q/fn:WGroup.bottom/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WGroup.bottom/; +$key = q/fn:ioncore.unsqueeze/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -462,15 +514,15 @@ $key = q/chap:tricks/; $ref_files{$key} = "$dir".q|node6.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.groupleader_of/; +$key = q/fn:ioncore.get_savefile/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.get_savefile/; +$key = q/fn:WRegion.groupleader_of/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:mod_query.history_push/; +$key = q/fn:ioncore.lookup_clientwin/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -478,7 +530,7 @@ $key = q/fn:mod_query.get/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.lookup_clientwin/; +$key = q/fn:mod_query.history_push/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -494,11 +546,11 @@ $key = q/sec:winprops/; $ref_files{$key} = "$dir".q|node4.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplit.parent/; +$key = q/fn:ioncore.getctxmenu/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.getctxmenu/; +$key = q/fn:WSplit.parent/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -546,6 +598,10 @@ $key = q/fn:WEdln.point/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.defer/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WMenu.select_prev/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -642,6 +698,10 @@ $key = q/fn:ioncore.defshortening/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WHook.listed/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.refresh_stylelist/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -718,11 +778,11 @@ $key = q/fn:WSplitSplit.br/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:string.shell_safe/; +$key = q/fn:mod_query.query_restart/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:mod_query.query_restart/; +$key = q/fn:string.shell_safe/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -786,14 +846,14 @@ $key = q/fn:WRegion.begin_kbresize/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.deflayout/; -$ref_files{$key} = "$dir".q|node7.html|; -$noresave{$key} = "$nosave"; - $key = q/sec:classesrolesinstances/; $ref_files{$key} = "$dir".q|node4.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.deflayout/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.tagged_attach/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -838,6 +898,10 @@ $key = q/fn:ioncore.detach/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/sec:miscref/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WClientWin.xid/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -910,6 +974,10 @@ $key = q/fn:ioncore.find_manager/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.match_winprop_dflt/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.get_paths/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -922,7 +990,7 @@ $key = q/sec:walkthrough/; $ref_files{$key} = "$dir".q|node4.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WFrame.set_numbers/; +$key = q/fn:mod_statusbar.update/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -946,6 +1014,10 @@ $key = q/fn:WMPlex.attach_new/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:mod_statusbar.create/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WGroup.attach/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -954,11 +1026,11 @@ $key = q/fn:ioncore.mdblclick/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplitSplit.flip/; +$key = q/fn:WTiling.split_top/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WTiling.split_top/; +$key = q/fn:WSplitSplit.flip/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -970,11 +1042,11 @@ $key = q/fn:mod_query.popen_completions/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.defwinprop/; +$key = q/fn:ioncore.popen_bgread/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.popen_bgread/; +$key = q/fn:ioncore.defwinprop/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -986,11 +1058,15 @@ $key = q/fn:ioncore.mdrag/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WSplit.transpose/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WClientWin.kill/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplit.transpose/; +$key = q/fn:ioncore.submap_wait/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -998,11 +1074,15 @@ $key = q/ioncore_snapshot_hook/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WSplitSplit.dir/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:table.map/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplitSplit.dir/; +$key = q/fn:WMPlex.set_stdisp/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -1010,7 +1090,7 @@ $key = q/fn:WFrame.set_shaded/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WMPlex.set_stdisp/; +$key = q/fn:WStatusBar.is_systray/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -1022,11 +1102,11 @@ $key = q/fn:ioncore.x_change_property/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WInput.cancel/; +$key = q/fn:WRegion.parent/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.parent/; +$key = q/fn:WInput.cancel/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -1074,10 +1154,6 @@ $key = q/clientwin_do_manage_alt/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.match_winprop_name/; -$ref_files{$key} = "$dir".q|node7.html|; -$noresave{$key} = "$nosave"; - $key = q/ioncore_sigchld_hook/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -1142,6 +1218,10 @@ $key = q/fn:ioncore.getwinprop/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WHook.remove/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.request_selection/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -1174,6 +1254,10 @@ $key = q/fn:ioncore.aboutmsg/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/sec:grmisc/; +$ref_files{$key} = "$dir".q|node5.html|; +$noresave{$key} = "$nosave"; + $key = q/chap:prelim/; $ref_files{$key} = "$dir".q|node3.html|; $noresave{$key} = "$nosave"; @@ -1202,6 +1286,10 @@ $key = q/fn:WRegion.is_activity/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/sec:statusd/; +$ref_files{$key} = "$dir".q|node6.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WRegion.rqgeom/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -1238,6 +1326,10 @@ $key = q/sec:tilingref/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WTimer.is_set/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WRegion.set_name/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; @@ -1346,6 +1438,10 @@ $key = q/fn:WEdln.skip_word/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/ioncore_submap_ungrab_hook/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WGroup.attach_new/; $ref_files{$key} = "$dir".q|node7.html|; $noresave{$key} = "$nosave"; diff --git a/ionconf/ionconf.css b/ionconf/ionconf.css index f0cd026..86d99dc 100644 --- a/ionconf/ionconf.css +++ b/ionconf/ionconf.css @@ -29,6 +29,7 @@ TD.eqno { } /* equation-number cells */ /* document-specific styles come next */ DIV.navigation { } +DIV.flushleft { } DIV.center { } SPAN.sc { } DIV.quote { } diff --git a/ionconf/ionconf.html b/ionconf/ionconf.html index a2f4405..4783107 100644 --- a/ionconf/ionconf.html +++ b/ionconf/ionconf.html @@ -25,27 +25,27 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -57,13 +57,13 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    Tuomo Valkonen

    tuomov at iki.fi

    -

    2007-03-18

    +

    2007-05-06

    Configuring and extending Ion3 with Lua
    -Copyright © 2003-2005 Tuomo Valkonen. +Copyright © 2003-2007 Tuomo Valkonen.

    This document is free; you can redistribute it and/or modify @@ -75,7 +75,7 @@ the Free Software Foundation; either version 2 of the License, or This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -chapter entitled ''GNU General Public License'' for more details. +chapter entitled ``GNU General Public License'' for more details.



    @@ -83,264 +83,294 @@ chapter entitled ''GNU General Public License'' for more details.
    -
  • A. The GNU General Public License
    -
  • B. Full class hierarchy visible to Lua-side -
  • List of functions -
  • Index -
  • About this document ... +
  • Bibliography +
  • About this document ...

    diff --git a/ionconf/labels.pl b/ionconf/labels.pl index a14d1d0..54a83c4 100644 --- a/ionconf/labels.pl +++ b/ionconf/labels.pl @@ -18,6 +18,10 @@ $key = q/fn:gr.select_engine/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WHook.add/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.x_get_window_property/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -26,6 +30,14 @@ $key = q/fn:WEdln.context/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.get_hook/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + +$key = q/fn:ioncore.tabnum.clear/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:mod_query.query_exec/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -34,11 +46,11 @@ $key = q/fn:ioncore.goto_first/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.insstr/; +$key = q/fn:WClientWin.quote_next/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WClientWin.quote_next/; +$key = q/fn:WEdln.insstr/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -50,11 +62,19 @@ $key = q/fn:WFrame.is_shaded/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/sec:sizepolicies/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + +$key = q/fn:WTimer.set/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.goto_activity/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WTiling.farthest/; +$key = q/fn:ioncore.submap_enter/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -62,11 +82,11 @@ $key = q/fn:ioncore.create_ws/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.finish/; +$key = q/fn:WTiling.farthest/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.mark/; +$key = q/fn:WEdln.finish/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -74,6 +94,10 @@ $key = q/fn:WEdln.bskip_word/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WEdln.mark/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WMPlex.switch_prev/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -106,19 +130,19 @@ $key = q/fn:ioncore.kpress/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.is_mapped/; +$key = q/fn:ioncore.goto_prev_screen/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.goto_prev_screen/; +$key = q/fn:WRegion.is_mapped/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.transpose_words/; +$key = q/sec:ioncoreref/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/sec:ioncoreref/; +$key = q/fn:WEdln.transpose_words/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -146,6 +170,10 @@ $key = q/fn:ioncore.shutdown/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:mod_statusbar.launch_statusd/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.getbindings/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -166,6 +194,10 @@ $key = q/fn:ioncore.defmenu/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WTimer.reset/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fig:borders/; $external_labels{$key} = "$URL/" . q|node5.html|; $noresave{$key} = "$nosave"; @@ -198,8 +230,8 @@ $key = q/fn:WMoveresMode.resize/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WStatusBar.is_systray_extl/; -$external_labels{$key} = "$URL/" . q|node7.html|; +$key = q/sec:statusbar/; +$external_labels{$key} = "$URL/" . q|node4.html|; $noresave{$key} = "$nosave"; $key = q/fn:WMenu.select_nth/; @@ -214,6 +246,10 @@ $key = q/fn:ioncore.warn_traced/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.create_timer/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WTiling.managed_i/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -226,7 +262,7 @@ $key = q/sec:modules/; $external_labels{$key} = "$URL/" . q|node3.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplitSplit.tl/; +$key = q/fn:ioncore.defctxmenu/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -234,7 +270,7 @@ $key = q/fn:mod_tiling.mkbottom/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.defctxmenu/; +$key = q/fn:WSplitSplit.tl/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -246,11 +282,11 @@ $key = q/fn:WInput.scrollup/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.set_name_exact/; +$key = q/fn:WMPlex.switch_nth/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WMPlex.switch_nth/; +$key = q/fn:WRegion.set_name_exact/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -266,6 +302,10 @@ $key = q/fn:ioncore.menuentry/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WFrame.set_grattr/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WEdln.forward/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -298,6 +338,10 @@ $key = q/fn:ioncore.snapshot/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.tabnum.show/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/region_do_warp_alt/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -314,6 +358,10 @@ $key = q/fn:ioncore.write_savefile/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:mod_statusbar.inform/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.tagged_i/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -378,6 +426,10 @@ $key = q/fn:WFrame.p_tabdrag/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/cite_scripts/; +$external_labels{$key} = "$URL/" . q|node12.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.clientwin_i/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -394,11 +446,11 @@ $key = q/fn:WMPlex.switch_next/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.unsqueeze/; +$key = q/fn:WGroup.bottom/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WGroup.bottom/; +$key = q/fn:ioncore.unsqueeze/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -462,15 +514,15 @@ $key = q/chap:tricks/; $external_labels{$key} = "$URL/" . q|node6.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.groupleader_of/; +$key = q/fn:ioncore.get_savefile/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.get_savefile/; +$key = q/fn:WRegion.groupleader_of/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:mod_query.history_push/; +$key = q/fn:ioncore.lookup_clientwin/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -478,7 +530,7 @@ $key = q/fn:mod_query.get/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.lookup_clientwin/; +$key = q/fn:mod_query.history_push/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -494,11 +546,11 @@ $key = q/sec:winprops/; $external_labels{$key} = "$URL/" . q|node4.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplit.parent/; +$key = q/fn:ioncore.getctxmenu/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.getctxmenu/; +$key = q/fn:WSplit.parent/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -546,6 +598,10 @@ $key = q/fn:WEdln.point/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.defer/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WMenu.select_prev/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -642,6 +698,10 @@ $key = q/fn:ioncore.defshortening/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WHook.listed/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.refresh_stylelist/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -718,11 +778,11 @@ $key = q/fn:WSplitSplit.br/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:string.shell_safe/; +$key = q/fn:mod_query.query_restart/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:mod_query.query_restart/; +$key = q/fn:string.shell_safe/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -786,14 +846,14 @@ $key = q/fn:WRegion.begin_kbresize/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.deflayout/; -$external_labels{$key} = "$URL/" . q|node7.html|; -$noresave{$key} = "$nosave"; - $key = q/sec:classesrolesinstances/; $external_labels{$key} = "$URL/" . q|node4.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.deflayout/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.tagged_attach/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -838,6 +898,10 @@ $key = q/fn:ioncore.detach/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/sec:miscref/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WClientWin.xid/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -910,6 +974,10 @@ $key = q/fn:ioncore.find_manager/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.match_winprop_dflt/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.get_paths/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -922,7 +990,7 @@ $key = q/sec:walkthrough/; $external_labels{$key} = "$URL/" . q|node4.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WFrame.set_numbers/; +$key = q/fn:mod_statusbar.update/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -946,6 +1014,10 @@ $key = q/fn:WMPlex.attach_new/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:mod_statusbar.create/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WGroup.attach/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -954,11 +1026,11 @@ $key = q/fn:ioncore.mdblclick/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplitSplit.flip/; +$key = q/fn:WTiling.split_top/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WTiling.split_top/; +$key = q/fn:WSplitSplit.flip/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -970,11 +1042,11 @@ $key = q/fn:mod_query.popen_completions/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.defwinprop/; +$key = q/fn:ioncore.popen_bgread/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.popen_bgread/; +$key = q/fn:ioncore.defwinprop/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -986,11 +1058,15 @@ $key = q/fn:ioncore.mdrag/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WSplit.transpose/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WClientWin.kill/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplit.transpose/; +$key = q/fn:ioncore.submap_wait/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -998,11 +1074,15 @@ $key = q/ioncore_snapshot_hook/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WSplitSplit.dir/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:table.map/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplitSplit.dir/; +$key = q/fn:WMPlex.set_stdisp/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -1010,7 +1090,7 @@ $key = q/fn:WFrame.set_shaded/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WMPlex.set_stdisp/; +$key = q/fn:WStatusBar.is_systray/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -1022,11 +1102,11 @@ $key = q/fn:ioncore.x_change_property/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WInput.cancel/; +$key = q/fn:WRegion.parent/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.parent/; +$key = q/fn:WInput.cancel/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -1074,10 +1154,6 @@ $key = q/clientwin_do_manage_alt/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.match_winprop_name/; -$external_labels{$key} = "$URL/" . q|node7.html|; -$noresave{$key} = "$nosave"; - $key = q/ioncore_sigchld_hook/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -1142,6 +1218,10 @@ $key = q/fn:ioncore.getwinprop/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WHook.remove/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.request_selection/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -1174,6 +1254,10 @@ $key = q/fn:ioncore.aboutmsg/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/sec:grmisc/; +$external_labels{$key} = "$URL/" . q|node5.html|; +$noresave{$key} = "$nosave"; + $key = q/chap:prelim/; $external_labels{$key} = "$URL/" . q|node3.html|; $noresave{$key} = "$nosave"; @@ -1202,6 +1286,10 @@ $key = q/fn:WRegion.is_activity/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/sec:statusd/; +$external_labels{$key} = "$URL/" . q|node6.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WRegion.rqgeom/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -1238,6 +1326,10 @@ $key = q/sec:tilingref/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/fn:WTimer.is_set/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WRegion.set_name/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -1346,6 +1438,10 @@ $key = q/fn:WEdln.skip_word/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; +$key = q/ioncore_submap_ungrab_hook/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + $key = q/fn:WGroup.attach_new/; $external_labels{$key} = "$URL/" . q|node7.html|; $noresave{$key} = "$nosave"; @@ -1378,11 +1474,15 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.mx_nth/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:gr.select_engine/; -$external_latex_labels{$key} = q|6.1.14|; +$external_latex_labels{$key} = q|6.1.16|; +$noresave{$key} = "$nosave"; + +$key = q/fn:WHook.add/; +$external_latex_labels{$key} = q|6.1.6|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.x_get_window_property/; @@ -1393,6 +1493,14 @@ $key = q/fn:WEdln.context/; $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.get_hook/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + +$key = q/fn:ioncore.tabnum.clear/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + $key = q/fn:mod_query.query_exec/; $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; @@ -1401,14 +1509,14 @@ $key = q/fn:ioncore.goto_first/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.insstr/; -$external_latex_labels{$key} = q|6.3.2|; -$noresave{$key} = "$nosave"; - $key = q/fn:WClientWin.quote_next/; $external_latex_labels{$key} = q|6.1.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WEdln.insstr/; +$external_latex_labels{$key} = q|6.3.2|; +$noresave{$key} = "$nosave"; + $key = q/fn:mod_query.query_renameworkspace/; $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; @@ -1417,32 +1525,44 @@ $key = q/fn:WFrame.is_shaded/; $external_latex_labels{$key} = q|6.1.2|; $noresave{$key} = "$nosave"; +$key = q/sec:sizepolicies/; +$external_latex_labels{$key} = q|6.10.1|; +$noresave{$key} = "$nosave"; + +$key = q/fn:WTimer.set/; +$external_latex_labels{$key} = q|6.1.13|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.goto_activity/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; -$key = q/fn:WTiling.farthest/; -$external_latex_labels{$key} = q|6.2.5|; +$key = q/fn:ioncore.submap_enter/; +$external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.create_ws/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WTiling.farthest/; +$external_latex_labels{$key} = q|6.2.5|; +$noresave{$key} = "$nosave"; + $key = q/fn:WEdln.finish/; $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.mark/; +$key = q/fn:WEdln.bskip_word/; $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.bskip_word/; +$key = q/fn:WEdln.mark/; $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.switch_prev/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:WTiling.unsplit_at/; @@ -1450,7 +1570,7 @@ $external_latex_labels{$key} = q|6.2.5|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.dec_index/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.current/; @@ -1473,22 +1593,22 @@ $key = q/fn:ioncore.kpress/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.is_mapped/; -$external_latex_labels{$key} = q|6.1.9|; -$noresave{$key} = "$nosave"; - $key = q/fn:ioncore.goto_prev_screen/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; -$key = q/fn:WEdln.transpose_words/; -$external_latex_labels{$key} = q|6.3.2|; +$key = q/fn:WRegion.is_mapped/; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/sec:ioncoreref/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WEdln.transpose_words/; +$external_latex_labels{$key} = q|6.3.2|; +$noresave{$key} = "$nosave"; + $key = q/fn:mod_statusbar.statusbars/; $external_latex_labels{$key} = q|6.7|; $noresave{$key} = "$nosave"; @@ -1502,7 +1622,7 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WWindow.p_resize/; -$external_latex_labels{$key} = q|6.1.12|; +$external_latex_labels{$key} = q|6.1.14|; $noresave{$key} = "$nosave"; $key = q/fn:WComplProxy.set_completions/; @@ -1513,6 +1633,10 @@ $key = q/fn:ioncore.shutdown/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:mod_statusbar.launch_statusd/; +$external_latex_labels{$key} = q|6.7|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.getbindings/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; @@ -1526,13 +1650,17 @@ $external_latex_labels{$key} = q|4.1.1|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.get_stdisp/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.defmenu/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WTimer.reset/; +$external_latex_labels{$key} = q|6.1.13|; +$noresave{$key} = "$nosave"; + $key = q/fig:borders/; $external_latex_labels{$key} = q|4.1|; $noresave{$key} = "$nosave"; @@ -1554,7 +1682,7 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WScreen.id/; -$external_latex_labels{$key} = q|6.1.11|; +$external_latex_labels{$key} = q|6.1.12|; $noresave{$key} = "$nosave"; $key = q/fn:WFrame.set_mode/; @@ -1562,11 +1690,11 @@ $external_latex_labels{$key} = q|6.1.2|; $noresave{$key} = "$nosave"; $key = q/fn:WMoveresMode.resize/; -$external_latex_labels{$key} = q|6.1.8|; +$external_latex_labels{$key} = q|6.1.9|; $noresave{$key} = "$nosave"; -$key = q/fn:WStatusBar.is_systray_extl/; -$external_latex_labels{$key} = q|6.7.1|; +$key = q/sec:statusbar/; +$external_latex_labels{$key} = q|3.6|; $noresave{$key} = "$nosave"; $key = q/fn:WMenu.select_nth/; @@ -1581,6 +1709,10 @@ $key = q/fn:ioncore.warn_traced/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.create_timer/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + $key = q/fn:WTiling.managed_i/; $external_latex_labels{$key} = q|6.2.5|; $noresave{$key} = "$nosave"; @@ -1593,16 +1725,16 @@ $key = q/sec:modules/; $external_latex_labels{$key} = q|2.1|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplitSplit.tl/; -$external_latex_labels{$key} = q|6.2.4|; +$key = q/fn:ioncore.defctxmenu/; +$external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:mod_tiling.mkbottom/; $external_latex_labels{$key} = q|6.2|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.defctxmenu/; -$external_latex_labels{$key} = q|6.1|; +$key = q/fn:WSplitSplit.tl/; +$external_latex_labels{$key} = q|6.2.4|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.set_selection/; @@ -1613,12 +1745,12 @@ $key = q/fn:WInput.scrollup/; $external_latex_labels{$key} = q|6.3.3|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.set_name_exact/; -$external_latex_labels{$key} = q|6.1.9|; +$key = q/fn:WMPlex.switch_nth/; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; -$key = q/fn:WMPlex.switch_nth/; -$external_latex_labels{$key} = q|6.1.7|; +$key = q/fn:WRegion.set_name_exact/; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WEdln.prev_completion/; @@ -1633,6 +1765,10 @@ $key = q/fn:ioncore.menuentry/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WFrame.set_grattr/; +$external_latex_labels{$key} = q|6.1.2|; +$noresave{$key} = "$nosave"; + $key = q/fn:WEdln.forward/; $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; @@ -1658,13 +1794,17 @@ $external_latex_labels{$key} = q|3.3|; $noresave{$key} = "$nosave"; $key = q/fn:WInfoWin.set_text/; -$external_latex_labels{$key} = q|6.1.6|; +$external_latex_labels{$key} = q|6.1.7|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.snapshot/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.tabnum.show/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + $key = q/region_do_warp_alt/; $external_latex_labels{$key} = q|6.9|; $noresave{$key} = "$nosave"; @@ -1681,6 +1821,10 @@ $key = q/fn:ioncore.write_savefile/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:mod_statusbar.inform/; +$external_latex_labels{$key} = q|6.7|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.tagged_i/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; @@ -1694,7 +1838,7 @@ $external_latex_labels{$key} = q|5.1|; $noresave{$key} = "$nosave"; $key = q/fn:WWindow.xid/; -$external_latex_labels{$key} = q|6.1.12|; +$external_latex_labels{$key} = q|6.1.14|; $noresave{$key} = "$nosave"; $key = q/sec:statusbarref/; @@ -1734,7 +1878,7 @@ $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; $key = q/fn:gr.read_config/; -$external_latex_labels{$key} = q|6.1.14|; +$external_latex_labels{$key} = q|6.1.16|; $noresave{$key} = "$nosave"; $key = q/fn:WTiling.split_at/; @@ -1754,21 +1898,21 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.screen_of/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.switch_next/; -$external_latex_labels{$key} = q|6.1.7|; -$noresave{$key} = "$nosave"; - -$key = q/fn:ioncore.unsqueeze/; -$external_latex_labels{$key} = q|6.1|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:WGroup.bottom/; $external_latex_labels{$key} = q|6.1.3|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.unsqueeze/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + $key = q/fn:mod_query.history_search/; $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; @@ -1778,7 +1922,7 @@ $external_latex_labels{$key} = q|6.2.5|; $noresave{$key} = "$nosave"; $key = q/fn:WRootWin.current_scr/; -$external_latex_labels{$key} = q|6.1.10|; +$external_latex_labels{$key} = q|6.1.11|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.navi_first/; @@ -1814,7 +1958,7 @@ $external_latex_labels{$key} = q|6.5.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.set_tagged/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/app:fullhierarchy/; @@ -1830,23 +1974,23 @@ $external_latex_labels{$key} = q|5|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.groupleader_of/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.get_savefile/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; -$key = q/fn:mod_query.history_push/; -$external_latex_labels{$key} = q|6.3|; +$key = q/fn:ioncore.lookup_clientwin/; +$external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:mod_query.get/; $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.lookup_clientwin/; -$external_latex_labels{$key} = q|6.1|; +$key = q/fn:mod_query.history_push/; +$external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.restart/; @@ -1861,16 +2005,16 @@ $key = q/sec:winprops/; $external_latex_labels{$key} = q|3.5|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplit.parent/; -$external_latex_labels{$key} = q|6.2.1|; -$noresave{$key} = "$nosave"; - $key = q/fn:ioncore.getctxmenu/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WSplit.parent/; +$external_latex_labels{$key} = q|6.2.1|; +$noresave{$key} = "$nosave"; + $key = q/fn:WMoveresMode.rqgeom/; -$external_latex_labels{$key} = q|6.1.8|; +$external_latex_labels{$key} = q|6.1.9|; $noresave{$key} = "$nosave"; $key = q/fn:WStatusBar.get_template_table/; @@ -1890,7 +2034,7 @@ $external_latex_labels{$key} = q|6.1.3|; $noresave{$key} = "$nosave"; $key = q/fn:WWindow.p_move/; -$external_latex_labels{$key} = q|6.1.12|; +$external_latex_labels{$key} = q|6.1.14|; $noresave{$key} = "$nosave"; $key = q/sec:objects/; @@ -1898,7 +2042,7 @@ $external_latex_labels{$key} = q|2.2|; $noresave{$key} = "$nosave"; $key = q/fn:WScreen.set_managed_offset/; -$external_latex_labels{$key} = q|6.1.11|; +$external_latex_labels{$key} = q|6.1.12|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.get_dir_for/; @@ -1913,6 +2057,10 @@ $key = q/fn:WEdln.point/; $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.defer/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + $key = q/fn:WMenu.select_prev/; $external_latex_labels{$key} = q|6.4.1|; $noresave{$key} = "$nosave"; @@ -1954,7 +2102,7 @@ $external_latex_labels{$key} = q|6.4.1|; $noresave{$key} = "$nosave"; $key = q/fn:table.copy/; -$external_latex_labels{$key} = q|6.1.16|; +$external_latex_labels{$key} = q|6.1.18|; $noresave{$key} = "$nosave"; $key = q/fn:WSplit.rqgeom/; @@ -1962,7 +2110,7 @@ $external_latex_labels{$key} = q|6.2.1|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.managed_i/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:WEdln.set_mark/; @@ -1974,11 +2122,11 @@ $external_latex_labels{$key} = q|6.9|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.mx_count/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.attach/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fig:managership/; @@ -1990,7 +2138,7 @@ $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; $key = q/fn:WMoveresMode.move/; -$external_latex_labels{$key} = q|6.1.8|; +$external_latex_labels{$key} = q|6.1.9|; $noresave{$key} = "$nosave"; $key = q/fn:mod_tiling.get/; @@ -2009,6 +2157,10 @@ $key = q/fn:ioncore.defshortening/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WHook.listed/; +$external_latex_labels{$key} = q|6.1.6|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.refresh_stylelist/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; @@ -2018,7 +2170,7 @@ $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.inc_index/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.x_delete_property/; @@ -2026,11 +2178,11 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.rqclose/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.set_activity/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:mod_query.query_runfile/; @@ -2054,7 +2206,7 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.mx_current/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:mod_query.message/; @@ -2085,14 +2237,14 @@ $key = q/fn:WSplitSplit.br/; $external_latex_labels{$key} = q|6.2.4|; $noresave{$key} = "$nosave"; -$key = q/fn:string.shell_safe/; -$external_latex_labels{$key} = q|6.1.15|; -$noresave{$key} = "$nosave"; - $key = q/fn:mod_query.query_restart/; $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; +$key = q/fn:string.shell_safe/; +$external_latex_labels{$key} = q|6.1.17|; +$noresave{$key} = "$nosave"; + $key = q/fn:mod_tiling.set/; $external_latex_labels{$key} = q|6.2|; $noresave{$key} = "$nosave"; @@ -2122,11 +2274,11 @@ $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.current/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.rqclose_propagate/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/region_notify_hook/; @@ -2150,23 +2302,23 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.begin_kbresize/; -$external_latex_labels{$key} = q|6.1.9|; -$noresave{$key} = "$nosave"; - -$key = q/fn:ioncore.deflayout/; -$external_latex_labels{$key} = q|6.1|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/sec:classesrolesinstances/; $external_latex_labels{$key} = q|3.5.2|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.deflayout/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.tagged_attach/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.is_tagged/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WEdln.next_completion/; @@ -2174,7 +2326,7 @@ $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.set_hidden/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:WMenu.cancel/; @@ -2186,7 +2338,7 @@ $external_latex_labels{$key} = q|6.1.1|; $noresave{$key} = "$nosave"; $key = q/fn:WMoveresMode.geom/; -$external_latex_labels{$key} = q|6.1.8|; +$external_latex_labels{$key} = q|6.1.9|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.goto_nth_screen/; @@ -2205,12 +2357,16 @@ $key = q/fn:ioncore.detach/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/sec:miscref/; +$external_latex_labels{$key} = q|6.10|; +$noresave{$key} = "$nosave"; + $key = q/fn:WClientWin.xid/; $external_latex_labels{$key} = q|6.1.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.name/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.x_get_text_property/; @@ -2226,7 +2382,7 @@ $external_latex_labels{$key} = q|6.9|; $noresave{$key} = "$nosave"; $key = q/fn:table.append/; -$external_latex_labels{$key} = q|6.1.16|; +$external_latex_labels{$key} = q|6.1.18|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.mclick/; @@ -2238,7 +2394,7 @@ $external_latex_labels{$key} = q|6.7.1|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.set_index/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:mod_query.history_clear/; @@ -2254,7 +2410,7 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WMoveresMode.finish/; -$external_latex_labels{$key} = q|6.1.8|; +$external_latex_labels{$key} = q|6.1.9|; $noresave{$key} = "$nosave"; $key = q/fn:mod_query.query_gotoclient/; @@ -2277,6 +2433,10 @@ $key = q/fn:ioncore.find_manager/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:ioncore.match_winprop_dflt/; +$external_latex_labels{$key} = q|6.1|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.get_paths/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; @@ -2289,12 +2449,12 @@ $key = q/sec:walkthrough/; $external_latex_labels{$key} = q|3.2|; $noresave{$key} = "$nosave"; -$key = q/fn:WFrame.set_numbers/; -$external_latex_labels{$key} = q|6.1.2|; +$key = q/fn:mod_statusbar.update/; +$external_latex_labels{$key} = q|6.7|; $noresave{$key} = "$nosave"; $key = q/fn:WMoveresMode.cancel/; -$external_latex_labels{$key} = q|6.1.8|; +$external_latex_labels{$key} = q|6.1.9|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.submap/; @@ -2302,7 +2462,7 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.is_active/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WEdln.bkill_word/; @@ -2310,7 +2470,11 @@ $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.attach_new/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; +$noresave{$key} = "$nosave"; + +$key = q/fn:mod_statusbar.create/; +$external_latex_labels{$key} = q|6.7|; $noresave{$key} = "$nosave"; $key = q/fn:WGroup.attach/; @@ -2337,11 +2501,11 @@ $key = q/fn:mod_query.popen_completions/; $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.defwinprop/; +$key = q/fn:ioncore.popen_bgread/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.popen_bgread/; +$key = q/fn:ioncore.defwinprop/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; @@ -2353,48 +2517,56 @@ $key = q/fn:ioncore.mdrag/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WSplit.transpose/; +$external_latex_labels{$key} = q|6.2.1|; +$noresave{$key} = "$nosave"; + $key = q/fn:WClientWin.kill/; $external_latex_labels{$key} = q|6.1.1|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplit.transpose/; -$external_latex_labels{$key} = q|6.2.1|; +$key = q/fn:ioncore.submap_wait/; +$external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/ioncore_snapshot_hook/; $external_latex_labels{$key} = q|6.9|; $noresave{$key} = "$nosave"; +$key = q/fn:WSplitSplit.dir/; +$external_latex_labels{$key} = q|6.2.4|; +$noresave{$key} = "$nosave"; + $key = q/fn:table.map/; -$external_latex_labels{$key} = q|6.1.16|; +$external_latex_labels{$key} = q|6.1.18|; $noresave{$key} = "$nosave"; -$key = q/fn:WSplitSplit.dir/; -$external_latex_labels{$key} = q|6.2.4|; +$key = q/fn:WMPlex.set_stdisp/; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:WFrame.set_shaded/; $external_latex_labels{$key} = q|6.1.2|; $noresave{$key} = "$nosave"; -$key = q/fn:WMPlex.set_stdisp/; -$external_latex_labels{$key} = q|6.1.7|; +$key = q/fn:WStatusBar.is_systray/; +$external_latex_labels{$key} = q|6.7.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.manager/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.x_change_property/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; -$key = q/fn:WInput.cancel/; -$external_latex_labels{$key} = q|6.3.3|; +$key = q/fn:WRegion.parent/; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; -$key = q/fn:WRegion.parent/; -$external_latex_labels{$key} = q|6.1.9|; +$key = q/fn:WInput.cancel/; +$external_latex_labels{$key} = q|6.3.3|; $noresave{$key} = "$nosave"; $key = q/fn:WEdln.back/; @@ -2418,7 +2590,7 @@ $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.geom/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.kpress_wait/; @@ -2430,21 +2602,17 @@ $external_latex_labels{$key} = q|6.2.5|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.rootwin_of/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.mx_i/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/clientwin_do_manage_alt/; $external_latex_labels{$key} = q|6.9|; $noresave{$key} = "$nosave"; -$key = q/fn:ioncore.match_winprop_name/; -$external_latex_labels{$key} = q|6.1|; -$noresave{$key} = "$nosave"; - $key = q/ioncore_sigchld_hook/; $external_latex_labels{$key} = q|6.9|; $noresave{$key} = "$nosave"; @@ -2482,11 +2650,11 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:gr.refresh/; -$external_latex_labels{$key} = q|6.1.14|; +$external_latex_labels{$key} = q|6.1.16|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.rqorder/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:mod_menu.grabmenu/; @@ -2498,7 +2666,7 @@ $external_latex_labels{$key} = q|6.2.3|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.size_hints/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WEdln.delete/; @@ -2509,6 +2677,10 @@ $key = q/fn:ioncore.getwinprop/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/fn:WHook.remove/; +$external_latex_labels{$key} = q|6.1.6|; +$noresave{$key} = "$nosave"; + $key = q/fn:ioncore.request_selection/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; @@ -2522,7 +2694,7 @@ $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.goto/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.goto_next_screen/; @@ -2541,6 +2713,10 @@ $key = q/fn:ioncore.aboutmsg/; $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; +$key = q/sec:grmisc/; +$external_latex_labels{$key} = q|4.3|; +$noresave{$key} = "$nosave"; + $key = q/chap:prelim/; $external_latex_labels{$key} = q|2|; $noresave{$key} = "$nosave"; @@ -2566,11 +2742,15 @@ $external_latex_labels{$key} = q|6.1|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.is_activity/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; +$noresave{$key} = "$nosave"; + +$key = q/sec:statusd/; +$external_latex_labels{$key} = q|5.4|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.rqgeom/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:WInput.scrolldown/; @@ -2605,12 +2785,16 @@ $key = q/sec:tilingref/; $external_latex_labels{$key} = q|6.2|; $noresave{$key} = "$nosave"; +$key = q/fn:WTimer.is_set/; +$external_latex_labels{$key} = q|6.1.13|; +$noresave{$key} = "$nosave"; + $key = q/fn:WRegion.set_name/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:table.join/; -$external_latex_labels{$key} = q|6.1.16|; +$external_latex_labels{$key} = q|6.1.18|; $noresave{$key} = "$nosave"; $key = q/fn:ioncore.activity_first/; @@ -2622,11 +2806,11 @@ $external_latex_labels{$key} = q|6.6|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.is_hidden/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:WRegion.get_configuration/; -$external_latex_labels{$key} = q|6.1.9|; +$external_latex_labels{$key} = q|6.1.10|; $noresave{$key} = "$nosave"; $key = q/fn:mod_menu.get/; @@ -2666,7 +2850,7 @@ $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; $key = q/fn:export/; -$external_latex_labels{$key} = q|6.1.13|; +$external_latex_labels{$key} = q|6.1.15|; $noresave{$key} = "$nosave"; $key = q/chap:gr/; @@ -2690,7 +2874,7 @@ $external_latex_labels{$key} = q|6.9|; $noresave{$key} = "$nosave"; $key = q/fn:table.icat/; -$external_latex_labels{$key} = q|6.1.16|; +$external_latex_labels{$key} = q|6.1.18|; $noresave{$key} = "$nosave"; $key = q/fn:WEdln.kill_line/; @@ -2706,13 +2890,17 @@ $external_latex_labels{$key} = q|6.3|; $noresave{$key} = "$nosave"; $key = q/fn:WMPlex.get_index/; -$external_latex_labels{$key} = q|6.1.7|; +$external_latex_labels{$key} = q|6.1.8|; $noresave{$key} = "$nosave"; $key = q/fn:WEdln.skip_word/; $external_latex_labels{$key} = q|6.3.2|; $noresave{$key} = "$nosave"; +$key = q/ioncore_submap_ungrab_hook/; +$external_latex_labels{$key} = q|6.9|; +$noresave{$key} = "$nosave"; + $key = q/fn:WGroup.attach_new/; $external_latex_labels{$key} = q|6.1.3|; $noresave{$key} = "$nosave"; diff --git a/ionconf/node1.html b/ionconf/node1.html index b243cb3..8027def 100644 --- a/ionconf/node1.html +++ b/ionconf/node1.html @@ -28,26 +28,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -60,219 +60,243 @@ Contents

    diff --git a/ionconf/node10.html b/ionconf/node10.html index 6499263..d15711c 100644 --- a/ionconf/node10.html +++ b/ionconf/node10.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    @@ -79,10 +79,12 @@ List of functions
    ioncore.chdir_for
    ioncore.clientwin_i
    ioncore.compile_cmd +
    ioncore.create_timer
    ioncore.create_ws
    ioncore.current
    ioncore.defbindings
    ioncore.defctxmenu +
    ioncore.defer
    ioncore.deflayout
    ioncore.defmenu
    ioncore.defshortening @@ -97,6 +99,7 @@ List of functions
    ioncore.getbindings
    ioncore.getctxmenu
    ioncore.get_dir_for +
    ioncore.get_hook
    ioncore.getlayout
    ioncore.getmenu
    ioncore.get_paths @@ -116,7 +119,7 @@ List of functions
    ioncore.lookup_clientwin
    ioncore.lookup_region
    ioncore.lookup_script -
    ioncore.match_winprop_name +
    ioncore.match_winprop_dflt
    ioncore.mclick
    ioncore.mdblclick
    ioncore.mdrag @@ -139,7 +142,11 @@ List of functions
    ioncore.shutdown
    ioncore.snapshot
    ioncore.submap +
    ioncore.submap_enter +
    ioncore.submap_wait
    ioncore.submenu +
    ioncore.tabnum.clear +
    ioncore.tabnum.show
    ioncore.tagged_attach
    ioncore.tagged_clear
    ioncore.tagged_first @@ -194,7 +201,11 @@ List of functions
    mod_query.warn
    mod_sp.set_shown
    mod_sp.set_shown_on +
    mod_statusbar.create +
    mod_statusbar.inform +
    mod_statusbar.launch_statusd
    mod_statusbar.statusbars +
    mod_statusbar.update
    mod_tiling.get
    mod_tiling.mkbottom
    mod_tiling.set @@ -254,8 +265,8 @@ List of functions
    WFrame.mode
    WFrame.p_switch_tab
    WFrame.p_tabdrag +
    WFrame.set_grattr
    WFrame.set_mode -
    WFrame.set_numbers
    WFrame.set_shaded
    WGroup.attach
    WGroup.attach_new @@ -265,6 +276,9 @@ List of functions
    WGroup.set_bottom
    WGroup.set_fullscreen
    WGroupWS.attach_framed +
    WHook.add +
    WHook.listed +
    WHook.remove
    WInfoWin.set_text
    WInput.cancel
    WInput.scrolldown @@ -337,7 +351,7 @@ List of functions
    WSplitSplit.tl
    WSplit.transpose
    WStatusBar.get_template_table -
    WStatusBar.is_systray_extl +
    WStatusBar.is_systray
    WStatusBar.set_systray
    WStatusBar.set_template
    WStatusBar.set_template_table @@ -355,37 +369,40 @@ List of functions
    WTiling.split_tree
    WTiling.transpose_at
    WTiling.unsplit_at +
    WTimer.is_set +
    WTimer.reset +
    WTimer.set
    WWindow.p_move
    WWindow.p_resize
    WWindow.xid
    diff --git a/ionconf/node11.html b/ionconf/node11.html index 4ad6ff2..9803649 100644 --- a/ionconf/node11.html +++ b/ionconf/node11.html @@ -28,26 +28,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -57,1086 +57,184 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    Index


    -
    aboutmsg - : 6.1
    acrobatic - : 3.5 -
    activity_first - : 6.1 -
    activity_i - : 6.1 + : 3.5
    Alt - : 3.3.5 + : 3.3.5
    AnyModifier - : 3.3.5 -
    append - : 6.1.16 + : 3.3.5
    resizeinc - : 3.5.1 - | 3.5.1 -
    attach - : 6.1.3 - | 6.1.7 - | 6.5.1 -
    attach_framed - : 6.1.5 -
    attach_new - : 6.1.3 - | 6.1.7 -
    back - : 6.3.2 -
    backspace - : 6.3.2 -
    bdoc - : 6.1 -
    begin_kbresize - : 6.1.9 -
    bkill_word - : 6.3.2 -
    bol - : 6.3.2 -
    bottom - : 6.1.3 -
    br - : 6.2.4 -
    bskip_word - : 6.3.2 + : 3.5.1 + | 3.5.1
    Button-n - : 3.3.6 -
    cancel - : 6.1.8 - | 6.3.3 - | 6.4.1 -
    chdir_for - : 6.1 + : 3.3.6
    class
    -
    winprop : 3.5.2 +
    winprop : 3.5.2
    -
    clear_mark - : 6.3.2
    clientwin_do_manage_alt - : 6.9 -
    clientwin_i - : 6.1 + : 6.9
    clientwin_mapped_hook - : 6.9 + : 6.9
    clientwin_property_change_hook - : 6.9 + : 6.9
    clientwin_unmapped_hook - : 6.9 -
    compile_cmd - : 6.1 -
    complete - : 6.3.2 -
    contents - : 6.3.2 -
    context - : 6.3.2 + : 6.9
    Control - : 3.3.5 -
    copy - : 6.1.16 - | 6.3.2 -
    create_ws - : 6.1 -
    current - : 6.1 - | 6.1.9 - | 6.2.2 -
    current_scr - : 6.1.10 -
    cut - : 6.3.2 -
    de
    -
    defstyle : 6.8 -
    defstyle_rootwin : 6.8 -
    reset : 6.8 -
    substyle : 6.8 -
    -
    dec_index - : 6.1.7 -
    defbindings - : 6.1 -
    defcmd - : 6.3 -
    defctxmenu - : 6.1 -
    deflayout - : 6.1 + : 3.3.5
    defmenu - : 3.4.1 - | 6.1 -
    defshortening - : 6.1 -
    defstyle - : 6.8 -
    defstyle_rootwin - : 6.8 -
    defwinprop - : 6.1 -
    delete - : 6.3.2 -
    detach - : 6.1 -
    dir - : 6.2.4 + : 3.4.1
    drawing engine - : 4.1 -
    eol - : 6.3.2 + : 4.1
    ETCDIR - : 3.1 -
    exec - : 6.1 -
    exec_on - : 6.1 -
    export - : 6.1.13 -
    farthest - : 6.2.5 -
    find_manager - : 6.1 -
    find_screen_id - : 6.1 -
    finish - : 6.1.8 - | 6.3.2 - | 6.4.1 -
    flip - : 6.2.4 -
    flip_at - : 6.2.5 + : 3.1
    float - : 3.5 -
    focushistory_i - : 6.1 -
    forward - : 6.3.2 + : 3.5
    frame_managed_changed_hook - : 6.9 + : 6.9
    fullscreen - : 3.5 -
    geom - : 6.1.8 - | 6.1.9 - | 6.2.1 -
    get - : 6.1 - | 6.2 - | 6.3 - | 6.4 - | 6.5.1 -
    get_configuration - : 6.1.9 -
    get_dir_for - : 6.1 -
    get_ident - : 6.1.1 -
    get_index - : 6.1.7 -
    get_paths - : 6.1 -
    get_savefile - : 6.1 -
    get_stdisp - : 6.1.7 -
    get_template_table - : 6.7.1 -
    getbindings - : 6.1 -
    getctxmenu - : 6.1 -
    getlayout - : 6.1 -
    getmenu - : 6.1 -
    getwinprop - : 6.1 -
    goto - : 6.1.9 -
    goto_activity - : 6.1 -
    goto_first - : 6.1 -
    goto_next - : 6.1 -
    goto_next_screen - : 6.1 -
    goto_nth_screen - : 6.1 -
    goto_prev_screen - : 6.1 -
    goto_previous - : 6.1 -
    gr
    -
    read_config : 6.1.14 -
    refresh : 6.1.14 -
    select_engine : 6.1.14 -
    -
    grabmenu - : 6.4 -
    groupleader_of - : 6.1.9 -
    history_clear - : 6.3 -
    history_get - : 6.3 -
    history_next - : 6.3.2 -
    history_prev - : 6.3.2 -
    history_push - : 6.3 -
    history_search - : 6.3 -
    history_table - : 6.3 -
    icat - : 6.1.16 -
    id - : 6.1.11 + : 3.5
    ignore_resizeinc - : 3.5.1 - | 3.5.1 + : 3.5.1 + | 3.5.1
    ignore_cfgrq - : 3.5 + : 3.5
    ignore_max_size - : 3.5.1 + : 3.5.1
    ignore_min_size - : 3.5.1 + : 3.5.1
    ignore_net_active_window - : 3.5 -
    inc_index - : 6.1.7 -
    insstr - : 6.3.2 + : 3.5
    instance
    -
    winprop : 3.5.2 -
    -
    ioncore
    -
    aboutmsg : 6.1 -
    activity_first : 6.1 -
    activity_i : 6.1 -
    bdoc : 6.1 -
    chdir_for : 6.1 -
    clientwin_i : 6.1 -
    compile_cmd : 6.1 -
    create_ws : 6.1 -
    current : 6.1 -
    defbindings : 6.1 -
    defctxmenu : 6.1 -
    deflayout : 6.1 -
    defmenu : 6.1 -
    defshortening : 6.1 -
    defwinprop : 6.1 -
    detach : 6.1 -
    exec : 6.1 -
    exec_on : 6.1 -
    find_manager : 6.1 -
    find_screen_id : 6.1 -
    focushistory_i : 6.1 -
    get : 6.1 -
    get_dir_for : 6.1 -
    get_paths : 6.1 -
    get_savefile : 6.1 -
    getbindings : 6.1 -
    getctxmenu : 6.1 -
    getlayout : 6.1 -
    getmenu : 6.1 -
    getwinprop : 6.1 -
    goto_activity : 6.1 -
    goto_first : 6.1 -
    goto_next : 6.1 -
    goto_next_screen : 6.1 -
    goto_nth_screen : 6.1 -
    goto_prev_screen : 6.1 -
    goto_previous : 6.1 -
    is_i18n : 6.1 -
    kpress : 6.1 -
    kpress_wait : 6.1 -
    load_module : 6.1 -
    lookup_clientwin : 6.1 -
    lookup_region : 6.1 -
    lookup_script : 6.1 -
    match_winprop_name : 6.1 -
    mclick : 6.1 -
    mdblclick : 6.1 -
    mdrag : 6.1 -
    menuentry : 6.1 -
    mpress : 6.1 -
    navi_first : 6.1 -
    navi_next : 6.1 -
    popen_bgread : 6.1 -
    progname : 6.1 -
    read_savefile : 6.1 -
    refresh_stylelist : 6.1 -
    region_i : 6.1 -
    request_selection : 6.1 -
    resign : 6.1 -
    restart : 6.1 -
    restart_other : 6.1 -
    set : 6.1 -
    set_paths : 6.1 -
    set_selection : 6.1 -
    shutdown : 6.1 -
    snapshot : 6.1 -
    submap : 6.1 -
    submenu : 6.1 -
    tagged_attach : 6.1 -
    tagged_clear : 6.1 -
    tagged_first : 6.1 -
    tagged_i : 6.1 -
    TR : 6.1 -
    unsqueeze : 6.1 -
    version : 6.1 -
    warn : 6.1 -
    warn_traced : 6.1 -
    write_savefile : 6.1 -
    x_change_property : 6.1 -
    x_delete_property : 6.1 -
    x_get_atom_name : 6.1 -
    x_get_text_property : 6.1 -
    x_get_window_property : 6.1 -
    x_intern_atom : 6.1 -
    x_set_text_property : 6.1 +
    winprop : 3.5.2
    ioncore_deinit_hook - : 6.9 + : 6.9
    ioncore_post_layout_setup_hook - : 6.9 + : 6.9
    ioncore_sigchld_hook - : 6.9 + : 6.9
    ioncore_snapshot_hook - : 6.9 -
    is_active - : 6.1.9 -
    is_activity - : 6.1.9 -
    is_fullscreen - : 6.1.3 -
    is_hidden - : 6.1.7 -
    is_histcompl - : 6.3.2 -
    is_i18n - : 6.1 -
    is_mapped - : 6.1.9 -
    is_shaded - : 6.1.2 -
    is_systray_extl - : 6.7.1 -
    is_tagged - : 6.1.9 -
    join - : 6.1.16 + : 6.9 +
    ioncore_submap_ungrab_hook + : 6.9 +
    is_dockapp
    +
    winprop : 3.5.2 +
    +
    is_transient
    +
    winprop : 3.5.2 +
    jumpto - : 3.5 + : 3.5
    keysymdef.h - : 3.3.5 -
    kill - : 6.1.1 -
    kill_line - : 6.3.2 -
    kill_to_bol - : 6.3.2 -
    kill_to_eol - : 6.3.2 -
    kill_word - : 6.3.2 -
    kpress - : 6.1 -
    kpress_wait - : 6.1 -
    load_module - : 6.1 -
    Lock : 3.3.5 -
    lookup_clientwin - : 6.1 -
    lookup_region - : 6.1 -
    lookup_script - : 6.1 -
    managed_i - : 6.1.3 - | 6.1.7 - | 6.2.5 -
    manager - : 2.2.2.1 - | 6.1.9 -
    map - : 6.1.16 -
    mark - : 6.3.2 -
    match_winprop_name - : 6.1 +
    Lock + : 3.3.5 +
    manager + : 2.2.2.1
    max_size - : 3.5.1 -
    maximize_horiz - : 6.1.2 -
    maximize_vert - : 6.1.2 -
    mclick - : 6.1 -
    mdblclick - : 6.1 -
    mdrag - : 6.1 -
    menu - : 6.4 + : 3.5.1
    menuentry - : 3.4.1 - | 6.1 + : 3.4.1
    menus - : 3.4.1 -
    message - : 6.3 + : 3.4.1
    min_size - : 3.5.1 -
    mkbottom - : 6.2 -
    mod_dock
    -
    set_floating_shown_on : 6.5 -
    -
    mod_menu
    -
    get : 6.4 -
    grabmenu : 6.4 -
    menu : 6.4 -
    pmenu : 6.4 -
    set : 6.4 -
    -
    mod_query
    -
    defcmd : 6.3 -
    get : 6.3 -
    history_clear : 6.3 -
    history_get : 6.3 -
    history_push : 6.3 -
    history_search : 6.3 -
    history_table : 6.3 -
    message : 6.3 -
    popen_completions : 6.3 -
    query : 6.3 -
    query_attachclient : 6.3 -
    query_editfile : 6.3 -
    query_exec : 6.3 -
    query_gotoclient : 6.3 -
    query_lua : 6.3 -
    query_man : 6.3 -
    query_menu : 6.3 -
    query_renameframe : 6.3 -
    query_renameworkspace : 6.3 -
    query_restart : 6.3 -
    query_runfile : 6.3 -
    query_shutdown : 6.3 -
    query_ssh : 6.3 -
    query_workspace : 6.3 -
    query_yesno : 6.3 -
    set : 6.3 -
    show_about_ion : 6.3 -
    show_tree : 6.3 -
    warn : 6.3 -
    -
    mod_sp
    -
    set_shown : 6.6 -
    set_shown_on : 6.6 -
    -
    mod_statusbar
    -
    statusbars : 6.7 -
    -
    mod_tiling
    -
    get : 6.2 -
    mkbottom : 6.2 -
    set : 6.2 -
    untile : 6.2 -
    -
    mode - : 6.1.2 + : 3.5.1
    ModN - : 3.3.5 -
    move - : 6.1.8 -
    mpress - : 6.1 -
    mx_count - : 6.1.7 -
    mx_current - : 6.1.7 -
    mx_i - : 6.1.7 -
    mx_nth - : 6.1.7 -
    name - : 6.1.9 -
    navi_first - : 6.1 -
    navi_next - : 6.1 + : 3.3.5 +
    name
    +
    winprop : 3.5.2 +
    new_group - : 3.5 -
    next_completion - : 6.3.2 -
    nextto - : 6.2.5 -
    node_of - : 6.2.5 -
    nudge - : 6.1.1 + : 3.5
    NumLock - : 3.3.5 + : 3.3.5
    Obj - : 2.2.1 + : 2.2.1
    oneshot - : 3.5 -
    p_move - : 6.1.12 -
    p_resize - : 6.1.12 -
    p_switch_tab - : 6.1.2 -
    p_tabdrag - : 6.1.2 -
    parent - : 2.2.2.1 - | 6.1.9 - | 6.2.1 -
    paste - : 6.3.2 -
    pmenu - : 6.4 -
    point - : 6.3.2 -
    popen_bgread - : 6.1 -
    popen_completions - : 6.3 + : 3.5 +
    parent + : 2.2.2.1
    PREFIX - : 3.1 -
    prev_completion - : 6.3.2 -
    progname - : 6.1 -
    query - : 6.3 -
    query_attachclient - : 6.3 -
    query_editfile - : 6.3 -
    query_exec - : 6.3 -
    query_gotoclient - : 6.3 -
    query_lua - : 6.3 -
    query_man - : 6.3 -
    query_menu - : 6.3 -
    query_renameframe - : 6.3 -
    query_renameworkspace - : 6.3 -
    query_restart - : 6.3 -
    query_runfile - : 6.3 -
    query_shutdown - : 6.3 -
    query_ssh - : 6.3 -
    query_workspace - : 6.3 -
    query_yesno - : 6.3 -
    quote_next - : 6.1.1 -
    read_config - : 6.1.14 -
    read_savefile - : 6.1 -
    refresh - : 6.1.14 -
    refresh_stylelist - : 6.1 -
    reg - : 6.2.3 + : 3.1
    region_do_warp_alt - : 6.9 -
    region_i - : 6.1 + : 6.9
    region_notify_hook - : 6.9 -
    request_selection - : 6.1 -
    reset - : 6.8 -
    resign - : 6.1 -
    resize - : 6.1.8 - | 6.5.1 -
    restart - : 6.1 -
    restart_other - : 6.1 + : 6.9
    role
    -
    winprop : 3.5.2 +
    winprop : 3.5.2
    root window - : 2.2.1 -
    rootwin_of - : 6.1.9 -
    rqclose - : 6.1.9 -
    rqclose_propagate - : 6.1.9 -
    rqgeom - : 6.1.8 - | 6.1.9 - | 6.2.1 -
    rqorder - : 6.1.9 + : 2.2.1
    screen
    -
    physical : 2.2.1 -
    X : 2.2.1 +
    physical : 2.2.1 +
    X : 2.2.1
    screen_managed_changed_hook - : 6.9 -
    screen_of - : 6.1.9 -
    scrolldown - : 6.3.3 + : 6.9
    ScrollLock - : 3.3.5 -
    scrollup - : 6.3.3 -
    select_engine - : 6.1.14 -
    select_next - : 6.4.1 -
    select_nth - : 6.4.1 -
    select_prev - : 6.4.1 -
    set - : 6.1 - | 6.2 - | 6.3 - | 6.4 - | 6.5.1 -
    set_activity - : 6.1.9 -
    set_bottom - : 6.1.3 -
    set_completions - : 6.3.1 -
    set_context - : 6.3.2 -
    set_floating - : 6.2.5 -
    set_floating_at - : 6.2.5 -
    set_floating_shown_on - : 6.5 -
    set_fullscreen - : 6.1.3 -
    set_hidden - : 6.1.7 -
    set_index - : 6.1.7 -
    set_managed_offset - : 6.1.11 -
    set_mark - : 6.3.2 -
    set_mode - : 6.1.2 -
    set_name - : 6.1.9 -
    set_name_exact - : 6.1.9 -
    set_numbers - : 6.1.2 -
    set_paths - : 6.1 -
    set_selection - : 6.1 -
    set_shaded - : 6.1.2 -
    set_shown - : 6.6 -
    set_shown_on - : 6.6 -
    set_stdisp - : 6.1.7 -
    set_systray - : 6.7.1 -
    set_tagged - : 6.1.9 -
    set_template - : 6.7.1 -
    set_template_table - : 6.7.1 -
    set_text - : 6.1.6 -
    shell_safe - : 6.1.15 + : 3.3.5
    Shift - : 3.3.5 -
    show_about_ion - : 6.3 -
    show_tree - : 6.3 -
    shutdown - : 6.1 -
    size_hints - : 6.1.9 -
    skip_word - : 6.3.2 -
    snapshot - : 6.1 -
    split - : 6.2.5 -
    split_at - : 6.2.5 -
    split_top - : 6.2.5 -
    split_tree - : 6.2.5 + : 3.3.5
    statusbar - : 3.5 -
    statusbars - : 6.7 -
    string
    -
    shell_safe : 6.1.15 -
    + : 3.5
    style - : 4.1 -
    submap - : 6.1 + : 4.1
    submenu - : 3.4.1 - | 6.1 -
    substyle - : 4.1 - | 6.8 -
    switch_next - : 6.1.7 -
    switch_nth - : 6.1.7 -
    switch_prev - : 6.1.7 + : 3.4.1 +
    substyle + : 4.1
    switchto - : 3.5 + : 3.5
    system.mk - : 3.1 -
    table
    -
    append : 6.1.16 -
    copy : 6.1.16 -
    icat : 6.1.16 -
    join : 6.1.16 -
    map : 6.1.16 -
    -
    tagged_attach - : 6.1 -
    tagged_clear - : 6.1 -
    tagged_first - : 6.1 -
    tagged_i - : 6.1 + : 3.1
    target - : 3.5 + : 3.5
    tiling_placement_alt - : 6.9 -
    tl - : 6.2.4 -
    TR - : 6.1 + : 6.9
    transient - : 3.5.3 + : 3.5.3
    transient_mode - : 3.5 + : 3.5
    transparent - : 3.5 -
    transpose - : 6.2.1 -
    transpose_at - : 6.2.5 -
    transpose_chars - : 6.3.2 -
    transpose_words - : 6.3.2 -
    typeahead_clear - : 6.4.1 -
    unsplit_at - : 6.2.5 -
    unsqueeze - : 6.1 -
    untile - : 6.2 -
    update - : 6.7.1 + : 3.5
    userpos - : 3.5.1 -
    version - : 6.1 -
    warn - : 6.1 - | 6.3 -
    warn_traced - : 6.1 -
    WClientWin - : 2.2.1 -
    -
    get_ident : 6.1.1 -
    kill : 6.1.1 -
    nudge : 6.1.1 -
    quote_next : 6.1.1 -
    xid : 6.1.1 -
    -
    WComplProxy
    -
    set_completions : 6.3.1 -
    -
    WDock
    -
    attach : 6.5.1 -
    get : 6.5.1 -
    resize : 6.5.1 -
    set : 6.5.1 -
    -
    WEdln - : 2.2.1 -
    -
    back : 6.3.2 -
    backspace : 6.3.2 -
    bkill_word : 6.3.2 -
    bol : 6.3.2 -
    bskip_word : 6.3.2 -
    clear_mark : 6.3.2 -
    complete : 6.3.2 -
    contents : 6.3.2 -
    context : 6.3.2 -
    copy : 6.3.2 -
    cut : 6.3.2 -
    delete : 6.3.2 -
    eol : 6.3.2 -
    finish : 6.3.2 -
    forward : 6.3.2 -
    history_next : 6.3.2 -
    history_prev : 6.3.2 -
    insstr : 6.3.2 -
    is_histcompl : 6.3.2 -
    kill_line : 6.3.2 -
    kill_to_bol : 6.3.2 -
    kill_to_eol : 6.3.2 -
    kill_word : 6.3.2 -
    mark : 6.3.2 -
    next_completion : 6.3.2 -
    paste : 6.3.2 -
    point : 6.3.2 -
    prev_completion : 6.3.2 -
    set_context : 6.3.2 -
    set_mark : 6.3.2 -
    skip_word : 6.3.2 -
    transpose_chars : 6.3.2 -
    transpose_words : 6.3.2 -
    -
    WFrame - : 2.2.1 -
    -
    is_shaded : 6.1.2 -
    maximize_horiz : 6.1.2 -
    maximize_vert : 6.1.2 -
    mode : 6.1.2 -
    p_switch_tab : 6.1.2 -
    p_tabdrag : 6.1.2 -
    set_mode : 6.1.2 -
    set_numbers : 6.1.2 -
    set_shaded : 6.1.2 -
    -
    WGroup + : 3.5.1 +
    WClientWin + : 2.2.1 +
    WEdln : 2.2.1 -
    -
    attach : 6.1.3 -
    attach_new : 6.1.3 -
    bottom : 6.1.3 -
    is_fullscreen : 6.1.3 -
    managed_i : 6.1.3 -
    set_bottom : 6.1.3 -
    set_fullscreen : 6.1.3 -
    +
    WFrame + : 2.2.1 +
    WGroup + : 2.2.1
    WGroupCW - : 2.2.1 -
    WGroupWS - : 2.2.1 -
    -
    attach_framed : 6.1.5 -
    -
    WInfoWin
    -
    set_text : 6.1.6 -
    + : 2.2.1 +
    WGroupWS + : 2.2.1
    Winprops - : 3.5 -
    WInput - : 2.2.1 -
    -
    cancel : 6.3.3 -
    scrolldown : 6.3.3 -
    scrollup : 6.3.3 -
    -
    WMenu
    -
    cancel : 6.4.1 -
    finish : 6.4.1 -
    select_next : 6.4.1 -
    select_nth : 6.4.1 -
    select_prev : 6.4.1 -
    typeahead_clear : 6.4.1 -
    + : 3.5 +
    WInput + : 2.2.1
    WMessage - : 2.2.1 -
    WMoveresMode
    -
    cancel : 6.1.8 -
    finish : 6.1.8 -
    geom : 6.1.8 -
    move : 6.1.8 -
    resize : 6.1.8 -
    rqgeom : 6.1.8 -
    -
    WMPlex
    -
    attach : 6.1.7 -
    attach_new : 6.1.7 -
    dec_index : 6.1.7 -
    get_index : 6.1.7 -
    get_stdisp : 6.1.7 -
    inc_index : 6.1.7 -
    is_hidden : 6.1.7 -
    managed_i : 6.1.7 -
    mx_count : 6.1.7 -
    mx_current : 6.1.7 -
    mx_i : 6.1.7 -
    mx_nth : 6.1.7 -
    set_hidden : 6.1.7 -
    set_index : 6.1.7 -
    set_stdisp : 6.1.7 -
    switch_next : 6.1.7 -
    switch_nth : 6.1.7 -
    switch_prev : 6.1.7 -
    -
    WRegion - : 2.2.1 -
    -
    begin_kbresize : 6.1.9 -
    current : 6.1.9 -
    geom : 6.1.9 -
    get_configuration : 6.1.9 -
    goto : 6.1.9 -
    groupleader_of : 6.1.9 -
    is_active : 6.1.9 -
    is_activity : 6.1.9 -
    is_mapped : 6.1.9 -
    is_tagged : 6.1.9 -
    manager : 6.1.9 -
    name : 6.1.9 -
    parent : 6.1.9 -
    rootwin_of : 6.1.9 -
    rqclose : 6.1.9 -
    rqclose_propagate : 6.1.9 -
    rqgeom : 6.1.9 -
    rqorder : 6.1.9 -
    screen_of : 6.1.9 -
    set_activity : 6.1.9 -
    set_name : 6.1.9 -
    set_name_exact : 6.1.9 -
    set_tagged : 6.1.9 -
    size_hints : 6.1.9 -
    -
    write_savefile - : 6.1 -
    WRootWin + : 2.2.1 +
    WRegion + : 2.2.1 +
    WRootWin + : 2.2.1 +
    WScreen + : 2.2.1 +
    WSplit : 2.2.1 -
    -
    current_scr : 6.1.10 -
    -
    WScreen - : 2.2.1 -
    -
    id : 6.1.11 -
    set_managed_offset : 6.1.11 -
    -
    WSplit - : 2.2.1 -
    -
    geom : 6.2.1 -
    parent : 6.2.1 -
    rqgeom : 6.2.1 -
    transpose : 6.2.1 -
    -
    WSplitInner
    -
    current : 6.2.2 -
    -
    WSplitRegion
    -
    reg : 6.2.3 -
    -
    WSplitSplit
    -
    br : 6.2.4 -
    dir : 6.2.4 -
    flip : 6.2.4 -
    tl : 6.2.4 -
    -
    WStatusBar
    -
    get_template_table : 6.7.1 -
    is_systray_extl : 6.7.1 -
    set_systray : 6.7.1 -
    set_template : 6.7.1 -
    set_template_table : 6.7.1 -
    update : 6.7.1 -
    -
    WTiling - : 2.2.1 -
    -
    farthest : 6.2.5 -
    flip_at : 6.2.5 -
    managed_i : 6.2.5 -
    nextto : 6.2.5 -
    node_of : 6.2.5 -
    set_floating : 6.2.5 -
    set_floating_at : 6.2.5 -
    split : 6.2.5 -
    split_at : 6.2.5 -
    split_top : 6.2.5 -
    split_tree : 6.2.5 -
    transpose_at : 6.2.5 -
    unsplit_at : 6.2.5 -
    -
    WWindow +
    WTiling : 2.2.1 -
    -
    p_move : 6.1.12 -
    p_resize : 6.1.12 -
    xid : 6.1.12 -
    -
    x_change_property - : 6.1 -
    x_delete_property - : 6.1 -
    x_get_atom_name - : 6.1 -
    x_get_text_property - : 6.1 -
    x_get_window_property - : 6.1 -
    x_intern_atom - : 6.1 -
    x_set_text_property - : 6.1 -
    xid - : 6.1.1 - | 6.1.12 +
    WWindow + : 2.2.1
    Xinerama - : 2.2.1 + : 2.2.1
    xmodmap - : 3.3.5 + : 3.3.5
    xprop - : 3.5.3 + : 3.5.3
    diff --git a/ionconf/node12.html b/ionconf/node12.html index 0bbefa4..a2daa50 100644 --- a/ionconf/node12.html +++ b/ionconf/node12.html @@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds Jens Lippmann, Marek Rouchal, Martin Wilck and others --> -About this document ... - +Bibliography + @@ -19,58 +19,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds + + +

    + +

    +Bibliography +

    1 +
    The Ion 3 scripts repository, + http://iki.fi/tuomov/repos/ion-scripts-3/. +
    -

    -About this document ... -

    - Configuring and extending Ion3 with Lua

    -This document was generated using the -LaTeX2HTML translator Version 2002-2-1 (1.71) -

    -Copyright © 1993, 1994, 1995, 1996, -Nikos Drakos, -Computer Based Learning Unit, University of Leeds. -
    -Copyright © 1997, 1998, 1999, -Ross Moore, -Mathematics Department, Macquarie University, Sydney. -

    -The command line arguments were:
    - latex2html -show_section_numbers -short_index -local_icons -noaddress -up_url http://iki.fi/tuomov/ion/ -up_title 'Ion homepage' -nofootnode -split 3 ionconf

    -The translation was initiated by tuomov on 2007-03-18


    diff --git a/ionconf/node13.html b/ionconf/node13.html new file mode 100644 index 0000000..b65d8cd --- /dev/null +++ b/ionconf/node13.html @@ -0,0 +1,77 @@ + + + + + +About this document ... + + + + + + + + + + + + + + + + + + + + +

    +About this document ... +

    + Configuring and extending Ion3 with Lua

    +This document was generated using the +LaTeX2HTML translator Version 2002-2-1 (1.71) +

    +Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
    +Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

    +The command line arguments were:
    + latex2html -show_section_numbers -short_index -local_icons -noaddress -up_url http://iki.fi/tuomov/ion/ -up_title 'Ion homepage' -nofootnode -split 3 ionconf +

    +The translation was initiated by tuomov on 2007-05-06 +


    + + + diff --git a/ionconf/node2.html b/ionconf/node2.html index daebdf4..a824fd2 100644 --- a/ionconf/node2.html +++ b/ionconf/node2.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -63,99 +63,91 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    -This document is an ''advanced user'' manual for Ion, the X11 window manager, -and version 3 specifically. It is an attempt attempt at documenting what is -in Ion's configuration files, how to configure Ion by simple modifications +This document is an ``advanced user'' manual for the X11 window manager +Ion, version 3. It is an attempt at documenting things that go into Ion's +configuration files, how to configure Ion by simple modifications to these files and how to write more complex extensions in Lua, the lightweight configuration and scripting language used by Ion.

    -Readers unfamiliar with Lua is advised to first glance at the Lua manual at +Readers unfamiliar with Lua might first want to first glance at some +Lua documentation at

    - -

    -and perhaps some tutorial pages at the lua-users wiki: + HREF="http://www.lua.org/docs.html">http://www.lua.org/docs.html, or +
    http://lua-users.org/wiki/LuaTutorial, -

    -

    -Back in this document, first in chapter 2 some key -concepts and relations are explained. These include the module system -and Ion's object and class hierarchies. While it might not at first -occur that knowing such things would be necessary to configure -a program, this material is essential because of the object-oriented -nature of most of Ion's scripting interface. +although this should not be strictly necessary for basic modifications +of configuration files for anyone with at least some familiarity with +programming languages.

    -The new user, fed up with the default key bindings and eager to just -quickly configure Ion to his liking may question the reasons for -exposing the ''heavy'' internal OO structure in the scripting and -configuration interface. I'm not the one to blame him for that. -Sure it would be faster to configure Ion to everyone's liking -if a simpler binding configuration interface was provided. Such an -interface would, however, also be far more limited and make writing -extensions more complicated and the advantages from using a real -scripting language would be partly lost. One more advantage from -a rich scripting and configuration interface is that it allows -implementing scripts to read alternate configuration file formats, -ones that could be, for example, modified by external configuration tools. +Back in this document, first in chapter 2 some key +concepts and relations are explained. These include the module system, +and Ion's object (or ``region'') and class hierarchies. While it may +not be necessary to study the latter for basic copy-paste modifications +of configuration files - for that you should not really need this +manual either - it is, however, essential to for more extensive +customisation, due to the semi-object-oriented nature of most of +Ion's scripting interface. Knowing the different object types also +helps dealing with the different binding ``contexts'' (see +Section 3.3) that to some extent mirror these classes.

    -In chapter 3 the very basic Ion configuration know-how -is provided. All the different configuration files and their locations -are explained and instructions are given to allow the reader to -configure bindings and so-called ''winprops''. Chapter 4 -explains the notion of drawing engines and graphical styles and how to -write new looks for Ion and more advanced aspects of Ion's scripting -interface are documented in chapter 5 (a work in -progress). +The new user, fed up with the default key bindings and eager to +just quickly configure Ion to his liking, may therefore just want +to skip to Chapter 3, and attempt to work from therefore. +That chapter provides the very basic Ion configuration know-how +is provided: all the different configuration files and their locations +are explained, instructions are given to allow the reader to +configure bindings and so-called ``winprops'', and the statusbar +templates are also explained.

    +Next, Chapter 4 explains the notion of drawing engines +and graphical styles and how to write new looks for Ion. More advanced +aspects of Ion's scripting interface are documented in Chapter +5. Finally, most of the functions provided by Ion's scripting interface -are listed and documented in the Function reference in chapter -6. At the end of the document is an alphabetical -listing of all these functions. - -

    +are listed and documented in the Function reference in Chapter +6. At the end of the document an alphabetical +listing of all these functions may be found.

    diff --git a/ionconf/node3.html b/ionconf/node3.html index 63c2666..cfe57dd 100644 --- a/ionconf/node3.html +++ b/ionconf/node3.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -61,22 +61,22 @@ original version by: Nikos Drakos, CBLU, University of Leeds Subsections @@ -140,7 +140,7 @@ should be loaded. Currently Ion provides the following modules:
    mod_dock
    -
    Module for docking Window Maker dockapps. +
    Module for docking Window Maker dock-apps. The dock can both float and be embedded as the statusbar.
    @@ -149,12 +149,6 @@ should be loaded. Currently Ion provides the following modules: be toggled on/off everywhere. Think of the 'console' in some first-person shooters. - -
    mod_mgmtmode
    -
    Support module for implementing ''management - modes'' with a XOR-frame similar to move/resize mode around selected - region. -
    mod_sm
    Session management support module. @@ -167,10 +161,10 @@ So-called drawing engines are also implemented as a modules, but they are not discussed here; see chapter 4.

    -The stock configuration for the 'ion3' executable loads all of the modules -mentioned above except mod_dock and filemod_mgmtmode. -The stock configuration for the 'pwm3' executable (which differs from the -'ion3' executable in a few configuration details, such as Xinerama usage) +The stock configuration for the ion3 executable loads all of the +modules mentioned above except mod_dock. +The stock configuration for the pwm3 executable (which differs +from the ion3 executable in a few configuration details) loads another set of modules.

    @@ -186,9 +180,9 @@ loads another set of modules.

    While Ion does not not have a truly object-oriented design 2.1, + HREF="#foot297">2.1, things that appear on the computer screen are, however, quite -naturally expressed as such ''objects''. Therefore Ion implements +naturally expressed as such ``objects''. Therefore Ion implements a rather primitive OO system for these screen objects and some other things. @@ -206,7 +200,7 @@ basic relations.

    For simplicity we consider only the essential-for-basic-configuration Ioncore, mod_tiling and mod_query classes. -See Appendix B for the full class hierachy visible +See Appendix B for the full class hierarchy visible to Lua side.

    @@ -227,7 +221,7 @@ implement.

    -

    +
    - + - + @@ -501,36 +527,39 @@ functions. Key presses: Mouse actions:

    The actions that most of these functions correspond to should be clear -and as explained in the reference, kpress_wait is simply -kpress with a flag set instructing Ioncore wait for all -modifiers to be released before processing any further actions. +and as explained in the reference, kpress_wait is simply +kpress with a flag set instructing Ioncore wait for +all modifiers to be released before processing any further actions. This is to stop one from accidentally calling e.g. -WRegion.rqclose multiple times in a row. The submap -function is used to define submaps or ''prefix maps''. The second -argument to this function is table listing the key press actions -(kpress) in the submap +WRegion.rqclose multiple times in a row. The +submap function is used to define submaps or +``prefix maps''. The second argument to this function is table listing +the key press actions (kpress) in the submap. +The submap_enter handler is called when the submap +is entered, in which this handler is defined. Likewise, the +submap_wait handler is called when all modifiers +have been released while waiting for further key presses in the submap.

    The parameters keyspec and buttonspec are explained below @@ -583,36 +612,35 @@ defbindings("WFrame", { As seen above, the functions that create key binding specifications require a keyspec argument. This argument should be a string containing the name of a key as listed in the X header file keysymdef.h3.1 without the XK_ prefix. - + HREF="#foot876">3.1 without the XK_ prefix. + Most of the key names are quite intuitive while some are not. For example, the Enter key on the main part of the keyboard has the less common name Return while the one the numpad is called KP_Enter.

    -The keyspec string may optionally have multiple ''modifier'' names +The keyspec string may optionally have multiple ``modifier'' names followed by a plus sign (+) as a prefix. X defines the following modifiers: -

    + +

    Shift, Control, Mod1 to Mod5, AnyModifier and Lock. - - - - - - -

    + + + + +

    X allows binding all of these modifiers to almost any key and while this list of modifiers does not explicitly list keys such as -Alt that are common on modern keyboards, such +Alt that are common on modern keyboards, such keys are bound to one of the ModN. On systems running XFree86 Alt is usually Mod1. On Suns Mod1 is the diamond key -and Alt something else. One of the ''flying window'' keys on so +and Alt something else. One of the ``flying window'' keys on so called Windows-keyboards is probably mapped to Mod3 if you have -such a key. Use the program xmodmap +such a key. Use the program xmodmap to find out what exactly is bound where.

    @@ -623,11 +651,14 @@ specified modifiers in nested regions. For this reason, Ion recognises default.

    -Ion ignores the Lock modifier and any ModN () -bound to NumLock or -ScrollLock +Ion ignores the Lock modifier and any ModN ($N=1{\ldots} 5$) +bound to NumLock or +ScrollLock by default because such3.2 locking keys may otherwise + HREF="#foot855">3.2 locking keys may otherwise cause confusion.

    @@ -640,12 +671,12 @@ cause confusion. Button specifications are similar to key definitions but now instead of specifying modifiers and a key, you specify modifiers and one of the button names Button1 to -Button5. Additionally the +Button5. Additionally the specification may end with an optional area name following an @-sign. Only frames currently support areas, and the supported values in this case are -"border", "tab", "empty_tab", "client" and -nil (for the whole frame). +`border', `tab', `empty_tab', `client' +and nil (for the whole frame).

    For example, the following code binds dragging a tab with the first @@ -667,7 +698,7 @@ defbindings("WFrame", {

    The default binding configuration contains references to the variables META and ALTMETA instead of directly using the default -values of "Mod1+" and "" (nothing). As explained in +values of `Mod1+' and `' (nothing). As explained in section 3.2, the definitions of these variables appear in cfg_ion.lua. This way you can easily change the the modifiers used by all bindings in the default configuration without @@ -691,10 +722,10 @@ to it is available virtually everywhere.

    - - - - + + + + In the stock configuration file setup, menus are defined in the file cfg_menus.lua as previously mentioned. The mod_menu module must be loaded for one to be able to define menus, and this is done with @@ -743,24 +774,24 @@ just like the menus defined as above.

    - + - + - + - + - + - +
    Figure 2.1: Partial Ioncore, mod_tiling and mod_query @@ -259,77 +253,76 @@ The core classes:

    Obj
    -
    +
    Is the base of Ion's object system.

    WRegion
    -
    +
    is the base class for everything corresponding to something on the screen. Each object of type WRegion has a size and position relative to the parent WRegion. While a big part of Ion operates on these instead of more specialised classes, WRegion - is a ''virtual'' base class in that there are no objects of ''pure'' + is a ``virtual'' base class in that there are no objects of ``pure'' type WRegion; all concrete regions are objects of some class that inherits WRegion.

    WClientWin
    -
    is a class for +
    is a class for client window objects, the objects that window managers are supposed to manage.

    WWindow
    -
    is the base class for all +
    is the base class for all internal objects having an X window associated to them (WClientWins also have X windows associated to them). -

    -

    -
    WRootWin
    -
    is the class for - root windows of X screens. - Note that an ''X screen'' or root window is not necessarily a - single physical screen as a root window - may be split over multiple screens when hacks such as - Xinerama are used. (Actually there can be only - one root window when Xinerama is used.) -

    WMPlex
    -
    is a base class for all regions that''multiplex'' +
    is a base class for all regions that ``multiplex'' other regions. This means that of the regions managed by the multiplexer, - only one can be displayed at a time. Classes that inhereit WMPlex - include screens and frames. + only one can be displayed at a time.

    WScreen
    -
    is the class for objects - corresponding to physical screens. Screens may share a root - window when the Xinerama extension is used as explained above. +
    is an instance of WMPlex + for screens. + +

    +

    +
    WRootWin
    +
    is the class for + root windows of X screens. + It is an instance of WScreen. + Note that an ``X screen'' or root window is not necessarily a + single physical screen as a root window + may be split over multiple screens when ugly hacks such as + Xinerama are used. (Actually there can be only + one root window when Xinerama is used.)

    WFrame
    -
    is the class for frames. - While most Ion's objects have no graphical presentation, frames basically - add to WMPlexes the decorations around client windows - (borders, tabs). +
    is the class for frames. + While most Ion's objects have no graphical presentation, frames + basically add to WMPlexes the decorations around client + windows (borders, tabs).

    WGroup
    -
    is the base class for groups. +
    is the base class for groups. Particular types of groups are workspaces - (WGroupWS) + (WGroupWS) and groups of client windows - (WGroupCW). + (WGroupCW).
    @@ -339,12 +332,12 @@ Classes implemented by the mod_tiling module:

    WTiling
    -
    is the class for tilings +
    is the class for tilings of frames.
    WSplit
    -
    (or, more specifically, classes +
    (or, more specifically, classes that inherit it) encode the WTiling tree structure.
    @@ -355,26 +348,26 @@ Classes implemented by the mod_query module:

    WInput
    -
    is a virtual base class for the +
    is a virtual base class for the two classes below.
    WEdln
    -
    is the class for the ''queries'', +
    is the class for the ``queries'', the text inputs that usually appear at bottoms of frames and sometimes - screens. Queries are the functional equivalent of ''mini buffers'' in + screens. Queries are the functional equivalent of ``mini buffers'' in many text editors.
    WMessage
    -
    implements the boxes for +
    implements the boxes for warning and other messages that Ion may wish to display to the user. These also usually appear at bottoms of frames.

    -There are also some other ''proxy'' classes that do not refer +There are also some other ``proxy'' classes that do not refer to objects on the screen. The only important one of these for basic configuration is WMoveresMode that is used for binding callbacks in the move and resize mode. @@ -391,7 +384,7 @@ binding callbacks in the move and resize mode. 2.2.2.1 Parent-child relations Each object of type WRegion has a parent and possibly a manager -associated to it. The parent for an object is always a +associated to it. The parent for an object is always a WWindow and for WRegion with an X window (WClientWin, WWindow) the parent WWindow is given by the same relation of the X windows. For other WRegions the relation is not as clear. @@ -401,7 +394,7 @@ Figure 2.2.

    -

    +
    @@ -422,7 +415,7 @@ Most common parent-child relations

    WRegions have very little control over their children as a parent. -The manager WRegion has much more control over its +The manager WRegion has much more control over its managed WRegions. Managers, for example, handle resize requests, focusing and displaying of the managed regions. Indeed the manager--managed relationship gives a better picture of the logical ordering of objects on @@ -440,7 +433,7 @@ but all have a parent-a screen if not anything else.

    -

    +
    Figure 2.2: Most common parent-child relations
    @@ -504,7 +497,7 @@ consideration:



    Footnotes

    -
    ... design... design2.1
    the author doesn't like such artificial designs @@ -512,31 +505,31 @@ consideration:
    diff --git a/ionconf/node4.html b/ionconf/node4.html index 0aab7cc..4eaa00e 100644 --- a/ionconf/node4.html +++ b/ionconf/node4.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -61,60 +61,77 @@ original version by: Nikos Drakos, CBLU, University of Leeds Subsections
    @@ -140,8 +157,8 @@ configuration file ion.lua is provided in section 3.2. How keys and mouse action are bound to functions is described in detail in 3.3 and in section 3.5 winprops are -explained. For a reference on exported functions, see section -6. +explained. Finally, the statusbar is explained in 3.6. +For a reference on exported functions, see section 6.

    @@ -155,9 +172,9 @@ explained. For a reference on exported functions, see section Ion3, to which document applies, stores its stock configuration files in /usr/local/etc/ion3/ unless you, the OS package maintainer or whoever installed the package on the system has modified the variables -PREFIX or -ETCDIR in -system.mk before compiling Ion. +PREFIX or +ETCDIR in +system.mk before compiling Ion. In the first case you probably know where to find the files and in the other case the system administrator or the OS package maintainer should have provided documentation to point to the correct location. @@ -177,7 +194,7 @@ for a file, if no extension or path component is given, compiled .lua files.

    -All the configuration files are named cfg_*.lua with the ''*'' +All the configuration files are named cfg_*.lua with the ``*'' part varying. The configuration file for each module mod_modname is cfg_modname.lua, with modname varying by the module in question. The following table summarises these and other configuration @@ -232,20 +249,22 @@ file. Some basic 'feel' settings are usually configured there and the necessary modules and other configuration files configuring some more specific aspects of Ion are loaded there. In this section we take a walk through the stock cfg_ion.lua. -Notice that most of the settings are commented-out (- is a +Notice that most of the settings are commented-out (-- is a line comment in Lua) in the actual file, as they're the defaults nevertheless.

    -The first thing one in the file is to set +The first thing done in the file, is to set

     META="Mod1+"
     ALTMETA=""
     
    These settings cause most of Ion's key bindings to use Mod1 as the -modifier key. If ALTMETA is set, it is used as modifier for the keys -that don't normally use a modifier. for details on modifiers and key -binding setup in general see section 3.3. +modifier key. If ALTMETA is set, it is used as modifier for the +keys that don't normally use a modifier. Note that these two are Lua +variables used in the configuration files only, and not Ion settings. +For details on modifiers and key binding setup in general, see section +3.3.

    Next we do some basic feel configuration: @@ -283,7 +302,7 @@ for ioncore.set for details.

    As a next step, in the actual cfg_ion.lua file, we load -cfg_defaults.lua. However, it is merely a conveniency file for +cfg_defaults.lua. However, it is merely a convenience file for doing exactly what we will going through below, and what is commented out in the actual file. If you do not want to load what cfg_defaults.lua loads, just comment out the corresponding @@ -301,8 +320,8 @@ dopath("cfg_layouts") Most bindings and menus are defined in cfg_ioncore.lua. Details on making such definitions follow in sections 3.3 and 3.4, respectively. -some kludges or ''winprops'' to make some applications behave better -under Ion are colledted in cfg_kludges.lua; see section +some kludges or ``winprops'' to make some applications behave better +under Ion are collected in cfg_kludges.lua; see section 3.5 for details. In addition to these, this file lists quite a few statements of the form

    @@ -348,7 +367,7 @@ loaded prior to defining any module-specific bindings.
     
     

    Bindings are defined by calling the function -defbindings with the ''context'' of the +defbindings with the ``context'' of the bindings and the a table of new bindings to make. The context is simply string indicating one of the classes of regions (or modes such as WMoveresMode) introduced in section 2.2, and fully @@ -365,7 +384,7 @@ defbindings("WFrame", {

    There has been some confusion among users about the need to define the -''context'' for each binding, so let me try to explain this design +``context'' for each binding, so let me try to explain this design decision here. The thing is that if there was a just a simple 'bind this key to this action' method without knowledge of the context, some limitations would have to be made on the available actions and writing @@ -373,31 +392,37 @@ custom handlers would be more complicated. In addition one may want to bind the same function to different key for different types of objects. Indeed, the workspace and frame tab switching functions are the same both classes being based on WMPlex, and in the stock configuration the -switch to :th workspaces is bound to Mod1+n while the switch to -:th tab is bound to the sequence Mod1+k n. - -

    -Currently known ''contexts'' include: -WScreen, -WMPlex, -WMPlex.toplevel, -WFrame, -WFrame.toplevel, -WFrame.floating, -WFrame.tiled, -WFrame.transient, -WMoveresMode, -WGroup, -WGroupCW, -WGroupWS, -WClientWin, -WTiling, and -WStatusBar. +switch to $n$:th workspaces is bound to Mod1+n while the switch to +$n$:th tab is bound to the sequence Mod1+k n. + +

    +Currently known contexts include: +`WScreen', +`WMPlex', +`WMPlex.toplevel', +`WFrame', +`WFrame.toplevel', +`WFrame.floating', +`WFrame.tiled', +`WFrame.transient', +`WMoveresMode', +`WGroup', +`WGroupCW', +`WGroupWS', +`WClientWin', +`WTiling', and +`WStatusBar'. Most of these should be self-explanatory, corresponding to objects -of class with the same name. The ones with .toplevel suffix -refer to screens and ''toplevel'' frames, i.e. frames that are -not used for transient windows. Likewise .transient refers -to frames in transient mode, and .tiled and .floating +of class with the same name. The ones with `.toplevel' suffix +refer to screens and ``toplevel'' frames, i.e. frames that are +not used for transient windows. Likewise `.transient' refers +to frames in transient mode, and `.tiled' and `.floating' to frames in, respectively, tiled and floating modes.

    @@ -422,9 +447,9 @@ gets to handle the action.

    Unlike in Ion2, in Ion3 binding handlers are not normally passed as -''anonymous functions'', although this is still possible. The preferred -method now is to pass the code of the handler as a string. Two special -variables are available in this code. These are +``anonymous functions'', although this is still possible. The preferred +method now is to pass the code of the handler as a string. Two following +special variables are available in this code.

    Figure 2.3: Most common manager-managed relations
    @@ -445,13 +470,14 @@ variables are available in this code. These are + object referred to by _. This should seldom be needed.
    _chld Object corresponding to the currently active child window of the - object referred to by _.

    -For example, supposing '_' is a WFrame, the following -handler should move the active window to the right, if possible: +For example, supposing _ (underscore) is a WFrame, the +following handler should move the active window to the right, if +possible:

    @@ -466,7 +492,7 @@ handler should move the active window to the right, if possible:
     
     

    To suppress error messages, each binding handler may also be accompanied -by a ''guard'' expression that blocks the handler from being called when +by a ``guard'' expression that blocks the handler from being called when the guard condition is not met. Currently the following guard expressions are supported (for both _sub and _chld): @@ -475,10 +501,10 @@ are supported (for both _sub and _chld):

    Guard Description
    "_sub:non-nil"
    `_sub:non-nil' The _sub parameter must be set.
    "_sub:SomeClass"
    `_sub:SomeClass' The _sub parameter must be member of class SomeClass.
    Menu name Description
    windowlist
    `windowlist' List of all client windows. Activating an entry jumps to that window.
    workspacelist
    `workspacelist' List of all workspaces. Activating an entry jumps to that workspaces.
    focuslist
    `focuslist' List of client windows with recent activity in them, followed by previously focused client windows.
    focuslist_
    `focuslist_' List of previously focused client windows.
    stylemenu
    `stylemenu' List of available look_*.lua style files. Activating an entry loads that style and ask to save the selection.
    ctxmenu
    `ctxmenu' Context menu for given object.
    @@ -772,7 +803,7 @@ just like the menus defined as above.

    -The ''ctxmenu'' is a special menu that is assembled from a defined context +The ``ctxmenu'' is a special menu that is assembled from a defined context menu for the object for which the menu was opened for, but also includes the context menus for the manager objects as submenus. @@ -793,9 +824,9 @@ defctxmenu("WFrame", {

    -Some of the same ''modes'' as were available for some bindings -may also be used: WFrame.tiled, WFrame.floating, -and WFrame.transient. +Some of the same ``modes'' as were available for some bindings +may also be used: `WFrame.tiled', `WFrame.floating', +and `WFrame.transient'.

    @@ -828,10 +859,7 @@ handlers (and elsewhere): mod_menu.grabmenu A special version of mod_menu.menu that grabs the keyboard and is scrolled with a given key until all modifiers have been released, - after which the selected entry is activated. This function is meant to - be used for implementing, for example, Win***s-style Alt-Tab - handling.3.3 + after which the selected entry is activated. @@ -859,7 +887,7 @@ defbindings("WFrame", {

    -The so-called ''winprops'' can be used to change how +The so-called ``winprops'' can be used to change how specific windows are handled and to set up some kludges to deal with badly behaving applications. They are defined by calling the function defwinprop with a table containing the properties to set and the @@ -877,7 +905,7 @@ usual method of identifying windows, and how to obtain this information.

    Description:
    -
    +
    Set this to true for Acrobat Reader. It has an annoying habit of trying to manage its dialogs instead of setting them as transients and letting the window manager do its job, causing @@ -895,7 +923,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Set this to open the window in a floating frame, when in a group. @@ -910,7 +938,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Should the window be initially in full screen mode?
    @@ -924,7 +952,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Should configure requests on the window be ignored? Only has effect on floating windows. @@ -939,7 +967,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Ignore extended WM hints _NET_ACTIVE_WINDOW request.
    @@ -953,7 +981,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Should a newly created client window always be made active, even if the allocated frame isn't. @@ -968,7 +996,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    If the region specified by target winprop does not exist (or that winprop is not set), create a new workspace using the previously stored layout (see ioncore.deflayout) named by @@ -987,7 +1015,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Discard this winprop after first use.
    @@ -1001,11 +1029,11 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Put the window in the statusbar, in the named tray component, - (The default tray component is called simply "systray", + (The default tray component is called simply `systray', and others you give names to in your custom template, always - prefixed by "systray_". + prefixed by `systray_'.
    @@ -1018,7 +1046,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Should a newly mapped client window be switched to within its frame. @@ -1033,7 +1061,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    The name of an object (workspace, frame) that should manage windows of this type. See also new_group. @@ -1048,11 +1076,11 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    - "normal": No change in behaviour. "current": +
    + `normal': No change in behaviour. `current': The window should be thought of as a transient for the current active client window (if any) even if it is not marked as a - transient by the application. "off": The window should + transient by the application. `off': The window should be handled as a normal window even if it is marked as a transient by the application. @@ -1067,7 +1095,7 @@ usual method of identifying windows, and how to obtain this information.
    Description:
    -
    +
    Should frames be made transparent when this window is selected?
    @@ -1082,15 +1110,15 @@ usual method of identifying windows, and how to obtain this information.

    Additionally, the winprops -max_size, -min_size, -aspect, -resizeinc, +max_size, +min_size, +aspect, +resizeinc, and -ignore_max_size, -ignore_min_size, -ignore_aspect, -ignore_resizeinc, +ignore_max_size, +ignore_min_size, +ignore_aspect, +ignore_resizeinc, may be used to override application-supplied size hints. The four first ones are tables with the fields w and h, indicating the width and height size hints in pixels, and the latter ignore @@ -1098,7 +1126,7 @@ winprop is a boolean.

    Finally, the boolean -userpos option may be used to +userpos option may be used to override the USPosition flag of the size hints. Normally, when this flag is set, Ion tries to respect the supplied window position more than when it is not set. Obviously, this makes sense @@ -1113,15 +1141,22 @@ only for floating windows.

    -The identification information in the winprop specification is usually the -class, -role, -instance and -name -of the window. The name field is a Lua-style regular expression -matched against the window's title and the rest are strings that must -exactly match the corresponding window information. It is not necessary -to specify all of these fields. +The identification information supported are +class, +role, +instance, +name, +is_transient, and +is_dockapp. +It is not necessary to specify all of these fields. +The first three are strings, and must exactly match the +corresponding information obtained from the window's properties. +The name field is a Lua-style regular expression matched against +the window's title. The is_transient field is a boolean that can +be used to include or exclude transients only, while the is_dockapp +field is set by Ion for the dock windows of Window Maker dockapp protocol +dockapps. Usually this is the only information available for these +icon windows.

    Ion looks for a matching winprop in the order listed by the following @@ -1138,7 +1173,7 @@ fields) is tried. class role instance -name +other E E @@ -1184,8 +1219,9 @@ fields) is tried.

    -If there are multiple winprops with other identification information -the same but different name, the longest match is chosen. +If there are multiple matching winprops with the same +class, role and instance, but other information +different, the most recently defined one is used.

    @@ -1199,7 +1235,7 @@ can be used to list the identification information required to set winprops for a window and all the transient windows managed within it.

    - + Another way to get the identification information is to use xprop. Simply run To get class and instance, simply run xprop WM_CLASS and click on the particular window of interest. The class is the latter of @@ -1208,21 +1244,24 @@ windows have this property - use the command xprop WM_ROLE. This method, however, will not work on transients.

    - -So-called ''transient windows'' are usually short-lived dialogs (although + +So-called ``transient windows'' are usually short-lived dialogs (although some programs abuse this property) that have a parent window that they are -''transient for''. On tiled workspaces Ion displays these windows -simulatenously with the parent window at the bottom of the same frame. +``transient for''. On tiled workspaces Ion displays these windows +simultaneously with the parent window at the bottom of the same frame. Unfortunately xprop is stupid and can't cope with this situation, returning the parent window's properties when the transient is clicked on. For this reason you'll have to do a little extra work to get the properties -for that window.3.4 +for that window.3.3

    Finally, it should be mentioned that too many authors these days -''forget'' to set this vital identification to anything meaningful: -everything except name is the same for all of the programs's -windows, for example. +``forget'' to set this vital identification to anything meaningful: +everything except name is the same for all of the program's +windows, for example. Some other programs only set this information +after the window has been mapped, i.e. the window manager has been +told to start managing it, which is obviously too late. +Gtk applications in particular are often guilty on both counts.

    @@ -1251,36 +1290,7 @@ defwinprop{

    -3.5.4.2 Fixing a Mozilla Firebird transient -

    - -

    -Mozilla Firebird (0.7) incorrectly does not set the WM_TRANSIENT_FOR -property for the dialog that is used to ask the action to take for a file. -It, however, sets the the property point to the main window for the save -dialog. This can be annoying and confusing, as the first dialog is not -closed before the second is displayed. - -

    -We'd like the first dialog to be transient to the main window. The closest -we can get to that is to consider it transient to the current window (if -there's one). Unfortunately Firebird does not set any meaningful classes, -instances or roles for the windows, so we'll have to rely on an ugly title -match. - -

    -

    -defwinprop{
    -    class = "MozillaFirebird-bin",
    -    name = "Opening .*",
    -    transient_mode = "current",
    -}
    -
    - -

    - -

    -3.5.4.3 Forcing newly created windows in named frames +3.5.4.2 Forcing newly created windows in named frames

    @@ -1297,7 +1307,7 @@ defwinprop{

    For this example to work, we have to somehow create a frame named -sysmonframe. One way to do this is to make the following +`sysmonframe'. One way to do this is to make the following call in the Mod1+F3 Lua code query:

    @@ -1309,35 +1319,192 @@ mod_query.query_renameframe(_) Recall that _ points to the multiplexer (frame or screen) in which the query was opened. Running this code should open a new query prefilled with the current name of the frame. In our example we would change the -name to sysmonframe, but we could just as well have used the +name to `sysmonframe', but we could just as well have used the default name formed from the frame's class name and an instance number.

    +

    + +
    +3.6 The statusbar +

    + +

    +The mod_statusbar module provides a statusbar that adapts to +layouts of tilings, using only the minimal space needed. Ion only +supports one adaptive ``status display'' object per screen, so this +statusbar is mutually exclusive with the embedded mode of mod_dock +docks. + +

    +The statusbar is configured in cfg_statusbar.lua. Typically, +the configuration consists of two steps: creating a statusbar with +mod_statusbar.create, and then launching the separate +ion-statusd status daemon process with +mod_statusbar.launch_statusd. This latter phase is done +automatically, if it was not done by the configuration file, but +the configuration file may pass extra parameters to ion-statusd +monitors. (See Section 5.4 for more information on +writing ion-statusd monitors.) + +

    +A typical cfg_statusbar.lua configuration might look as follows: + +

    +

    +-- Create a statusbar
    +mod_statusbar.create{
    +    screen = 0,     -- First screen, 
    +    pos = 'bl',     -- bottom left corner
    +    systray = true, -- Swallow systray windows
    +
    +    -- The template
    +    template = "[ %date || load:% %>load || mail:% %>mail_new/%>mail_total ]"
    +               .. " %filler%systray",
    +}
    +
    +-- Launch ion-statusd. 
    +mod_statusbar.launch_statusd{
    +    -- Date meter
    +    date={
    +        -- ISO-8601 date format with additional abbreviated day name
    +        date_format='%a %Y-%m-%d %H:%M',
    +    },      
    +}
    +
    + +

    + +

    +3.6.1 The template +

    + +

    +The template specifies what is shown on the statusbar; for information +on the other options to mod_statusbar.create, see the reference. +Strings of the form `%spec' tokens specially interpreter by +the statusbar; the rest appears verbatim. The spec typically +consists of the name of the value/meter to display (beginning with a latin +alphabet), but may be preceded by an alignment specifier and a number +specifying the minimum width. The alignment specifiers are: `>' +for right, `<' for left, and `|' for centring. Additionally, +space following `%' (that is, the string `% '), adds +``stretchable space'' at that point. The special string `%filler' +may be used to flush the rest of the template to the right end of +the statusbar. + +

    +The stretchable space works as follows: mod_statusbar remembers +the widest string (in terms of graphical presentation) that it has +seen for each meter, unless the width has been otherwise constrained. +If there is stretchable space in the template, it tries to make the +meter always take this much space, by stretching any space found in +the direction indicated by the alignment specifier: the opposite +direction for left or right alignment, and both for centring. + +

    + +

    +3.6.2 The systray +

    + +

    +The special `%systray' and `%systray_*' +(`*' varying) monitors indicate where to place system tray +windows. There may be multiple of these. KDE-protocol system tray +icons are placed in `%systray' automatically, unless disabled +with the systray option. Otherwise the statusbar winprop may +be used to place any window in any particular `%systray_*'. + +

    + +

    +3.6.3 Monitors +

    + +

    +The part before the first +underscore of each monitor name, describes the script/plugin/module +that provides the meter, and any configuration should be passed +in the a corresponding sub-table mod_statusbar.launch_statusd. +Ion comes with date, load and mail (for plain old mbox) +ion-statusd monitor scripts. More may be obtained from +the scripts repository [1]. These included scripts +provide the following monitors and their options + +

    + +

    +3.6.3.1 Date +

    + +

    +Options: date_format: The date format in as seen above, +in the usual strftime format. formats: table of +formats for additional date monitors, the key being the name +of the monitor (without the `date_' prefix). + +

    +Monitors: `date' and other user-specified ones with the +`date_' prefix. + +

    + +

    +3.6.3.2 Load +

    + +

    +Options: update_interval: Update interval in milliseconds +(default 10s). important_threshold: Threshold above which +the load is marked as important (default 1.5), so that the +drawing engine may be suitably hinted. critical_threshold: +Threshold above which the load is marked as critical (default 4.0). + +

    +Monitors: `load' (for all three values), +`load_1min', `load_5min' and `load_15min'. + +

    + +

    +3.6.3.3 Mail +

    + +

    +Options: update_interval: Update interval in milliseconds +(default 1min). mbox: mbox-format mailbox location +(default $MAIL). +files: list of additional mailboxes, the key giving the +name of the monitor. + +

    +Monitors: `mail_new', `mail_unread', +`mail_total', and corresponding +`mail_*_new', `mail_*_unread', and `mail_*_total' +for the additional mailboxes (`*' varying). + +

    +



    Footnotes

    -
    ...keysymdef.h...keysymdef.h3.1
    This file can usually be found in the directory /usr/X11R6/include/X11/.
    -
    ... such... such3.2
    Completely useless keys that should be gotten rid of in the author's opinion.
    -
    ... handling.... window.3.3
    -
    See the wcirculate.lua script in the Ion - scripts repository http://iki.fi/tuomov/repos/ion-scripts-3/. - -
    -
    ... window.3.4
    There's a patch to xprop to fix this, but nothing seems to be happening with respect to including it in XFree86. @@ -1346,31 +1513,31 @@ XFree86.
    diff --git a/ionconf/node5.html b/ionconf/node5.html index de5ae5e..b5247f6 100644 --- a/ionconf/node5.html +++ b/ionconf/node5.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -61,51 +61,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds Subsections
    @@ -120,12 +122,13 @@ original version by: Nikos Drakos, CBLU, University of Leeds This chapter first gives in section 4.1 a general outline of how drawing engines are used, of style specifications and then in section 4.2 describes how to specify styles -for the default drawing engine. +for the default drawing engine. Some additional settings and +user attributes are explained in Sections 4.3.

    - +
    4.1 Drawing engines, style specifications and sub-styles

    @@ -133,7 +136,7 @@ for the default drawing engine.

    Ion's drawing routines are abstracted into so-called drawing engine modules that can, again depending on the system, be dynamically -loaded as needed. The drawing engine modules provide ''brushes'' +loaded as needed. The drawing engine modules provide ``brushes'' that objects can use to draw some high-level primitives such as borders and text boxes (in addition to simple text and rectangle drawing) on their windows and configure e.g. the shape and @@ -150,17 +153,17 @@ element1-element2-...-elementn

    -An example of such a style specification is tab-frame; +An example of such a style specification is `tab-frame'; see the table in subsection 4.1.1 for more styles.

    When an object asks for a brush of certain style, the selected drawing engine will attempt to find the closest match to this specification. The styles/brushes defined by the drawing engines -may have asterisks (*) as some of the elements indicating +may have asterisks (`*') as some of the elements indicating a match to anything. Exact matches are preferred to asterisk matches and longer matches to shorter. For example, let a brush -for style foo-bar-baz be queried, then the following +for style `foo-bar-baz' be queried, then the following brushes are in order of preference:

    @@ -177,7 +180,7 @@ specified, also in the form

     attr1-attr2-...-attrn
     
    -These extra attributes are called substyles +These extra attributes are called substyles and allow, for example, the state of the object to be indicated by different colour sets while keeping the interface at an abstract level and the drawing engine completely ignorant @@ -206,27 +209,27 @@ tag and drag states.) Style name Description -frame +`frame' Style for frames. - Substyle attributes: active/inactive + Substyle attributes: `active'/`inactive' (mutually exclusive) and - quasiactive/not_quasiactive. + `quasiactive'/`not_quasiactive'. A frame is ``quasiactive'' when an active region - has a backlink to it, such as a detached window. + has a back-link to it, such as a detached window. -frame-tiled +`frame-tiled' A more specific style for tiled frames. - Substyle attributes as for frame. + Substyle attributes as for `frame'. -frame-tiled-alt +`frame-tiled-alt' An alternative style for tiled frames. Often used to disable the tab-bar. -frame-floating +`frame-floating' A more specific style for floating frames. -frame-transient +`frame-transient' A more specific style for frames containing transient windows. @@ -243,39 +246,39 @@ tag and drag states.) Style name Description -tab +`tab' Style for frames' tabs and menu entries. Substyle attributes: - active/inactive and - selected/unselected + `active'/`inactive' and + `selected'/`unselected' -tab-frame +`tab-frame' A more specific style for frames' tabs. Additional substyle attributes include: - tagged/not_tagged, - dragged/not_dragged, - activity/no_activity and - quasiactive/not_quasiactive. + `tagged'/`not_tagged', + `dragged'/`not_dragged', + `activity'/`no_activity', + `quasiactive'/`not_quasiactive'. -tab-frame-tiled, +`tab-frame-tiled',   -tab-frame-tiled-alt, +`tab-frame-tiled-alt',   -tab-frame-floating, +`tab-frame-floating',   -tab-frame-transient +`tab-frame-transient' More specific styles for frames in the different modes. -tab-menuentry +`tab-menuentry' A more specific style for entries in WMenus. - Additional substyle attributes include submenu and - occasionally also activity is used. + Additional substyle attributes include `submenu' and + occasionally also `activity' is used. -tab-menuentry-bigmenu +`tab-menuentry-bigmenu' An alternate style for entries in WMenus. @@ -291,30 +294,39 @@ tag and drag states.) Style name Description -input +`input' A style for WInputs. -input-edln +`input-edln' A more specific style for WEdlns. - Substyle attributes: selection for selected text and - cursor for the cursor indicating current editing point. + Substyle attributes: `selection' for selected text and + `cursor' for the cursor indicating current editing point. -input-message +`input-message' A more specific style for WMessages. -input-menu +`input-menu' A more specific style for WMenus. -input-menu-bigmenu +`input-menu-bigmenu' An alternate style for WMenus. -moveres_display +`moveres_display' The box displaying position/size when moving or resizing frames. -dock +`stdisp' +Any status display. + +`stdisp-dock' The dock. +`stdisp-statusbar' +The statusbar. Substyles include: + the name of any monitor/meter (such as `date'), and + the supplied hint. Typical hints are: `normal', + `important', and `critical'. +

    @@ -354,13 +366,13 @@ end

    The gr.select_engine function sees if the engine given as argument is registered (the default drawing engine is -simply called ''de''). If the engine could not be found, it +simply called ``de''). If the engine could not be found, it tries to load a module of the same name. If the engine still -is not registered, gr.select_engine returns false +is not registered, gr.select_engine returns `false' and in this case we also exit the style setup script. If the engine was found, gr.select_engine sees that further requests for brushes are forwarded to that engine -and returns true. +and returns `true'.

    Before defining new styles it may be a good idea to clear old @@ -412,7 +424,7 @@ border elements and styles referred to there are explained in Figure

    -

    +
    @@ -450,10 +462,10 @@ in /usr/X11R6/lib/X11/rgb.txt (exact path varying). - + - + @@ -463,7 +475,7 @@ in /usr/X11R6/lib/X11/rgb.txt (exact path varying). background colour boxes. -
    Figure 4.1: Sketch of different border styles and elements
    Description
    highlight_colourColour for the ''highlight'' part of a border.Colour for the ``highlight'' part of a border.
    shadow_colourColour for the ''highlight'' part of a border.Colour for the ``shadow'' part of a border.
    foreground_colour Colour for the normal drawing operations, e.g. text.
    padding_colourColour for the ''padding'' part of a border border. Set to +Colour for the ``padding'' part of a border border. Set to background_colour if unset.
    @@ -485,14 +497,14 @@ indicating a number of pixels. border_style A string indicating the style of border; one of - elevated/inlaid/ridge/groove as seen in the - above sketch. + `elevated'/`inlaid'/`ridge'/`groove' + as seen in the above sketch. border_sides A string indicating which sides of the border - to draw: all/tb/lr for all, top and bottom, and - left and right. To control between left/right - and top/bottom, use the pixel options below. + to draw: `all'/`tb'/`lr' for all, + top and bottom, and left and right. To control between + left/right and top/bottom, use the pixel options below. highlight_pixels Width of the highlight part of the border in pixels. @@ -525,7 +537,7 @@ indicating a number of pixels. text_align How text is to be aligned in text boxes/tabs; one of - the strings left/right/center. + the strings `left'/`right'/`center'. @@ -558,13 +570,13 @@ indicating a number of pixels.

    As discussed in previous sections, styles may have substyles to e.g. -indicate different states of the object being drawn. The ''de'' engine +indicate different states of the object being drawn. The ``de'' engine limits what can be configured in substyles to the set of colours in the first table above, but also specifically interprets for the main style -tab-frame the substyles *-*-tagged and *-*-*-dragged +`tab-frame' the substyles `*-*-tagged' and `*-*-*-dragged' by, respectively, drawing a right angle shape at the top right corner of a tab and by shading the tab with a stipple pattern. Also for -menus the substyles *-*-submenu are handled as a special case. +menus the substyles `*-*-submenu' are handled as a special case.

    Substyles are defined with the function de.substyle within the @@ -629,21 +641,39 @@ de.defstyle("tab-frame", {

    -

    -4.3 Miscellaneous settings +

    + +
    +4.3 Miscellaneous settings

    -The following style fields are independent of the drawing engine used, -but are related to objects' styles and therefore configured in the drawing -engine configuration file. + +

    +4.3.1 Frame user attributes +

    +The function WFrame.set_grattr may be used to give frames +(and their tabs) arbitrary extra attributes to be passed to the +drawing engine. Hence, by configuring such substyles in the style +configuration files, and turning on the attribute when needed, +scripts may display visual cues related to the frame. There is +also one extra attribute specially interpreted by the default +drawing engine: the `numbered' attribute, which causes +numbers to be displayed on the tabs. -

    -4.3.1 Extra fields for style frame +

    + +

    +4.3.2 Extra fields for style `frame'

    +

    +The following style fields are independent of the drawing engine used, +but are related to objects' styles and therefore configured in the drawing +engine configuration file. +

    @@ -651,8 +681,8 @@ engine configuration file. @@ -663,14 +693,17 @@ engine configuration file. + interval $(0, 1]$.
    Field
    bar Controls the style of the tab-bar. Possible values - are the strings "none", "inside", "outside" - and "shaped", with the last providing the PWM-style + are the strings `none', `inside', `outside' + and `shaped', with the last providing the PWM-style tab-bars for floating frames.
    floatframe_tab_min_w
    floatframe_bar_max_w_q Maximum tab-bar width quotient of frame width for the shaped styles. A number in the - interval .

    -

    -4.3.2 Extra fields for style dock +

    +4.3.3 Extra fields for style `dock'

    @@ -680,12 +713,12 @@ engine configuration file. outline_style How borders are drawn: - "none" - no border, - "all" - border around whole dock, - "each" - border around each dockapp. + `none' - no border, + `all' - border around whole dock, + `each' - border around each dockapp. tile_size -A table with entries width and height, +A table with entries `width' and `height', indicating the width and height of tiles in pixels. @@ -699,31 +732,31 @@ style configuration files.

    diff --git a/ionconf/node6.html b/ionconf/node6.html index 17e8f34..88aa9be 100644 --- a/ionconf/node6.html +++ b/ionconf/node6.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -61,20 +61,20 @@ original version by: Nikos Drakos, CBLU, University of Leeds Subsections @@ -89,7 +89,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    This chapter documents some additional features of the Ion configuration and scripting interface that can be used for more advanced scripting than -the basic configuration exlained in chapter 3. +the basic configuration explained in chapter 3.

    @@ -101,16 +101,16 @@ the basic configuration exlained in chapter 3 Hooks are lists of functions to be called when a certain event occurs. -There are two types of them; normal and ''alternative'' hooks. Normal +There are two types of them; normal and ``alternative'' hooks. Normal hooks do not return anything, but alt-hooks should return a boolean -indicating whether it handled its assigned task succesfully. In the case +indicating whether it handled its assigned task successfully. In the case that true is returned, remaining handlers are not called.

    Hook handlers are registered by first finding the hook -with ioncore.get_hook and then calling WHook.add -on the (succesfull) result with the handler as parameter. Similarly -handlers are unregistered with WHook.remove. For example: +with ioncore.get_hook and then calling WHook.add +on the (successful) result with the handler as parameter. Similarly +handlers are unregistered with WHook.remove. For example:

    @@ -125,7 +125,7 @@ handlers do. The types of parameters for each hook are listed in
     the hook reference, section 6.9.
     
     

    -Note that many of the hooks are called in ''protected mode'' and can not +Note that many of the hooks are called in ``protected mode'' and can not use any functions that modify Ion's internal state. TODO: More detailed documentation when this is final. @@ -142,7 +142,7 @@ documentation when this is final.

    -All Ion objects are passed to Lua scriptss as 'userdatas', and you may +All Ion objects are passed to Lua scripts as 'userdatas', and you may safely store such object references for future use. The C-side object may be destroyed while Lua still refers to the object. All exported functions gracefully fail in such a case, but if you need to explicitly @@ -219,8 +219,10 @@ and ioncore.x_get_text_p

    -

    -5.4 Writing ion-statusd monitors +

    + +
    +5.4 Writing ion-statusd monitors

    @@ -228,11 +230,11 @@ All statusbar meters that do not monitor the internal state of Ion should go in the separate ion-statusd program.

    -Whenever the user requests a meter %foo or %foo_bar to be -inserted in a statusbar, mod_statusbar asks ion-statusd to -load statusd_foo.lua on its search path (same as that for Ion-side +Whenever the user requests a meter `%foo' or `%foo_bar' to +be inserted in a statusbar, mod_statusbar asks ion-statusd +to load statusd_foo.lua on its search path (same as that for Ion-side scripts). This script should then supply all meters with the initial part -'foo'. +`foo'.

    To provide this value, the script should simply call statusd.inform @@ -241,11 +243,11 @@ Additionally the script should provide a 'template' for the meter to facilitate expected width calculation by mod_statusbar, and may provide a 'hint' for colour-coding the value. The interpretation of hints depends on the graphical style in use, and currently the -stock styles support the normal, important and -critical hints. +stock styles support the `normal', `important' and +`critical' hints.

    -In our example of the 'foo monitor', at script init we might broadcast +In our example of the 'foo monitor', at script initialisation we might broadcast the template as follows:

    @@ -319,31 +321,31 @@ local settings=table.join(statusd.get_config("foo"), defaults)

    diff --git a/ionconf/node7.html b/ionconf/node7.html index 9b8b3e3..11dd84a 100644 --- a/ionconf/node7.html +++ b/ionconf/node7.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -61,97 +61,106 @@ original version by: Nikos Drakos, CBLU, University of Leeds Subsections +
  • 6.10 Miscellaneous +
    @@ -170,9 +179,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
  • -
    - - +
    Synopsis:
    ioncore.TR(s, ...) @@ -187,9 +194,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    -
    - - +
    Synopsis:
    ioncore.bdoc(text) @@ -205,9 +210,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    -
    - - +
    Synopsis:
    ioncore.chdir_for(reg, dir) @@ -222,9 +225,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    -
    - - +
    Synopsis:
    ioncore.compile_cmd(cmd, guard) @@ -249,9 +250,22 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    +
    +
    Synopsis:
    +
    WTimer ioncore.create_timer() + +
    +
    Description:
    +
    Create a new timer. + +
    +
    + +

    + +

    +
    Synopsis:
    ioncore.create_ws(scr, tmpl, layout) @@ -268,9 +282,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.defbindings(context, bindings) @@ -287,9 +299,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.defctxmenu(ctx, ...) @@ -305,9 +315,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.deflayout(name, tab) @@ -324,9 +332,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.defmenu(name, tab) @@ -343,9 +349,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.defwinprop(list) @@ -360,9 +364,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.exec_on(reg, cmd, merr_internal) @@ -383,9 +385,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    table ioncore.read_savefile(string basename) @@ -400,9 +400,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    string ioncore.get_savefile(string basename) @@ -418,9 +416,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    string ioncore.lookup_script(string file, string sp) @@ -436,9 +432,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    bool ioncore.write_savefile(string basename, table tab) @@ -454,9 +448,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.find_manager(obj, t) @@ -472,9 +464,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.get_dir_for(reg) @@ -489,9 +479,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.getbindings(maybe_context) @@ -506,9 +494,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.getctxmenu(name) @@ -523,9 +509,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.getlayout(name, all) @@ -541,9 +525,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.getmenu(name) @@ -558,9 +540,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    ioncore.getwinprop(cwin) @@ -575,9 +555,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    string ioncore.aboutmsg() @@ -592,16 +570,14 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    WRegion ioncore.activity_first()
    Description:
    -
    Return first regio non activity list. +
    Returns first region on activity list.
    @@ -609,9 +585,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    bool ioncore.activity_i(function iterfn) @@ -628,9 +602,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    bool ioncore.clientwin_i(function fn) @@ -647,9 +619,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    WRegion ioncore.current() @@ -664,9 +634,7 @@ The string guard maybe set to pose limits on _sub. Currently

    -
    - - +
    Synopsis:
    bool ioncore.defshortening(string rx, string rule, bool always) @@ -718,9 +686,7 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    bool ioncore.detach(WRegion reg, string how) @@ -728,11 +694,12 @@ Similarly to sed's 's' command, rule may contain characters that are
    Description:
    Detach or reattach reg, depending on whether how - is 'set'/'unset'/'toggle'. (Detaching means making reg - managed by its nearest ancestor WGroup, framed if reg is - not itself WFrame. Reattaching means making it managed where - it used to be managed, if a return-placeholder exists.) - If reg is the 'bottom' of some group, the whole group is + is `set', `unset' or `toggle'. (Detaching + means making reg managed by its nearest ancestor WGroup, + framed if reg is not itself WFrame. Reattaching means + making it managed where it used to be managed, if a return-placeholder + exists.) + If reg is the `bottom' of some group, the whole group is detached. If reg is a WWindow, it is put into a frame. @@ -742,9 +709,7 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    integer ioncore.exec(string cmd) @@ -762,9 +727,7 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    WScreen ioncore.find_screen_id(integer id) @@ -779,9 +742,7 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    bool ioncore.focushistory_i(function iterfn) @@ -798,9 +759,7 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    table ioncore.get() @@ -815,16 +774,15 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    table ioncore.get_paths(table tab)
    Description:
    -
    Get important directories (userdir, sessiondir, searchpath). +
    Get important directories (the fields userdir, + sessiondir, searchpath in the returned table).
    @@ -832,9 +790,7 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    bool ioncore.goto_activity() @@ -849,20 +805,17 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    WRegion ioncore.goto_first(WRegion reg, string dirstr, table param)
    Description:
    -
    Go to first region within reg in direction dirstr - (up/down/left/right/beg/end/any). For information on param, - see ioncore.navi_next. Additionally this function supports - the boolean nofront field, for not bringing the object to - front. +
    Go to first region within reg in direction dirstr. + For information on param, see ioncore.navi_next. + Additionally this function supports the boolean nofront field, + for not bringing the object to front.
    @@ -870,20 +823,17 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    WRegion ioncore.goto_next(WRegion reg, string dirstr, table param)
    Description:
    -
    Go to region next from reg in direction dirstr - (up/down/left/right/next/prev/any). For information on param, - see ioncore.navi_next. Additionally this function supports - the boolean nofront field, for not bringing the object to - front. +
    Go to region next from reg in direction dirstr. + For information on param, see ioncore.navi_next. + Additionally this function supports the boolean nofront + field, for not bringing the object to front.
    @@ -891,9 +841,7 @@ Similarly to sed's 's' command, rule may contain characters that are

    -
    - - +
    Synopsis:
    WScreen ioncore.goto_next_screen() @@ -912,9 +860,7 @@ Note that this function is asynchronous; the screen will not

    -
    - - +
    Synopsis:
    WScreen ioncore.goto_nth_screen(integer id) @@ -933,9 +879,7 @@ Note that this function is asynchronous; the screen will not

    -
    - - +
    Synopsis:
    WScreen ioncore.goto_prev_screen() @@ -954,9 +898,7 @@ Note that this function is asynchronous; the screen will not

    -
    - - +
    Synopsis:
    WRegion ioncore.goto_previous() @@ -975,9 +917,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool ioncore.is_i18n() @@ -992,9 +932,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool ioncore.load_module(string modname) @@ -1009,9 +947,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WClientWin ioncore.lookup_clientwin(string name) @@ -1026,9 +962,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion ioncore.lookup_region(string name, string typenam) @@ -1044,18 +978,15 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion ioncore.navi_first(WRegion reg, string dirstr, table param)
    Description:
    -
    Find first region within reg in direction dirstr - (up/down/left/right/beg/end/any). For information on param, - see ioncore.navi_next. +
    Find first region within reg in direction dirstr. + For information on param, see ioncore.navi_next.
    @@ -1063,9 +994,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion ioncore.navi_next(WRegion reg, string dirstr, table param) @@ -1073,8 +1002,9 @@ Note that this function is asynchronous; the region will not
    Description:
    Find region next from reg in direction dirstr - (up/down/left/right/next/prev/any). The table param may - contain the boolean field nowrap, instructing not to wrap + (`up', `down', `left', `right', + `next', `prev', or `any'). The table param + may contain the boolean field nowrap, instructing not to wrap around, and the WRegions no_ascend and no_descend, and boolean functions ascend_filter and descend_filter on WRegion pairs (to, from), are used to decide when @@ -1086,9 +1016,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    integer ioncore.popen_bgread(string cmd, function h, function errh) @@ -1105,9 +1033,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    string ioncore.progname() @@ -1122,9 +1048,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool ioncore.region_i(function fn, string typenam) @@ -1142,9 +1066,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void ioncore.request_selection(function fn) @@ -1160,9 +1082,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void ioncore.resign() @@ -1178,9 +1098,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void ioncore.restart() @@ -1195,9 +1113,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void ioncore.restart_other(string cmd) @@ -1212,9 +1128,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void ioncore.set(table tab) @@ -1250,7 +1164,8 @@ Note that this function is asynchronous; the region will not frame_default_index (string) Specifies where to add new regions on the mutually exclusive list of a frame. One of - ''last'', ''next'' (for after current), ''next-act'' + `last', `next', (for after current), + or `next-act' (for after current and anything with activity right after it). @@ -1279,11 +1194,13 @@ Note that this function is asynchronous; the region will not float_placement_method (string) How to place floating frames. - One of ''udlr'' (up-down, then left-right), - ''lrud'' (left-right, then up-down) or ''random''. + One of `udlr' (up-down, then left-right), + `lrud' (left-right, then up-down), or + `random'. mousefocus -String: ''disable'' or ''sloppy''. +(string) Mouse focus mode: + `disable' or `sloppy'. unsqueeze (boolean) Auto-unsqueeze transients/menus/queries/etc. @@ -1308,16 +1225,15 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    bool ioncore.set_paths(table tab)
    Description:
    -
    Set important directories (sessiondir, searchpath). +
    Set important directories (the fields sessiondir, searchpath + of tab).
    @@ -1325,9 +1241,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.set_selection(string p) @@ -1342,9 +1256,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.shutdown() @@ -1359,9 +1271,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.snapshot() @@ -1376,9 +1286,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.tagged_clear() @@ -1393,16 +1301,14 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    WRegion ioncore.tagged_first(bool untag)
    Description:
    -
    Returns first tagged object, untagging it as well if untagis set. +
    Returns first tagged object, untagging it as well if untag is set.
    @@ -1410,9 +1316,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    bool ioncore.tagged_i(function iterfn) @@ -1429,9 +1333,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.unsqueeze(WRegion reg, bool override) @@ -1449,9 +1351,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    string ioncore.version() @@ -1466,9 +1366,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.warn(string str) @@ -1484,9 +1382,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.warn_traced(string str) @@ -1501,9 +1397,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.x_change_property(integer win, integer atom, integer atom_type, integer format, string mode, table tab) @@ -1511,7 +1405,7 @@ When a keyboard resize function is called, and at most kbresize_t_max
    Description:
    Modify a window property. The mode is one of - "replace", "prepend" or "append", and format + `replace', `prepend' or `append', and format is either 8, 16 or 32. Also see ioncore.x_get_window_property and the XChangeProperty(3) manual page. @@ -1521,9 +1415,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.x_delete_property(integer win, integer atom) @@ -1538,9 +1430,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    string ioncore.x_get_atom_name(integer atom) @@ -1556,17 +1446,14 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    table ioncore.x_get_text_property(integer win, integer atom)
    Description:
    -
    Get a text property for a window (STRING, COMPOUND_TEXT, - or UTF8_STRING property converted). The fields in the returned +
    Get a text property for a window. The fields in the returned table (starting from 1) are the null-separated parts of the property. See the XGetTextProperty(3) manual page for more information. @@ -1576,9 +1463,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    table ioncore.x_get_window_property(integer win, integer atom, integer atom_type, integer n32expected, bool more) @@ -1598,9 +1483,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    integer ioncore.x_intern_atom(string name, bool only_if_exists) @@ -1615,9 +1498,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void ioncore.x_set_text_property(integer win, integer atom, table tab) @@ -1634,9 +1515,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.kpress(keyspec, cmd, guard) @@ -1653,9 +1532,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.kpress_wait(keyspec, cmd, guard) @@ -1673,12 +1550,40 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    +
    +
    Synopsis:
    +
    bool ioncore.defer(function fn) + +
    +
    Description:
    +
    Defer execution of fn until the main loop. + +
    +
    + +

    + +

    +
    Synopsis:
    -
    ioncore.match_winprop_name(prop, cwin) +
    WHook ioncore.get_hook(string name) + +
    +
    Description:
    +
    Find named hook name. + +
    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    ioncore.match_winprop_dflt(prop, cwin, id)
    Description:
    @@ -1690,9 +1595,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.mclick(buttonspec, cmd, guard) @@ -1710,9 +1613,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.mdblclick(buttonspec, cmd, guard) @@ -1728,9 +1629,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.mdrag(buttonspec, cmd, guard) @@ -1749,9 +1648,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.menuentry(name, cmd, guard_or_opts) @@ -1773,9 +1670,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.mpress(buttonspec, cmd, guard) @@ -1791,9 +1686,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.refresh_stylelist() @@ -1808,9 +1701,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    ioncore.submap(kcb_, list) @@ -1828,9 +1719,37 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    +
    +
    Synopsis:
    +
    ioncore.submap_enter(cmd, guard) + +
    +
    Description:
    +
    Submap enter event for bindings. + +
    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    ioncore.submap_wait(cmd, guard) + +
    +
    Description:
    +
    Submap modifier release event for bindings. + +
    +
    + +

    + +

    +
    Synopsis:
    ioncore.submenu(name, sub_or_name, options) @@ -1851,9 +1770,40 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    +
    +
    Synopsis:
    +
    ioncore.tabnum.clear() + +
    +
    Description:
    +
    Clear all tab numbers set by ioncore.tabnum.show. + +
    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    ioncore.tabnum.show(frame, delay) + +
    +
    Description:
    +
    Show tab numbers on frame, clearing them when submap + grab is released the next time. If delay is given, in + milliseconds, the numbers are not actually displayed until this + time has passed. + +
    +
    + +

    + +

    +
    Synopsis:
    ioncore.tagged_attach(reg, param) @@ -1877,9 +1827,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    table WClientWin.get_ident(WClientWin cwin) @@ -1897,17 +1845,15 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void WClientWin.kill(WClientWin cwin)
    Description:
    -
    Attempt to kill (with XKillWindow) the client that owns the X - window correspoding to cwin. +
    Attempt to kill (with XKillWindow) the client that owns + the X window correspoding to cwin.
    @@ -1915,9 +1861,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void WClientWin.nudge(WClientWin cwin) @@ -1933,9 +1877,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void WClientWin.quote_next(WClientWin cwin) @@ -1950,9 +1892,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    double WClientWin.xid(WClientWin cwin) @@ -1973,9 +1913,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    bool WFrame.is_shaded(WFrame frame) @@ -1990,9 +1928,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void WFrame.maximize_horiz(WFrame frame) @@ -2007,9 +1943,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void WFrame.maximize_vert(WFrame frame) @@ -2024,9 +1958,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    string WFrame.mode(WFrame frame) @@ -2041,9 +1973,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void WFrame.p_switch_tab(WFrame frame) @@ -2059,9 +1989,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    void WFrame.p_tabdrag(WFrame frame) @@ -2070,7 +1998,7 @@ When a keyboard resize function is called, and at most kbresize_t_max
    Description:
    Start dragging the tab that the user pressed on with the pointing device. This function should only be used by binding it to mpress or - mdrag action with area ''tab''. + mdrag action with area `tab'.
    @@ -2078,16 +2006,16 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    -
    bool WFrame.set_mode(WFrame frame, string modestr) +
    bool WFrame.set_grattr(WFrame frame, string attr, string how)
    Description:
    -
    Set frame mode. +
    Set extra drawing engine attributes for the frame. + The parameter attr is the attribute, and how is + one of `set', `unset', or `toggle'.
    @@ -2095,18 +2023,14 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    -
    bool WFrame.set_numbers(WFrame frame, string how) +
    bool WFrame.set_mode(WFrame frame, string modestr)
    Description:
    -
    Control whether tabs show numbers (set/unset/toggle). - Resulting state is returned, which may not be what was - requested. +
    Set frame mode.
    @@ -2114,9 +2038,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    bool WFrame.set_shaded(WFrame frame, string how) @@ -2124,7 +2046,8 @@ When a keyboard resize function is called, and at most kbresize_t_max
    Description:
    Set shading state according to the parameter how - (set/unset/toggle). Resulting state is returned, which may not be + (`set', `unset', or `toggle'). + Resulting state is returned, which may not be what was requested.
    @@ -2139,9 +2062,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    WRegion WGroup.attach(WGroup ws, WRegion reg, table param) @@ -2158,9 +2079,7 @@ When a keyboard resize function is called, and at most kbresize_t_max

    -
    - - +
    Synopsis:
    WRegion WGroup.attach_new(WGroup ws, table param) @@ -2176,22 +2095,22 @@ When a keyboard resize function is called, and at most kbresize_t_max Description type -Class name (a string) of the object to be created. Mandatory. +(string) Class of the object to be created. Mandatory. name -Name of the object to be created (a string). Optional. +(string) Name of the object to be created. switchto -Should the region be switched to (boolean)? Optional. +(boolean) Should the region be switched to? level -Stacking level; default is 1. +(integer) Stacking level; default is 1. modal -Make object modal; ignored if level is set. +(boolean) Make object modal; ignored if level is set. sizepolicy -Size policy. +(string) Size policy; see Section 6.10.1. @@ -2205,16 +2124,14 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    WRegion WGroup.bottom(WGroup ws)
    Description:
    -
    Returns the 'bottom' of ws. +
    Returns the `bottom' of ws.
    @@ -2222,9 +2139,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WGroup.is_fullscreen(WGroup grp) @@ -2239,9 +2154,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WGroup.managed_i(WGroup ws, function iterfn) @@ -2259,16 +2172,14 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WGroup.set_bottom(WGroup ws, WRegion reg)
    Description:
    -
    Sets the 'bottom' of ws. The region reg must already +
    Sets the `bottom' of ws. The region reg must already be managed by ws, unless nil.
    @@ -2277,9 +2188,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WGroup.set_fullscreen(WGroup grp, string how) @@ -2287,8 +2196,9 @@ In addition parameters to the region to be created are passed in this
    Description:
    Set client window reg full screen state according to the - parameter how (set/unset/toggle). Resulting state is returned, - which may not be what was requested. + parameter how (one of `set', `unset', or + `toggle'). Resulting state is returned, which may not be + what was requested.
    @@ -2308,9 +2218,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WGroupWS.attach_framed(WGroupWS ws, WRegion reg, table t) @@ -2341,15 +2249,66 @@ In addition parameters to the region to be created are passed in this

    -6.1.6 WInfoWin functions +6.1.6 WHook functions +

    + +

    + +

    +
    +
    +
    Synopsis:
    +
    bool WHook.add(WHook hk, function efn) + +
    +
    Description:
    +
    Add efn to the list of functions to be called when the + hook hk is triggered. + +
    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    bool WHook.listed(WHook hk, function efn) + +
    +
    Description:
    +
    Is fn hooked to hook hk? + +
    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    bool WHook.remove(WHook hk, function efn) + +
    +
    Description:
    +
    Remove efn from the list of functions to be called when the + hook hk is triggered. + +
    +
    + +

    + +

    +6.1.7 WInfoWin functions

    -
    - - +
    Synopsis:
    void WInfoWin.set_text(WInfoWin p, string str, integer maxw) @@ -2363,16 +2322,14 @@ In addition parameters to the region to be created are passed in this

    -

    -6.1.7 WMPlex functions +

    +6.1.8 WMPlex functions

    -
    - - +
    Synopsis:
    WRegion WMPlex.attach(WMPlex mplex, WRegion reg, table param) @@ -2389,9 +2346,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    WRegion WMPlex.attach_new(WMPlex mplex, table param) @@ -2434,8 +2389,14 @@ In addition parameters to the region to be created are passed in this by e.g. the mutually exclusive list being empty. This option overrides switchto. +pseudomodal +(boolean) The attached region is ``pseudomodal'' + if the stacking level dictates it to be modal. + This means that the region may be hidden to display + regions with lesser stacking levels. + sizepolicy -(integer) Size policy. +(string) Size policy; see Section 6.10.1. geom (table) Geometry specification. @@ -2452,16 +2413,14 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMPlex.dec_index(WMPlex mplex, WRegion r)
    Description:
    -
    Move r ''right'' within objects managed by mplex on list 1. +
    Move r ``left'' within objects managed by mplex on list 1.
    @@ -2469,9 +2428,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    integer WMPlex.get_index(WMPlex mplex, WRegion reg) @@ -2488,9 +2445,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    table WMPlex.get_stdisp(WMPlex mplex) @@ -2506,16 +2461,14 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMPlex.inc_index(WMPlex mplex, WRegion r)
    Description:
    -
    Move r ''right'' within objects managed by mplex on list 1. +
    Move r ``right'' within objects managed by mplex on list 1.
    @@ -2523,9 +2476,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WMPlex.is_hidden(WMPlex mplex, WRegion reg) @@ -2540,9 +2491,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WMPlex.managed_i(WMPlex mplex, function iterfn) @@ -2560,9 +2509,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    integer WMPlex.mx_count(WMPlex mplex) @@ -2577,9 +2524,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    WRegion WMPlex.mx_current(WMPlex mplex) @@ -2595,9 +2540,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WMPlex.mx_i(WMPlex mplex, function iterfn) @@ -2615,9 +2558,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    WRegion WMPlex.mx_nth(WMPlex mplex, integer n) @@ -2633,9 +2574,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WMPlex.set_hidden(WMPlex mplex, WRegion reg, string how) @@ -2643,7 +2582,8 @@ In addition parameters to the region to be created are passed in this
    Description:
    Set the visibility of the region reg on mplex - as specified with the parameter how (set/unset/toggle). + as specified with the parameter how + (one of `set', `unset', or `toggle'). The resulting state is returned.
    @@ -2652,9 +2592,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMPlex.set_index(WMPlex mplex, WRegion reg, integer index) @@ -2664,10 +2602,16 @@ In addition parameters to the region to be created are passed in this
    Set index of reg to index within the mutually exclusive list of mplex. Special values for index are: - + - +
    $-1$ Last.
    $-2$ After WMPlex.mx_current.
    @@ -2678,9 +2622,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    WRegion WMPlex.set_stdisp(WMPlex mplex, table t) @@ -2699,14 +2641,15 @@ In addition parameters to the region to be created are passed in this pos The corner of the screen to place the status display - in. One of tl, tr, bl or br. + in: one of `tl', `tr', `bl' + or `br'. action -If this field is set to keep, corner +If this field is set to `keep', corner and orientation are changed for the existing - status display. If this field is set to remove, + status display. If this field is set to `remove', the existing status display is removed. If this - field is not set or is set to replace, a + field is not set or is set to `replace', a new status display is created and the old, if any, removed. @@ -2718,9 +2661,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMPlex.switch_next(WMPlex mplex) @@ -2736,9 +2677,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMPlex.switch_nth(WMPlex mplex, integer n) @@ -2753,9 +2692,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMPlex.switch_prev(WMPlex mplex) @@ -2770,16 +2707,14 @@ In addition parameters to the region to be created are passed in this

    -

    -6.1.8 WMoveresMode functions +

    +6.1.9 WMoveresMode functions

    -
    - - +
    Synopsis:
    void WMoveresMode.cancel(WMoveresMode mode) @@ -2795,9 +2730,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMoveresMode.finish(WMoveresMode mode) @@ -2813,9 +2746,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    table WMoveresMode.geom(WMoveresMode mode) @@ -2830,9 +2761,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMoveresMode.move(WMoveresMode mode, integer horizmul, integer vertmul) @@ -2863,9 +2792,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    void WMoveresMode.resize(WMoveresMode mode, integer left, integer right, integer top, integer bottom) @@ -2883,9 +2810,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    table WMoveresMode.rqgeom(WMoveresMode mode, table g) @@ -2900,16 +2825,14 @@ In addition parameters to the region to be created are passed in this

    -

    -6.1.9 WRegion functions +

    +6.1.10 WRegion functions

    -
    - - +
    Synopsis:
    WMoveresMode WRegion.begin_kbresize(WRegion reg) @@ -2929,16 +2852,14 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    WRegion WRegion.current(WRegion mgr)
    Description:
    -
    Return the object, if any, that is considered ''currently active'' +
    Return the object, if any, that is considered ``currently active'' within the objects managed by mplex.
    @@ -2947,9 +2868,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    table WRegion.geom(WRegion reg) @@ -2965,9 +2884,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    table WRegion.get_configuration(WRegion reg, bool clientwins) @@ -2983,9 +2900,7 @@ In addition parameters to the region to be created are passed in this

    -
    - - +
    Synopsis:
    bool WRegion.goto(WRegion reg) @@ -3005,9 +2920,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion WRegion.groupleader_of(WRegion reg) @@ -3023,9 +2936,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.is_active(WRegion reg) @@ -3040,9 +2951,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.is_activity(WRegion reg) @@ -3057,9 +2966,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.is_mapped(WRegion reg) @@ -3074,9 +2981,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.is_tagged(WRegion reg) @@ -3091,9 +2996,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion WRegion.manager(WRegion reg) @@ -3108,9 +3011,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    string WRegion.name(WRegion reg) @@ -3125,9 +3026,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WWindow WRegion.parent(WRegion reg) @@ -3142,9 +3041,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRootWin WRegion.rootwin_of(WRegion reg) @@ -3159,9 +3056,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WRegion.rqclose(WRegion reg, bool relocate) @@ -3174,8 +3069,8 @@ Note that this function is asynchronous; the region will not the client supports the WM_DELETE protocol (see also WClientWin.kill). The region will not be destroyed when this function returns. To find out if and when it is destroyed, - use the "deinit" notification. If relocate is not set, and - reg manages other regions, it will not be closed. Otherwise + use the `deinit' notification. If relocate is not set, + and reg manages other regions, it will not be closed. Otherwise the managed regions will be attempted to be relocated.
    @@ -3184,9 +3079,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion WRegion.rqclose_propagate(WRegion reg, WRegion maybe_sub) @@ -3205,9 +3098,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table WRegion.rqgeom(WRegion reg, table g) @@ -3225,9 +3116,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.rqorder(WRegion reg, string ord) @@ -3235,7 +3124,7 @@ Note that this function is asynchronous; the region will not
    Description:
    Request ordering. Currently supported values for ord - are 'front' and 'back'. + are `front' and `back'.
    @@ -3243,9 +3132,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WScreen WRegion.screen_of(WRegion reg) @@ -3260,17 +3147,15 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.set_activity(WRegion reg, string how)
    Description:
    -
    Set activity flag of reg. The how parameter most be - one of (set/unset/toggle). +
    Set activity flag of reg. The how parameter must be + one of `set', `unset' or `toggle'.
    @@ -3278,9 +3163,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.set_name(WRegion reg, string p) @@ -3288,7 +3171,7 @@ Note that this function is asynchronous; the region will not
    Description:
    Set the name of reg to p. If the name is already in use, - an instance number suffix <n> will be attempted. If p has + an instance number suffix `<n>' will be attempted. If p has such a suffix, it will be modified, otherwise such a suffix will be added. Setting p to nil will cause current name to be removed. @@ -3298,9 +3181,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.set_name_exact(WRegion reg, string p) @@ -3309,7 +3190,7 @@ Note that this function is asynchronous; the region will not
    Description:
    Similar to WRegion.set_name except if the name is already in use, other instance numbers will not be attempted. The string p should - not contain a <n> suffix or this function will fail. + not contain a `<n>' suffix or this function will fail.
    @@ -3317,9 +3198,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WRegion.set_tagged(WRegion reg, string how) @@ -3327,7 +3206,8 @@ Note that this function is asynchronous; the region will not
    Description:
    Change tagging state of reg as defined by how - (set/unset/toggle). Resulting state is returned. + (one of `set', `unset', or `toggle'). + The resulting state is returned.
    @@ -3335,9 +3215,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table WRegion.size_hints(WRegion reg) @@ -3353,16 +3231,14 @@ Note that this function is asynchronous; the region will not

    -

    -6.1.10 WRootWin functions +

    +6.1.11 WRootWin functions

    -
    - - +
    Synopsis:
    WScreen WRootWin.current_scr(WRootWin rootwin) @@ -3376,16 +3252,14 @@ Note that this function is asynchronous; the region will not

    -

    -6.1.11 WScreen functions +

    +6.1.12 WScreen functions

    -
    - - +
    Synopsis:
    integer WScreen.id(WScreen scr) @@ -3400,9 +3274,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WScreen.set_managed_offset(WScreen scr, table offset) @@ -3419,16 +3291,65 @@ Note that this function is asynchronous; the region will not

    -

    -6.1.12 WWindow functions +

    +6.1.13 WTimer functions +

    + +

    + +

    +
    +
    +
    Synopsis:
    +
    bool WTimer.is_set(WTimer timer) + +
    +
    Description:
    +
    Is timer set? + +
    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    void WTimer.reset(WTimer timer) + +
    +
    Description:
    +
    Reset timer. + +
    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    void WTimer.set(WTimer timer, integer msecs, function fn) + +
    +
    Description:
    +
    Set timer to call fn in msecs milliseconds. + +
    +
    + +

    + +

    +6.1.14 WWindow functions

    -
    - - +
    Synopsis:
    void WWindow.p_move(WWindow wwin) @@ -3445,9 +3366,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WWindow.p_resize(WWindow wwin) @@ -3464,9 +3383,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    double WWindow.xid(WWindow wwin) @@ -3480,15 +3397,14 @@ Note that this function is asynchronous; the region will not

    -

    -6.1.13 global functions +

    +6.1.15 global functions

    -
    - +
    Synopsis:
    export(lib, ...) @@ -3502,23 +3418,21 @@ Note that this function is asynchronous; the region will not

    -

    -6.1.14 gr functions +

    +6.1.16 gr functions

    -
    - - +
    Synopsis:
    void gr.read_config()
    Description:
    -
    Read drawing engine configuration file draw.lua. +
    Read drawing engine configuration file look.lua.
    @@ -3526,9 +3440,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void gr.refresh() @@ -3543,16 +3455,14 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool gr.select_engine(string engine)
    Description:
    -
    Future requests for ''brushes'' are to be forwarded to the drawing engine +
    Future requests for ``brushes'' are to be forwarded to the drawing engine engine. If no engine of such name is known, a module with that name is attempted to be loaded. This function is only intended to be called from colour scheme etc. configuration files and can not be used to change the @@ -3563,16 +3473,14 @@ Note that this function is asynchronous; the region will not

    -

    -6.1.15 string functions +

    +6.1.17 string functions

    -
    - - +
    Synopsis:
    string.shell_safe(str) @@ -3586,16 +3494,14 @@ Note that this function is asynchronous; the region will not

    -

    -6.1.16 table functions +

    +6.1.18 table functions

    -
    - - +
    Synopsis:
    table.append(t1, t2) @@ -3610,9 +3516,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table.copy(t, deep) @@ -3628,9 +3532,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table.icat(t1, t2) @@ -3645,9 +3547,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table.join(t1, t2) @@ -3663,9 +3563,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table.map(f, t) @@ -3686,9 +3584,7 @@ Note that this function is asynchronous; the region will not
    -
    - - +
    Synopsis:
    table mod_tiling.get() @@ -3703,9 +3599,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool mod_tiling.mkbottom(WRegion reg) @@ -3721,9 +3615,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void mod_tiling.set(table tab) @@ -3739,9 +3631,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool mod_tiling.untile(WTiling tiling) @@ -3763,9 +3653,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table WSplit.geom(WSplit split) @@ -3780,9 +3668,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WSplitInner WSplit.parent(WSplit split) @@ -3797,9 +3683,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table WSplit.rqgeom(WSplit node, table g) @@ -3816,9 +3700,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WSplit.transpose(WSplit node) @@ -3839,9 +3721,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WSplit WSplitInner.current(WSplitInner node) @@ -3862,9 +3742,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion WSplitRegion.reg(WSplitRegion node) @@ -3885,9 +3763,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WSplit WSplitSplit.br(WSplitSplit split) @@ -3903,17 +3779,15 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    string WSplitSplit.dir(WSplitSplit split)
    Description:
    -
    Returns the direction of split; either ''vertical'' or - ''horizontal''. +
    Returns the direction of split; either `vertical' or + `horizontal'.
    @@ -3921,9 +3795,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WSplitSplit.flip(WSplitSplit split) @@ -3938,9 +3810,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WSplit WSplitSplit.tl(WSplitSplit split) @@ -3962,9 +3832,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WTiling.flip_at(WTiling ws, WRegion reg) @@ -3979,9 +3847,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WTiling.transpose_at(WTiling ws, WRegion reg) @@ -3996,9 +3862,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion WTiling.farthest(WTiling ws, string dirstr, bool any) @@ -4007,8 +3871,8 @@ Note that this function is asynchronous; the region will not
    Description:
    Return the most previously active region on ws with no other regions next to it in direction dirstr - (left/right/up/down). If any is not set, the status - display is not considered. + (`left', `right', `up', or `down'). + If any is not set, the status display is not considered.
    @@ -4016,9 +3880,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WTiling.managed_i(WTiling ws, function iterfn) @@ -4036,9 +3898,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WRegion WTiling.nextto(WTiling ws, WRegion reg, string dirstr, bool any) @@ -4046,7 +3906,8 @@ Note that this function is asynchronous; the region will not
    Description:
    Return the most previously active region next to reg in - direction dirstr (left/right/up/down). The region reg + direction dirstr (`left', `right', `up', + or `down'). The region reg must be managed by ws. If any is not set, the status display is not considered. @@ -4056,9 +3917,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WSplitRegion WTiling.node_of(WTiling ws, WRegion reg) @@ -4074,9 +3933,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WTiling.set_floating_at(WTiling ws, WRegion reg, string how, string dirstr) @@ -4084,9 +3941,10 @@ Note that this function is asynchronous; the region will not
    Description:
    Toggle floating of the sides of a split containin reg as indicated - by the parameters how (set/unset/toggle) and dirstr - (left/right/up/down/any). The new status is returned (and false - also on error). + by the parameters how (`set', `unset', or + `toggle') and dirstr (`left', `right', + `up', or `down'). The new status is returned + (and false also on error).
    @@ -4094,9 +3952,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WSplitSplit WTiling.set_floating(WTiling ws, WSplitSplit split, string how) @@ -4104,8 +3960,8 @@ Note that this function is asynchronous; the region will not
    Description:
    Toggle floating of a split's sides at split as indicated by the - parameter how (set/unset/toggle). A split of the appropriate is - returned, if there was a change. + parameter how (`set', `unset', or `toggle'). + A split of the appropriate is returned, if there was a change.
    @@ -4113,18 +3969,17 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WFrame WTiling.split(WTiling ws, WSplit node, string dirstr)
    Description:
    -
    Create a new frame on ws above/below/left of/right of - node as indicated by dirstr. If dirstr is - prefixed with ''floating:'' a floating split is created. +
    Create a new frame on ws `above', `below' + `left' of, or `right' of node as indicated + by dirstr. If dirstr is prefixed with + `floating:' a floating split is created.
    @@ -4132,9 +3987,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WFrame WTiling.split_at(WTiling ws, WFrame frame, string dirstr, bool attach_current) @@ -4142,11 +3995,12 @@ Note that this function is asynchronous; the region will not
    Description:
    Split frame creating a new frame to direction dirstr - (one of ''left'', ''right'', ''top'' or ''bottom'') of frame. + (one of `left', `right', `top' or + `bottom') of frame. If attach_current is set, the region currently displayed in frame, if any, is moved to thenew frame. - If dirstr is prefixed with ''floating:'' a floating split is - created. + If dirstr is prefixed with `floating:', a floating + split is created.
    @@ -4154,9 +4008,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WFrame WTiling.split_top(WTiling ws, string dirstr) @@ -4171,9 +4023,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    WSplit WTiling.split_tree(WTiling ws) @@ -4188,9 +4038,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WTiling.unsplit_at(WTiling ws, WRegion reg) @@ -4212,9 +4060,7 @@ Note that this function is asynchronous; the region will not
    -
    - - +
    Synopsis:
    mod_query.defcmd(cmd, fn) @@ -4229,9 +4075,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.message(mplex, str) @@ -4246,9 +4090,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table mod_query.get() @@ -4264,9 +4106,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void mod_query.history_clear() @@ -4281,9 +4121,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    string mod_query.history_get(integer n) @@ -4298,9 +4136,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool mod_query.history_push(string str) @@ -4315,9 +4151,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    integer mod_query.history_search(string s, integer from, bool bwd, bool exact) @@ -4336,9 +4170,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    table mod_query.history_table() @@ -4353,9 +4185,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void mod_query.set(table tab) @@ -4389,9 +4219,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.popen_completions(cp, cmd, fn, reshnd) @@ -4413,9 +4241,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query(mplex, prompt, initvalue, handler, completor, @@ -4440,18 +4266,16 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_attachclient(mplex)
    Description:
    -
    This query asks for the name of a client window and switches - focus to the one entered. It uses the completion function - ioncore.complete_clientwin. +
    This query asks for the name of a client window and attaches + it to the frame the query was opened in. It uses the completion + function ioncore.complete_clientwin.
    @@ -4459,9 +4283,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_editfile(mplex, script, prompt) @@ -4478,9 +4300,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_exec(mplex) @@ -4499,18 +4319,16 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_gotoclient(mplex)
    Description:
    -
    This query asks for the name of a client window and attaches - it to the frame the query was opened in. It uses the completion - function ioncore.complete_clientwin. +
    This query asks for the name of a client window and switches + focus to the one entered. It uses the completion function + ioncore.complete_clientwin.
    @@ -4518,9 +4336,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_lua(mplex) @@ -4538,9 +4354,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_man(mplex, prog) @@ -4557,9 +4371,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_menu(mplex, sub, themenu, prompt) @@ -4574,9 +4386,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_renameframe(frame) @@ -4592,9 +4402,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_renameworkspace(mplex, ws) @@ -4611,9 +4419,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_restart(mplex) @@ -4629,9 +4435,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_runfile(mplex, script, prompt) @@ -4648,9 +4452,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_shutdown(mplex) @@ -4667,9 +4469,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_ssh(mplex, ssh) @@ -4685,9 +4485,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_workspace(mplex) @@ -4706,9 +4504,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.query_yesno(mplex, prompt, handler) @@ -4725,9 +4521,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.show_about_ion(mplex) @@ -4742,9 +4536,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.show_tree(mplex, reg, max_depth) @@ -4759,9 +4551,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    mod_query.warn(mplex, str) @@ -4782,9 +4572,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WComplProxy.set_completions(WComplProxy proxy, table compls) @@ -4809,9 +4597,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.back(WEdln wedln) @@ -4826,9 +4612,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.backspace(WEdln wedln) @@ -4843,9 +4627,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.bkill_word(WEdln wedln) @@ -4861,9 +4643,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.bol(WEdln wedln) @@ -4878,9 +4658,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.bskip_word(WEdln wedln) @@ -4896,9 +4674,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.clear_mark(WEdln wedln) @@ -4913,9 +4689,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.complete(WEdln wedln, string cycle, string mode) @@ -4924,11 +4698,12 @@ Note that this function is asynchronous; the region will not
    Description:
    Call completion handler with the text between the beginning of line and current cursor position, or select next/previous completion from list if in - auto-show-completions mode and cycle is set to ``next'' or ``prev'', - respectively. The mode may be ``history'' or ``normal''. If it is + auto-show-completions mode and cycle is set to `next' or + `prev', respectively. + The mode may be `history' or `normal'. If it is not set, the previous mode is used. Normally next entry is not cycled to despite the setting of cycle if mode switch occurs. To override - this, use ``next-always'' and ``prev-always'' for cycle. + this, use `next-always' and `prev-always' for cycle.
    @@ -4936,9 +4711,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    string WEdln.contents(WEdln wedln) @@ -4953,9 +4726,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    string WEdln.context(WEdln wedln) @@ -4970,9 +4741,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.copy(WEdln wedln) @@ -4987,9 +4756,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.cut(WEdln wedln) @@ -5005,9 +4772,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.delete(WEdln wedln) @@ -5022,9 +4787,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.eol(WEdln wedln) @@ -5039,9 +4802,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.finish(WEdln wedln) @@ -5056,9 +4817,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.forward(WEdln wedln) @@ -5073,9 +4832,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.history_next(WEdln wedln, bool match) @@ -5092,9 +4849,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.history_prev(WEdln wedln, bool match) @@ -5111,9 +4866,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.insstr(WEdln wedln, string str) @@ -5128,9 +4881,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WEdln.is_histcompl(WEdln wedln) @@ -5145,9 +4896,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.kill_line(WEdln wedln) @@ -5162,9 +4911,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.kill_to_bol(WEdln wedln) @@ -5179,9 +4926,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.kill_to_eol(WEdln wedln) @@ -5196,9 +4941,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.kill_word(WEdln wedln) @@ -5214,9 +4957,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    integer WEdln.mark(WEdln wedln) @@ -5233,9 +4974,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    bool WEdln.next_completion(WEdln wedln) @@ -5250,9 +4989,7 @@ Note that this function is asynchronous; the region will not

    -
    - - +
    Synopsis:
    void WEdln.paste(WEdln wedln) @@ -5272,9 +5009,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    integer WEdln.point(WEdln wedln) @@ -5290,9 +5025,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    bool WEdln.prev_completion(WEdln wedln) @@ -5307,9 +5040,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WEdln.set_context(WEdln wedln, string context) @@ -5324,9 +5055,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WEdln.set_mark(WEdln wedln) @@ -5341,9 +5070,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WEdln.skip_word(WEdln wedln) @@ -5359,9 +5086,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WEdln.transpose_chars(WEdln wedln) @@ -5376,9 +5101,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WEdln.transpose_words(WEdln wedln) @@ -5399,9 +5122,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WInput.cancel(WInput input) @@ -5416,9 +5137,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WInput.scrolldown(WInput input) @@ -5433,9 +5152,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WInput.scrollup(WInput input) @@ -5456,9 +5173,7 @@ Note that this function is asynchronous; the selection will not
    -
    - - +
    Synopsis:
    mod_menu.grabmenu(mplex, sub, menu_or_name, param) @@ -5475,9 +5190,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    mod_menu.menu(mplex, sub, menu_or_name, param) @@ -5502,9 +5215,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    table mod_menu.get() @@ -5519,9 +5230,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void mod_menu.set(table tab) @@ -5554,9 +5263,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    mod_menu.pmenu(win, sub, menu_or_name) @@ -5579,9 +5286,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WMenu.cancel(WMenu menu) @@ -5596,9 +5301,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WMenu.finish(WMenu menu) @@ -5614,9 +5317,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WMenu.select_next(WMenu menu) @@ -5631,9 +5332,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WMenu.select_nth(WMenu menu, integer n) @@ -5648,9 +5347,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WMenu.select_prev(WMenu menu) @@ -5665,9 +5362,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WMenu.typeahead_clear(WMenu menu) @@ -5688,9 +5383,7 @@ Note that this function is asynchronous; the selection will not
    -
    - - +
    Synopsis:
    void mod_dock.set_floating_shown_on(WMPlex mplex, string how) @@ -5711,9 +5404,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    bool WDock.attach(WDock dock, WRegion reg) @@ -5728,9 +5419,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    table WDock.get(WDock dock) @@ -5746,9 +5435,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WDock.resize(WDock dock) @@ -5763,9 +5450,7 @@ Note that this function is asynchronous; the selection will not

    -
    - - +
    Synopsis:
    void WDock.set(WDock dock, table conftab) @@ -5788,7 +5473,10 @@ Note that this function is asynchronous; the selection will not string in - +$\{t,m,b\}\times\{t,c,b\}$ Dock position. Can only be used in floating mode. @@ -5819,9 +5507,7 @@ Any parameters not explicitly set in conftab will be left unchanged.
    -
    - - +
    Synopsis:
    bool mod_sp.set_shown(WFrame sp, string how) @@ -5829,7 +5515,9 @@ Any parameters not explicitly set in conftab will be left unchanged.
    Description:
    Toggle displayed status of sp. - The parameter how is one of (set/unset/toggle). + The parameter how is one of + `set', `unset', or `toggle'. + The resulting status is returned.
    @@ -5837,9 +5525,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    bool mod_sp.set_shown_on(WMPlex mplex, string how) @@ -5847,7 +5533,9 @@ Any parameters not explicitly set in conftab will be left unchanged.
    Description:
    Change displayed status of some scratchpad on mplex if one is - found. The parameter how is one of (set/unset/toggle). + found. The parameter how is one of + `set', `unset', or `toggle'. + The resulting status is returned.
    @@ -5861,9 +5549,88 @@ Any parameters not explicitly set in conftab will be left unchanged.
    -
    - - +
    +
    +
    Synopsis:
    +
    mod_statusbar.create(param) + +
    +
    Description:
    +
    Create a statusbar. The possible parameters in the + table param are: + +

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    VariableTypeDescription
    templatestringThe template; see + Section 3.6.
    posstringPosition: "tl", "tr", + "bl" or "br" + (for the obvious combinations of + top/left/bottom/right).
    screenintegerScreen number to create the statusbar on.
    fullsizebooleanIf set, the statusbar will waste + space instead of adapting to layout.
    systrayboolaenSwallow (KDE protocol) systray icons.
    + +

    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    mod_statusbar.inform(name, value) + +
    +
    Description:
    +
    Inform of a value. + +
    +
    + +

    + +

    +
    +
    +
    Synopsis:
    +
    mod_statusbar.launch_statusd(cfg) + +
    +
    Description:
    +
    Load modules and launch ion-statusd with configuration + table cfg. The options for each ion-statusd monitor + script should be contained in the corresponding sub-table of cfg. + +
    +
    + +

    + +

    +
    Synopsis:
    table mod_statusbar.statusbars() @@ -5875,6 +5642,22 @@ Any parameters not explicitly set in conftab will be left unchanged.
    +

    + +

    +
    +
    +
    Synopsis:
    +
    mod_statusbar.update(update_templates) + +
    +
    Description:
    +
    Update statusbar contents. To be called after series + of mod_statusbar.inform calls. + +
    +
    +

    @@ -5884,9 +5667,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    table WStatusBar.get_template_table(WStatusBar sb) @@ -5901,12 +5682,10 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    -
    bool WStatusBar.is_systray_extl(WStatusBar sb) +
    bool WStatusBar.is_systray(WStatusBar sb)
    Description:
    @@ -5918,9 +5697,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    bool WStatusBar.set_systray(WStatusBar sb, string how) @@ -5928,7 +5705,8 @@ Any parameters not explicitly set in conftab will be left unchanged.
    Description:
    Enable or disable use of sb as systray. - The parameter how can be one of (set/unset/toggle). + The parameter how can be one of + `set', `unset', or `toggle'. Resulting state is returned.
    @@ -5937,9 +5715,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    void WStatusBar.set_template(WStatusBar sb, string tmpl) @@ -5954,9 +5730,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    void WStatusBar.set_template_table(WStatusBar sb, table t) @@ -5971,9 +5745,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    void WStatusBar.update(WStatusBar sb, table t) @@ -5994,9 +5766,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    bool de.defstyle(string name, table tab) @@ -6011,9 +5781,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    bool de.defstyle_rootwin(WRootWin rootwin, string name, table tab) @@ -6028,9 +5796,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    void de.reset() @@ -6045,9 +5811,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    - - +
    Synopsis:
    table de.substyle(string pattern, table tab) @@ -6070,7 +5834,7 @@ Any parameters not explicitly set in conftab will be left unchanged.

    -
    +
    Hook name:
    @@ -6105,7 +5869,7 @@ Any parameters not explicitly set in conftab will be left unchanged. dockapp bool -Client window is a dockapp. +Client window is a dock-app. maprq bool @@ -6142,7 +5906,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6162,7 +5926,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6183,7 +5947,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6204,7 +5968,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6231,12 +5995,12 @@ reg:attach(cwin) mode string -"switchonly", "reorder", - "add" or "remove" +`switchonly', `reorder', + `add' or `remove' sw bool -Switch occured +Switch occurred sub WRegion @@ -6250,7 +6014,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6271,7 +6035,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6291,7 +6055,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6304,7 +6068,7 @@ reg:attach(cwin)
    Description:
    Called when Ion has done all initialisation and is almost ready to - enter the mainloop, except no windows are yet being managed. + enter the main-loop, except no windows are yet being managed.
    @@ -6312,7 +6076,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6332,7 +6096,27 @@ reg:attach(cwin)

    -
    +
    + +
    +
    Hook name:
    +
    ioncore_submap_ungrab_hook + +
    +
    Parameters:
    +
    () + +
    +
    Description:
    +
    This hook is used to signal whenever Ion leaves the submap grab mode. + +
    +
    + +

    + +

    +
    Hook name:
    @@ -6368,7 +6152,7 @@ reg:attach(cwin) res_frame WFrame -A succesfull handler should +A successful handler should return the target frame here. @@ -6384,7 +6168,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6405,7 +6189,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6427,7 +6211,7 @@ reg:attach(cwin)

    -
    +
    Hook name:
    @@ -6476,16 +6260,16 @@ reg:attach(cwin) Tagging state has changed. pseudoactivated -The region has become pseudoactive +The region has become pseudo-active (see below). pseudoinactivated -The region is no longer pseudoactive. +The region is no longer pseudo-active.

    -A region is pseudoactive, when a) it is itself not active (does +A region is pseudo-active, when a) it is itself not active (does not not have the focus, and may not even have a window that could have it), but b) some region managed by it is active. @@ -6496,35 +6280,96 @@ A region is pseudoactive, when a) it is itself not active (does

    +

    + +
    +6.10 Miscellaneous +

    + +

    + +

    + +
    +6.10.1 Size policies +

    + +

    +Some functions accept a sizepolicy parameter. The possible +values are: + +

    +

    +`default', +`full', +`full_bounds', +`free', +`free_glue', +`northwest', +`north', +`northeast', +`west', +`center', +`east', +`southwest', +`south', +`southeast', +`stretch_top', +`stretch_bottom', +`stretch_left', +`stretch_right', +`free_glue_northwest', +`free_glue_north', +`free_glue_northeast', +`free_glue_west', +`free_glue_center', +`free_glue_east', +`free_glue_southwest', +`free_glue_south', and +`free_glue_southeast'. + +
    + +

    +The ``free'' policies allow the managed +object to be moved around, whereas the other versions do not. +The ``glue'' policies glue the object to some border, while allowing +it to be moved away from it by user action, but not automatically. +The ``stretch'' policies stretch the object along the given border, +while the coordinate-based policies simply place the object along +that border. + +

    +

    diff --git a/ionconf/node8.html b/ionconf/node8.html index 555d7bf..33cb380 100644 --- a/ionconf/node8.html +++ b/ionconf/node8.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -61,7 +61,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds Subsections @@ -565,31 +565,31 @@ General Public License instead of this License. diff --git a/ionconf/node9.html b/ionconf/node9.html index 06f6690..0b16372 100644 --- a/ionconf/node9.html +++ b/ionconf/node9.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -70,7 +70,6 @@ B. Full class hierarchy visible to Lua-side |-->WHook |-->WTimer |-->WMoveresMode - |-->WMgmtMode (mod_mgmtmode) |-->WRegion | |-->WClientWin | |-->WWindow diff --git a/ionnotes.dvi.gz b/ionnotes.dvi.gz index 1d53cb6..d69a4ee 100644 Binary files a/ionnotes.dvi.gz and b/ionnotes.dvi.gz differ diff --git a/ionnotes.ps.gz b/ionnotes.ps.gz index d83c4f9..1180c8a 100644 Binary files a/ionnotes.ps.gz and b/ionnotes.ps.gz differ diff --git a/ionnotes.tex b/ionnotes.tex index d8c10f3..c8f779d 100644 --- a/ionnotes.tex +++ b/ionnotes.tex @@ -30,7 +30,7 @@ the Free Software Foundation; either version 2 of the License, or This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -section entitled ''GNU General Public License'' for more details. +section entitled ``GNU General Public License'' for more details. \bigskip diff --git a/ionnotes/index.html b/ionnotes/index.html index 27c31f2..9ebfb0d 100644 --- a/ionnotes/index.html +++ b/ionnotes/index.html @@ -74,7 +74,7 @@ the Free Software Foundation; either version 2 of the License, or This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -section entitled ''GNU General Public License'' for more details. +section entitled ``GNU General Public License'' for more details.

    diff --git a/ionnotes/ionnotes.css b/ionnotes/ionnotes.css index d22be91..f0cd026 100644 --- a/ionnotes/ionnotes.css +++ b/ionnotes/ionnotes.css @@ -35,3 +35,4 @@ DIV.quote { } PRE.preform { } SPAN.textit { font-style: italic } SPAN.arabic { } +SPAN.textbf { font-weight: bold } diff --git a/ionnotes/ionnotes.html b/ionnotes/ionnotes.html index 27c31f2..9ebfb0d 100644 --- a/ionnotes/ionnotes.html +++ b/ionnotes/ionnotes.html @@ -74,7 +74,7 @@ the Free Software Foundation; either version 2 of the License, or This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -section entitled ''GNU General Public License'' for more details. +section entitled ``GNU General Public License'' for more details.

    diff --git a/ionnotes/node2.html b/ionnotes/node2.html index d181c54..4996b37 100644 --- a/ionnotes/node2.html +++ b/ionnotes/node2.html @@ -87,9 +87,9 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    While Ion does not not have a truly object-oriented design 1, + HREF="#foot210">1, things that appear on the computer screen are, however, quite -naturally expressed as such ''objects''. Therefore Ion implements +naturally expressed as such ``objects''. Therefore Ion implements a rather primitive OO system for these screen objects and some other things. @@ -107,7 +107,7 @@ basic relations.

    For simplicity we consider only the essential-for-basic-configuration Ioncore, mod_tiling and mod_query classes. -See Appendix [*] for the full class hierachy visible +See Appendix [*] for the full class hierarchy visible to Lua side.

    @@ -128,7 +128,7 @@ implement.

    -

    +
    Figure 1: Partial Ioncore, mod_tiling and mod_query @@ -160,77 +160,76 @@ The core classes:

    Obj
    -
    +
    Is the base of Ion's object system.

    WRegion
    -
    +
    is the base class for everything corresponding to something on the screen. Each object of type WRegion has a size and position relative to the parent WRegion. While a big part of Ion operates on these instead of more specialised classes, WRegion - is a ''virtual'' base class in that there are no objects of ''pure'' + is a ``virtual'' base class in that there are no objects of ``pure'' type WRegion; all concrete regions are objects of some class that inherits WRegion.

    WClientWin
    -
    is a class for +
    is a class for client window objects, the objects that window managers are supposed to manage.

    WWindow
    -
    is the base class for all +
    is the base class for all internal objects having an X window associated to them (WClientWins also have X windows associated to them). -

    -

    -
    WRootWin
    -
    is the class for - root windows of X screens. - Note that an ''X screen'' or root window is not necessarily a - single physical screen as a root window - may be split over multiple screens when hacks such as - Xinerama are used. (Actually there can be only - one root window when Xinerama is used.) -

    WMPlex
    -
    is a base class for all regions that''multiplex'' +
    is a base class for all regions that ``multiplex'' other regions. This means that of the regions managed by the multiplexer, - only one can be displayed at a time. Classes that inhereit WMPlex - include screens and frames. + only one can be displayed at a time.

    WScreen
    -
    is the class for objects - corresponding to physical screens. Screens may share a root - window when the Xinerama extension is used as explained above. +
    is an instance of WMPlex + for screens. + +

    +

    +
    WRootWin
    +
    is the class for + root windows of X screens. + It is an instance of WScreen. + Note that an ``X screen'' or root window is not necessarily a + single physical screen as a root window + may be split over multiple screens when ugly hacks such as + Xinerama are used. (Actually there can be only + one root window when Xinerama is used.)

    WFrame
    -
    is the class for frames. - While most Ion's objects have no graphical presentation, frames basically - add to WMPlexes the decorations around client windows - (borders, tabs). +
    is the class for frames. + While most Ion's objects have no graphical presentation, frames + basically add to WMPlexes the decorations around client + windows (borders, tabs).

    WGroup
    -
    is the base class for groups. +
    is the base class for groups. Particular types of groups are workspaces - (WGroupWS) + (WGroupWS) and groups of client windows - (WGroupCW). + (WGroupCW).
    @@ -240,12 +239,12 @@ Classes implemented by the mod_tiling module:

    WTiling
    -
    is the class for tilings +
    is the class for tilings of frames.
    WSplit
    -
    (or, more specifically, classes +
    (or, more specifically, classes that inherit it) encode the WTiling tree structure.
    @@ -256,26 +255,26 @@ Classes implemented by the mod_query module:

    WInput
    -
    is a virtual base class for the +
    is a virtual base class for the two classes below.
    WEdln
    -
    is the class for the ''queries'', +
    is the class for the ``queries'', the text inputs that usually appear at bottoms of frames and sometimes - screens. Queries are the functional equivalent of ''mini buffers'' in + screens. Queries are the functional equivalent of ``mini buffers'' in many text editors.
    WMessage
    -
    implements the boxes for +
    implements the boxes for warning and other messages that Ion may wish to display to the user. These also usually appear at bottoms of frames.

    -There are also some other ''proxy'' classes that do not refer +There are also some other ``proxy'' classes that do not refer to objects on the screen. The only important one of these for basic configuration is WMoveresMode that is used for binding callbacks in the move and resize mode. @@ -292,7 +291,7 @@ binding callbacks in the move and resize mode. 1.2.1 Parent-child relations Each object of type WRegion has a parent and possibly a manager -associated to it. The parent for an object is always a +associated to it. The parent for an object is always a WWindow and for WRegion with an X window (WClientWin, WWindow) the parent WWindow is given by the same relation of the X windows. For other WRegions the relation is not as clear. @@ -302,7 +301,7 @@ Figure 2.

    -

    +
    @@ -323,7 +322,7 @@ Most common parent-child relations

    WRegions have very little control over their children as a parent. -The manager WRegion has much more control over its +The manager WRegion has much more control over its managed WRegions. Managers, for example, handle resize requests, focusing and displaying of the managed regions. Indeed the manager--managed relationship gives a better picture of the logical ordering of objects on @@ -341,7 +340,7 @@ but all have a parent-a screen if not anything else.

    -

    +
    Figure 2: Most common parent-child relations
    @@ -405,7 +404,7 @@ consideration:



    Footnotes

    -
    ... design... design1
    the author doesn't like such artificial designs diff --git a/ionnotes/node3.html b/ionnotes/node3.html index 0309e19..63c9852 100644 --- a/ionnotes/node3.html +++ b/ionnotes/node3.html @@ -64,20 +64,20 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    First, to get things clear, what are considered objects here are C -structures containing a properly initialized +structures containing a properly initialised structure defined in ioncore/obj.h as the first element (or the first element of the structure which is the first element and so on which gives rise to inheritance). The WObj structure contains a pointer -to a WObjDescr class type info structure and -a list of so called ''watches''. The WObjDescr structure simply +to a WObjDescr class type info structure and +a list of so called ``watches''. The WObjDescr structure simply lists the class name, a table of dynamic functions and a pointer to -deinitialisation function (or ''destructor''). +deinitialisation function (or ``destructor'').

    Ion does not do any reference counting, garbage collecting or other fancy things related to automatic safe freeing of objects with its simplistic object system. Instead special watches (the WWatch - structure) may be used to create safe references to + structure) may be used to create safe references to objects that might be destroyed during the time the specific pointer is needed. When an object is destroyed, its list of watches is processed, setting the pointers in the watches to NULL and the watch handlers for diff --git a/ionnotes/node4.html b/ionnotes/node4.html index 1ae2bf7..41c8521 100644 --- a/ionnotes/node4.html +++ b/ionnotes/node4.html @@ -126,11 +126,11 @@ C side of Ion and Lua:

    - + - + @@ -195,7 +195,7 @@ initialisation and deinitialisation code.

    You've seen the terms level 1 and 2 call handler mentioned above. - + The Lua support code uses two so called call handlers to convert and check the types of parameters passed from Lua to C and back to Lua. The first one of these call handlers is the same for all exported functions and @@ -230,10 +230,10 @@ supported by the generated L2 call handlers).

    The functions -extl_call, -extl_call_named, -extl_dofile and -extl_dostring +extl_call, +extl_call_named, +extl_dofile and +extl_dostring call a referenced function (ExtlFn), named function, execute a string and a file, respectively. The rest of the parameters for all these functions are similar. The 'spec' argument is a string of identifier @@ -249,7 +249,7 @@ passing succeeded or not.

    Sometimes it is necessary to block calls to all but a limited set of Ion functions. This can be accomplished with -extl_set_safelist. +extl_set_safelist. The parameter to this function is a NULL-terminated array of strings and the return value is a similar old safelist. The call extl_set_safelist(NULL) removes any safelist and allows @@ -263,7 +263,7 @@ calls to all exported functions.

    Configuration files should be read as before with the function -read_config_for +read_config_for except that the list of known options is no longer present.

    diff --git a/ionnotes/node5.html b/ionnotes/node5.html index d3aba2e..45b1c29 100644 --- a/ionnotes/node5.html +++ b/ionnotes/node5.html @@ -83,10 +83,9 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    To keep Ion's code as simple as possible yet safe, there are restrictions when the WObj -destroy_obj +destroy_obj function that calls watches, the deinit routine and frees memory may -be called directly. In all other cases the -defer_destroy +be called directly. In all other cases the mainloop_defer_destroy function should be used to defer the call of destroy_obj until Ioncore returns to its main event loop. @@ -103,8 +102,7 @@ following cases: when the function created a frame to manage some other object but for some reason failed to reparent the object to this frame. -

  • In a deferred action handler set with - defer_action. +
  • In a deferred action handler set with mainloop_defer_action. Like deferred destroys, other deferred actions are called when Ioncore has returned to the main loop.
  • @@ -116,7 +114,7 @@ following cases:

    If there are no serious side effects from deferring destroying the object or you're unsure whether it is safe to destroy the object -immediately, use defer_destroy. +immediately, use mainloop_defer_destroy.

    @@ -145,7 +143,7 @@ parameters to functions.

    -
    Figure 3: Most common manager-managed relations
     
    tExtlTabExtlTab Reference to Lua table
    fExltFnExltFn Reference to Lua function.
    o
    char* The string is the caller's responsibility and it must free it when no longer needed.The called function may modify the string but the ''owner'' of +The called function may modify the string but the ``owner'' of the string is case-dependant.
    diff --git a/ionnotes/node6.html b/ionnotes/node6.html index 8c20249..61cff1a 100644 --- a/ionnotes/node6.html +++ b/ionnotes/node6.html @@ -78,7 +78,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds

    -If you want to submit patches to Ion, you MUST follow my coding +If you want to submit patches to Ion, you must follow my coding style, even if you think it is the root of all evil. We don't want the code to be an incomprehensible mess of styles and I have better things to do than fix other people's style to match mine. The style @@ -94,7 +94,7 @@ things to take note of.

      -
    • Indentations of 4 with tab size=4. +
    • Indentations of 4 with spaces.

    • diff --git a/ionnotes/node8.html b/ionnotes/node8.html index 6e12241..d14a7c0 100644 --- a/ionnotes/node8.html +++ b/ionnotes/node8.html @@ -58,77 +58,77 @@ original version by: Nikos Drakos, CBLU, University of Leeds Index
      call handler - : 3.2 -
      defer_action - : 4.1 -
      defer_destroy - : 4.1 + : 3.2
      destroy_obj - : 4.1 + : 4.1
      extl_call - : 3.3 + : 3.3
      extl_call_named - : 3.3 + : 3.3
      extl_dofile - : 3.3 + : 3.3
      extl_dostring - : 3.3 + : 3.3
      extl_set_safelist - : 3.3 + : 3.3
      ExtlFn - : 3.1 -
      ExtlTab : 3.1 +
      ExtlTab + : 3.1 +
      mainloop_defer_action + : 4.1 +
      mainloop_defer_destroy + : 4.1
      manager - : 1.2.1 + : 1.2.1
      Obj - : 1.1 + : 1.1
      parent - : 1.2.1 + : 1.2.1
      read_config_for - : 3.4 + : 3.4
      root window - : 1.1 + : 1.1
      screen
      -
      physical : 1.1 -
      X : 1.1 +
      physical : 1.1 +
      X : 1.1
      WClientWin - : 1.1 + : 1.1
      WEdln - : 1.1 + : 1.1
      WFrame - : 1.1 + : 1.1
      WGroup - : 1.1 + : 1.1
      WGroupCW - : 1.1 -
      WGroupWS : 1.1 +
      WGroupWS + : 1.1
      WInput - : 1.1 + : 1.1
      WMessage - : 1.1 + : 1.1
      WObj - : 2 + : 2
      WObjDescr - : 2 + : 2
      WRegion - : 1.1 + : 1.1
      WRootWin : 1.1
      WScreen - : 1.1 + : 1.1
      WSplit - : 1.1 -
      WTiling : 1.1 +
      WTiling + : 1.1
      WWatch - : 2 + : 2
      WWindow - : 1.1 + : 1.1
      Xinerama - : 1.1 + : 1.1
      diff --git a/ionnotes/node9.html b/ionnotes/node9.html index fd8126b..288d589 100644 --- a/ionnotes/node9.html +++ b/ionnotes/node9.html @@ -70,7 +70,7 @@ Mathematics Department, Macquarie University, Sydney. The command line arguments were:
      latex2html -show_section_numbers -short_index -local_icons -noaddress -up_url http://iki.fi/tuomov/ion/ -up_title 'Ion homepage' -nofootnode -split 4 ionnotes

      -The translation was initiated by tuomov on 2007-03-18 +The translation was initiated by tuomov on 2007-05-06


      diff --git a/macros.tex b/macros.tex index 0e172d3..134aeed 100644 --- a/macros.tex +++ b/macros.tex @@ -17,8 +17,7 @@ % URL settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\urlstyle{rm} -\newcommand{\centerurl}[1]{\begin{center}\url{#1}\end{center}} +\urlstyle{tt} % listings package %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -47,6 +46,7 @@ %begin{latexonly} \newcommand{\key}[1]{\mbox{\textbf{#1}}} \newcommand{\code}[1]{\lstinline!#1!} +\newcommand{\codestr}[1]{`\texttt{#1}'} \newcommand{\var}[1]{\lstinline!#1!} \newcommand{\command}[1]{\lstinline!#1!} @@ -60,6 +60,7 @@ \newcommand{\key}[1]{\textbf{#1}} \newcommand{\code}[1]{\texttt{#1}} +\newcommand{\codestr}[1]{`\texttt{#1}'} \newcommand{\var}[1]{\texttt{#1}} \newcommand{\command}[1]{\texttt{#1}} diff --git a/miscref.tex b/miscref.tex new file mode 100644 index 0000000..44b0818 --- /dev/null +++ b/miscref.tex @@ -0,0 +1,44 @@ + +\subsection{Size policies} +\label{sec:sizepolicies} + +Some functions accept a \var{sizepolicy} parameter. The possible +values are: + +\begin{flushleft} +\codestr{default}, +\codestr{full}, +\codestr{full\_bounds}, +\codestr{free}, +\codestr{free\_glue}, +\codestr{northwest}, +\codestr{north}, +\codestr{northeast}, +\codestr{west}, +\codestr{center}, +\codestr{east}, +\codestr{southwest}, +\codestr{south}, +\codestr{southeast}, +\codestr{stretch\_top}, +\codestr{stretch\_bottom}, +\codestr{stretch\_left}, +\codestr{stretch\_right}, +\codestr{free\_glue\_northwest}, +\codestr{free\_glue\_north}, +\codestr{free\_glue\_northeast}, +\codestr{free\_glue\_west}, +\codestr{free\_glue\_center}, +\codestr{free\_glue\_east}, +\codestr{free\_glue\_southwest}, +\codestr{free\_glue\_south}, and +\codestr{free\_glue\_southeast}. +\end{flushleft} + +The ``free'' policies allow the managed +object to be moved around, whereas the other versions do not. +The ``glue'' policies glue the object to some border, while allowing +it to be moved away from it by user action, but not automatically. +The ``stretch'' policies stretch the object along the given border, +while the coordinate-based policies simply place the object along +that border. diff --git a/objects.tex b/objects.tex index 5a5b04f..b9de147 100644 --- a/objects.tex +++ b/objects.tex @@ -5,7 +5,7 @@ While Ion does not not have a truly object-oriented design \footnote{the author doesn't like such artificial designs}, things that appear on the computer screen are, however, quite -naturally expressed as such ''objects''. Therefore Ion implements +naturally expressed as such ``objects''. Therefore Ion implements a rather primitive OO system for these screen objects and some other things. @@ -21,7 +21,7 @@ basic relations. For simplicity we consider only the essential-for-basic-configuration Ioncore, \file{mod\_tiling} and \file{mod\_query} classes. -See Appendix \ref{app:fullhierarchy} for the full class hierachy visible +See Appendix \ref{app:fullhierarchy} for the full class hierarchy visible to Lua side. \subsection{Class hierarchy} @@ -73,7 +73,7 @@ The core classes: screen. Each object of type \type{WRegion} has a size and position relative to the parent \type{WRegion}. While a big part of Ion operates on these instead of more specialised classes, \type{WRegion} - is a ''virtual'' base class in that there are no objects of ''pure'' + is a ``virtual'' base class in that there are no objects of ``pure'' type \type{WRegion}; all concrete regions are objects of some class that inherits \type{WRegion}. @@ -85,27 +85,26 @@ The core classes: internal objects having an X window associated to them (\type{WClientWins} also have X windows associated to them). + \item[\type{WMPlex}] is a base class for all regions that ``multiplex'' + other regions. This means that of the regions managed by the multiplexer, + only one can be displayed at a time. + + \item[\type{WScreen}]\indextype{WScreen} is an instance of \type{WMPlex} + for screens. + \item[\type{WRootWin}]\indextype{WRootWin} is the class for root windows\index{root window} of X screens\index{screen!X}. - Note that an ''X screen'' or root window is not necessarily a - single physical screen\index{screen!physical} as a root window - may be split over multiple screens when hacks such as + It is an instance of \type{WScreen}. + Note that an ``X screen'' or root window is not necessarily a + single physical screen\index{screen!physical} as a root window + may be split over multiple screens when ugly hacks such as Xinerama\index{Xinerama} are used. (Actually there can be only - one root window when Xinerama is used.) + one root window when Xinerama is used.) - \item[\type{WMPlex}] is a base class for all regions that''multiplex'' - other regions. This means that of the regions managed by the multiplexer, - only one can be displayed at a time. Classes that inhereit \type{WMPlex} - include screens and frames. - - \item[\type{WScreen}]\indextype{WScreen} is the class for objects - corresponding to physical screens. Screens may share a root - window when the Xinerama extension is used as explained above. - \item[\type{WFrame}]\indextype{WFrame} is the class for frames. - While most Ion's objects have no graphical presentation, frames basically - add to \type{WMPlex}es the decorations around client windows - (borders, tabs). + While most Ion's objects have no graphical presentation, frames + basically add to \type{WMPlex}es the decorations around client + windows (borders, tabs). \item[\type{WGroup}]\indextype{WGroup} is the base class for groups. Particular types of groups are workspaces @@ -130,16 +129,16 @@ Classes implemented by the \file{mod\_query} module: \begin{description} \item[\type{WInput}]\indextype{WInput} is a virtual base class for the two classes below. - \item[\type{WEdln}]\indextype{WEdln} is the class for the ''queries'', + \item[\type{WEdln}]\indextype{WEdln} is the class for the ``queries'', the text inputs that usually appear at bottoms of frames and sometimes - screens. Queries are the functional equivalent of ''mini buffers'' in + screens. Queries are the functional equivalent of ``mini buffers'' in many text editors. \item[\type{WMessage}]\indextype{WMessage} implements the boxes for warning and other messages that Ion may wish to display to the user. These also usually appear at bottoms of frames. \end{description} -There are also some other ''proxy'' classes that do not refer +There are also some other ``proxy'' classes that do not refer to objects on the screen. The only important one of these for basic configuration is \type{WMoveresMode} that is used for binding callbacks in the move and resize mode. diff --git a/objectsimpl.tex b/objectsimpl.tex index ccc440d..a224aa5 100644 --- a/objectsimpl.tex +++ b/objectsimpl.tex @@ -1,14 +1,14 @@ \section{Object system implementation} First, to get things clear, what are considered objects here are C -structures containing a properly initialized \type\indextype{WObj} +structures containing a properly initialised \type\indextype{WObj} structure defined in \file{ioncore/obj.h} as the first element (or the first element of the structure which is the first element and so on which gives rise to inheritance). The \type{WObj} structure contains a pointer to a \type{WObjDescr}\indextype{WObjDescr} class type info structure and -a list of so called ''watches''. The \type{WObjDescr} structure simply +a list of so called ``watches''. The \type{WObjDescr} structure simply lists the class name, a table of dynamic functions and a pointer to -deinitialisation function (or ''destructor''). +deinitialisation function (or ``destructor''). Ion does not do any reference counting, garbage collecting or other fancy things related to automatic safe freeing of objects with its diff --git a/prelim.tex b/prelim.tex index c5db5f8..8a0a6c3 100644 --- a/prelim.tex +++ b/prelim.tex @@ -33,14 +33,11 @@ should be loaded. Currently Ion provides the following modules: keyboard-operated in-frame menus. \item[\file{mod\_statusbar}] Module that implements a statusbar that can be adaptively embedded in each workspace's layout. - \item[\file{mod\_dock}] Module for docking Window Maker dockapps. + \item[\file{mod\_dock}] Module for docking Window Maker dock-apps. The dock can both float and be embedded as the statusbar. \item[\file{mod\_sp}] This module implements a scratchpad frame that can be toggled on/off everywhere. Think of the 'console' in some first-person shooters. - \item[\file{mod\_mgmtmode}] Support module for implementing ''management - modes'' with a XOR-frame similar to move/resize mode around selected - region. \item[\file{mod\_sm}] Session management support module. \emph{Loaded automatically when needed!} \end{description} @@ -48,10 +45,10 @@ should be loaded. Currently Ion provides the following modules: So-called drawing engines are also implemented as a modules, but they are not discussed here; see chapter \ref{chap:gr}. -The stock configuration for the 'ion3' executable loads all of the modules -mentioned above except \file{mod\_dock} and file{mod\_mgmtmode}. -The stock configuration for the 'pwm3' executable (which differs from the -'ion3' executable in a few configuration details, such as Xinerama usage) +The stock configuration for the \file{ion3} executable loads all of the +modules mentioned above except \file{mod\_dock}. +The stock configuration for the \file{pwm3} executable (which differs +from the \file{ion3} executable in a few configuration details) loads another set of modules. diff --git a/statusd.tex b/statusd.tex index e1fe6b2..82e70eb 100644 --- a/statusd.tex +++ b/statusd.tex @@ -1,14 +1,15 @@ \section{Writing \command{ion-statusd} monitors} +\label{sec:statusd} All statusbar meters that do not monitor the internal state of Ion should go in the separate \command{ion-statusd} program. -Whenever the user requests a meter \code{\%foo} or \code{\%foo_bar} to be -inserted in a statusbar, \file{mod\_statusbar} asks \command{ion-statusd} to -load \fnref{statusd_foo.lua} on its search path (same as that for Ion-side +Whenever the user requests a meter \codestr{\%foo} or \codestr{\%foo\_bar} to +be inserted in a statusbar, \file{mod\_statusbar} asks \command{ion-statusd} +to load \fnref{statusd_foo.lua} on its search path (same as that for Ion-side scripts). This script should then supply all meters with the initial part -'\code{foo}'. +\codestr{foo}. To provide this value, the script should simply call \code{statusd.inform} with the name of the meter and the value as a string. @@ -16,11 +17,11 @@ Additionally the script should provide a 'template' for the meter to facilitate expected width calculation by \file{mod\_statusbar}, and may provide a 'hint' for colour-coding the value. The interpretation of hints depends on the graphical style in use, and currently the -stock styles support the \code{normal}, \code{important} and -\code{critical} hints. +stock styles support the \codestr{normal}, \codestr{important} and +\codestr{critical} hints. -In our example of the 'foo monitor', at script init we might broadcast +In our example of the 'foo monitor', at script initialisation we might broadcast the template as follows: \begin{verbatim} diff --git a/tricks.tex b/tricks.tex index 69fe945..9cf86d1 100644 --- a/tricks.tex +++ b/tricks.tex @@ -4,20 +4,20 @@ This chapter documents some additional features of the Ion configuration and scripting interface that can be used for more advanced scripting than -the basic configuration exlained in chapter \ref{chap:config}. +the basic configuration explained in chapter \ref{chap:config}. \section{Hooks} \label{sec:hooks} Hooks are lists of functions to be called when a certain event occurs. -There are two types of them; normal and ''alternative'' hooks. Normal +There are two types of them; normal and ``alternative'' hooks. Normal hooks do not return anything, but alt-hooks should return a boolean -indicating whether it handled its assigned task succesfully. In the case +indicating whether it handled its assigned task successfully. In the case that \var{true} is returned, remaining handlers are not called. Hook handlers are registered by first finding the hook with \fnref{ioncore.get_hook} and then calling \fnref{WHook.add} -on the (succesfull) result with the handler as parameter. Similarly +on the (successful) result with the handler as parameter. Similarly handlers are unregistered with \fnref{WHook.remove}. For example: \begin{verbatim} @@ -31,7 +31,7 @@ handlers do. The types of parameters for each hook are listed in the hook reference, section \ref{sec:hookref}. -Note that many of the hooks are called in ''protected mode'' and can not +Note that many of the hooks are called in ``protected mode'' and can not use any functions that modify Ion's internal state. TODO: More detailed documentation when this is final. @@ -39,7 +39,7 @@ documentation when this is final. \subsection{Direct object references} -All Ion objects are passed to Lua scriptss as 'userdatas', and you may +All Ion objects are passed to Lua scripts as 'userdatas', and you may safely store such object references for future use. The C-side object may be destroyed while Lua still refers to the object. All exported functions gracefully fail in such a case, but if you need to explicitly