[Xquartz-dev] Bugfixes for 2.5.1 rc1 Xorg 1.8.1 (Re:Bugfixes for 2.5.0_rc1)
Jeremy Huddleston
jeremyhu at apple.com
Tue Jun 8 12:26:59 PDT 2010
>> The .Xmodmap suggestion is of course a solution if XQuartz had (and
>> honoured) a systemwide file e.g. /usr/X11/lib/X11/xinit/.Xmodmap
>> where to put XQuartz keyboard initialisations used for :0 because
>> ~/.Xmodmap residing on NFS-server obviously has to work with all
>> other X11 platforms too attached to it remotely; therefore there
>> really is no room for XQuartz-specific stuff in ~/.Xmodmap.
>
>
> You're right. Please file a bug for this, and I'll do that for the next release-candidate.
Actually, it should be doing that already...
Look at DarwinKeyboardReloadHandler() in quartzKeyboard.c
const char *sysmodmap = PROJECTROOT "/lib/X11/xinit/.Xmodmap";
...
/* Check for system .Xmodmap */
if (access(xmodmap, F_OK) == 0) {
if (access(sysmodmap, F_OK) == 0) {
snprintf (cmd, sizeof(cmd), "%s %s", xmodmap, sysmodmap);
X11ApplicationLaunchClient(cmd);
}
}
/* Check for user's local .Xmodmap */
if (homedir != NULL) {
snprintf (usermodmap, sizeof(usermodmap), "%s/.Xmodmap", homedir);
if (access(usermodmap, F_OK) == 0) {
snprintf (cmd, sizeof(cmd), "%s %s", xmodmap, usermodmap);
X11ApplicationLaunchClient(cmd);
}
}
Now, I see I should be checking access() for the local .Xmodmap, but that is unrelated...
You should be able to use a system .Xmodmap with releases since November 3rd (which is when this change went into the tree).
--Jeremy
More information about the Xquartz-dev
mailing list