- If you are using a locale source file named gwm
, copy the provided locale source file that is closest to the desired character collation order to a file named gwm.src
. This name cannot be the same as any previously defined locale. The system-defined locales are listed in "Understanding Locale".
cd /usr/lib/nls/loc
cp en_GB.ISO8859-1.src gwm.src
- Edit the newly created gwm.src
file to change the lines that are associated within the LC_COLLATE category that is associated with the characters you want to change:
vi gwm.src
change
<a> <a>;<non-accent>;<lower-case>;IGNORE
<b> <b>;<non-accent>;<lower-case>;IGNORE
<c> <c>;<non-accent>;<lower-case>;IGNORE
<d> <d>;<non-accent>;<lower-case>;IGNORE
to
<a> <d>;<non-accent>;<lower-case>;IGNORE
<b> <c>;<non-accent>;<lower-case>;IGNORE
<c> <b>;<non-accent>;<lower-case>;IGNORE
<d> <a>;<non-accent>;<lower-case>;IGNORE
- Generate the new gwm
locale:
localedef -f ISO08859-1 -i gwm.src gwm
- Set the LOCPATH environment variable to the directory containing the new locale. If the new locale is in /u/foo
, then enter:
LOCPATH=/u/foo:/usr/lib/nls/loc; export LOCPATH
The default for LOCPATH is /usr/lib/nls/loc.
Note: All setuid and setgid programs ignore the LOCPATH environment variable.
- Change the LC_COLLATE environment variable to the name of the newly defined gwm
locale binary:
LC_COLLATE=gwm; export LC_COLLATE
Any command will now use the collation order specified in the gwm
locale. In this example, the characters a-d
are sorted in reverse order by commands such as li, ls, and sort.