X-Git-Url: https://git.decadent.org.uk/gitweb/?p=ion3-doc.git;a=blobdiff_plain;f=ionconf%2Fnode4.html;h=0aab7ccf5ef6e25be645d51f6ef38fe919a96ca4;hp=d156abd426bc9cb0516db9e6753a0984443e03db;hb=refs%2Ftags%2Fion3-20070318;hpb=16a5f824c31d29598763c5f49918ef67a47ad7e0 diff --git a/ionconf/node4.html b/ionconf/node4.html index d156abd..0aab7cc 100644 --- a/ionconf/node4.html +++ b/ionconf/node4.html @@ -28,31 +28,31 @@ original version by: Nikos Drakos, CBLU, University of Leeds @@ -61,58 +61,60 @@ original version by: Nikos Drakos, CBLU, University of Leeds Subsections
@@ -153,9 +155,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. @@ -199,6 +201,9 @@ files: Settings to get some applications behave more nicely have been collected here. See section 3.5. +cfg_layouts.lua +Some workspace layouts are defined here. + cfg_tiling.lua cfg_query.lua cfg_menu.lua @@ -270,15 +275,26 @@ The first of these two settings enables opaque resize mode: in move/resize move frames and other objects mirror you actions immediately. If opaque resize is disabled, a XOR rubber band is shown during the mode instead. This will, unfortunately, cause Ion to also grab the X server and has some -side effects. +side effects. + +

+There are some other options as well; see the documentation +for ioncore.set for details.

-Next we load the configuration for Ion's core, and some kludges: +As a next step, in the actual cfg_ion.lua file, we load +cfg_defaults.lua. However, it is merely a conveniency 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 +line, and uncomment the lines for the files that you want:

+--dopath("cfg_defaults")
 dopath("cfg_ioncore")
 dopath("cfg_kludges")
+dopath("cfg_layouts")
 

@@ -298,6 +314,8 @@ expression that is used to match against the title and the next is a rule to construct a new title of a match occurs. This particular rule is used to shorten e.g. 'Foo: barbaz<3>' to 'barba...<3>'; for details see the function reference entry for ioncore.defshortening. +Finally, cfg_layouts.lua defines some workspace layouts, available +through the F9 workspace creation query.

To actually be able to do something besides display windows in full screen @@ -305,22 +323,14 @@ mode, we must next load some modules:

-dopath("cfg_modules")
---dopath("mod_query")
---dopath("mod_menu")
---dopath("mod_tiling")
---dopath("mod_statusbar")
+dopath("mod_query")
+dopath("mod_menu")
+dopath("mod_tiling")
+dopath("mod_statusbar")
 --dopath("mod_dock")
---dopath("mod_sp")
+dopath("mod_sp")
 
-

-We actually load there another file listing the default selection of -modules. If you only want to load additional modules, just uncomment -the corresponding line. If you want to disable loading some modules, -comment out the the line loading cfg_modules, and uncomment -the lines for the modules you want, or add more. -

@@ -573,8 +583,8 @@ 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="#foot871">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. @@ -586,23 +596,23 @@ 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 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.

@@ -614,10 +624,10 @@ default.

Ion ignores the Lock modifier and any ModN () -bound to NumLock or -ScrollLock +bound to NumLock or +ScrollLock by default because such3.2 locking keys may otherwise + HREF="#foot850">3.2 locking keys may otherwise cause confusion.

@@ -630,7 +640,7 @@ 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 @@ -681,10 +691,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 @@ -821,7 +831,7 @@ handlers (and elsewhere): 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 + HREF="#foot1188">3.3 @@ -849,7 +859,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 @@ -867,7 +877,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 @@ -877,21 +887,6 @@ usual method of identifying windows, and how to obtain this information.
-

- -

-
Winprop:
-
aspect (table) - -
-
Description:
-
- The table should contain the entries w and h that - override application-supplied aspect ratio hint. - -
-
-

@@ -900,7 +895,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. @@ -915,7 +910,7 @@ usual method of identifying windows, and how to obtain this information.
Description:
-
+
Should the window be initially in full screen mode?
@@ -929,7 +924,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. @@ -944,26 +939,12 @@ usual method of identifying windows, and how to obtain this information.
Description:
-
+
Ignore extended WM hints _NET_ACTIVE_WINDOW request.
-

- -

-
Winprop:
-
ignore_resizeinc (boolean) - -
-
Description:
-
- Should application supplied size increments be ignored? - -
-
-

@@ -972,42 +953,13 @@ 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.
-

- -

-
Winprop:
-
max_size (table) - -
-
Description:
-
- The table should contain the entries w and h that - override application-supplied maximum size hint. - -
-
- -

- -

-
Winprop:
-
min_size (table) - -
-
Description:
-
- Similar to max_size but for the minimum size hint. - -
-
-

@@ -1016,7 +968,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 @@ -1035,7 +987,7 @@ usual method of identifying windows, and how to obtain this information.
Description:
-
+
Discard this winprop after first use.
@@ -1049,11 +1001,11 @@ usual method of identifying windows, and how to obtain this information.
Description:
-
- Put the window on the statusbar, in the named tray component, - (The default tray component is called simply ``systray'', +
+ Put the window in the statusbar, in the named tray component, + (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_".
@@ -1066,7 +1018,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. @@ -1081,7 +1033,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. @@ -1096,33 +1048,17 @@ usual method of identifying windows, and how to obtain this information.
Description:
-
- "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 be - handled as a normal window even if it is marked as a +
+ "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 + be handled as a normal window even if it is marked as a transient by the application.
-

- -

-
Winprop:
-
transients_at_top (boolean) - -
-
Description:
-
- When transients are managed by the client window itself (as it - is the case on tiled workspaces), should the transients be - placed at the top of the window instead of bottom? - -
-
-

@@ -1131,7 +1067,7 @@ usual method of identifying windows, and how to obtain this information.
Description:
-
+
Should frames be made transparent when this window is selected?
@@ -1140,17 +1076,47 @@ usual method of identifying windows, and how to obtain this information.

-

+

+3.5.1 Sizehint winprops +

+ +

+Additionally, the winprops +max_size, +min_size, +aspect, +resizeinc, +and +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 +winprop is a boolean. + +

+Finally, the boolean +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 +only for floating windows. + +

+ +


-3.5.1 Classes, roles and instances +3.5.2 Classes, roles and instances

The identification information in the winprop specification is usually the -class, -role, -instance and +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 @@ -1223,8 +1189,8 @@ the same but different name, the longest match is chosen.

-

-3.5.2 Finding window identification +

+3.5.3 Finding window identification

@@ -1233,7 +1199,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 @@ -1242,7 +1208,7 @@ 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 some programs abuse this property) that have a parent window that they are ''transient for''. On tiled workspaces Ion displays these windows @@ -1251,7 +1217,7 @@ 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 + HREF="#foot1464">3.4

Finally, it should be mentioned that too many authors these days ''forget'' to set this vital identification to anything meaningful: @@ -1260,14 +1226,14 @@ windows, for example.

-

-3.5.3 Some common examples +

+3.5.4 Some common examples

-

-3.5.3.1 Acrobat Reader +

+3.5.4.1 Acrobat Reader

@@ -1284,8 +1250,8 @@ defwinprop{

-

-3.5.3.2 Fixing a Mozilla Firebird transient +

+3.5.4.2 Fixing a Mozilla Firebird transient

@@ -1313,8 +1279,8 @@ defwinprop{

-

-3.5.3.3 Forcing newly created windows in named frames +

+3.5.4.3 Forcing newly created windows in named frames

@@ -1351,26 +1317,26 @@ default name formed from the frame's class name and an instance number.



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.... handling.3.3
See the wcirculate.lua script in the Ion scripts repository http://iki.fi/tuomov/repos/ion-scripts-3/.
-
... window.... window.3.4
There's a patch to xprop to fix this, but nothing seems to be happening with respect to including it in @@ -1380,31 +1346,31 @@ XFree86.