<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Epyon22</id>
	<title>WebOS Internals - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Epyon22"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Epyon22"/>
	<updated>2026-04-05T20:19:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=HamachiVPN&amp;diff=12809</id>
		<title>HamachiVPN</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=HamachiVPN&amp;diff=12809"/>
		<updated>2011-02-10T15:55:12Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hamachi VPN for Palm Pre =&lt;br /&gt;
&lt;br /&gt;
This document assumes you're familiar with the Hamachi VPN, specifically the linux version.  It is geared towards a person wanting to &amp;quot;get it working&amp;quot; on the Pre.  If you're not familiar, there are endless Googlable web pages that describe running Hamachi on desktop linux systems you can use for reference.&lt;br /&gt;
&lt;br /&gt;
Become root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
sudo su&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the filesystem writable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the hamachi binary to your pre via wget: &lt;br /&gt;
&lt;br /&gt;
: '''Note:'''  It is recommended that you use the nokia build, because it included the install script. Whereas the direct hamachi link would require that make be installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /opt/share&lt;br /&gt;
wget http://files.hamachi.cc/linux/nokia-770/hamachi-0.9.9.9-20-lnx-n770.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the archive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
tar zxvf hamachi-0.9.9.9-20-lnx-n770.tar.gz&lt;br /&gt;
cd hamachi-n770-0.9.9.9-20&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hamachi depends on libcrypto.so.0.9.7.  The Palm Pre has libcrypto.so.0.9.8 installed.  I made a symlink, and it worked.  So...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.0.9.7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;install&amp;quot; script using your favorite editor (like vi) to change the installation locations.&lt;br /&gt;
Also fix line 7 or you'll get an error.&lt;br /&gt;
&lt;br /&gt;
I changed it to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
HAMACHI_DST=/opt/bin&lt;br /&gt;
TUNCFG_DST=/opt/sbin&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo Copying hamachi into $HAMACHI_DST ..&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then follow the instructions in the README under Quick Start, but basically:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
./install&lt;br /&gt;
/opt/sbin/tuncfg&lt;br /&gt;
hamachi-init&lt;br /&gt;
hamachi start&lt;br /&gt;
hamachi login&lt;br /&gt;
hamachi set-nick &amp;lt;your nickname&amp;gt;&lt;br /&gt;
hamachi join &amp;lt;network&amp;gt;&lt;br /&gt;
hamachi go-online&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hint ==&lt;br /&gt;
Adding your Pre to your Windows hamachiVPN. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to join a group made on the hamachi.cc (the official logmein page) webpage you need the group ID (joining by group name fails). &lt;br /&gt;
On the logmein website click on My Computers and on the left side click on the Network tab. &lt;br /&gt;
You can create a new network here under &amp;quot;add network&amp;quot; &lt;br /&gt;
To get an ID for an existing network click on &amp;quot;edit&amp;quot; on the right side of the group name. &lt;br /&gt;
This will bring up the edit page under the ID is the 9 digit group ID (XXX-XXX-XXX) with dashes these are also part of the group ID.&lt;br /&gt;
To join this network on your pre type &amp;quot;hamachi join (9 digit ID don't forget the dashes) (password)&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use Hamachi to connect to web services running on your machines at home or elsewhere, you might make your life easier by adding some entries to the /etc/hosts file.  Then you can access your servers by name instead of having to use the Hamachi 5.x.x.x IP addresses.&lt;br /&gt;
&lt;br /&gt;
A simple sample entry in /etc/hosts which would allow you to access your server &amp;quot;beaker&amp;quot; at 5.1.2.3 would be:&lt;br /&gt;
(Add your servers below the &amp;quot;castle&amp;quot; line.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
127.0.0.1       localhost.localdomain           localhost&lt;br /&gt;
127.0.0.1 castle&lt;br /&gt;
5.1.2.3 beaker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When done, make the filesystem read-only again:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,ro /&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ping Test ==&lt;br /&gt;
&lt;br /&gt;
When you've got hamachi up, you can try pinging one of your servers. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
root@castle:/var/home/root# ping beaker&lt;br /&gt;
PING beaker (5.1.2.3): 56 data bytes&lt;br /&gt;
64 bytes from 5.1.2.3: seq=0 ttl=128 time=5.493 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=1 ttl=128 time=32.257 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=2 ttl=128 time=56.976 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=3 ttl=128 time=74.249 ms&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sleep/Wake and Battery Impact ==&lt;br /&gt;
On first testing:&lt;br /&gt;
* When the device went to sleep, the VPN went down.&lt;br /&gt;
* When the device woke up, the VPN came back up and was pingable again.&lt;br /&gt;
&lt;br /&gt;
This morning, while at my workstation, and with the Pre idle in my pocket, I noticed my Pre was available/pingable on Hamachi.  I am not totally sure of what the long-term battery impact might be of running Hamachi on the Pre.  I'm not yet sure if it keeps the device &amp;quot;awake&amp;quot; all the time, which clearly would drain the battery.  I have push GMail IMAP going, so I assume there is some kind of connection either being periodically established or constantly maintained.  But I don't know enough about the networking aspects to determine at this time whether running Hamachi all the time will negatively impact the battery.  Feel free to message me if you learn anything.&lt;br /&gt;
&lt;br /&gt;
Further Testing:&lt;br /&gt;
* With Hamachi running I would achieve 12 hours of battery life on my pre&lt;br /&gt;
* Without Hamachi running after 12 hours I am sitting at 60% battery life&lt;br /&gt;
&lt;br /&gt;
So to conclude running Hamachi all the time significantly decreases battery life in my situation. I personally would not recommend running Hamachi all the the time.&lt;br /&gt;
&lt;br /&gt;
== Upstart script ==&lt;br /&gt;
This script will start Hamachi up after a reboot.&lt;br /&gt;
&lt;br /&gt;
Place the following script in /etc/event.d/hamachi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
description &amp;quot;Hamachi VPN for WebOS&amp;quot;&lt;br /&gt;
version 1.0&lt;br /&gt;
&lt;br /&gt;
# don't start until the WebOS finishes it's normal boot&lt;br /&gt;
# that way no delay is added to the GUI startup&lt;br /&gt;
start on stopped finish&lt;br /&gt;
stop on runlevel [!2]&lt;br /&gt;
&lt;br /&gt;
console output&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
  /opt/bin/hamachi -c /var/home/root/.hamachi start 2&amp;gt;&amp;amp;1 /var/home/root/hamachi.log&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-start script&lt;br /&gt;
  /opt/sbin/tuncfg&lt;br /&gt;
end script&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Launcher_To_Allow_More_Icons_Per_Row&amp;diff=4501</id>
		<title>Patch Launcher To Allow More Icons Per Row</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Launcher_To_Allow_More_Icons_Per_Row&amp;diff=4501"/>
		<updated>2009-08-17T20:11:29Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
[[Image: 5by4Launcher.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''THIS IS 1.1.0 SAFE, DO NOT TRY IT WITH ANY OTHER WEBOS VERSION'''&lt;br /&gt;
&lt;br /&gt;
This patch allows you to have a 20 icon, 5x4 launcher page. It decreases icon size and text size, changes the apps per row, and moves the text closer to the icon. It also modifies where the page indicators and margins are a little.&lt;br /&gt;
&lt;br /&gt;
==End Result==&lt;br /&gt;
&lt;br /&gt;
The thumbnail image on the right shows launcher after the patch is applied.&lt;br /&gt;
&lt;br /&gt;
==Patch Process==&lt;br /&gt;
&lt;br /&gt;
If you are not familiar with the Webos-Internals patching process, you'll need to visit the [[Applying Patches|Applying Patches]] section of the wiki to know how to use the patch. After you have set up everything and are ready to download the patch, it is in the''' modifications''' repo under '''&amp;quot;luna/more_icons_per_row.patch&amp;quot;'''   ===address forthcoming===&lt;br /&gt;
&lt;br /&gt;
This patch also includes the patch to allow a user to add and remove additional launcher pages. You might have to remove that patch before applying this one.&lt;br /&gt;
&lt;br /&gt;
==Patch Code==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js&lt;br /&gt;
===================================================================&lt;br /&gt;
--- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js&lt;br /&gt;
+++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js&lt;br /&gt;
@@ -16,7 +16,7 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 	 */&lt;br /&gt;
 	kBottomFadeHeight: 0,&lt;br /&gt;
 	&lt;br /&gt;
-	kPageIndicatorSpacing: 6, 	/* spacing between each page indicator */&lt;br /&gt;
+	kPageIndicatorSpacing: 1, 	/* spacing between each page indicator */&lt;br /&gt;
 	kPageMargin: 10, /* 10 pixel margin on each side of a page */&lt;br /&gt;
 	kTopMargin: 12,&lt;br /&gt;
 	kPageWidthNoMargin: NaN,&lt;br /&gt;
@@ -30,8 +30,8 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 		visible: true,&lt;br /&gt;
 		label: $L('Launcher'),&lt;br /&gt;
         items: [&lt;br /&gt;
-			/*{ label: $L('New page'), command: 'newpage' },&lt;br /&gt;
-			{ label: $L('Delete page'), command: 'deletepage' },*/&lt;br /&gt;
+			{ label: $L('New page'), command: 'newpage' },&lt;br /&gt;
+			{ label: $L('Delete page'), command: 'deletepage' },&lt;br /&gt;
 			Mojo.Menu.editItem,&lt;br /&gt;
 			{ label: $L('List Apps...'), command: 'listapps' },&lt;br /&gt;
 			Mojo.Menu.helpItem&lt;br /&gt;
@@ -125,7 +125,24 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 					ApplicationService.launch(this.deviceInfo.id, this.deviceInfo.params);&lt;br /&gt;
 					break;&lt;br /&gt;
 				/*&lt;br /&gt;
-				case 'newpage':&lt;br /&gt;
+				START ENABLE PAGE ADD AND DELETE */&lt;br /&gt;
+                                case 'newpage':&lt;br /&gt;
+                                        if (this.pageDivs.length &amp;lt; 10) {&lt;br /&gt;
+                                                this.insertPage(this.activePageIndex, true);&lt;br /&gt;
+                                        }&lt;br /&gt;
+                                        break;&lt;br /&gt;
+                                case 'deletepage':&lt;br /&gt;
+                                        if (this.pageDivs.length &amp;gt; 1) {&lt;br /&gt;
+                                                this.deletePage(this.activePageIndex);&lt;br /&gt;
+                                                if (this.activePageIndex &amp;gt;= this.pageDivs.length) {&lt;br /&gt;
+                                                        this.activePageIndex = this.pageDivs.length - 1;&lt;br /&gt;
+                                                }&lt;br /&gt;
+                                        }&lt;br /&gt;
+                                        break;&lt;br /&gt;
+                                /*&lt;br /&gt;
+                                END ENABLE PAGE ADD AND DELETE&lt;br /&gt;
+&lt;br /&gt;
+                                case 'newpage':&lt;br /&gt;
 					if (this.pageDivs.length &amp;lt; 10) {&lt;br /&gt;
 						this.insertPage(this.activePageIndex, true);&lt;br /&gt;
 					}&lt;br /&gt;
@@ -382,9 +399,9 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 		var newAppDiv = $(newAppInfo.launchPointId);&lt;br /&gt;
 		Mojo.assert(newAppDiv !== undefined, &amp;quot;Application (%d) was inserted into the DOM but unable to be retrieved!&amp;quot;, newAppInfo.launchPointId);&lt;br /&gt;
 		if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) {&lt;br /&gt;
-			this.kAppWidth = newAppDiv.getWidth();&lt;br /&gt;
-			this.kAppHeight = newAppDiv.getHeight();&lt;br /&gt;
-			this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth);&lt;br /&gt;
+			this.kAppWidth = 55;&lt;br /&gt;
+			this.kAppHeight = 90;&lt;br /&gt;
+			this.kAppsPerRow = 5;&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this));&lt;br /&gt;
@@ -498,7 +515,7 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 	/* determines the position of an app element at appIndex within a page */&lt;br /&gt;
 	calculateAppPosition: function(appIndex) {&lt;br /&gt;
 		return {&lt;br /&gt;
-			left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin),&lt;br /&gt;
+			left: (((appIndex % this.kAppsPerRow) * this.kAppWidth)),&lt;br /&gt;
 			top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight + this.kTopMargin)&lt;br /&gt;
 		};&lt;br /&gt;
 	},&lt;br /&gt;
Index: /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css&lt;br /&gt;
===================================================================&lt;br /&gt;
--- .orig/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css&lt;br /&gt;
+++ /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css&lt;br /&gt;
@@ -116,7 +116,7 @@ body.palm-default&lt;br /&gt;
 &lt;br /&gt;
 .launcher_page .name {	&lt;br /&gt;
 	position:absolute;&lt;br /&gt;
-	top: 68px;&lt;br /&gt;
+	top: 48px;&lt;br /&gt;
     width:100px;&lt;br /&gt;
 	height: 34px;&lt;br /&gt;
 	max-height: 34px;&lt;br /&gt;
@@ -125,7 +125,7 @@ body.palm-default&lt;br /&gt;
     color:white;&lt;br /&gt;
     text-align:center;&lt;br /&gt;
 	font-weight:bold;&lt;br /&gt;
-    font-size: 14px;	&lt;br /&gt;
+    font-size: 9px;	&lt;br /&gt;
 	overflow: hidden;&lt;br /&gt;
 	text-overflow: ellipsis;&lt;br /&gt;
 	z-index:5;&lt;br /&gt;
@@ -148,8 +148,8 @@ body.palm-default&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .draggable {&lt;br /&gt;
-	width:64px;&lt;br /&gt;
-	height:64px;&lt;br /&gt;
+	width:48px;&lt;br /&gt;
+	height:48px;&lt;br /&gt;
 	margin: 0 auto;&lt;br /&gt;
 	-webkit-user-drag: any;&lt;br /&gt;
 	-webkit-user-select: none;&lt;br /&gt;
@@ -192,8 +192,8 @@ body.palm-default&lt;br /&gt;
 &lt;br /&gt;
 #app-icon {&lt;br /&gt;
 	float:left;&lt;br /&gt;
-	width:64px;&lt;br /&gt;
-	height:64px;&lt;br /&gt;
+	width:32px;&lt;br /&gt;
+	height:32px;&lt;br /&gt;
 	background: center center no-repeat;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image: 4pre_row.jpg|thumb|right]]&lt;br /&gt;
I noticed that this makes some of the apps with longer names run into each other. I fixed this by going into the stylesheet and modifying &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.launcher_page .name&lt;br /&gt;
left:12px;&lt;br /&gt;
width:80px;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The values may be different for you, I am using 4 icons per row instead of 5.&lt;br /&gt;
&lt;br /&gt;
For 5 per row you can use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.launcher_page .name&lt;br /&gt;
left: 20px;&lt;br /&gt;
width: 60px;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This looks fairly center and none of the words run over each other.&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Patch_Launcher_To_Allow_More_Icons_Per_Row&amp;diff=4500</id>
		<title>Patch Launcher To Allow More Icons Per Row</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Patch_Launcher_To_Allow_More_Icons_Per_Row&amp;diff=4500"/>
		<updated>2009-08-17T20:11:12Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{template:patch}}&lt;br /&gt;
[[Image: 5by4Launcher.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''THIS IS 1.1.0 SAFE, DO NOT TRY IT WITH ANY OTHER WEBOS VERSION'''&lt;br /&gt;
&lt;br /&gt;
This patch allows you to have a 20 icon, 5x4 launcher page. It decreases icon size and text size, changes the apps per row, and moves the text closer to the icon. It also modifies where the page indicators and margins are a little.&lt;br /&gt;
&lt;br /&gt;
==End Result==&lt;br /&gt;
&lt;br /&gt;
The thumbnail image on the right shows launcher after the patch is applied.&lt;br /&gt;
&lt;br /&gt;
==Patch Process==&lt;br /&gt;
&lt;br /&gt;
If you are not familiar with the Webos-Internals patching process, you'll need to visit the [[Applying Patches|Applying Patches]] section of the wiki to know how to use the patch. After you have set up everything and are ready to download the patch, it is in the''' modifications''' repo under '''&amp;quot;luna/more_icons_per_row.patch&amp;quot;'''   ===address forthcoming===&lt;br /&gt;
&lt;br /&gt;
This patch also includes the patch to allow a user to add and remove additional launcher pages. You might have to remove that patch before applying this one.&lt;br /&gt;
&lt;br /&gt;
==Patch Code==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index: /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js&lt;br /&gt;
===================================================================&lt;br /&gt;
--- .orig/usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js&lt;br /&gt;
+++ /usr/lib/luna/system/luna-applauncher/app/controllers/launcher-assistant.js&lt;br /&gt;
@@ -16,7 +16,7 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 	 */&lt;br /&gt;
 	kBottomFadeHeight: 0,&lt;br /&gt;
 	&lt;br /&gt;
-	kPageIndicatorSpacing: 6, 	/* spacing between each page indicator */&lt;br /&gt;
+	kPageIndicatorSpacing: 1, 	/* spacing between each page indicator */&lt;br /&gt;
 	kPageMargin: 10, /* 10 pixel margin on each side of a page */&lt;br /&gt;
 	kTopMargin: 12,&lt;br /&gt;
 	kPageWidthNoMargin: NaN,&lt;br /&gt;
@@ -30,8 +30,8 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 		visible: true,&lt;br /&gt;
 		label: $L('Launcher'),&lt;br /&gt;
         items: [&lt;br /&gt;
-			/*{ label: $L('New page'), command: 'newpage' },&lt;br /&gt;
-			{ label: $L('Delete page'), command: 'deletepage' },*/&lt;br /&gt;
+			{ label: $L('New page'), command: 'newpage' },&lt;br /&gt;
+			{ label: $L('Delete page'), command: 'deletepage' },&lt;br /&gt;
 			Mojo.Menu.editItem,&lt;br /&gt;
 			{ label: $L('List Apps...'), command: 'listapps' },&lt;br /&gt;
 			Mojo.Menu.helpItem&lt;br /&gt;
@@ -125,7 +125,24 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 					ApplicationService.launch(this.deviceInfo.id, this.deviceInfo.params);&lt;br /&gt;
 					break;&lt;br /&gt;
 				/*&lt;br /&gt;
-				case 'newpage':&lt;br /&gt;
+				START ENABLE PAGE ADD AND DELETE */&lt;br /&gt;
+                                case 'newpage':&lt;br /&gt;
+                                        if (this.pageDivs.length &amp;lt; 10) {&lt;br /&gt;
+                                                this.insertPage(this.activePageIndex, true);&lt;br /&gt;
+                                        }&lt;br /&gt;
+                                        break;&lt;br /&gt;
+                                case 'deletepage':&lt;br /&gt;
+                                        if (this.pageDivs.length &amp;gt; 1) {&lt;br /&gt;
+                                                this.deletePage(this.activePageIndex);&lt;br /&gt;
+                                                if (this.activePageIndex &amp;gt;= this.pageDivs.length) {&lt;br /&gt;
+                                                        this.activePageIndex = this.pageDivs.length - 1;&lt;br /&gt;
+                                                }&lt;br /&gt;
+                                        }&lt;br /&gt;
+                                        break;&lt;br /&gt;
+                                /*&lt;br /&gt;
+                                END ENABLE PAGE ADD AND DELETE&lt;br /&gt;
+&lt;br /&gt;
+                                case 'newpage':&lt;br /&gt;
 					if (this.pageDivs.length &amp;lt; 10) {&lt;br /&gt;
 						this.insertPage(this.activePageIndex, true);&lt;br /&gt;
 					}&lt;br /&gt;
@@ -382,9 +399,9 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 		var newAppDiv = $(newAppInfo.launchPointId);&lt;br /&gt;
 		Mojo.assert(newAppDiv !== undefined, &amp;quot;Application (%d) was inserted into the DOM but unable to be retrieved!&amp;quot;, newAppInfo.launchPointId);&lt;br /&gt;
 		if (isNaN(this.kAppWidth) || isNaN(this.kAppHeight)) {&lt;br /&gt;
-			this.kAppWidth = newAppDiv.getWidth();&lt;br /&gt;
-			this.kAppHeight = newAppDiv.getHeight();&lt;br /&gt;
-			this.kAppsPerRow = Math.round(this.kPageWidthNoMargin / this.kAppWidth);&lt;br /&gt;
+			this.kAppWidth = 55;&lt;br /&gt;
+			this.kAppHeight = 90;&lt;br /&gt;
+			this.kAppsPerRow = 5;&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		Mojo.listen(newAppDiv, Mojo.Event.tap, this.onAppTapped.bindAsEventListener(this));&lt;br /&gt;
@@ -498,7 +515,7 @@ var LauncherAssistant = Class.create({&lt;br /&gt;
 	/* determines the position of an app element at appIndex within a page */&lt;br /&gt;
 	calculateAppPosition: function(appIndex) {&lt;br /&gt;
 		return {&lt;br /&gt;
-			left: (((appIndex % this.kAppsPerRow) * this.kAppWidth) + this.kPageMargin),&lt;br /&gt;
+			left: (((appIndex % this.kAppsPerRow) * this.kAppWidth)),&lt;br /&gt;
 			top: (Math.floor(appIndex/this.kAppsPerRow) * this.kAppHeight + this.kTopMargin)&lt;br /&gt;
 		};&lt;br /&gt;
 	},&lt;br /&gt;
Index: /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css&lt;br /&gt;
===================================================================&lt;br /&gt;
--- .orig/usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css&lt;br /&gt;
+++ /usr/lib/luna/system/luna-applauncher/stylesheets/launcher.css&lt;br /&gt;
@@ -116,7 +116,7 @@ body.palm-default&lt;br /&gt;
 &lt;br /&gt;
 .launcher_page .name {	&lt;br /&gt;
 	position:absolute;&lt;br /&gt;
-	top: 68px;&lt;br /&gt;
+	top: 48px;&lt;br /&gt;
     width:100px;&lt;br /&gt;
 	height: 34px;&lt;br /&gt;
 	max-height: 34px;&lt;br /&gt;
@@ -125,7 +125,7 @@ body.palm-default&lt;br /&gt;
     color:white;&lt;br /&gt;
     text-align:center;&lt;br /&gt;
 	font-weight:bold;&lt;br /&gt;
-    font-size: 14px;	&lt;br /&gt;
+    font-size: 9px;	&lt;br /&gt;
 	overflow: hidden;&lt;br /&gt;
 	text-overflow: ellipsis;&lt;br /&gt;
 	z-index:5;&lt;br /&gt;
@@ -148,8 +148,8 @@ body.palm-default&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 .draggable {&lt;br /&gt;
-	width:64px;&lt;br /&gt;
-	height:64px;&lt;br /&gt;
+	width:48px;&lt;br /&gt;
+	height:48px;&lt;br /&gt;
 	margin: 0 auto;&lt;br /&gt;
 	-webkit-user-drag: any;&lt;br /&gt;
 	-webkit-user-select: none;&lt;br /&gt;
@@ -192,8 +192,8 @@ body.palm-default&lt;br /&gt;
 &lt;br /&gt;
 #app-icon {&lt;br /&gt;
 	float:left;&lt;br /&gt;
-	width:64px;&lt;br /&gt;
-	height:64px;&lt;br /&gt;
+	width:32px;&lt;br /&gt;
+	height:32px;&lt;br /&gt;
 	background: center center no-repeat;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image: 4pre_row.jpg|thumb|right]]&lt;br /&gt;
I noticed that this makes some of the apps with longer names run into each other. I fixed this by going into the stylesheet and modifying &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.launcher_page .name&lt;br /&gt;
left:12px;&lt;br /&gt;
width:80px;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The values may be different for you, I am using 4 icons per row instead of 5.&lt;br /&gt;
&lt;br /&gt;
For 5 per row you can use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.launcher_page .name&lt;br /&gt;
left: 20px;&lt;br /&gt;
width: 60px;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
this looks fairly center and none of the words run over eachother&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=HamachiVPN&amp;diff=3526</id>
		<title>HamachiVPN</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=HamachiVPN&amp;diff=3526"/>
		<updated>2009-08-03T01:06:48Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hamachi VPN for Palm Pre =&lt;br /&gt;
&lt;br /&gt;
This document assumes you're familiar with the Hamachi VPN, specifically the linux version.  It is geared towards a person wanting to &amp;quot;get it working&amp;quot; on the Pre.  If you're not familiar, there are endless Googlable web pages that describe running Hamachi on desktop linux systems you can use for reference.&lt;br /&gt;
&lt;br /&gt;
Become root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
sudo su&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the filesystem writable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the hamachi binary to your pre via wget: &lt;br /&gt;
&lt;br /&gt;
: '''Note:'''  It is recommended that you use the nokia build, because it included the install script. Whereas the direct hamachi link would require that make be installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /opt/share&lt;br /&gt;
wget http://files.hamachi.cc/linux/nokia-770/hamachi-0.9.9.9-20-lnx-n770.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the archive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
tar zxvf hamachi-0.9.9.9-20-lnx-n770.tar.gz&lt;br /&gt;
cd hamachi-n770-0.9.9.9-20&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hamachi depends on libcrypto.so.0.9.7.  The Palm Pre has libcrypto.so.0.9.8 installed.  I made a symlink, and it worked.  So...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.0.9.7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;install&amp;quot; script using your favorite editor (like vi) to change the installation locations.&lt;br /&gt;
Also fix line 7 or you'll get an error.&lt;br /&gt;
&lt;br /&gt;
I changed it to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
HAMACHI_DST=/opt/bin&lt;br /&gt;
TUNCFG_DST=/opt/sbin&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo Copying hamachi into $HAMACHI_DST ..&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then follow the instructions in the README under Quick Start, but basically:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
./install&lt;br /&gt;
/opt/sbin/tuncfg&lt;br /&gt;
hamachi-init&lt;br /&gt;
hamachi start&lt;br /&gt;
hamachi login&lt;br /&gt;
hamachi set-nick &amp;lt;your nickname&amp;gt;&lt;br /&gt;
hamachi join &amp;lt;network&amp;gt;&lt;br /&gt;
hamachi go-online&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hint ==&lt;br /&gt;
&lt;br /&gt;
If you use Hamachi to connect to web services running on your machines at home or elsewhere, you might make your life easier by adding some entries to the /etc/hosts file.  Then you can access your servers by name instead of having to use the Hamachi 5.x.x.x IP addresses.&lt;br /&gt;
&lt;br /&gt;
A simple sample entry in /etc/hosts which would allow you to access your server &amp;quot;beaker&amp;quot; at 5.1.2.3 would be:&lt;br /&gt;
(Add your servers below the &amp;quot;castle&amp;quot; line.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
127.0.0.1       localhost.localdomain           localhost&lt;br /&gt;
127.0.0.1 castle&lt;br /&gt;
5.1.2.3 beaker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When done, make the filesystem read-only again:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,ro /&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ping Test ==&lt;br /&gt;
&lt;br /&gt;
When you've got hamachi up, you can try pinging one of your servers. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
root@castle:/var/home/root# ping beaker&lt;br /&gt;
PING beaker (5.1.2.3): 56 data bytes&lt;br /&gt;
64 bytes from 5.1.2.3: seq=0 ttl=128 time=5.493 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=1 ttl=128 time=32.257 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=2 ttl=128 time=56.976 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=3 ttl=128 time=74.249 ms&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sleep/Wake and Battery Impact ==&lt;br /&gt;
On first testing:&lt;br /&gt;
* When the device went to sleep, the VPN went down.&lt;br /&gt;
* When the device woke up, the VPN came back up and was pingable again.&lt;br /&gt;
&lt;br /&gt;
This morning, while at my workstation, and with the Pre idle in my pocket, I noticed my Pre was available/pingable on Hamachi.  I am not totally sure of what the long-term battery impact might be of running Hamachi on the Pre.  I'm not yet sure if it keeps the device &amp;quot;awake&amp;quot; all the time, which clearly would drain the battery.  I have push GMail IMAP going, so I assume there is some kind of connection either being periodically established or constantly maintained.  But I don't know enough about the networking aspects to determine at this time whether running Hamachi all the time will negatively impact the battery.  Feel free to message me if you learn anything.&lt;br /&gt;
&lt;br /&gt;
Further Testing:&lt;br /&gt;
* With Hamachi running I would achive 12 hours of battery life on my pre&lt;br /&gt;
* Without Hamachi running after 12 hours I am sitting at 60% battery life&lt;br /&gt;
&lt;br /&gt;
So to conclude running Hamachi all the time significantly decreases battery life in my situation. I personally would not recommend running Hamachi all the the time. I will later post up start and shutdown scripts (should be very simple I just need to write them for myself) that can be used through terminal when you need them.&lt;br /&gt;
&lt;br /&gt;
== Upstart script ==&lt;br /&gt;
This script will start Hamachi up after a reboot.&lt;br /&gt;
&lt;br /&gt;
Place the following script in /etc/event.d/hamachi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
description &amp;quot;Hamachi VPN for WebOS&amp;quot;&lt;br /&gt;
version 1.0&lt;br /&gt;
&lt;br /&gt;
# don't start until the WebOS finishes it's normal boot&lt;br /&gt;
# that way no delay is added to the GUI startup&lt;br /&gt;
start on stopped finish&lt;br /&gt;
stop on runlevel [!2]&lt;br /&gt;
&lt;br /&gt;
console output&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
  /opt/bin/hamachi -c /var/home/root/.hamachi start 2&amp;gt;&amp;amp;1 /var/home/root/hamachi.log&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-start script&lt;br /&gt;
  /opt/sbin/tuncfg&lt;br /&gt;
end script&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=User_talk:Eain&amp;diff=3016</id>
		<title>User talk:Eain</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=User_talk:Eain&amp;diff=3016"/>
		<updated>2009-07-29T19:49:27Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey your edit doesn't work because the straight linux pkg doesn't have the required install file or else you would have to use make. so i fixed it&lt;br /&gt;
&lt;br /&gt;
[[User:Epyon22|Epyon22]] 19:49, 29 July 2009 (UTC)Epyon22&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=User_talk:Eain&amp;diff=3015</id>
		<title>User talk:Eain</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=User_talk:Eain&amp;diff=3015"/>
		<updated>2009-07-29T19:49:10Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: New page: Hey your edit doesn't work because the straight linux pkg doesn't have the required install file or else you would have to use make. so i fixed it&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey your edit doesn't work because the straight linux pkg doesn't have the required install file or else you would have to use make. so i fixed it&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=HamachiVPN&amp;diff=3013</id>
		<title>HamachiVPN</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=HamachiVPN&amp;diff=3013"/>
		<updated>2009-07-29T19:42:18Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: /* Hamachi VPN for Palm Pre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hamachi VPN for Palm Pre =&lt;br /&gt;
&lt;br /&gt;
This document assumes you're familiar with the Hamachi VPN, specifically the linux version.  It is geared towards a person wanting to &amp;quot;get it working&amp;quot; on the Pre.  If you're not familiar, there are endless Googlable web pages that describe running Hamachi on desktop linux systems you can use for reference.&lt;br /&gt;
&lt;br /&gt;
Become root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
sudo su&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the filesystem writable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the hamachi binary to your pre via wget: &lt;br /&gt;
&lt;br /&gt;
: Note:  It is reccomended that you use the nokia build, because it included the install script. Whereas the direct hamachi link would require that make be installed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /opt/share&lt;br /&gt;
wget http://files.hamachi.cc/linux/nokia-770/hamachi-0.9.9.9-20-lnx-n770.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the archive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
tar zxvf hamachi-0.9.9.9-20-lnx-n770.tar.gz&lt;br /&gt;
cd hamachi-n770-0.9.9.9-20&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hamachi depends on libcrypto.so.0.9.7.  The Palm Pre has libcrypto.so.0.9.8 installed.  I made a symlink, and it worked.  So...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.0.9.7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;install&amp;quot; script using your favorite editor (like vi) to change the installation locations.&lt;br /&gt;
Also fix line 7 or you'll get an error.&lt;br /&gt;
&lt;br /&gt;
I changed it to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
HAMACHI_DST=/opt/bin&lt;br /&gt;
TUNCFG_DST=/opt/sbin&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo Copying hamachi into $HAMACHI_DST ..&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then follow the instructions in the README under Quick Start, but basically:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
./install&lt;br /&gt;
/opt/sbin/tuncfg&lt;br /&gt;
hamachi-init&lt;br /&gt;
hamachi start&lt;br /&gt;
hamachi login&lt;br /&gt;
hamachi set-nick &amp;lt;your nickname&amp;gt;&lt;br /&gt;
hamachi join &amp;lt;network&amp;gt;&lt;br /&gt;
hamachi go-online&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hint ==&lt;br /&gt;
&lt;br /&gt;
If you use Hamachi to connect to web services running on your machines at home or elsewhere, you might make your life easier by adding some entries to the /etc/hosts file.  Then you can access your servers by name instead of having to use the Hamachi 5.x.x.x IP addresses.&lt;br /&gt;
&lt;br /&gt;
A simple sample entry in /etc/hosts which would allow you to access your server &amp;quot;beaker&amp;quot; at 5.1.2.3 would be:&lt;br /&gt;
(Add your servers below the &amp;quot;castle&amp;quot; line.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
127.0.0.1       localhost.localdomain           localhost&lt;br /&gt;
127.0.0.1 castle&lt;br /&gt;
5.1.2.3 beaker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When done, make the filesystem read-only again:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,ro /&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ping Test ==&lt;br /&gt;
&lt;br /&gt;
When you've got hamachi up, you can try pinging one of your servers. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
root@castle:/var/home/root# ping beaker&lt;br /&gt;
PING beaker (5.1.2.3): 56 data bytes&lt;br /&gt;
64 bytes from 5.1.2.3: seq=0 ttl=128 time=5.493 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=1 ttl=128 time=32.257 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=2 ttl=128 time=56.976 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=3 ttl=128 time=74.249 ms&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sleep/Wake and Battery Impact ==&lt;br /&gt;
On first testing:&lt;br /&gt;
* When the device went to sleep, the VPN went down.&lt;br /&gt;
* When the device woke up, the VPN came back up and was pingable again.&lt;br /&gt;
&lt;br /&gt;
This morning, while at my workstation, and with the Pre idle in my pocket, I noticed my Pre was available/pingable on Hamachi.  I am not totally sure of what the long-term battery impact might be of running Hamachi on the Pre.  I'm not yet sure if it keeps the device &amp;quot;awake&amp;quot; all the time, which clearly would drain the battery.  I have push GMail IMAP going, so I assume there is some kind of connection either being periodically established or constantly maintained.  But I don't know enough about the networking aspects to determine at this time whether running Hamachi all the time will negatively impact the battery.  Feel free to message me if you learn anything.&lt;br /&gt;
&lt;br /&gt;
== Upstart script ==&lt;br /&gt;
This script will start Hamachi up after a reboot.&lt;br /&gt;
&lt;br /&gt;
Place the following script in /etc/event.d/hamachi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
description &amp;quot;Hamachi VPN for WebOS&amp;quot;&lt;br /&gt;
version 1.0&lt;br /&gt;
&lt;br /&gt;
# don't start until the WebOS finishes it's normal boot&lt;br /&gt;
# that way no delay is added to the GUI startup&lt;br /&gt;
start on stopped finish&lt;br /&gt;
stop on runlevel [!2]&lt;br /&gt;
&lt;br /&gt;
console output&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
  /opt/bin/hamachi -c /var/home/root/.hamachi start 2&amp;gt;&amp;amp;1 /var/home/root/hamachi.log&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-start script&lt;br /&gt;
  /opt/sbin/tuncfg&lt;br /&gt;
end script&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=HamachiVPN&amp;diff=3011</id>
		<title>HamachiVPN</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=HamachiVPN&amp;diff=3011"/>
		<updated>2009-07-29T19:39:22Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: /* Hamachi VPN for Palm Pre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hamachi VPN for Palm Pre =&lt;br /&gt;
&lt;br /&gt;
This document assumes you're familiar with the Hamachi VPN, specifically the linux version.  It is geared towards a person wanting to &amp;quot;get it working&amp;quot; on the Pre.  If you're not familiar, there are endless Googlable web pages that describe running Hamachi on desktop linux systems you can use for reference.&lt;br /&gt;
&lt;br /&gt;
Become root:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
sudo su&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make the filesystem writable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download the hamachi binary to your pre via wget:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
cd /opt/share&lt;br /&gt;
wget http://files.hamachi.cc/linux/nokia-770/hamachi-0.9.9.9-20-lnx-n770.tar.gz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the archive:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
tar zxvf hamachi-0.9.9.9-20-lnx-n770.tar.gz&lt;br /&gt;
cd hamachi-0.9.9.9-20-lnx&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hamachi depends on libcrypto.so.0.9.7.  The Palm Pre has libcrypto.so.0.9.8 installed.  I made a symlink, and it worked.  So...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.0.9.7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;install&amp;quot; script using your favorite editor (like vi) to change the installation locations.&lt;br /&gt;
Also fix line 7 or you'll get an error.&lt;br /&gt;
&lt;br /&gt;
I changed it to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
HAMACHI_DST=/opt/bin&lt;br /&gt;
TUNCFG_DST=/opt/sbin&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo Copying hamachi into $HAMACHI_DST ..&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then follow the instructions in the README under Quick Start, but basically:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
./install&lt;br /&gt;
/opt/sbin/tuncfg&lt;br /&gt;
hamachi-init&lt;br /&gt;
hamachi start&lt;br /&gt;
hamachi login&lt;br /&gt;
hamachi set-nick &amp;lt;your nickname&amp;gt;&lt;br /&gt;
hamachi join &amp;lt;network&amp;gt;&lt;br /&gt;
hamachi go-online&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hint ==&lt;br /&gt;
&lt;br /&gt;
If you use Hamachi to connect to web services running on your machines at home or elsewhere, you might make your life easier by adding some entries to the /etc/hosts file.  Then you can access your servers by name instead of having to use the Hamachi 5.x.x.x IP addresses.&lt;br /&gt;
&lt;br /&gt;
A simple sample entry in /etc/hosts which would allow you to access your server &amp;quot;beaker&amp;quot; at 5.1.2.3 would be:&lt;br /&gt;
(Add your servers below the &amp;quot;castle&amp;quot; line.)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
127.0.0.1       localhost.localdomain           localhost&lt;br /&gt;
127.0.0.1 castle&lt;br /&gt;
5.1.2.3 beaker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When done, make the filesystem read-only again:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,ro /&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ping Test ==&lt;br /&gt;
&lt;br /&gt;
When you've got hamachi up, you can try pinging one of your servers. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
root@castle:/var/home/root# ping beaker&lt;br /&gt;
PING beaker (5.1.2.3): 56 data bytes&lt;br /&gt;
64 bytes from 5.1.2.3: seq=0 ttl=128 time=5.493 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=1 ttl=128 time=32.257 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=2 ttl=128 time=56.976 ms&lt;br /&gt;
64 bytes from 5.1.2.3: seq=3 ttl=128 time=74.249 ms&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sleep/Wake and Battery Impact ==&lt;br /&gt;
On first testing:&lt;br /&gt;
* When the device went to sleep, the VPN went down.&lt;br /&gt;
* When the device woke up, the VPN came back up and was pingable again.&lt;br /&gt;
&lt;br /&gt;
This morning, while at my workstation, and with the Pre idle in my pocket, I noticed my Pre was available/pingable on Hamachi.  I am not totally sure of what the long-term battery impact might be of running Hamachi on the Pre.  I'm not yet sure if it keeps the device &amp;quot;awake&amp;quot; all the time, which clearly would drain the battery.  I have push GMail IMAP going, so I assume there is some kind of connection either being periodically established or constantly maintained.  But I don't know enough about the networking aspects to determine at this time whether running Hamachi all the time will negatively impact the battery.  Feel free to message me if you learn anything.&lt;br /&gt;
&lt;br /&gt;
== Upstart script ==&lt;br /&gt;
This script will start Hamachi up after a reboot.&lt;br /&gt;
&lt;br /&gt;
Place the following script in /etc/event.d/hamachi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
description &amp;quot;Hamachi VPN for WebOS&amp;quot;&lt;br /&gt;
version 1.0&lt;br /&gt;
&lt;br /&gt;
# don't start until the WebOS finishes it's normal boot&lt;br /&gt;
# that way no delay is added to the GUI startup&lt;br /&gt;
start on stopped finish&lt;br /&gt;
stop on runlevel [!2]&lt;br /&gt;
&lt;br /&gt;
console output&lt;br /&gt;
&lt;br /&gt;
script&lt;br /&gt;
  /opt/bin/hamachi -c /var/home/root/.hamachi start 2&amp;gt;&amp;amp;1 /var/home/root/hamachi.log&lt;br /&gt;
end script&lt;br /&gt;
&lt;br /&gt;
pre-start script&lt;br /&gt;
  /opt/sbin/tuncfg&lt;br /&gt;
end script&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Edit ==&lt;br /&gt;
&lt;br /&gt;
Modified it to the previous wget line for the nokia build. I did this because it included the install script. Whereas the direct hamachi link you would need make installed.&lt;br /&gt;
--Epyon22&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Terminal&amp;diff=2735</id>
		<title>Application:Terminal</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Terminal&amp;diff=2735"/>
		<updated>2009-07-28T04:11:35Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Terminal&lt;br /&gt;
|type=Linux&lt;br /&gt;
|version=Version: Pre-Alpha 0.1.4 (7/27/2009) (fourth public release)&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Application_Terminal.jpg&lt;br /&gt;
|description=&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
This is early-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.&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Please be aware that org.webosinternals.terminal and x-webosinternals-termplugin are licensed under the GPLv2.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Operating notes ===&lt;br /&gt;
&lt;br /&gt;
Non-obvious keys:&lt;br /&gt;
&lt;br /&gt;
{{{!}} border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
{{!}}Desired&lt;br /&gt;
{{!}}On Pre&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Up&lt;br /&gt;
{{!}}Gesture area - 2&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Left&lt;br /&gt;
{{!}}Gesture area - 4&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Right&lt;br /&gt;
{{!}}Gesture area - 6 &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Down&lt;br /&gt;
{{!}}Gesture area - 8&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Control&lt;br /&gt;
{{!}}Sym&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Esc&lt;br /&gt;
{{!}}Orange-Space&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Tab&lt;br /&gt;
{{!}}Sym-I &lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*   (Sym is Control and Control I is the standard tab code)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.  :)&lt;br /&gt;
&lt;br /&gt;
Support for both &amp;quot;linux&amp;quot; and &amp;quot;vt100&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
If you do see odd behavior, you can force the more compatible vt100 terminal type by typing: &lt;br /&gt;
&lt;br /&gt;
export TERM=vt100&lt;br /&gt;
&lt;br /&gt;
(followed by enter)  Note that the case of that command is important.&lt;br /&gt;
&lt;br /&gt;
=== Recent enhancements === &lt;br /&gt;
&lt;br /&gt;
* Prompt for login to enhance security / protect against rogue applications embedding termplugin  (more convenient and equally secure method being developed for future release)&lt;br /&gt;
&lt;br /&gt;
* Color!&lt;br /&gt;
&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
* Several performance enhancements&lt;br /&gt;
&lt;br /&gt;
* Screen scrolls automagically (no more flicking to keep up)&lt;br /&gt;
&lt;br /&gt;
* Comma / underscore key bugs fixed&lt;br /&gt;
&lt;br /&gt;
=== Known bugs === &lt;br /&gt;
&lt;br /&gt;
Remember, this is early alpha software.  You're lucky it works at all.&lt;br /&gt;
&lt;br /&gt;
As of 0.1.4 (7/27/2009), all reported bugs have been fixed.  That does not mean that there aren't plenty of bugs still around.  Please find them and report them here.&lt;br /&gt;
&lt;br /&gt;
Some limitations:  Many keys are not implemented.  We're working on it, maybe even as you read this. :)&lt;br /&gt;
&lt;br /&gt;
Y and U: &lt;br /&gt;
&lt;br /&gt;
If you run the terminal in the emulator provided with the Palm webOS SDK 1.1, be aware that a bug in the emulator causes the keys for U and Y to both send the raw keycode for the button Y.  You can see the same result in Device Info, More Info, Preferences, Interactive Tests, Hardware Buttons.   This is not a bug in the Terminal application.&lt;br /&gt;
&lt;br /&gt;
* Doesn't display a return in nano properly unless the screen is rotated&lt;br /&gt;
* No action after running exit in session should restart and ask for a new login&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
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 &amp;amp; Paste will be your friend.&lt;br /&gt;
&lt;br /&gt;
'''You need to be logged in as root with a writeable filesystem.'''  Instructions for both those things can be found elsewhere on this wiki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/etc/ipkg/&lt;br /&gt;
ln -s /etc/ipkg/arch.conf /var/etc/ipkg/&lt;br /&gt;
echo &amp;quot;src/gz all http://ipkg.preware.org/feeds/preware/all&amp;quot; &amp;gt; /var/etc/ipkg/preware.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are on the Pre, type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;src/gz armv7 http://ipkg.preware.org/feeds/preware/armv7&amp;quot; &amp;gt;&amp;gt; /var/etc/ipkg/preware.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are on the Emulator, type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;src/gz i686 http://ipkg.preware.org/feeds/preware/i686&amp;quot; &amp;gt;&amp;gt; /var/etc/ipkg/preware.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/ipkg -o /var update&lt;br /&gt;
/usr/bin/ipkg -o /var install x-webosinternals-termplugin&lt;br /&gt;
ln -s /var/usr/lib/BrowserPlugins/termplugin.so /usr/lib/BrowserPlugins/&lt;br /&gt;
/usr/bin/ipkg -o /var install org.webosinternals.terminal&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then refresh the GUI to show your new app:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you performed an upgrade and aren't seeing the changes, restart the GUI service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
initctl stop LunaSysMgr &amp;amp;&amp;amp; initctl start LunaSysMgr&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above two fail to show the results you're expecting, reboot the device.&lt;br /&gt;
&lt;br /&gt;
== Update ==&lt;br /&gt;
&lt;br /&gt;
'''You need to be logged in as root with a writeable filesystem.'''  Instructions for both those things can be found elsewhere on this wiki.&lt;br /&gt;
&lt;br /&gt;
From a shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/ipkg -o /var update&lt;br /&gt;
/usr/bin/ipkg -o /var upgrade&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other PreWare Applications ==&lt;br /&gt;
&lt;br /&gt;
'''You need to be logged in as root with a writeable filesystem.'''  Instructions for both those things can be found elsewhere on this wiki.&lt;br /&gt;
&lt;br /&gt;
Note that you can use the same commands to install other applications from PreWare:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/ipkg -o /var update&lt;br /&gt;
/usr/bin/ipkg -o /var list&lt;br /&gt;
/usr/bin/ipkg -o /var install &amp;lt;package&amp;gt; # choose a package from the list&lt;br /&gt;
/usr/bin/ipkg -o /var remove &amp;lt;package&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Removal ==&lt;br /&gt;
&lt;br /&gt;
'''You need to be logged in as root with a writeable filesystem.'''  Instructions for both those things can be found elsewhere on this wiki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
rm /usr/lib/BrowserPlugins/termplugin.so&lt;br /&gt;
/usr/bin/ipkg -o /var remove org.webosinternals.terminal&lt;br /&gt;
/usr/bin/ipkg -o /var remove x-webosinternals-termplugin&lt;br /&gt;
rm /var/etc/ipkg/preware.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then refresh the GUI to remove the icon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you aren't seeing the icon removed, restart the GUI service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
initctl stop LunaSysMgr &amp;amp;&amp;amp; initctl start LunaSysMgr&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above two fail to show the results you're expecting, reboot the device.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Terminal&amp;diff=2734</id>
		<title>Application:Terminal</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Terminal&amp;diff=2734"/>
		<updated>2009-07-28T04:09:01Z</updated>

		<summary type="html">&lt;p&gt;Epyon22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Terminal&lt;br /&gt;
|type=Linux&lt;br /&gt;
|version=Version: Pre-Alpha 0.1.4 (7/27/2009) (fourth public release)&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Application_Terminal.jpg&lt;br /&gt;
|description=&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
This is early-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.&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Please be aware that org.webosinternals.terminal and x-webosinternals-termplugin are licensed under the GPLv2.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Operating notes ===&lt;br /&gt;
&lt;br /&gt;
Non-obvious keys:&lt;br /&gt;
&lt;br /&gt;
{{{!}} border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
{{!}}Desired&lt;br /&gt;
{{!}}On Pre&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Up&lt;br /&gt;
{{!}}Gesture area - 2&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Left&lt;br /&gt;
{{!}}Gesture area - 4&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Right&lt;br /&gt;
{{!}}Gesture area - 6 &lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Down&lt;br /&gt;
{{!}}Gesture area - 8&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Control&lt;br /&gt;
{{!}}Sym&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Esc&lt;br /&gt;
{{!}}Orange-Space&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}}Tab&lt;br /&gt;
{{!}}Sym-I &lt;br /&gt;
{{!}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*   (Sym is Control and Control I is the standard tab code)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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.  :)&lt;br /&gt;
&lt;br /&gt;
Support for both &amp;quot;linux&amp;quot; and &amp;quot;vt100&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
If you do see odd behavior, you can force the more compatible vt100 terminal type by typing: &lt;br /&gt;
&lt;br /&gt;
export TERM=vt100&lt;br /&gt;
&lt;br /&gt;
(followed by enter)  Note that the case of that command is important.&lt;br /&gt;
&lt;br /&gt;
=== Recent enhancements === &lt;br /&gt;
&lt;br /&gt;
* Prompt for login to enhance security / protect against rogue applications embedding termplugin  (more convenient and equally secure method being developed for future release)&lt;br /&gt;
&lt;br /&gt;
* Color!&lt;br /&gt;
&lt;br /&gt;
* 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)&lt;br /&gt;
&lt;br /&gt;
* Several performance enhancements&lt;br /&gt;
&lt;br /&gt;
* Screen scrolls automagically (no more flicking to keep up)&lt;br /&gt;
&lt;br /&gt;
* Comma / underscore key bugs fixed&lt;br /&gt;
&lt;br /&gt;
=== Known bugs === &lt;br /&gt;
&lt;br /&gt;
Remember, this is early alpha software.  You're lucky it works at all.&lt;br /&gt;
&lt;br /&gt;
As of 0.1.4 (7/27/2009), all reported bugs have been fixed.  That does not mean that there aren't plenty of bugs still around.  Please find them and report them here.&lt;br /&gt;
&lt;br /&gt;
Some limitations:  Many keys are not implemented.  We're working on it, maybe even as you read this. :)&lt;br /&gt;
&lt;br /&gt;
Y and U: &lt;br /&gt;
&lt;br /&gt;
If you run the terminal in the emulator provided with the Palm webOS SDK 1.1, be aware that a bug in the emulator causes the keys for U and Y to both send the raw keycode for the button Y.  You can see the same result in Device Info, More Info, Preferences, Interactive Tests, Hardware Buttons.   This is not a bug in the Terminal application.&lt;br /&gt;
&lt;br /&gt;
- Doesn't display a return in nano properly unless the screen is rotated&lt;br /&gt;
- No action after running exit in session should restart and ask for a new login&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
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 &amp;amp; Paste will be your friend.&lt;br /&gt;
&lt;br /&gt;
'''You need to be logged in as root with a writeable filesystem.'''  Instructions for both those things can be found elsewhere on this wiki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /var/etc/ipkg/&lt;br /&gt;
ln -s /etc/ipkg/arch.conf /var/etc/ipkg/&lt;br /&gt;
echo &amp;quot;src/gz all http://ipkg.preware.org/feeds/preware/all&amp;quot; &amp;gt; /var/etc/ipkg/preware.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are on the Pre, type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;src/gz armv7 http://ipkg.preware.org/feeds/preware/armv7&amp;quot; &amp;gt;&amp;gt; /var/etc/ipkg/preware.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are on the Emulator, type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
echo &amp;quot;src/gz i686 http://ipkg.preware.org/feeds/preware/i686&amp;quot; &amp;gt;&amp;gt; /var/etc/ipkg/preware.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/ipkg -o /var update&lt;br /&gt;
/usr/bin/ipkg -o /var install x-webosinternals-termplugin&lt;br /&gt;
ln -s /var/usr/lib/BrowserPlugins/termplugin.so /usr/lib/BrowserPlugins/&lt;br /&gt;
/usr/bin/ipkg -o /var install org.webosinternals.terminal&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then refresh the GUI to show your new app:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you performed an upgrade and aren't seeing the changes, restart the GUI service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
initctl stop LunaSysMgr &amp;amp;&amp;amp; initctl start LunaSysMgr&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above two fail to show the results you're expecting, reboot the device.&lt;br /&gt;
&lt;br /&gt;
== Update ==&lt;br /&gt;
&lt;br /&gt;
'''You need to be logged in as root with a writeable filesystem.'''  Instructions for both those things can be found elsewhere on this wiki.&lt;br /&gt;
&lt;br /&gt;
From a shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/ipkg -o /var update&lt;br /&gt;
/usr/bin/ipkg -o /var upgrade&lt;br /&gt;
reboot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other PreWare Applications ==&lt;br /&gt;
&lt;br /&gt;
'''You need to be logged in as root with a writeable filesystem.'''  Instructions for both those things can be found elsewhere on this wiki.&lt;br /&gt;
&lt;br /&gt;
Note that you can use the same commands to install other applications from PreWare:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/usr/bin/ipkg -o /var update&lt;br /&gt;
/usr/bin/ipkg -o /var list&lt;br /&gt;
/usr/bin/ipkg -o /var install &amp;lt;package&amp;gt; # choose a package from the list&lt;br /&gt;
/usr/bin/ipkg -o /var remove &amp;lt;package&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Removal ==&lt;br /&gt;
&lt;br /&gt;
'''You need to be logged in as root with a writeable filesystem.'''  Instructions for both those things can be found elsewhere on this wiki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
rm /usr/lib/BrowserPlugins/termplugin.so&lt;br /&gt;
/usr/bin/ipkg -o /var remove org.webosinternals.terminal&lt;br /&gt;
/usr/bin/ipkg -o /var remove x-webosinternals-termplugin&lt;br /&gt;
rm /var/etc/ipkg/preware.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then refresh the GUI to remove the icon:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you aren't seeing the icon removed, restart the GUI service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
initctl stop LunaSysMgr &amp;amp;&amp;amp; initctl start LunaSysMgr&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the above two fail to show the results you're expecting, reboot the device.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Epyon22</name></author>
	</entry>
</feed>