I am always surprised when I see how people are not willing to follow the standards and instead reinvent the wheel. Let's follow the standards?
SliTaz have very few number of Application menu items that invoke the terminal and "text user interface" application in that terminal. System-wide applications are described in the /usr/share/applications/*.desktop files. And what we can see in the vi.desktop file?
____________________
. . .
Exec=xterm -e vi
Terminal=false
. . .
____________________
Why? Don't know. Maybe it was made for some programs that do not support the standards. But official SliTaz based on Openbox, LXpanel and its menu applet. And menu applet supports Freedesktop standards, not fully but enough in this case.
Go to Desktop Entry specification: http://standards.freedesktop.org/desktop-entry-spec/
Let's open specification v. 1.1: http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html
Read Recognized desktop entry keys topic:
Terminal Whether the program runs in a terminal window.
So we can use Standard way, and write in vi.desktop this:
____________________
. . .
Exec=vi
Terminal=true
. . .
____________________
Why I pay so many attention to this? Because two items. At first, In My Opinion (IMO) xterm is ugly, and I don't like it. I prefere Sakura terminal emulator. And, at second, hard-coding of any terminal into *.desktop file is evil. Some people likes xterm, other — sakura, or urxvt, or lxterminal, or anything else. What to do? Everything has been done.
Right click on your Openbox desktop, click "Favorite applications" menu item, click "Configure favorites". You'll see configuration dialog where you can choose your favorite file manager, web browser, text editor, terminal emulator. Write command line for your favorite terminal emulator and press button "Change". How to use favorite terminal emulator instead of hard-coded xterm? It's very simple, just use terminal
command instead of xterm
command.
So, if you want, you can change vi.desktop to this variant:
____________________
. . .
Exec=terminal -e vi
Terminal=false
. . .
____________________
But, please, never hard-code xterm. (I want to tell you a secret: I want to remove xterm on my machine.)
Ok, but let's back to first example, where Terminal=true. Is it works for you? Yes, its works in the Openbox environment with LXpanel with Menu applet. Read from the LXDE wiki:
http://wiki.lxde.org/en/LXPanel
(or Google cached page because link above is not accessible for me):
Main Config File
The main config file is named "config", and its format is like this:
[Command]
FileManager=pcmanfm %s
Terminal=xterm -e
LogoutCommand=FileManager
. . . . . . . . file manager used when an applet in lxpanel need to open a folder.
Terminal
. . . . . . . . terminal emulator used when an applet needs to popup a terminal window.
So, LXpanel Menu applet is standard compliant, and you can configure your favorite terminal emulator in ~/.config/lxpanel/<Profile Name>/config
file. Here is my working example:
____________________
[Command]
FileManager=pcmanfm %s
Terminal=terminal
Logout=tazbox logout
____________________
I want just only feedback, does it work in non-standart (not Openbox/LXpanel) environments? Some other, like JWM, or Enlightenment? Any tips?