[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] Add application key bindings from border menu....

On 12/28/2006 21:03, Carsten Haitzler (The Rasterman) wrote:
On Thu, 21 Dec 2006 16:01:58 -0600 Ravenlock <ravenlock@comcast.net> babbled:


Here is a patch that will add a border menu item that allows you to
enter a key binding for the current app.

It utilizes the existing key binding config dialog.  When launched from
the border menu, it will immediately prompt for the binding.  It then
selects the "Defined Command" as an action, and fills in the "Action
Params" with the present app's command line args.

Well, in short... the command line and args may not be exactly what you expect. For example, some apps are started via shell scripts. Firefox and Thunderbird for example. If you start them up and create a key binding in this fashion, you get firefox-bin and thunderbird bin respectively. This will not launch those apps (on my machine anyway). Additionally, complex command lines may not be as you expect either. Command lines with pipes and `command substitutions` in particular.

Comments welcome.

cool idea - before accepting - here's an idea for an improvement.

Thanks for considering the patch.

if the border has a bd->app (ie an e_app has been matched to the border
somehow) use the bd->app->exe (ie the execute line in the matched app) instead
of the icccm command by default. this should fix some of what you mention
above as "gotchas".

I agree, that this would be beneficial. Rephorm had mentioned it as well. I took a shot at it, and ran into some issues. The method used to determine *which* .desktop file is appropriate (when more than one with the same 'Exec=<app> <args>` for any <args> is present) results in incorrect command lines. For example:
  two .desktop files each with one of these Exec stmts:
    Exec=aterm -title "a quick test" -sr -font 6x13 -e vi
Always picks the last (alphabetical) .desktop file. So the command line I pick is often incorrect. I could prompt with multiple command lines to choose from, but this seems to defeat the purpose a bit.

In short... the code to do the above exists, but is disabled pending someone else's review (yours?). Please see comments in _cmdln_args_get() in the patch.


also it'd be nice if instead of the whole keybindings
config dialog to come up - it

1. had a different dialog that displayed the command-line (and if any app was
matched and the icon if anything was matched - like the bd->app or if the icccm
command matches an app like e_exebuf matches them, also display the app icon
from this app so you know it has been matched), and also display the actual
command in an edit box.
2. now ask for the key combo to be pressed.
3. if the key combo conflicts pop up a list of existing bound key combos in a
dialog and ask again for a key combo (keep asking until they abort with escape).
4. then just add the binding and close dialog(s) (just keeps the big dialog from
popping up when you don't need most of its features).

I'll take a swing at the above.