#734 Execute does not work with konsole

None
closed
nobody
General (289)
Unknown
5
2014-08-19
2011-07-31
Kingfisher289
No

Geany version: geany 0.20 (built on Feb 9 2011 with GTK 2.24.0, GLib 2.28.0, GIO)
OS: Fedora 15; Kernel: Linux 2.6.38.8-35.fc15.x86_64 #1 SMP Wed Jul 6 13:58:54 UTC 2011 x86_64

Description: Execute does not work when Terminal is set to konsole. (See related bug ID 2533058.)

Steps to reproduce:
1. Edit->Preferences->Tools: Set Terminal: konsole
2. Click on Execute
Result: Window opens running my default shell (tcsh) with a command prompt. geany_run_script.sh does not execute.

Workaround:
In Edit->Preferences->Tools: Set Terminal to: konsole --workdir . -e sh -c

Comments:
There seem to be two problems.
1. konsole does not like the embedded space in the argument ' /bin/sh ./geany_run_script.sh' to -e.
2. konsole resets the working directory to the user's home directory unless the --workdir option is provided.
It seems that different terminal emulators support different argument conventions, and no single one is "right". One fix would be to provide a configuration file with argument patterns for common terminal emulators. A lightweight solution would just be to list the known argument patterns in the manual and to have the hover-over comment refer the user to the manual.

Discussion

  • Lex Trotman
    Lex Trotman
    2013-02-21

    • status: open --> pending
     
  • Lex Trotman
    Lex Trotman
    2013-02-21

    A change has been added to Geany Git that makes the terminal setting to be a command not just the name of the executable so you can add options to it. A marker %c is substituted by the name of the geany_run_script.

    Could you try and see if that solves the problem?

     
  • Well, Konsole is completely crazy but with the change @elextr mentioned you can get it to work more naturally by setting the terminal command to

    konsole --workdir=. -e /bin/sh "%c"

    At least it's a real command now.

     
    • status: pending --> closed
    • Found in: --> Unknown
    • Fixed in: --> None