[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