1User customization file
2
3You can customize uim settings by two alternative ways.
4
5  - by uim-pref GUI
6  - create the file ~/.uim and write configuration forms by hand
7
8This file describes the latter way.
9
10
11* Precedence of settings
12
13  - The ~/.uim overrides the settings configured by uim-pref. Remove
14    conflicting setting from ~/.uim if you prefer setting by GUI
15
16  - If ~/.uim does not exist, ${datadir}/uim/default.scm will be
17    loaded as default. Since the default.scm is never modified by
18    uim, system integrator can modify it as they want.
19
20
21* Special settings that cannot be configured in ~/.uim
22
23  Overriding following variables in ~/.uim does not take
24  effect. Configure them in uim-pref or edit installed-modules.scm
25  directly.
26
27    enable-lazy-loading?
28    enabled-im-list
29    installed-im-module-list
30
31
32* Overriding lazy-loaded settings
33
34  The lazy-loading feature introduced in uim 0.4.6 has caused the
35  problem that the entity to be overridden is not loaded at loading
36  ~/.uim.
37
38  For example, following configuration causes the error because
39  japanese.scm is not loaded at loading ~/.uim.
40
41  (set! ja-rk-rule-basic (cons '(((" ") . ()) (" " " " " "))
42                               ja-rk-rule-basic))
43  (ja-rk-rule-update)
44
45  To resolve it, require the file explicitly.
46
47  (require "japanese.scm")
48
49  (set! ja-rk-rule-basic (cons '(((" ") . ()) (" " " " " "))
50                               ja-rk-rule-basic))
51  (ja-rk-rule-update)
52
53
54  If you need whole part of an input method, use 'require-module'
55  instead of ordinary 'require'. This is required for internal IM
56  management.
57
58  wrong:
59
60    (require "pyload.scm")
61    (require "viqr.scm")
62    (require "anthy.scm")
63    (require-dynlib "anthy")
64
65  correct:
66
67    (require-module "pyload")
68    (require-module "viqr")
69    (require-module "anthy")
70
71
72* Configuring key bindings
73
74  To configure key bindings in ~/.uim, write 'define-key' forms. See
75  also doc/KEY for further information
76
77  Be careful about following two issues.
78
79    - Corresponding input method must be loaded by 'require-module'
80      before define-key. This implies that define-key described in
81      ~/.uim disables lazy-loading for the input method.
82
83      (require-module "skk")
84      (define-key skk-cancel-key? "<Control>[")
85
86    - Meaning of the key expression such as "<Control>a" differs
87      between define-key and uim-pref.
88
89      "<Control>a" is interpreted as case sensitive and shift
90      insensitive by define-key. But uim-pref recognizes it as case
91      insensitive and shift sensitive. The different rule of uim-pref
92      is introduced to unify "<Control>a" and "<Control>A" regardless
93      of caps lock status.
94