[xmonad] shellPrompt exec with args

Carlos López Camey c.lopez at kmels.net
Sat Feb 9 19:00:38 CET 2013


2013/2/9 Carsten Mattner <carstenmattner at gmail.com>:
> On Sat, Feb 9, 2013 at 6:38 PM, Brandon Allbery <allbery.b at gmail.com> wrote:
>> On Sat, Feb 9, 2013 at 11:27 AM, Carsten Mattner <carstenmattner at gmail.com>
>> wrote:
>>>
>>> > I'm not exactly sure what you're asking, but shellPrompt uses "spawn" so
>>> > should not have issues with extra arguments.  I do see an issue where
>>> > completion would break if an executable has a space in its name, but
>>> > that
>>> > shouldn't affect running it if you have your quoting correct.
>>>
>>> Unsuccessfully tried the following
>>> "xterm -e mc"
>>> "/usr/bin/xterm -e mc"
>>> 'xterm -e mc'
>>> '/usr/bin/xterm -e mc'
>>
>>
>> That wasn't what I was talking about, and you should probably forget I
>> mentioned it since you're only likely to see the case I was talking about on
>> OS X.  All of the above *will* fail:  there is no executable called
>> "/usr/bin/xterm -e mc" with spaces in the actual filename, hopefully.
>>
>> Could you show your actual code?
>
> -- shellPrompt is bound to Mod1-p
> ((defModMask, xK_p), shellPrompt myXPConfig)
>
> -- and uses
> myXPConfig = defaultXPConfig
>     { position = Top
>     , promptBorderWidth = 0
>     , defaultText = ""
>     , alwaysHighlight = True
>     }
>
>

Hello Carsten,

I think the above doesn't work because the argument sent to spawn
comes from the list of completions when alwaysHighlight is True (lines
368-371 in Prompt.hs).

There is rationale behind this behaviour.  Suppose I'm looking for the
function filter on hoogle mode, then I don't need to type the whole
word "filter" to select an autocompletion in order to execute the
action on it.

This can be fixed by choosing what's on the command if there is no
available completions and I hope I can get a patch for you/that soon.

Best,

Carlos



More information about the xmonad mailing list