Ben,
I have been using the latest versions of the Xorg X11 for 10.5.x that you have posted at < http://people.freedesktop.org/~bbyer/x11app/>. They have resolved a whole bunch of problems -- wireshark works for me now, kdevelop runs without anymore unreadable garbage in scrolling windows and the yellow cursor problem is gone. Thank you for posting these.
Hopefully fullscreen will start working someday soon as well.
But the subject of this post is Xquartz, the Dock and XDMCP. I am now successfully running Xquartz directly from a shell prompt like this:
Xquartz :1 -query remote.host.name -from ppp.if.address +xinerama -once
(where remote.host.name is the host I tested with and ppp.if.address is the IPv4 address of my end of the VPN ppp connection I brought up so I could test).
Works fine. An icon shows up in the Dock as soon as I start Xquartz. I do have to click on it or Command-Tab to it to bring it forward at which point I can log in to the remote host via its login dialog.
Basically, I created a Xquartz.plist file with these contents (selectively extracted from /Applications/Utilities/X11.app/Contents/Info.plist):
---BEGIN Xquartz.plist CONTENTS--- <?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleGetInfoString</key> <string>X11</string> <key>CFBundleIdentifier</key> <string>org.x.X11</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>X11</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> <string>2.0</string> <key>CFBundleSignature</key> <string>x11a</string> <key>CSResourcesFileMapped</key> <true/> <key>NSHumanReadableCopyright</key> <string>Copyright © 2003-2007, Apple Inc. Copyright © 2003, XFree86 Project, Inc.</string> </dict> </plist> ---END Xquartz.plist CONTENTS---
Then I created a AddPlist.r file with these contents:
---BEGIN AddPlist.r CONTENTS--- read 'plst' (0) "Xquartz.plist"; ---END AddPlist.r CONTENTS---
And finally ran Rez like this:
/usr/bin/Rez -a -o /usr/X11R6/bin/Xquartz AddPlist.r
That's it. Now you'll get a Dock icon when starting Xquartz directly. It will show in the App Switcher (Command-Tab) and most importantly, it will get focus for key input when switched to.
The sad part of this is that it is possible to embed Info.plist information directly into the executable without needing to use a resource fork but that's not good enough to get a Dock icon. See < http://developer.apple.com/documentation/Security/Conceptual/CodeSigningGuide/Procedures/chapter_3_section_3.html> for information on how to do this. The Finder recognizes these embedded Info.plist files. For an example of this, navigate to /usr/bin in the Finder and do a Get Info on the hdiutil file -- the version string that the Finder shows came right out of the embedded Info.plist information in the hdiutil file.
Xquartz should probably get an embedded Info.plist as well for code signing purposes etc.
Unfortunately the other parts of the system (Application Switcher, Dock etc.) don't seem to be able to find this embedded Info.plist information and require the resource fork version. Perhaps you can convince your colleagues at Apple that that behavior is a bug and the Dock and App Switcher should recognize the embedded Info.plist information in order to avoid needing to add a resource fork to things like Xquartz.
Hope you find this as helpful as I did.
Kyle McKay
|