[GRASS-dev] Re: New xterm wrapper not working on Mac build
William Kyngesburye
woklist at kyngchaos.com
Mon Sep 4 17:16:46 EDT 2006
Hmm, when I saw the xterm wrapper thread, I kinda wondered how it
might affect GRASS running from a Mac Terminal. I'm not sure about
the details on how the wrapper is used, but when an xterm is needed,
would a Mac Terminal work?
One thing I added to my custom GRASS.app startup is a
GRASS_OS_STARTUP env var. I set it to "Mac.app" and it was initially
used when I added to the existing grass6 startup shell, but now I use
a completely custom grass startup shell because I couldn't figure out
how to pass args from the open command. I left GRASS_OS_STARTUP in
the startup, so maybe grass-xterm-wrapper can use this to set
GRASS_XTERM to open a Terminal instead of an xterm?
It would be kinda tricky - exec'ing a Terminal directly would
actually run Terminal.app again instead of creating a new window in
an already-running Terminal (not good, most Mac apps are only meant
to be run once), instead it would need to be run from 'open' (this is
how I start GRASS in my python startup). But this will only work to
run a script from a file, not open an empty Terminal window, unless
there is no window currently open.
For running a script in a new window (open doesn't need to run from
exec, and returns immediately without waiting for the script to run -
it's just 'opening' a file in an application):
/usr/bin/open -a Terminal some_script_file.sh
Without a script file, it just opens the Terminal, and if there is no
window open, it will open a new one (what we want), but if there is
already one open (there is because GRASS was started in one) it will
just activate the frontmost window.
I thought about doing an inline AppleScript, but the Terminal's
scriptability is surprisingly limited - there is no way to open a new
window. It could be done with the System Events scripting to
manually choose a menu item, but that's messy and requires a user to
activate Universal Access.
If the xterm usage needs specific xterm options, then a Terminal
probably won't work, since it doesn't have startup options except for
running a script. Which makes me wonder - if an xterm is explicitly
needed, that makes it difficult to separate the GUI from X11 if a
user wanted to use Tcl/Tk Aqua (or a native Windows TclTk, if that
option works).
Or, if the GUI is running in an X11 Tcl/Tk, you probably want xterms
for a consistent look.
For running from the CLI, I did a search and the only place an xterm
is used is r[3].mapcalculator, to run in 'expert' mode (and without
grass-run.sh). That doesn't sound right - won't it be missing the
GRASS running environment? Why should it run in a separate window in
the first place?
Do you have a specific example of grass-xterm-wrapper use in the CLI
that fails?
On Sep 4, 2006, at 2:08 PM, Michael Barton wrote:
> I just discovered that the xterm wrapper script does not work for
> Willaim Kyngesburye’s framework build binaries for the Mac, and
> won’t work for Lorenzo’s binaries either in some circumstances.
>
> The issue is that the Mac BASH terminal is used as the GRASS
> terminal rather than an xterm. The Mac terminal is much easier to
> use. But when grass-xterm-wrapper.sh is run from the BASH terminal,
> it doesn’t realize that x is running and returns a command not
> found error. This is not a problem when an xterm is launched from
> TclTk, which IS running in X-windows.
>
> Solutions?
>
> Michael
>
-----
William Kyngesburye <kyngchaos at kyngchaos.com>
http://www.kyngchaos.com/
"We are at war with them. Neither in hatred nor revenge and with no
particular pleasure I shall kill every ___ I can until the war is
over. That is my duty."
"Don't you even hate 'em?"
"What good would it do if I did? If all the many millions of people
of the allied nations devoted an entire year exclusively to hating
the ____ it wouldn't kill one ___ nor shorten the war one day."
<Ha, ha> "And it might give 'em all stomach ulcers."
- Tarzan, on war
More information about the grass-dev
mailing list