[xmonad] Issue 254 in xmonad: XMonad.Contrib.Util.Run.runInTerm
does not work with terminal = "gnome-terminal"
codesite-noreply at google.com
codesite-noreply at google.com
Thu Jan 1 05:25:03 EST 2009
Comment #5 on issue 254 by twpayne: XMonad.Contrib.Util.Run.runInTerm does
not work with terminal = "gnome-terminal"
http://code.google.com/p/xmonad/issues/detail?id=254
I've only got basic notions of Haskell, but my understanding is that
safeRunInTerm
avoids the shell but the command to be run is still converted to a string.
Basically:
runInTerm (based on unsafeSpawn) does this (pseudo code):
exec 'sh -c "terminal -e ssh localhost"' -- convert to string, pass to sh
safeRunInTerm (based on safeSpawn) does this:
exec 'terminal -e ssh localhost' -- convert to string. don't pass to sh
but what's really needed is this:
exec ['terminal', '-e', 'ssh localhost'] -- don't convert to string,
invoke
-- exec with list of arguments
Note how in the last example 'ssh localhost' is passed as a single
argument, where in
both runInTerm and safeRunInTerm it is split into two arguments (because a
string
passed to exec is implicitly split on whitespace to produce the list of
arguments).
So, unfortunately I think the changes run a bit deeper than just using
safeSpawn :-(
--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings
More information about the xmonad
mailing list