Application:Terminal

From WebOS Internals
Revision as of 14:37, 28 August 2009 by Rboatright (talk | contribs) (installation 2)
Jump to navigation Jump to search
« Go Back to the Utilities application list
Application Terminal.jpg

Terminal - Version: Alpha 0.2.2
(26 Aug 2009)

Summary

Terminal is a mojo applicaton for the Pre which runs a full VT-100 or Linux terminal in a mojo scene. Terminal relies on a custom written plugin developed from community research which allows the mojo app to talk to the back end. It can be used for local operation to run your Pre, or can reach out from the Pre to other computers.

Status

This is alpha software. Consider yourself lucky if it works at all. Many people have put many hours of hard work in to get just this far - respect that effort when making comments and suggestions.

Installation

If you have installed Preware, WebOS Internal's over the air installer, you can simply choose Terminal from the available applications. If you have installed WebOS Quick Install to your PC, you can select Terminal by pressing the third button, choosing WebOS Internals Feed (all) from the pull down, choose Terminal, download and install. Detailed command line installation instrutions can be found below.

License

Please be aware that org.webosinternals.terminal and org.webosinternals.termplugin are licensed under the GPLv2.

They cannot be used by a closed source application. If you want to use them in a non-GPLv2 but otherwise open source application, please contact the authors.

Operating notes

Non-obvious keys:

Desired On Pre
Delete Gesture area - .
Insert Gesture area - 0
Home Gesture area - 1
Up Gesture area - 2
PgUp Gesture area - 3
Left Gesture area - 4
Right Gesture area - 6
End Gesture area - 7
Desired On Pre
Down Gesture area - 8
PgDn Gesture area - 9
Control Sym
Esc Orange-Space
Pipe Orange-Period ("." key)
Tab Sym-I
< Shift-,
> Shift-.
  • (Sym is Control and Control I is the standard tab code)


Rotating the pre will take the terminal to landscape mode. The keyboard will not rotate with you. Attempting to physically force the keyboard to rotate to the proper orientation for landscape mode is known to bork a Pre. :)

Support for both "linux" and "vt100" term types should now be supported, so an export TERM line should no longer be needed. If you find your screen filling with gibberish that looks like ANSI codes, however, make sure you're using 0.1.4 or later version, and report here or in the IRC channel what you were running in the terminal that caused the issue.

If you do see odd behavior, you can force the more compatible vt100 terminal type by typing:

export TERM=vt100

(followed by enter) Note that the case of that command is important.

Recent enhancements

  • Prompt for login to enhance security / protect against rogue applications embedding termplugin (more convenient and equally secure method being developed for future release)
  • Color!
  • Arrow keys, hold a finger on the gesture area so that the white LED lights up, and use the numbers area as if it were a direction pad (ie 2, 4, 6, 8, correspond to up, left, right, down, respectively)
  • Several performance enhancements
  • Screen scrolls automagically (no more flicking to keep up)
  • Comma / underscore key bugs fixed
  • Preferences are now saved

Known bugs

  • The command 'reset' does not work; running it actually messed up the state of the terminal (ex. backspace no longer works).
  • Some ansiFlags are not being used (ex. blink, italics etc. don't have any visual effect)
  • The keybindings need to be redefinable.

Remember, this is early alpha software. You're lucky it works at all.

Reported issues:

  • Doesn't display a return in nano properly unless the screen is rotated
  • No action after running exit in session should restart and ask for a new login

Some limitations: Many keys are not implemented. We're working on it, maybe even as you read this. :)

Y and U: Y and U in the emulator return the same raw keycode due to a bug in the emulator. However we're obtaining the key values a better way now so terminal should no longer be susceptible to this flaw.

Repository

Terminal is housed in the Applications section of the Webos-internals repository at Gitorious. http://gitorious.org/webos-internals.

Source code for the Mojo app can be browsed at http://gitorious.org/webos-internals/applications/trees/master/terminal

Source code for the plugin can be browsed at http://gitorious.org/webos-internals/applications/trees/master/termplugin

For commit permission to the project, contact destinal on #webos-internals or email [predestinal@gmail.com]

Command Line Installation

This procedure is only for those very comfortable with the Linux command line. Everyone else should use the installation instructions above. Do not stray from or vary these instructions. If you don't do it all, in precisely the right order, with zero mistakes, it's not going to work. Copy & Paste will be your friend.

You need to be logged in as root with a writeable filesystem. Instructions for both those things can be found elsewhere on this wiki.

The first time you install terminal you must do all these steps:

<source lang="text"> mkdir -p /var/etc/ipkg/ ln -s /etc/ipkg/arch.conf /var/etc/ipkg/ echo "src/gz all http://ipkg.preware.org/feeds/preware/all" > /var/etc/ipkg/preware.conf </source>

  • If you are on the Pre, type:

<source lang="text"> echo "src/gz armv7 http://ipkg.preware.org/feeds/preware/armv7" >> /var/etc/ipkg/preware.conf </source>

  • If you are on the Emulator, type:

<source lang="text"> echo "src/gz i686 http://ipkg.preware.org/feeds/preware/i686" >> /var/etc/ipkg/preware.conf </source>

Then type:

<source lang="text"> /usr/bin/ipkg -o /var update /usr/bin/ipkg -o /var install org.webosinternals.terminal sh /var/usr/lib/ipkg/info/org.webosinternals.termplugin.postinst </source>

Then refresh the GUI to show your new app:

<source lang="text"> luna-send -n 1 palm://com.palm.applicationManager/rescan {} </source>

If you performed an upgrade and aren't seeing the changes, restart the GUI service:

<source lang="text"> initctl stop LunaSysMgr && initctl start LunaSysMgr </source>

If the above two fail to show the results you're expecting, reboot the device.

Updating

After your first install, only the following is required to upgrade to a new version.

You need to be logged in as root with a writeable filesystem. Instructions for both those things can be found elsewhere on this wiki.

From a shell:

<source lang="text"> /usr/bin/ipkg -o /var update /usr/bin/ipkg -o /var upgrade reboot </source>

Other PreWare Applications

You need to be logged in as root with a writeable filesystem. Instructions for both those things can be found elsewhere on this wiki.

Note that you can use the same commands to install other applications from PreWare:

<source lang="text"> /usr/bin/ipkg -o /var update /usr/bin/ipkg -o /var list /usr/bin/ipkg -o /var install <package> # choose a package from the list /usr/bin/ipkg -o /var remove <package> </source>

Removal

You need to be logged in as root with a writeable filesystem. Instructions for both those things can be found elsewhere on this wiki.

<source lang="text"> /usr/bin/ipkg -o /var remove org.webosinternals.terminal sh /var/usr/lib/ipkg/info/org.webosinternals.termplugin.prerm /usr/bin/ipkg -o /var remove org.webosinternals.termplugin </source>

Then refresh the GUI to remove the icon:

<source lang="text"> luna-send -n 1 palm://com.palm.applicationManager/rescan {} </source>

If you aren't seeing the icon removed, restart the GUI service:

<source lang="text"> initctl stop LunaSysMgr && initctl start LunaSysMgr </source>

If the above two fail to show the results you're expecting, reboot the device.