<?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=Nt4cats</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=Nt4cats"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/wiki/Special:Contributions/Nt4cats"/>
	<updated>2026-04-15T15:12:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Proximity_Sensor&amp;diff=9711</id>
		<title>Proximity Sensor</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Proximity_Sensor&amp;diff=9711"/>
		<updated>2010-04-28T00:38:15Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;While poking around in '''com.palm.app.crotest''' code I found some code that interacts with the IR proximity sensor. I think quite a few apps could use it as an input, for one the stock &amp;quot;Clock&amp;quot; app can utilize it to control it's alarm / snooze / dismiss functions. I haven't done much with it yet and don't think it would be appropriate to cut-paste code here but if you're interested in exploring this functionality check out:&lt;br /&gt;
&lt;br /&gt;
'''/usr/palm/applications/com.palm.app.crotest/app/controllers/proximity-assistant.js'''&lt;br /&gt;
&lt;br /&gt;
I'll try and update this page when I find more information / code examples.&lt;br /&gt;
&lt;br /&gt;
UPDATE: The code in &amp;quot;proximity-assistant.js&amp;quot; does not get any events from the proximity sensor. It is unable to know whether a user has gotten close to the proximity sensor. All it can do is turn the sensor on (and be notified that it successfully set it on). The screen turning off is done by the sensor, NOT by the phone app's code. Unfortunately unless we find a way to get events from the proximity sensor it is effectively useless for apps like the alarm clock suggested above.&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:OpenSSH&amp;diff=9609</id>
		<title>Application:OpenSSH</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:OpenSSH&amp;diff=9609"/>
		<updated>2010-04-18T22:23:07Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: Added &amp;quot;How to enable ssh over EVDO&amp;quot; to the bottom of the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on.&lt;br /&gt;
&lt;br /&gt;
Please refer to the [http://www.openssh.com/ OpenSSH Home Page] and read the [http://www.openssh.com/manual.html OpenSSH Manual Pages] before using this package.&lt;br /&gt;
&lt;br /&gt;
There are two ways to generate the keys below. The PC one assumes you have a user account name and password to gain access with putty I assume it is not possible to complete the steps for that method without setting up a user account. I find the webOS method to be much easier to follow. And I imagine if you are new to linux and accessing linux on webOS then you will find the webOS method is the one you will want to follow. I also recommend the webOS method if you have trouble following the PC method or find it too wordy.&lt;br /&gt;
&lt;br /&gt;
==Generate Keys from Windows PC Method==&lt;br /&gt;
&lt;br /&gt;
If you are connecting to your webOS device from a Windows host computer, please read the [http://unixwiz.net/techtips/putty-openssh.html Secure Linux/UNIX access with PuTTY and OpenSSH Tech Tip] and follow those instructions for generating your SSH keys. For the section &amp;quot;Install public key on Linux system&amp;quot;, you will need to put the &amp;quot;Public Key for pasting into OpenSSH authorized_keys file&amp;quot; into a /home/root/.ssh/authorized_keys file.&lt;br /&gt;
&lt;br /&gt;
Optware installs openssh under /opt, so you should replace any references to /bin, /sbin, and /etc in the OpenSSH documentation with /opt/bin, /opt/sbin and /opt/etc respectively.&lt;br /&gt;
&lt;br /&gt;
=== Setting up ExpanDrive (SftpDrive) ===&lt;br /&gt;
&lt;br /&gt;
''Note: This requires access to the device's file system by any means.''&lt;br /&gt;
* Open ExpanDrive&lt;br /&gt;
* Click &amp;quot;New drive...&amp;quot;&lt;br /&gt;
* Type a name into the &amp;quot;Drive Name&amp;quot; box.&lt;br /&gt;
* Type in the IP address of the device in the &amp;quot;Server&amp;quot; box.&lt;br /&gt;
* Type &amp;quot;root&amp;quot; into the &amp;quot;Username&amp;quot; box.&lt;br /&gt;
* Choose &amp;quot;Use a public key to log in...&amp;quot; from the &amp;quot;Authentication&amp;quot; drop-down.&lt;br /&gt;
* Click &amp;quot;Create New Key Pair&amp;quot;&lt;br /&gt;
* Choose &amp;quot;RSA (ssh-rsa)&amp;quot; from the &amp;quot;Key type&amp;quot; drop-down.&lt;br /&gt;
* Click &amp;quot;Create Key Pairs&amp;quot;.&lt;br /&gt;
* Click &amp;quot;Ok&amp;quot;.&lt;br /&gt;
* Click &amp;quot;Export current Key Pair&amp;quot;&lt;br /&gt;
* Click both &amp;quot;Export Private Key&amp;quot; and &amp;quot;Export Public Key&amp;quot; and save the files somewhere (remember where you saved them) and click &amp;quot;Ok&amp;quot;.&lt;br /&gt;
* Open the .pub file you saved in the previous step using a plain text editor.&lt;br /&gt;
* Copy the contents of the entire file and paste it into &amp;quot;/var/home/root/.ssh/authorized_keys&amp;quot; (on the device) on the next line and save it.&lt;br /&gt;
* Go back to ExpanDrive and click &amp;quot;Ok&amp;quot; on the still open &amp;quot;Public Key Authentication Properties&amp;quot; dialog.&lt;br /&gt;
* Choose &amp;quot;Show the entire server&amp;quot; from the &amp;quot;Directory&amp;quot; drop-down.&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to connect and save the configuration.&lt;br /&gt;
* After the connection process is complete, a new Explorer window will open and you will be in the &amp;quot;%DriveLetter%:\var\home\root&amp;quot; directory.&lt;br /&gt;
&lt;br /&gt;
==Generate Keys from webOS Method==&lt;br /&gt;
&lt;br /&gt;
Launch Preware and install [http://www.webos-internals.org/wiki/Application:Terminal Terminal] if you haven't previously installed it. It will be used to create your secure SSH keys for use with OpenSSH directly on your webOS device. Once Terminal is installed launch it and follow these steps:&lt;br /&gt;
&lt;br /&gt;
To go to the root directory type:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
 /opt/bin/ssh-keygen&lt;br /&gt;
&lt;br /&gt;
to create the private and public keys. After a short time (about a minute) accept the default filename by pressing Enter at the prompt. Enter a passphrase for your private key file. You will use this passphrase later, so remember it. After the key file is generated type:&lt;br /&gt;
&lt;br /&gt;
 mv /home/root/.ssh/id_rsa.pub /home/root/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
to move the public key to become the /home/root/.ssh/authorized_keys file.&lt;br /&gt;
&lt;br /&gt;
Now the secret key needs to be transferred to the PC you want to access linux on webOS from. First copy the secret key to the area accessible from drive mode. To do this, type:&lt;br /&gt;
&lt;br /&gt;
 cp /home/root/.ssh/id_rsa /media/internal/id_rsa&lt;br /&gt;
&lt;br /&gt;
We are all done using Terminal so you can close it by tossing it off the top of the screen like you would for any other application. Next you need to connect your device to the PC with the USB cable and tap drive mode. Once drive mode is active open the drive letter for the device on your PC (ex. &amp;quot;PALM PRE (E:)&amp;quot;). Copy the &amp;quot;id_rsa&amp;quot; file to your PC somewhere you will remember it's location (ex. to the desktop).&lt;br /&gt;
&lt;br /&gt;
===Using the key with PuTTY===&lt;br /&gt;
&lt;br /&gt;
If you have the webOS SDK installed you will already have PuTTY (in \SDK\bin\ of the folder the SDK was installed in). If you don't have the webOS SDK installed you can install it to get PuTTY or you can download [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY]. You will also need PuTTYgen. If you will be using winSCP you already have it (in start menu&amp;gt;winSCP&amp;gt;key tools) or download it from the same site as PuTTY. If this is your first time using PuTTY to access linux on webOS or wish to verify the configuration is correct please follow these steps:&lt;br /&gt;
&lt;br /&gt;
*Open PuTTY.&lt;br /&gt;
*Enter the IP address assigned to your webOS device (ex. 192.168.1.100).&lt;br /&gt;
*Enter 22 for the port number.&lt;br /&gt;
*Select the radio button for SSH&lt;br /&gt;
*Select the Data section under Connection on the left.&lt;br /&gt;
*Enter root for the auto-login username.&lt;br /&gt;
*Select the Auth section under SSH under Connection on the left.&lt;br /&gt;
*Leave PuTTY open here and follow these steps:&lt;br /&gt;
**Open PuTTYgen.&lt;br /&gt;
**Select the conversions menu.&lt;br /&gt;
**Select import key.&lt;br /&gt;
**Choose the id_rsa file you copied to the PC from your device and click open.&lt;br /&gt;
**Enter the passphrase you entered during key generation and click ok.&lt;br /&gt;
***You will see all sorts of information in the window at this point.&lt;br /&gt;
**Click the save private key button.&lt;br /&gt;
**Enter a name for it (no need to type the ppk extension) and save it somewhere you will remember it's location.&lt;br /&gt;
**Close PuTTYgen and go back to PuTTY where we left off.&lt;br /&gt;
*Click the Browse button for private key file.&lt;br /&gt;
*Select the ppk file you made with PuTTYgen and click open.&lt;br /&gt;
*Select Session on the left.&lt;br /&gt;
*Enter a name in the Saved Session box and click the save button.&lt;br /&gt;
**This will allow you to load the settings for future use.&lt;br /&gt;
*Make sure your device's wifi is on.&lt;br /&gt;
**You can install nodoze to keep wifi on if need be.&lt;br /&gt;
*Click open in PuTTY to connect.&lt;br /&gt;
&lt;br /&gt;
If everything is configured correctly you should see the following in the terminal window on your pc:&lt;br /&gt;
&lt;br /&gt;
 Using username &amp;quot;root&amp;quot;.&lt;br /&gt;
 Authenticating with public key &amp;quot;imported-openssh-key&amp;quot;&lt;br /&gt;
 Passphrase for key &amp;quot;imported-openssh-key&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
*Enter the passphrase you created during key generation.&lt;br /&gt;
&lt;br /&gt;
You should now see:&lt;br /&gt;
&lt;br /&gt;
 root@palm-webos-device:/var/home/root#&lt;br /&gt;
&lt;br /&gt;
Congratulations you now have access to linux on your webOS device. You may now begin using the command prompt to work with anything you need or want to use the command prompt for. There is all sorts of stuff you can use it for so if you haven't already check out the rest of the webos-internals site for a number of things you can do. You may also want to setup winSCP for a explorer like windows interface to access and work with files etc as well.&lt;br /&gt;
&lt;br /&gt;
===Using the Filezilla SFTP Client===&lt;br /&gt;
&lt;br /&gt;
Make sure you have installed the OpenSSH SFTP server from Preware&lt;br /&gt;
&lt;br /&gt;
For SFTP using SSH2, FileZilla utilizes the excellent [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] tools. To allow the use of RSA / DSA key files with Filezilla, you'll need to download one more tool from PuTTY: Pageant.&lt;br /&gt;
&lt;br /&gt;
Make sure you have converted your key to PuTTY's PPK format listed above. &lt;br /&gt;
&lt;br /&gt;
Now run Pageant. In your system tray, you'll see the Pageant icon appear. Right-click the icon and select &amp;quot;Add Key&amp;quot; and select your private key (PPK) file. Follow the prompt to enter your pass phrase and you're done.&lt;br /&gt;
&lt;br /&gt;
Now simply launch FileZilla and connect to your server using SFTP using SSH with a root and an empty password. Don't forget to close pageant when you're done.&lt;br /&gt;
&lt;br /&gt;
As you may or may not know, FileZilla can be easily carried around on portable media such as a USB stick and used from any PC. This also applies to the PuTTY tools, so if you stick Pageant and your PPK key file on to, for example, a USB stick, you can now access your server from any Windows PC.&lt;br /&gt;
&lt;br /&gt;
==== Filezilla Alternative Method Using Unprotected Key====&lt;br /&gt;
&lt;br /&gt;
In the Edit - Settings menu of the FileZilla client, you can [Add key file...] under Connection - SFTP, and FileZilla can use the public key authentication in the site manager with the 'Interactive' Logontype. However, the .ppk file is converted to unprotected one if the original .ppk file is password-protected (FileZilla can do that for you when importing the file). As of 3.3.2.1, a password-protected key file is not supported yet.&lt;br /&gt;
&lt;br /&gt;
===Using the key with winSCP===&lt;br /&gt;
&lt;br /&gt;
*Open winSCP.&lt;br /&gt;
*Enter the IP address assigned to your webOS device (ex. 192.168.1.100) in the host name box.&lt;br /&gt;
*Enter 22 for the port number.&lt;br /&gt;
*Enter root in the user name box.&lt;br /&gt;
*Leave winSCP open and follow these steps:&lt;br /&gt;
**Open PuTTYgen (startmenu&amp;gt;winSCP&amp;gt;key tools).&lt;br /&gt;
**Select the conversions menu.&lt;br /&gt;
**Select import key.&lt;br /&gt;
**Choose the id_rsa file you copied to the PC from your device and click open.&lt;br /&gt;
**Enter the passphrase you entered during key generation and click ok.&lt;br /&gt;
***You will see all sorts of information in the window at this point.&lt;br /&gt;
**Click the save private key button.&lt;br /&gt;
**Enter a name for it (no need to type the ppk extension) and save it somewhere you will remember it's location.&lt;br /&gt;
**Close PuTTYgen and go back to winSCP where we left off.&lt;br /&gt;
*Click the &amp;quot;...&amp;quot; button for the private key file box.&lt;br /&gt;
*Select the ppk file you made with PuTTYgen and click open.&lt;br /&gt;
*Click the save button and enter a name and click ok.&lt;br /&gt;
**This will allow you to load the settings for future use.&lt;br /&gt;
*You should now be seeing the stored sessions list with the session you just saved.&lt;br /&gt;
*Make sure your device's wifi is on.&lt;br /&gt;
**You can install nodoze to keep wifi on if need be.&lt;br /&gt;
*Select the session you saved and click the login button.&lt;br /&gt;
*Enter the passphrase you created during key generation.&lt;br /&gt;
&lt;br /&gt;
If everything is configured correctly you should see a window with a list of folders similar to explorer. Congratulations you now have access to linux on your webOS device. You may now begin working with files on the device. You can do stuff like copy, delete, etc file like in windows. You can also edit files. Certain actions will require read write mode (mount -o remount,rw / entered at the command prompt in PuTTY or terminal, mount -o remount,ro / to go back to read only mode).&lt;br /&gt;
&lt;br /&gt;
===Using the key with SSH in Terminal===&lt;br /&gt;
&lt;br /&gt;
Put your private key file in the standard location ~/.ssh/id_rsa on the machine you are using to connect to the Pre or you can inform ssh by using the -i switch as follow:&lt;br /&gt;
&lt;br /&gt;
user@host:~$ ssh -i /path/to/private/key remoteuser@remotehost&lt;br /&gt;
&lt;br /&gt;
===Enabling non-root Password logins via SSH using the command line===&lt;br /&gt;
&lt;br /&gt;
Access the command line on your Pre via Terminal, SSH, or Novaterm.&lt;br /&gt;
&lt;br /&gt;
Type the following at the root prompt to allow write access to your / disk:&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
Edit the mobi.optware.openssh file in the /etc/event.d/ directory.  Find the exec line and change&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;PasswordAuthentication no&amp;quot;&lt;br /&gt;
to&lt;br /&gt;
 &amp;quot;PasswordAuthentication yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The line should now look like this: &lt;br /&gt;
&lt;br /&gt;
 exec /opt/sbin/sshd -D -p 22 -o &amp;quot;PasswordAuthentication yes&amp;quot; -o &amp;quot;PermitRootLogin without-password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save and exit with ZZ or :wq, then restart the openssh service as follows:&lt;br /&gt;
&lt;br /&gt;
 stop mobi.optware.openssh&lt;br /&gt;
 start mobi.optware.openssh&lt;br /&gt;
&lt;br /&gt;
Once you are finished make sure you make your / disk read-only again (this is the default):&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,ro /&lt;br /&gt;
&lt;br /&gt;
Do not change anything else. Now if you've created a username for yourself and set a password, you'll be able to log in with a password. After every Palm WebOS upgrade, you'll need to recreate any accounts other than root with adduser &amp;lt;account&amp;gt;, which will then prompt you to set a password.&lt;br /&gt;
&lt;br /&gt;
Warning:&lt;br /&gt;
It is strongly suggested that you set up another ssh key for any additional users instead of using the password authentication method. Just follow the steps above.&lt;br /&gt;
&lt;br /&gt;
===Enabling ssh over EVDO===&lt;br /&gt;
&lt;br /&gt;
Access the command line on your Pre via Terminal, SSH, or Novaterm.&lt;br /&gt;
&lt;br /&gt;
Type the following at the root prompt to allow write access to your / disk:&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
Edit the mobi.optware.openssh file in the /etc/event.d/ directory.  Find the iptables lines and remove the &amp;quot;-i eth0&amp;quot; clause.  For example&lt;br /&gt;
  /usr/sbin/iptables -D INPUT -i eth0 -p tcp --dport 222 -j ACCEPT || /bin/true&lt;br /&gt;
  /usr/sbin/iptables -I INPUT -i eth0 -p tcp --dport 222 -j ACCEPT&lt;br /&gt;
becomes&lt;br /&gt;
  /usr/sbin/iptables -D INPUT -p tcp --dport 222 -j ACCEPT || /bin/true&lt;br /&gt;
  /usr/sbin/iptables -I INPUT -p tcp --dport 222 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Save and exit with ZZ or :wq, then restart the openssh service as follows:&lt;br /&gt;
&lt;br /&gt;
 stop mobi.optware.openssh&lt;br /&gt;
 start mobi.optware.openssh&lt;br /&gt;
&lt;br /&gt;
Once you are finished make sure you make your / disk read-only again (this is the default):&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,ro /&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Manually_Remove_Preware_Feeds&amp;diff=9608</id>
		<title>Manually Remove Preware Feeds</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Manually_Remove_Preware_Feeds&amp;diff=9608"/>
		<updated>2010-04-18T21:42:32Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* Special Note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Special Note ==&lt;br /&gt;
You should not need to use these instructions under normal circumstances.  Preware allows you to add, edit, and delete feeds via the &amp;quot;Manage Feeds&amp;quot; option in its application menu.  These instructions should only be used in the event of difficulties using this functionality from within Preware.&lt;br /&gt;
&lt;br /&gt;
Some versions of Preware will not delete a disabled feed.  Before you try these steps, enable the feed(s) before deleting them.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
Feed files are stored in '/media/cryptofs/apps/etc/ipkg'.  We recommend you move the feed files you want to remove into an archive folder on /media/internal in case you change your mind.  You can go back and physically remove them later.&lt;br /&gt;
&lt;br /&gt;
In the example below, an archive directory is created and the &amp;quot;WebosTesting&amp;quot; feed is moved there:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@palm-webos-device:/# cd /media/cryptofs/apps/etc/ipkg&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# ls&lt;br /&gt;
Alpha.conf.disabled                 palm-beta.conf.disabled             precentral-themes.conf.disabled&lt;br /&gt;
WebosTesting.conf.disabled          palm-catalog-updates.conf.disabled  precentral.conf&lt;br /&gt;
arch.conf                           palm-catalog.conf.disabled          prethemer.conf.disabled&lt;br /&gt;
optware.conf                        palm-web-updates.conf.disabled      webos-internals.conf&lt;br /&gt;
palm-beta-updates.conf.disabled     palm-web.conf.disabled              webos-patches.conf&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# mkdir /media/internal/feed-archive&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# mv WebosTesting.conf.disabled /media/internal/feed-archive/&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Manually_Remove_Preware_Feeds&amp;diff=9604</id>
		<title>Manually Remove Preware Feeds</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Manually_Remove_Preware_Feeds&amp;diff=9604"/>
		<updated>2010-04-17T18:24:39Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* Special Note */ modified to convince people that I speak English&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Special Note ==&lt;br /&gt;
You should not need to use these instructions under normal circumstances.  Preware allows you to add / edit / and delete feeds via the &amp;quot;Manage Feeds&amp;quot; option in its application menu.  These instructions should only be used in the event of difficulties using this functionality from within Preware.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
Feed files are stored in '/media/cryptofs/apps/etc/ipkg'.  We recommend you move the feed files you want to remove into an archive folder on /media/internal in case you change your mind.  You can go back and physically remove them later.&lt;br /&gt;
&lt;br /&gt;
In the example below, we'll remove the &amp;quot;WebosTesting&amp;quot; feed by moving it to an archive folder that we created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@palm-webos-device:/# cd /media/cryptofs/apps/etc/ipkg&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# ls&lt;br /&gt;
Alpha.conf.disabled                 palm-beta.conf.disabled             precentral-themes.conf.disabled&lt;br /&gt;
WebosTesting.conf.disabled          palm-catalog-updates.conf.disabled  precentral.conf&lt;br /&gt;
arch.conf                           palm-catalog.conf.disabled          prethemer.conf.disabled&lt;br /&gt;
optware.conf                        palm-web-updates.conf.disabled      webos-internals.conf&lt;br /&gt;
palm-beta-updates.conf.disabled     palm-web.conf.disabled              webos-patches.conf&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# mkdir /media/internal/feed-archive&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# mv WebosTesting.conf.disabled /media/internal/feed-archive/&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Manually_Remove_Preware_Feeds&amp;diff=9603</id>
		<title>Manually Remove Preware Feeds</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Manually_Remove_Preware_Feeds&amp;diff=9603"/>
		<updated>2010-04-17T18:23:41Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: Removed extra header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Special Note ==&lt;br /&gt;
You should, in normal circumstances, not need to use these instructions.  Preware allows you to add / edit / and delete feeds via the &amp;quot;Manage Feeds&amp;quot; option in its application menu.  These instructions should only be used in the event of difficulties using this functionality from within Preware.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
Feed files are stored in '/media/cryptofs/apps/etc/ipkg'.  We recommend you move the feed files you want to remove into an archive folder on /media/internal in case you change your mind.  You can go back and physically remove them later.&lt;br /&gt;
&lt;br /&gt;
In the example below, we'll remove the &amp;quot;WebosTesting&amp;quot; feed by moving it to an archive folder that we created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@palm-webos-device:/# cd /media/cryptofs/apps/etc/ipkg&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# ls&lt;br /&gt;
Alpha.conf.disabled                 palm-beta.conf.disabled             precentral-themes.conf.disabled&lt;br /&gt;
WebosTesting.conf.disabled          palm-catalog-updates.conf.disabled  precentral.conf&lt;br /&gt;
arch.conf                           palm-catalog.conf.disabled          prethemer.conf.disabled&lt;br /&gt;
optware.conf                        palm-web-updates.conf.disabled      webos-internals.conf&lt;br /&gt;
palm-beta-updates.conf.disabled     palm-web.conf.disabled              webos-patches.conf&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# mkdir /media/internal/feed-archive&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# mv WebosTesting.conf.disabled /media/internal/feed-archive/&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Manually_Remove_Preware_Feeds&amp;diff=9602</id>
		<title>Manually Remove Preware Feeds</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Manually_Remove_Preware_Feeds&amp;diff=9602"/>
		<updated>2010-04-17T18:23:04Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: Initial creation based upon a conversation I had with irc user 'sethron'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= How-to manually remove feeds from Preware =&lt;br /&gt;
&lt;br /&gt;
== Special Note ==&lt;br /&gt;
You should, in normal circumstances, not need to use these instructions.  Preware allows you to add / edit / and delete feeds via the &amp;quot;Manage Feeds&amp;quot; option in its application menu.  These instructions should only be used in the event of difficulties using this functionality from within Preware.&lt;br /&gt;
&lt;br /&gt;
== Instructions ==&lt;br /&gt;
&lt;br /&gt;
Feed files are stored in '/media/cryptofs/apps/etc/ipkg'.  We recommend you move the feed files you want to remove into an archive folder on /media/internal in case you change your mind.  You can go back and physically remove them later.&lt;br /&gt;
&lt;br /&gt;
In the example below, we'll remove the &amp;quot;WebosTesting&amp;quot; feed by moving it to an archive folder that we created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@palm-webos-device:/# cd /media/cryptofs/apps/etc/ipkg&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# ls&lt;br /&gt;
Alpha.conf.disabled                 palm-beta.conf.disabled             precentral-themes.conf.disabled&lt;br /&gt;
WebosTesting.conf.disabled          palm-catalog-updates.conf.disabled  precentral.conf&lt;br /&gt;
arch.conf                           palm-catalog.conf.disabled          prethemer.conf.disabled&lt;br /&gt;
optware.conf                        palm-web-updates.conf.disabled      webos-internals.conf&lt;br /&gt;
palm-beta-updates.conf.disabled     palm-web.conf.disabled              webos-patches.conf&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# mkdir /media/internal/feed-archive&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg# mv WebosTesting.conf.disabled /media/internal/feed-archive/&lt;br /&gt;
root@palm-webos-device:/media/cryptofs/apps/etc/ipkg#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9589</id>
		<title>Optware</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9589"/>
		<updated>2010-04-13T19:56:03Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: Added &amp;quot;Optware Advanced Linux Command Line Installer&amp;quot; to the prereq's&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Optware==&lt;br /&gt;
&lt;br /&gt;
[[Preware]] has several of the most popular and useful Optware packages available in the Optware feed.  If the Optware package you're looking for is available in [[Preware]], just use [[Preware]] to install it.  &lt;br /&gt;
&lt;br /&gt;
At a minimum, please install both the &amp;quot;Optware Bootstrap&amp;quot; and the &amp;quot;Optware Advanced Linux Command Line Installer&amp;quot; using [[Preware]].  The instructions on this page assume that you have done so.&lt;br /&gt;
&lt;br /&gt;
These instructions also assume you have command-line access to your Pre.  Instructions for getting this access can be found at  [[Application:OpenSSH|Access via SSH]] and [[Portal:Accessing_Linux|Access via Novaterm]].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages==&lt;br /&gt;
&lt;br /&gt;
As mentioned previously, the Optware feed from preware.org includes a selection of popular packages.  These package file names follow the pattern '''mobi.optware.*'''.&lt;br /&gt;
&lt;br /&gt;
There over one thousand Optware packages hosted at nslu2-linux.org that are not available from preware.org.  We will refer to these as '''raw''' Optware packages (or &amp;quot;the nslu2-linux.org Optware packages&amp;quot;).   One other important distinction is that raw Optware packages are managed using the '''ipkg-opt''' command, while the all packages installed by Preware (including the mobi.optware.* packages) are managed under the covers using the stock '''ipkg''' command.&lt;br /&gt;
&lt;br /&gt;
Let's re-state the advice that if there is a mobi.optware.* version of the package you are looking for you should use [[Preware]] to install it instead of using the &amp;quot;raw&amp;quot; Optware package.&lt;br /&gt;
&lt;br /&gt;
==Installing &amp;quot;raw&amp;quot; nslu2-linux.org Optware packages==&lt;br /&gt;
&lt;br /&gt;
Make your filesystem read-write&lt;br /&gt;
&lt;br /&gt;
   mount -o rw,remount /&lt;br /&gt;
&lt;br /&gt;
Then you need to download a fresh copy of the package list from nslu2-linux.org.&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt update&lt;br /&gt;
&lt;br /&gt;
To get a list of all packages&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt list&lt;br /&gt;
&lt;br /&gt;
To get a list of installed packages&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt list_installed&lt;br /&gt;
&lt;br /&gt;
Here is an example of the command used to install the Python 2.5 interpreter&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt install python25&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Don't forget to make your filesystem read-only once you're done.&lt;br /&gt;
&lt;br /&gt;
   mount -o ro,remount /&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9588</id>
		<title>Optware</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9588"/>
		<updated>2010-04-13T14:16:45Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* Installing &amp;quot;raw&amp;quot; nslu2-linux.org Optware packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Optware==&lt;br /&gt;
&lt;br /&gt;
[[Preware]] has several of the most popular and useful Optware packages available in the Optware feed.  If the Optware package you're looking for is available in [[Preware]], just use [[Preware]] to install it.  &lt;br /&gt;
&lt;br /&gt;
At a minimum, please install the Optware Bootstrap using [[Preware]].  The instructions on this page assume that you have done so.&lt;br /&gt;
&lt;br /&gt;
These instructions also assume you have command-line access to your Pre.  Instructions for getting this access can be found at  [[Application:OpenSSH|Access via SSH]] and [[Portal:Accessing_Linux|Access via Novaterm]].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages==&lt;br /&gt;
&lt;br /&gt;
As mentioned previously, the Optware feed from preware.org includes a selection of popular packages.  These package file names follow the pattern '''mobi.optware.*'''.&lt;br /&gt;
&lt;br /&gt;
There over one thousand Optware packages hosted at nslu2-linux.org that are not available from preware.org.  We will refer to these as '''raw''' Optware packages (or &amp;quot;the nslu2-linux.org Optware packages&amp;quot;).   One other important distinction is that raw Optware packages are managed using the '''ipkg-opt''' command, while the all packages installed by Preware (including the mobi.optware.* packages) are managed under the covers using the stock '''ipkg''' command.&lt;br /&gt;
&lt;br /&gt;
Let's re-state the advice that if there is a mobi.optware.* version of the package you are looking for you should use [[Preware]] to install it instead of using the &amp;quot;raw&amp;quot; Optware package.&lt;br /&gt;
&lt;br /&gt;
==Installing &amp;quot;raw&amp;quot; nslu2-linux.org Optware packages==&lt;br /&gt;
&lt;br /&gt;
Make your filesystem read-write&lt;br /&gt;
&lt;br /&gt;
   mount -o rw,remount /&lt;br /&gt;
&lt;br /&gt;
Then you need to download a fresh copy of the package list from nslu2-linux.org.&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt update&lt;br /&gt;
&lt;br /&gt;
To get a list of all packages&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt list&lt;br /&gt;
&lt;br /&gt;
To get a list of installed packages&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt list_installed&lt;br /&gt;
&lt;br /&gt;
Here is an example of the command used to install the Python 2.5 interpreter&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt install python25&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Don't forget to make your filesystem read-only once you're done.&lt;br /&gt;
&lt;br /&gt;
   mount -o ro,remount /&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9587</id>
		<title>Optware</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9587"/>
		<updated>2010-04-13T13:56:40Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* &amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Optware==&lt;br /&gt;
&lt;br /&gt;
[[Preware]] has several of the most popular and useful Optware packages available in the Optware feed.  If the Optware package you're looking for is available in [[Preware]], just use [[Preware]] to install it.  &lt;br /&gt;
&lt;br /&gt;
At a minimum, please install the Optware Bootstrap using [[Preware]].  The instructions on this page assume that you have done so.&lt;br /&gt;
&lt;br /&gt;
These instructions also assume you have command-line access to your Pre.  Instructions for getting this access can be found at  [[Application:OpenSSH|Access via SSH]] and [[Portal:Accessing_Linux|Access via Novaterm]].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages==&lt;br /&gt;
&lt;br /&gt;
As mentioned previously, the Optware feed from preware.org includes a selection of popular packages.  These package file names follow the pattern '''mobi.optware.*'''.&lt;br /&gt;
&lt;br /&gt;
There over one thousand Optware packages hosted at nslu2-linux.org that are not available from preware.org.  We will refer to these as '''raw''' Optware packages (or &amp;quot;the nslu2-linux.org Optware packages&amp;quot;).   One other important distinction is that raw Optware packages are managed using the '''ipkg-opt''' command, while the all packages installed by Preware (including the mobi.optware.* packages) are managed under the covers using the stock '''ipkg''' command.&lt;br /&gt;
&lt;br /&gt;
Let's re-state the advice that if there is a mobi.optware.* version of the package you are looking for you should use [[Preware]] to install it instead of using the &amp;quot;raw&amp;quot; Optware package.&lt;br /&gt;
&lt;br /&gt;
==Installing &amp;quot;raw&amp;quot; nslu2-linux.org Optware packages==&lt;br /&gt;
&lt;br /&gt;
Make your filesystem read-write&lt;br /&gt;
&lt;br /&gt;
   mount -o rw,remount /&lt;br /&gt;
&lt;br /&gt;
Then you need to download a fresh copy of the package list from nslu2-linux.org.&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt update&lt;br /&gt;
&lt;br /&gt;
Then you can use the list, list_installed, info, and install commands as needed&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt install python25&lt;br /&gt;
&lt;br /&gt;
Don't forget to make your filesystem read-only once you're done.&lt;br /&gt;
&lt;br /&gt;
   mount -o ro,remount /&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9580</id>
		<title>Optware</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9580"/>
		<updated>2010-04-12T14:11:34Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* &amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Optware==&lt;br /&gt;
&lt;br /&gt;
[[Preware]] has several of the most popular and useful Optware packages available in the Optware feed.  If the Optware package you're looking for is available in [[Preware]], just use [[Preware]] to install it.  &lt;br /&gt;
&lt;br /&gt;
At a minimum, please install the Optware Bootstrap using [[Preware]].  The instructions on this page assume that you have done so.&lt;br /&gt;
&lt;br /&gt;
These instructions also assume you have command-line access to your Pre.  Instructions for getting this access can be found at  [[Application:OpenSSH|Access via SSH]] and [[Portal:Accessing_Linux|Access via Novaterm]].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages==&lt;br /&gt;
&lt;br /&gt;
As mentioned previously, the Optware feed from preware.org includes a selection of popular packages.  These package file names follow the pattern '''mobi.optware.*'''.&lt;br /&gt;
&lt;br /&gt;
There are hundreds of Optware packages that are not available from preware.org.  These packages are hosted at nslu2-linux.org, and we will refer to these as '''raw''' Optware packages (or &amp;quot;the nslu2-linux.org Optware packages&amp;quot;).   One other important distinction is that raw Optware packages are managed using the '''ipkg-opt''' command, while the all packages installed by Preware (including the mobi.optware.* packages) are managed under the covers using the stock '''ipkg''' command.&lt;br /&gt;
&lt;br /&gt;
Let's re-state the advice that if there is a mobi.optware.* version of the package you are looking for you should use [[Preware]] to install it instead of using the &amp;quot;raw&amp;quot; Optware package.&lt;br /&gt;
&lt;br /&gt;
==Installing &amp;quot;raw&amp;quot; nslu2-linux.org Optware packages==&lt;br /&gt;
&lt;br /&gt;
Make your filesystem read-write&lt;br /&gt;
&lt;br /&gt;
   mount -o rw,remount /&lt;br /&gt;
&lt;br /&gt;
Then you need to download a fresh copy of the package list from nslu2-linux.org.&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt update&lt;br /&gt;
&lt;br /&gt;
Then you can use the list, list_installed, info, and install commands as needed&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt install python25&lt;br /&gt;
&lt;br /&gt;
Don't forget to make your filesystem read-only once you're done.&lt;br /&gt;
&lt;br /&gt;
   mount -o ro,remount /&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9579</id>
		<title>Optware</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9579"/>
		<updated>2010-04-12T14:10:59Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* &amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Optware==&lt;br /&gt;
&lt;br /&gt;
[[Preware]] has several of the most popular and useful Optware packages available in the Optware feed.  If the Optware package you're looking for is available in [[Preware]], just use [[Preware]] to install it.  &lt;br /&gt;
&lt;br /&gt;
At a minimum, please install the Optware Bootstrap using [[Preware]].  The instructions on this page assume that you have done so.&lt;br /&gt;
&lt;br /&gt;
These instructions also assume you have command-line access to your Pre.  Instructions for getting this access can be found at  [[Application:OpenSSH|Access via SSH]] and [[Portal:Accessing_Linux|Access via Novaterm]].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages==&lt;br /&gt;
&lt;br /&gt;
As mentioned previously, the Optware feed from preware.org includes a selection of popular packages.  These package file names follow the pattern '''mobi.optware.*'''.&lt;br /&gt;
&lt;br /&gt;
There are hundreds of Optware packages that are not available from preware.org.  These packages are hosted at nslu2-linux.org, and we will refer to these as &amp;quot;raw&amp;quot; Optware packages (or &amp;quot;the nslu2-linux.org Optware packages&amp;quot;).   One other important distinction is that raw Optware packages are managed using the '''ipkg-opt''' command, while the all packages installed by Preware (including the mobi.optware.* packages) are managed under the covers using the stock '''ipkg''' command.&lt;br /&gt;
&lt;br /&gt;
Let's re-state the advice that if there is a mobi.optware.* version of the package you are looking for you should use [[Preware]] to install it instead of using the &amp;quot;raw&amp;quot; Optware package.&lt;br /&gt;
&lt;br /&gt;
==Installing &amp;quot;raw&amp;quot; nslu2-linux.org Optware packages==&lt;br /&gt;
&lt;br /&gt;
Make your filesystem read-write&lt;br /&gt;
&lt;br /&gt;
   mount -o rw,remount /&lt;br /&gt;
&lt;br /&gt;
Then you need to download a fresh copy of the package list from nslu2-linux.org.&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt update&lt;br /&gt;
&lt;br /&gt;
Then you can use the list, list_installed, info, and install commands as needed&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt install python25&lt;br /&gt;
&lt;br /&gt;
Don't forget to make your filesystem read-only once you're done.&lt;br /&gt;
&lt;br /&gt;
   mount -o ro,remount /&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9578</id>
		<title>Optware</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9578"/>
		<updated>2010-04-12T14:09:56Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* &amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Optware==&lt;br /&gt;
&lt;br /&gt;
[[Preware]] has several of the most popular and useful Optware packages available in the Optware feed.  If the Optware package you're looking for is available in [[Preware]], just use [[Preware]] to install it.  &lt;br /&gt;
&lt;br /&gt;
At a minimum, please install the Optware Bootstrap using [[Preware]].  The instructions on this page assume that you have done so.&lt;br /&gt;
&lt;br /&gt;
These instructions also assume you have command-line access to your Pre.  Instructions for getting this access can be found at  [[Application:OpenSSH|Access via SSH]] and [[Portal:Accessing_Linux|Access via Novaterm]].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages==&lt;br /&gt;
&lt;br /&gt;
As mentioned previously, the Optware feed from preware.org includes a selection of popular packages.  These package file names follow the pattern '''mobi.optware.*'''.&lt;br /&gt;
&lt;br /&gt;
There are hundreds of Optware packages that are '''not''' available from preware.org.  These packages are hosted at nslu2-linux.org, and we will refer to these as '''&amp;quot;raw&amp;quot;''' Optware packages (or &amp;quot;the nslu2-linux.org Optware packages&amp;quot;).   One other important distinction is that &amp;quot;raw&amp;quot; Optware packages are managed using the '''ipkg-opt''' command, while the all packages installed by Preware (including the mobi.optware.* packages) are managed under the covers using the stock '''ipkg''' command.&lt;br /&gt;
&lt;br /&gt;
Let's re-state the advice that if there is a mobi.optware.* version of the package you are looking for you should use [[Preware]] to install it instead of using the &amp;quot;raw&amp;quot; Optware package.&lt;br /&gt;
&lt;br /&gt;
==Installing &amp;quot;raw&amp;quot; nslu2-linux.org Optware packages==&lt;br /&gt;
&lt;br /&gt;
Make your filesystem read-write&lt;br /&gt;
&lt;br /&gt;
   mount -o rw,remount /&lt;br /&gt;
&lt;br /&gt;
Then you need to download a fresh copy of the package list from nslu2-linux.org.&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt update&lt;br /&gt;
&lt;br /&gt;
Then you can use the list, list_installed, info, and install commands as needed&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt install python25&lt;br /&gt;
&lt;br /&gt;
Don't forget to make your filesystem read-only once you're done.&lt;br /&gt;
&lt;br /&gt;
   mount -o ro,remount /&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9577</id>
		<title>Optware</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Optware&amp;diff=9577"/>
		<updated>2010-04-12T14:08:56Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: New page: ==Using Optware==  Preware has several of the most popular and useful Optware packages available in the Optware feed.  If the Optware package you're looking for is available in [[Prewa...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Using Optware==&lt;br /&gt;
&lt;br /&gt;
[[Preware]] has several of the most popular and useful Optware packages available in the Optware feed.  If the Optware package you're looking for is available in [[Preware]], just use [[Preware]] to install it.  &lt;br /&gt;
&lt;br /&gt;
At a minimum, please install the Optware Bootstrap using [[Preware]].  The instructions on this page assume that you have done so.&lt;br /&gt;
&lt;br /&gt;
These instructions also assume you have command-line access to your Pre.  Instructions for getting this access can be found at  [[Application:OpenSSH|Access via SSH]] and [[Portal:Accessing_Linux|Access via Novaterm]].&lt;br /&gt;
&lt;br /&gt;
==&amp;quot;Raw&amp;quot; Optware packages vs. mobi.optware.* packages==&lt;br /&gt;
&lt;br /&gt;
As mentioned previously, the Optware feed from preware.org includes a selection of popular packages.  These package files follow the pattern '''mobi.optware.*'''.&lt;br /&gt;
&lt;br /&gt;
There are hundreds of Optware packages that are '''not''' available from preware.org.  These packages are hosted at nslu2-linux.org, and we will refer to these as '''&amp;quot;raw&amp;quot;''' Optware packages (or &amp;quot;the nslu2-linux.org Optware packages&amp;quot;).   One other important distinction is that &amp;quot;raw&amp;quot; Optware packages are managed using the '''ipkg-opt''' command, while the all packages installed by Preware (including the mobi.optware.* packages) are managed under the covers using the stock '''ipkg''' command.&lt;br /&gt;
&lt;br /&gt;
Let's re-state the advice that if there is a mobi.optware.* version of the package you are looking for you should use [[Preware]] to install it instead of using the &amp;quot;raw&amp;quot; Optware package.&lt;br /&gt;
&lt;br /&gt;
==Installing &amp;quot;raw&amp;quot; nslu2-linux.org Optware packages==&lt;br /&gt;
&lt;br /&gt;
Make your filesystem read-write&lt;br /&gt;
&lt;br /&gt;
   mount -o rw,remount /&lt;br /&gt;
&lt;br /&gt;
Then you need to download a fresh copy of the package list from nslu2-linux.org.&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt update&lt;br /&gt;
&lt;br /&gt;
Then you can use the list, list_installed, info, and install commands as needed&lt;br /&gt;
&lt;br /&gt;
  ipkg-opt install python25&lt;br /&gt;
&lt;br /&gt;
Don't forget to make your filesystem read-only once you're done.&lt;br /&gt;
&lt;br /&gt;
   mount -o ro,remount /&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:OpenSSH&amp;diff=9527</id>
		<title>Application:OpenSSH</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:OpenSSH&amp;diff=9527"/>
		<updated>2010-04-05T15:13:53Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: The bottom section had content from the dropbear package.  I updated it to be accurate for the openssh package.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
OpenSSH is a FREE version of the SSH connectivity tools that technical users of the Internet rely on.&lt;br /&gt;
&lt;br /&gt;
Please refer to the [http://www.openssh.com/ OpenSSH Home Page] and read the [http://www.openssh.com/manual.html OpenSSH Manual Pages] before using this package.&lt;br /&gt;
&lt;br /&gt;
There are two ways to generate the keys below. The PC one assumes you have a user account name and password to gain access with putty I assume it is not possible to complete the steps for that method without setting up a user account. I find the webOS method to be much easier to follow. And I imagine if you are new to linux and accessing linux on webOS then you will find the webOS method is the one you will want to follow. I also recommend the webOS method if you have trouble following the PC method or find it too wordy.&lt;br /&gt;
&lt;br /&gt;
==Generate Keys from Windows PC Method==&lt;br /&gt;
&lt;br /&gt;
If you are connecting to your webOS device from a Windows host computer, please read the [http://unixwiz.net/techtips/putty-openssh.html Secure Linux/UNIX access with PuTTY and OpenSSH Tech Tip] and follow those instructions for generating your SSH keys. For the section &amp;quot;Install public key on Linux system&amp;quot;, you will need to put the &amp;quot;Public Key for pasting into OpenSSH authorized_keys file&amp;quot; into a /home/root/.ssh/authorized_keys file.&lt;br /&gt;
&lt;br /&gt;
Optware installs openssh under /opt, so you should replace any references to /bin, /sbin, and /etc in the OpenSSH documentation with /opt/bin, /opt/sbin and /opt/etc respectively.&lt;br /&gt;
&lt;br /&gt;
=== Setting up ExpanDrive (SftpDrive) ===&lt;br /&gt;
&lt;br /&gt;
''Note: This requires access to the device's file system by any means.''&lt;br /&gt;
* Open ExpanDrive&lt;br /&gt;
* Click &amp;quot;New drive...&amp;quot;&lt;br /&gt;
* Type a name into the &amp;quot;Drive Name&amp;quot; box.&lt;br /&gt;
* Type in the IP address of the device in the &amp;quot;Server&amp;quot; box.&lt;br /&gt;
* Type &amp;quot;root&amp;quot; into the &amp;quot;Username&amp;quot; box.&lt;br /&gt;
* Choose &amp;quot;Use a public key to log in...&amp;quot; from the &amp;quot;Authentication&amp;quot; drop-down.&lt;br /&gt;
* Click &amp;quot;Create New Key Pair&amp;quot;&lt;br /&gt;
* Choose &amp;quot;RSA (ssh-rsa)&amp;quot; from the &amp;quot;Key type&amp;quot; drop-down.&lt;br /&gt;
* Click &amp;quot;Create Key Pairs&amp;quot;.&lt;br /&gt;
* Click &amp;quot;Ok&amp;quot;.&lt;br /&gt;
* Click &amp;quot;Export current Key Pair&amp;quot;&lt;br /&gt;
* Click both &amp;quot;Export Private Key&amp;quot; and &amp;quot;Export Public Key&amp;quot; and save the files somewhere (remember where you saved them) and click &amp;quot;Ok&amp;quot;.&lt;br /&gt;
* Open the .pub file you saved in the previous step using a plain text editor.&lt;br /&gt;
* Copy the contents of the entire file and paste it into &amp;quot;/var/home/root/.ssh/authorized_keys&amp;quot; (on the device) on the next line and save it.&lt;br /&gt;
* Go back to ExpanDrive and click &amp;quot;Ok&amp;quot; on the still open &amp;quot;Public Key Authentication Properties&amp;quot; dialog.&lt;br /&gt;
* Choose &amp;quot;Show the entire server&amp;quot; from the &amp;quot;Directory&amp;quot; drop-down.&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to connect and save the configuration.&lt;br /&gt;
* After the connection process is complete, a new Explorer window will open and you will be in the &amp;quot;%DriveLetter%:\var\home\root&amp;quot; directory.&lt;br /&gt;
&lt;br /&gt;
==Generate Keys from webOS Method==&lt;br /&gt;
&lt;br /&gt;
Launch Preware and install [http://www.webos-internals.org/wiki/Application:Terminal Terminal] if you haven't previously installed it. It will be used to create your secure SSH keys for use with OpenSSH directly on your webOS device. Once Terminal is installed launch it and follow these steps:&lt;br /&gt;
&lt;br /&gt;
To go to the root directory type:&lt;br /&gt;
&lt;br /&gt;
 cd /&lt;br /&gt;
&lt;br /&gt;
Then type:&lt;br /&gt;
&lt;br /&gt;
 /opt/bin/ssh-keygen&lt;br /&gt;
&lt;br /&gt;
to create the private and public keys. After a short time (about a minute) accept the default filename by pressing Enter at the prompt. Enter a passphrase for your private key file. You will use this passphrase later, so remember it. After the key file is generated type:&lt;br /&gt;
&lt;br /&gt;
 mv /home/root/.ssh/id_rsa.pub /home/root/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
to move the public key to become the /home/root/.ssh/authorized_keys file.&lt;br /&gt;
&lt;br /&gt;
Now the secret key needs to be transferred to the PC you want to access linux on webOS from. First copy the secret key to the area accessible from drive mode. To do this, type:&lt;br /&gt;
&lt;br /&gt;
 cp /home/root/.ssh/id_rsa /media/internal/id_rsa&lt;br /&gt;
&lt;br /&gt;
We are all done using Terminal so you can close it by tossing it off the top of the screen like you would for any other application. Next you need to connect your device to the PC with the USB cable and tap drive mode. Once drive mode is active open the drive letter for the device on your PC (ex. &amp;quot;PALM PRE (E:)&amp;quot;). Copy the &amp;quot;id_rsa&amp;quot; file to your PC somewhere you will remember it's location (ex. to the desktop).&lt;br /&gt;
&lt;br /&gt;
===Using the key with PuTTY===&lt;br /&gt;
&lt;br /&gt;
If you have the webOS SDK installed you will already have PuTTY (in \SDK\bin\ of the folder the SDK was installed in). If you don't have the webOS SDK installed you can install it to get PuTTY or you can download [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY]. You will also need PuTTYgen. If you will be using winSCP you already have it (in start menu&amp;gt;winSCP&amp;gt;key tools) or download it from the same site as PuTTY. If this is your first time using PuTTY to access linux on webOS or wish to verify the configuration is correct please follow these steps:&lt;br /&gt;
&lt;br /&gt;
*Open PuTTY.&lt;br /&gt;
*Enter the IP address assigned to your webOS device (ex. 192.168.1.100).&lt;br /&gt;
*Enter 22 for the port number.&lt;br /&gt;
*Select the radio button for SSH&lt;br /&gt;
*Select the Data section under Connection on the left.&lt;br /&gt;
*Enter root for the auto-login username.&lt;br /&gt;
*Select the Auth section under SSH under Connection on the left.&lt;br /&gt;
*Leave PuTTY open here and follow these steps:&lt;br /&gt;
**Open PuTTYgen.&lt;br /&gt;
**Select the conversions menu.&lt;br /&gt;
**Select import key.&lt;br /&gt;
**Choose the id_rsa file you copied to the PC from your device and click open.&lt;br /&gt;
**Enter the passphrase you entered during key generation and click ok.&lt;br /&gt;
***You will see all sorts of information in the window at this point.&lt;br /&gt;
**Click the save private key button.&lt;br /&gt;
**Enter a name for it (no need to type the ppk extension) and save it somewhere you will remember it's location.&lt;br /&gt;
**Close PuTTYgen and go back to PuTTY where we left off.&lt;br /&gt;
*Click the Browse button for private key file.&lt;br /&gt;
*Select the ppk file you made with PuTTYgen and click open.&lt;br /&gt;
*Select Session on the left.&lt;br /&gt;
*Enter a name in the Saved Session box and click the save button.&lt;br /&gt;
**This will allow you to load the settings for future use.&lt;br /&gt;
*Make sure your device's wifi is on.&lt;br /&gt;
**You can install nodoze to keep wifi on if need be.&lt;br /&gt;
*Click open in PuTTY to connect.&lt;br /&gt;
&lt;br /&gt;
If everything is configured correctly you should see the following in the terminal window on your pc:&lt;br /&gt;
&lt;br /&gt;
 Using username &amp;quot;root&amp;quot;.&lt;br /&gt;
 Authenticating with public key &amp;quot;imported-openssh-key&amp;quot;&lt;br /&gt;
 Passphrase for key &amp;quot;imported-openssh-key&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
*Enter the passphrase you created during key generation.&lt;br /&gt;
&lt;br /&gt;
You should now see:&lt;br /&gt;
&lt;br /&gt;
 root@palm-webos-device:/var/home/root#&lt;br /&gt;
&lt;br /&gt;
Congratulations you now have access to linux on your webOS device. You may now begin using the command prompt to work with anything you need or want to use the command prompt for. There is all sorts of stuff you can use it for so if you haven't already check out the rest of the webos-internals site for a number of things you can do. You may also want to setup winSCP for a explorer like windows interface to access and work with files etc as well.&lt;br /&gt;
&lt;br /&gt;
===Using the key with winSCP===&lt;br /&gt;
&lt;br /&gt;
*Open winSCP.&lt;br /&gt;
*Enter the IP address assigned to your webOS device (ex. 192.168.1.100) in the host name box.&lt;br /&gt;
*Enter 22 for the port number.&lt;br /&gt;
*Enter root in the user name box.&lt;br /&gt;
*Leave winSCP open and follow these steps:&lt;br /&gt;
**Open PuTTYgen (startmenu&amp;gt;winSCP&amp;gt;key tools).&lt;br /&gt;
**Select the conversions menu.&lt;br /&gt;
**Select import key.&lt;br /&gt;
**Choose the id_rsa file you copied to the PC from your device and click open.&lt;br /&gt;
**Enter the passphrase you entered during key generation and click ok.&lt;br /&gt;
***You will see all sorts of information in the window at this point.&lt;br /&gt;
**Click the save private key button.&lt;br /&gt;
**Enter a name for it (no need to type the ppk extension) and save it somewhere you will remember it's location.&lt;br /&gt;
**Close PuTTYgen and go back to winSCP where we left off.&lt;br /&gt;
*Click the &amp;quot;...&amp;quot; button for the private key file box.&lt;br /&gt;
*Select the ppk file you made with PuTTYgen and click open.&lt;br /&gt;
*Click the save button and enter a name and click ok.&lt;br /&gt;
**This will allow you to load the settings for future use.&lt;br /&gt;
*You should now be seeing the stored sessions list with the session you just saved.&lt;br /&gt;
*Make sure your device's wifi is on.&lt;br /&gt;
**You can install nodoze to keep wifi on if need be.&lt;br /&gt;
*Select the session you saved and click the login button.&lt;br /&gt;
*Enter the passphrase you created during key generation.&lt;br /&gt;
&lt;br /&gt;
If everything is configured correctly you should see a window with a list of folders similar to explorer. Congratulations you now have access to linux on your webOS device. You may now begin working with files on the device. You can do stuff like copy, delete, etc file like in windows. You can also edit files. Certain actions will require read write mode (mount -o remount,rw / entered at the command prompt in PuTTY or terminal, mount -o remount,ro / to go back to read only mode).&lt;br /&gt;
&lt;br /&gt;
===Using the key with SSH in Terminal===&lt;br /&gt;
&lt;br /&gt;
Put your private key file in the standard location ~/.ssh/id_rsa on the machine you are using to connect to the Pre or you can inform ssh by using the -i switch as follow:&lt;br /&gt;
&lt;br /&gt;
user@host:~$ ssh -i /path/to/private/key remoteuser@remotehost&lt;br /&gt;
&lt;br /&gt;
===Enabling non-root Password logins via SSH using the command line===&lt;br /&gt;
&lt;br /&gt;
Access the command line on your Pre via Terminal, SSH, or Novaterm.&lt;br /&gt;
&lt;br /&gt;
Type the following at the root prompt to allow write access to your / disk:&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
Edit the mobi.optware.openssh file in the /etc/event.d/ directory.  Find the exec line and change&lt;br /&gt;
&lt;br /&gt;
 PasswordAuthentication no&amp;quot;&lt;br /&gt;
to&lt;br /&gt;
 &amp;quot;PasswordAuthentication yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The line should now look like this: &lt;br /&gt;
&lt;br /&gt;
 exec /opt/sbin/sshd -D -p 22 -o &amp;quot;PasswordAuthentication yes&amp;quot; -o &amp;quot;PermitRootLogin without-password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Save and exit with ZZ or :wq, then restart the openssh service as follows:&lt;br /&gt;
&lt;br /&gt;
 stop mobi.optware.openssh&lt;br /&gt;
 start mobi.optware.openssh&lt;br /&gt;
&lt;br /&gt;
Once you are finished make sure you make your / disk read-only again (this is the default):&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,ro /&lt;br /&gt;
&lt;br /&gt;
Do not change anything else. Now if you've created a username for yourself and set a password, you'll be able to log in with a password. After every Palm WebOS upgrade, you'll need to recreate any accounts other than root with adduser &amp;lt;account&amp;gt;, which will then prompt you to set a password.&lt;br /&gt;
&lt;br /&gt;
Warning:&lt;br /&gt;
It is strongly suggested that you set up another ssh key for any additional users instead of using the password authentication method. Just follow the steps above.&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Updating_webOS_Versions&amp;diff=7197</id>
		<title>Portal:Updating webOS Versions</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Updating_webOS_Versions&amp;diff=7197"/>
		<updated>2009-11-16T21:41:28Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{portal-header&lt;br /&gt;
|Before updating to a new version of webOS, it is very important to follow certain procedures. Here is an outline of the recommended way to update your webOS when you use Patches (and/or Themes) installed via [[Application:Preware|Preware]]. Deviating from this procedure could cause unwanted results.&lt;br /&gt;
&lt;br /&gt;
*'''1.''' Open [[Application:Preware|Preware]] and select Installed Packages.&lt;br /&gt;
*'''2.''' Remove any Theme(s) you have installed. There SHOULD only be one...&lt;br /&gt;
*'''3.''' Go back to the main menu and select &amp;quot;List of Everything&amp;quot; and search for &amp;quot;Emergency&amp;quot;.&lt;br /&gt;
*'''4.''' Select and install &amp;quot;Emergency Patch Recovery&amp;quot;. Note: This will remove all patches. Please read the description.&lt;br /&gt;
** After it completes (might take a couple minutes), choose &amp;quot;Update Feeds&amp;quot; from the App Menu (top left corner).  Then go back to main menu and &amp;quot;Installed Packages&amp;quot;.&lt;br /&gt;
***If &amp;quot;Patches&amp;quot; IS NOT listed as a category, go to step 5.&lt;br /&gt;
***If &amp;quot;Patches&amp;quot; IS listed as a category, select it and remove any patches still installed. Then continue to step 5.&lt;br /&gt;
*'''5.''' If you have [[Application:Luna Manager|Luna Manager]] installed, start it and &amp;quot;Restart Luna&amp;quot;. If not, reboot your phone.&lt;br /&gt;
*'''6.''' Update webOS. :)&lt;br /&gt;
*'''7.''' Fire up [[Application:Preware|Preware]] and bring down the App Menu (top left corner).&lt;br /&gt;
*'''8.''' Select Update Feeds.&lt;br /&gt;
*'''9.''' Continue on to reinstalling your Patches/Theme.&lt;br /&gt;
*'''10.''' Thank the webOS-Internals group!&lt;br /&gt;
&lt;br /&gt;
If you need any assistance, or just want to chat, download an IRC client and join us in [irc://irc.freenode.net/webos-internals #webos-internals] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''For advanced users:'' You can dump a list of installed packages using the following technique before running the Emergency Patch Recovery (EPR) tool.  This assumes you already have shell access to your your Pre via novaterm or ssh.&lt;br /&gt;
&lt;br /&gt;
*'''1.''' Ssh into your Pre (you do not need to adopt root privileges)&lt;br /&gt;
*'''2.''' Type (no quotes) &amp;quot;ipkg -o /var list_installed &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep patches&amp;quot;.  This will display the list of patches applied to your Pre.  You can redirect this output to a file or copy-and-paste it from your shell window.&lt;br /&gt;
&lt;br /&gt;
Special thanks to dbSooner on the [irc://irc.freenode.net/webos-internals #webos-internals] IRC channel for proposing this method.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Updating_webOS_Versions&amp;diff=7196</id>
		<title>Portal:Updating webOS Versions</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Updating_webOS_Versions&amp;diff=7196"/>
		<updated>2009-11-16T21:40:30Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{portal-header&lt;br /&gt;
|Before updating to a new version of webOS, it is very important to follow certain procedures. Here is an outline of the recommended way to update your webOS when you use Patches (and/or Themes) installed via [[Application:Preware|Preware]]. Deviating from this procedure could cause unwanted results.&lt;br /&gt;
&lt;br /&gt;
*'''1.''' Open [[Application:Preware|Preware]] and select Installed Packages.&lt;br /&gt;
*'''2.''' Remove any Theme(s) you have installed. There SHOULD only be one...&lt;br /&gt;
*'''3.''' Go back to the main menu and select &amp;quot;List of Everything&amp;quot; and search for &amp;quot;Emergency&amp;quot;.&lt;br /&gt;
*'''4.''' Select and install &amp;quot;Emergency Patch Recovery&amp;quot;. Note: This will remove all patches. Please read the description.&lt;br /&gt;
** After it completes (might take a couple minutes), choose &amp;quot;update feeds&amp;quot; from the PreWare menu.  Then go back to main menu and &amp;quot;Installed Packages&amp;quot;.&lt;br /&gt;
***If &amp;quot;Patches&amp;quot; IS NOT listed as a category, go to step 5.&lt;br /&gt;
***If &amp;quot;Patches&amp;quot; IS listed as a category, select it and remove any patches still installed. Then continue to step 5.&lt;br /&gt;
*'''5.''' If you have [[Application:Luna Manager|Luna Manager]] installed, start it and &amp;quot;Restart Luna&amp;quot;. If not, reboot your phone.&lt;br /&gt;
*'''6.''' Update webOS. :)&lt;br /&gt;
*'''7.''' Fire up [[Application:Preware|Preware]] and bring down the App Menu (top left corner).&lt;br /&gt;
*'''8.''' Select Update Feeds.&lt;br /&gt;
*'''9.''' Continue on to reinstalling your Patches/Theme.&lt;br /&gt;
*'''10.''' Thank the webOS-Internals group!&lt;br /&gt;
&lt;br /&gt;
If you need any assistance, or just want to chat, download an IRC client and join us in [irc://irc.freenode.net/webos-internals #webos-internals] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''For advanced users:'' You can dump a list of installed packages using the following technique before running the Emergency Patch Recovery (EPR) tool.  This assumes you already have shell access to your your Pre via novaterm or ssh.&lt;br /&gt;
&lt;br /&gt;
*'''1.''' Ssh into your Pre (you do not need to adopt root privileges)&lt;br /&gt;
*'''2.''' Type (no quotes) &amp;quot;ipkg -o /var list_installed &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep patches&amp;quot;.  This will display the list of patches applied to your Pre.  You can redirect this output to a file or copy-and-paste it from your shell window.&lt;br /&gt;
&lt;br /&gt;
Special thanks to dbSooner on the [irc://irc.freenode.net/webos-internals #webos-internals] IRC channel for proposing this method.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Updating_webOS_Versions&amp;diff=7195</id>
		<title>Portal:Updating webOS Versions</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Updating_webOS_Versions&amp;diff=7195"/>
		<updated>2009-11-16T21:37:29Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{portal-header&lt;br /&gt;
|Before updating to a new version of webOS, it is very important to follow certain procedures. Here is an outline of the recommended way to update your webOS when you use Patches (and/or Themes) installed via [[Application:Preware|Preware]]. Deviating from this procedure could cause unwanted results.&lt;br /&gt;
&lt;br /&gt;
*'''1.''' Open [[Application:Preware|Preware]] and select Installed Packages.&lt;br /&gt;
*'''2.''' Remove any Theme(s) you have installed. There SHOULD only be one...&lt;br /&gt;
*'''3.''' Go back to the main menu and select &amp;quot;Patches&amp;quot; and then &amp;quot;Recovery&amp;quot;.&lt;br /&gt;
** You might need to select &amp;quot;Available Packages&amp;quot; before &amp;quot;Patches&amp;quot;.&lt;br /&gt;
*'''4.''' Install &amp;quot;Emergency Patch Recovery&amp;quot;. Note: This will remove all patches. Please read the description.&lt;br /&gt;
** After it completes (might take a couple minutes), choose &amp;quot;update feeds&amp;quot; from the PreWare menu.  Then go back to main menu and &amp;quot;Installed Packages&amp;quot;.&lt;br /&gt;
***If &amp;quot;Patches&amp;quot; IS NOT listed as a category, go to step 5.&lt;br /&gt;
***If &amp;quot;Patches&amp;quot; IS listed as a category, select it and remove any patches still installed. Then continue to step 5.&lt;br /&gt;
*'''5.''' If you have [[Application:Luna Manager|Luna Manager]] installed, start it and &amp;quot;Restart Luna&amp;quot;. If not, reboot your phone.&lt;br /&gt;
*'''6.''' Update webOS. :)&lt;br /&gt;
*'''7.''' Fire up [[Application:Preware|Preware]] and bring down the App Menu (top left corner).&lt;br /&gt;
*'''8.''' Select Update Feeds.&lt;br /&gt;
*'''9.''' Continue on to reinstalling your Patches/Theme.&lt;br /&gt;
*'''10.''' Thank the webOS-Internals group!&lt;br /&gt;
&lt;br /&gt;
If you need any assistance, or just want to chat, download an IRC client and join us in [irc://irc.freenode.net/webos-internals #webos-internals] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''For advanced users:'' You can dump a list of installed packages using the following technique before running the Emergency Patch Recovery (EPR) tool.  This assumes you already have shell access to your your Pre via novaterm or ssh.&lt;br /&gt;
&lt;br /&gt;
*'''1.''' Ssh into your Pre (you do not need to adopt root privileges)&lt;br /&gt;
*'''2.''' Type (no quotes) &amp;quot;ipkg -o /var list_installed &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep patches&amp;quot;.  This will display the list of patches applied to your Pre.  You can redirect this output to a file or copy-and-paste it from your shell window.&lt;br /&gt;
&lt;br /&gt;
Special thanks to dbSooner on the [irc://irc.freenode.net/webos-internals #webos-internals] IRC channel for proposing this method.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Portal:Updating_webOS_Versions&amp;diff=7155</id>
		<title>Portal:Updating webOS Versions</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Portal:Updating_webOS_Versions&amp;diff=7155"/>
		<updated>2009-11-14T21:46:38Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{portal-header&lt;br /&gt;
|Before updating to a new version of webOS, it is very important to follow certain procedures. Here is an outline of the recommended way to update your webOS when you use Patches (and/or Themes) installed via [[Application:Preware|Preware]]. Deviating from this procedure could cause unwanted results.&lt;br /&gt;
&lt;br /&gt;
*'''1.''' Open [[Application:Preware|Preware]] and select Installed Packages.&lt;br /&gt;
*'''2.''' Remove any Theme(s) you have installed. There SHOULD only be one...&lt;br /&gt;
*'''3.''' Go back to the main menu and select &amp;quot;Patches&amp;quot; and then &amp;quot;Recovery&amp;quot;.&lt;br /&gt;
*'''4.''' Install &amp;quot;Emergency Patch Recovery&amp;quot;. Note: This will remove all patches. Please read the description.&lt;br /&gt;
*'''5.''' If you have [[Application:Luna Manager|Luna Manager]] installed, start it and &amp;quot;Restart Luna&amp;quot;. If not, reboot your phone.&lt;br /&gt;
*'''6.''' Update webOS. :)&lt;br /&gt;
*'''7.''' Fire up [[Application:Preware|Preware]] and bring down the App Menu (top left corner).&lt;br /&gt;
*'''8.''' Select Update Feeds.&lt;br /&gt;
*'''9.''' Continue on to reinstalling your Patches/Theme.&lt;br /&gt;
*'''10.''' Thank the webOS-Internals group!&lt;br /&gt;
&lt;br /&gt;
If you need any assistance, or just want to chat, download an IRC client and join us in [irc://irc.freenode.net/webos-internals #webos-internals] on FreeNode.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''For advanced users:'' You can dump a list of installed packages using the following technique before running the Emergency Patch Recovery (EPR) tool.  This assumes you already have shell access to your your Pre via novaterm or ssh.&lt;br /&gt;
&lt;br /&gt;
*'''1.''' Ssh into your Pre (you do not need to adopt root privileges)&lt;br /&gt;
*'''2.''' Type (no quotes) &amp;quot;ipkg -o /var list_installed &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep patches&amp;quot;.  This will display the list of patches applied to your Pre.  You can redirect this output to a file or copy-and-paste it from your shell window.&lt;br /&gt;
&lt;br /&gt;
Special thanks to dbSooner on the [irc://irc.freenode.net/webos-internals #webos-internals] IRC channel for proposing this method.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Talk:Patch_Email_DeleteAll&amp;diff=6585</id>
		<title>Talk:Patch Email DeleteAll</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Talk:Patch_Email_DeleteAll&amp;diff=6585"/>
		<updated>2009-10-19T15:25:59Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* Delete some vs. all messages? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Icon File=&lt;br /&gt;
Do you know where I could get a list of valid icons? - [[User:Ikyo|Ikyo]]&lt;br /&gt;
&lt;br /&gt;
=Delete some vs. all messages?=&lt;br /&gt;
Is there a way to select a certain number of messages and then delete those versus all those on the page? -[[User:Mamouton|Mamouton]]&lt;br /&gt;
&lt;br /&gt;
:Not currently with this patch. I figure if I am going to click on them to select them to be deleted it is just as easy to swipe them away at the same time. With that said I believe I saw someone working on an approach similar to what you are describing on precentral.net. -[[User:Lclarkjr|Lclarkjr]]&lt;br /&gt;
&lt;br /&gt;
=Mark some messages as read?=&lt;br /&gt;
Is there a way to select a certain number of messages and then mark them as read? I'll get a batch of messages from our monitoring server that I want to mark as read, but I have a dozen other messages in my inbox that I don't want marked as read at the same time.  Do you know who may have already been working on this?  Maybe I can pitch in and help them (or you) implement this -[[User:nt4cats|nt4cats]]&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6442</id>
		<title>Solution to App Catalog Installation Limit</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Solution_to_App_Catalog_Installation_Limit&amp;diff=6442"/>
		<updated>2009-10-12T15:34:38Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* Solution (symbolic link method) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Based on rwhitby's findings that temporarily moving /var/usr/palm/applications will allow installing apps from the App Catalog, here's a permanent way to keep the apps on (much larger) /media/internal by using links. This will permanently save space on /var.&lt;br /&gt;
&lt;br /&gt;
It's unfortunate that Palm has not resolved the issue in the 1.2 update. This is a tactical workaround that could potentially work long term, also saving space on /var, but this needs support by the homebrew community to add in the homebrew installer apps.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This solution involves creating a (hidden) directory in the /media/internal area, moving selected applications to the newly created directory, and then creating a symbolic link in the /var/usr/palm/applications directory pointing to the new location. This frees up the disk space from the relatively limited /var volume to the larger /media/internal. The included script (which must be created) will move the files and create the appropriate link. It will also provide information on the size of the applications stored in the /var/usr/palm/applications directory.&lt;br /&gt;
&lt;br /&gt;
== Solution (symbolic link method) ==&lt;br /&gt;
&lt;br /&gt;
Create a script to move apps to new home and create link.  You can use an editor or use the following cat command to paste the code, for those not familiar with editors.&lt;br /&gt;
&lt;br /&gt;
Here's how to do it for those comfortable with accessing Linux...&lt;br /&gt;
&lt;br /&gt;
- Enter Linux mode on Pre through a computer (linux commands are in bold)&lt;br /&gt;
&lt;br /&gt;
- Set read/write to allow creating script&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''mount -o remount,rw / '''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- create a script using cat command, paste the code below and then do 'ctrl c' on the keyboard to break out.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;'''cat &amp;gt;/usr/bin/mvapp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- paste the code below here, press ctrl-c on keyboard to exit after pasting the code.&lt;br /&gt;
&lt;br /&gt;
- when you see a linux prompt, set command to be executable&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt; '''chmod 755 /usr/bin/mvapp''' &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
# This code is open for re-use with no restrictions.  xorg&lt;br /&gt;
# This is a working proof of concept script still in development.&lt;br /&gt;
# Intent is for someone to port to a webOS app.&lt;br /&gt;
# Use at your own risk.&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# versions:&lt;br /&gt;
# 0.1.0 - original (xorg)&lt;br /&gt;
# 0.1.1 - added unlink and clean functions (daventx)&lt;br /&gt;
# 0.1.2 - added bulkmv function, allows moving many apps (xorg)&lt;br /&gt;
# 0.1.3 - added option for tar backups (xorg)&lt;br /&gt;
# 0.1.4 - added listmoved function to show apps already moved (xorg)&lt;br /&gt;
# 0.1.5 - added restoreall function, couple cleanup items (xorg)&lt;br /&gt;
# 0.1.6 - fixed to show usage if no appname supplied to link/unlink (xorg)&lt;br /&gt;
# 0.1.7 - added cleanexit (w/mount ro /) &lt;br /&gt;
#       - added exit code documentation for javascripts calling this (xorg)&lt;br /&gt;
# 0.2.0 - will not move apps that would have attribute issues (xorg)&lt;br /&gt;
#       - will not move apps that have no json file&lt;br /&gt;
#       - improved error handling, improved listing shows actual app names&lt;br /&gt;
# 0.2.1 - minor update, proper cleanup if link command doesn't move app&lt;br /&gt;
#       - don't create tar backup until testing if app is movable&lt;br /&gt;
# 0.2.2 - minor update to make this script compatible with rwhitby's&lt;br /&gt;
#       - &amp;quot;Fair Dinkum App Limit&amp;quot; fix by providing an explicit path&lt;br /&gt;
#       - to the &amp;quot;du&amp;quot; command. (nt4cats)&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# variables: these are globally available to all functions&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
COMMAND=$1&lt;br /&gt;
APP=$2&lt;br /&gt;
MEDIA=/media/internal/.apps&lt;br /&gt;
VAR=/var/usr/palm/applications&lt;br /&gt;
&lt;br /&gt;
# Backup keeps file attributes but uses more /media space. Recommend doing backups.&lt;br /&gt;
BACKUP=1  # set to 1 for tar backups, 0 to disable&lt;br /&gt;
BACKUPDIR=/media/internal/.appbackups&lt;br /&gt;
&lt;br /&gt;
# This should be turned on.  Only turn off if javascript is calling this script.&lt;br /&gt;
PROMPTS=1&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# exit codes for javascripts:&lt;br /&gt;
# function usage:&lt;br /&gt;
# 1 - normal usage error&lt;br /&gt;
#&lt;br /&gt;
# function cleanapp:&lt;br /&gt;
# 0 - normal exit&lt;br /&gt;
#&lt;br /&gt;
# function linkapp:&lt;br /&gt;
# 10 - app name not supplied&lt;br /&gt;
# 11 - link already exists&lt;br /&gt;
# 12 - app does not exit in VAR&lt;br /&gt;
# 13 - copy failed from VAR to MEDIA&lt;br /&gt;
# 14 - removing app from VAR failed&lt;br /&gt;
# 15 - APP needs permissions not supported on FAT, did not move to MEDIA&lt;br /&gt;
# 16 - APP has no json file, did not move to MEDIA&lt;br /&gt;
#&lt;br /&gt;
# function unlinkapp:&lt;br /&gt;
# 20 - app name not supplied&lt;br /&gt;
# 21 - app doesn't exit on MEDIA&lt;br /&gt;
# 22 - tar restore failed&lt;br /&gt;
# 23 - copy failed&lt;br /&gt;
# 24 - remove failed&lt;br /&gt;
#&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: cleanexit - exit with cleanup items&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
cleanexit () {&lt;br /&gt;
 code=$1&lt;br /&gt;
&lt;br /&gt;
# put / back to read only&lt;br /&gt;
  mount -o remount,ro /&lt;br /&gt;
&lt;br /&gt;
# Uncomment if you want verbose exit codes&lt;br /&gt;
# echo &amp;quot;exit code: $code&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 exit $code&lt;br /&gt;
}&lt;br /&gt;
# end of cleanexit function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: usage - show command usage options&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
usage () {&lt;br /&gt;
   exitcode=$1&lt;br /&gt;
   if [ ! $exitcode ]&lt;br /&gt;
   then&lt;br /&gt;
     exitcode=1  # default exit code for usage, otherwise exit with incode&lt;br /&gt;
   fi&lt;br /&gt;
&lt;br /&gt;
   echo &amp;quot;Usage: mvapp link domain.appname    - move app to media and link&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp unlink domain.appname  - restore app to var, remove link&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp clean domain.appname   - remove app dir and links&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp list                   - list all apps sorted by size&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp bulkmv                 - move/link bulk apps&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp listmoved              - list apps that have been moved&amp;quot;&lt;br /&gt;
   echo &amp;quot;Usage: mvapp restoreall             - restore all apps to original&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  cleanexit $exitcode&lt;br /&gt;
}&lt;br /&gt;
# end of usage function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: cleanapp - removes symbolic links and folder in media and var&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
cleanapp () {&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 # exit to usage if no app name supplied&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
   usage 1&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
# Continue on if PROMPTS turned off (call from outside app) &lt;br /&gt;
 if [ $PROMPTS ]  &lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;This will remove $APP from both $VAR and $MEDIA.&amp;quot;&lt;br /&gt;
  echo &amp;quot;You should first attempt to remove the app using the official Pre methods.&amp;quot;&lt;br /&gt;
  echo &amp;quot;Are you sure you want to remove $APP? [y/N]: &amp;quot;&lt;br /&gt;
  read answer&lt;br /&gt;
  case $answer in&lt;br /&gt;
   [Yy]*) continue;;&lt;br /&gt;
       *) cleanexit 0;;&lt;br /&gt;
  esac&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ -h $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Removing all traces of $APP.&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 10&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before cleanup... &amp;quot;&lt;br /&gt;
 /usr/bin/du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 if [ -d $MEDIA/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
     rm -r $MEDIA/$APP&lt;br /&gt;
      echo &amp;quot;Removed directory&amp;quot; $MEDIA/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -d $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $VAR/$APP&lt;br /&gt;
      echo &amp;quot;Removed directory&amp;quot; $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -L $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $VAR/$APP&lt;br /&gt;
      echo &amp;quot;Removed link&amp;quot; $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -f $BACKUPDIR/$APP.tgz ]&lt;br /&gt;
 then&lt;br /&gt;
      rm -r $BACKUPDIR/$APP.tgz&lt;br /&gt;
      echo &amp;quot;Removed tar backup&amp;quot; $BACKUPDIR/$APP.tgz&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 echo &amp;quot;$APP directories and links removed.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after cleanup... &amp;quot;&lt;br /&gt;
 /usr/bin/du -sh $VAR&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of cleanup function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: listapps - list the size of each app, sort showing largest last&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
listapps () {&lt;br /&gt;
 cd $VAR&lt;br /&gt;
 for i in `/usr/bin/du -s * | sort -n |cut -f 2`&lt;br /&gt;
 do&lt;br /&gt;
    APP=$i&lt;br /&gt;
    SIZE=`/usr/bin/du -s $VAR/$APP |cut -f1`&lt;br /&gt;
    TITLE=&amp;quot;&amp;quot;&lt;br /&gt;
    if [ -f $VAR/$APP/appinfo.json ]&lt;br /&gt;
    then&lt;br /&gt;
      TITLE=`grep title $VAR/$APP/appinfo.json |cut -d: -f2 |cut -d\&amp;quot; -f2`&lt;br /&gt;
    fi&lt;br /&gt;
    echo &amp;quot;$SIZE - $APP - $TITLE&amp;quot;&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of listapps function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: listmoved - list apps moved/linked, sort showing largest last&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
listmoved () {&lt;br /&gt;
 #/usr/bin/du -sk $MEDIA/* | sort -n  #doesn't show proper size on FAT fs, removing&lt;br /&gt;
 cd $MEDIA&lt;br /&gt;
 for i in `/usr/bin/du -s * | sort -n |cut -f 2`&lt;br /&gt;
 do&lt;br /&gt;
    APP=$i&lt;br /&gt;
    # Not sure why du reports incorrectly on FAT fs&lt;br /&gt;
    #SIZE=`/usr/bin/du -s $MEDIA/$APP |cut -f1`&lt;br /&gt;
    SIZE=&amp;quot;&amp;quot;&lt;br /&gt;
    TITLE=&amp;quot;&amp;quot;&lt;br /&gt;
    if [ -f $MEDIA/$APP/appinfo.json ]&lt;br /&gt;
    then&lt;br /&gt;
      TITLE=`grep title $MEDIA/$APP/appinfo.json |cut -d: -f2 |cut -d\&amp;quot; -f2`&lt;br /&gt;
    fi&lt;br /&gt;
    echo &amp;quot;$SIZE - $APP - $TITLE&amp;quot;&lt;br /&gt;
 done&lt;br /&gt;
 cleanexit 0&lt;br /&gt;
}&lt;br /&gt;
# end of listmoved function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: linkapp - move the app to media and create symbolic link&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
linkapp () {&lt;br /&gt;
&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
      echo &amp;quot;No application supplied...&amp;quot;&lt;br /&gt;
      usage 10&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 if [ ! -f $VAR/$APP/appinfo.json ]&lt;br /&gt;
 then&lt;br /&gt;
    echo &amp;quot;$APP has no json file.  Will not be moved.&amp;quot;&lt;br /&gt;
    code=16&lt;br /&gt;
    return 16&lt;br /&gt;
 fi   &lt;br /&gt;
&lt;br /&gt;
 if [ ! -d $MEDIA ]&lt;br /&gt;
 then&lt;br /&gt;
      mkdir $MEDIA&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 if [ -h $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
      echo &amp;quot;Link already exists for... ${APP}&amp;quot;&lt;br /&gt;
      cleanexit 11&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 TITLE=`grep title $VAR/$APP/appinfo.json |cut -d: -f2 |cut -d\&amp;quot; -f2`&lt;br /&gt;
 &lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 if [ -d $VAR/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Moving $APP $TITLE to $MEDIA...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 12&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before move... &amp;quot;&lt;br /&gt;
 /usr/bin/du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 # move over to USB drive&lt;br /&gt;
 cp -rp  $VAR/$APP $MEDIA &amp;gt;/tmp/cpresult.out 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  grep &amp;quot;cannot preserve&amp;quot; /tmp/cpresult.out &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
  if [ $? = 0 ]&lt;br /&gt;
  then&lt;br /&gt;
   echo&lt;br /&gt;
   echo &amp;quot;$APP cannot be moved as it contains special attributes.&amp;quot;&lt;br /&gt;
   echo &amp;quot;Leaving app in $VAR.&amp;quot;&lt;br /&gt;
   code=15&lt;br /&gt;
  else&lt;br /&gt;
   echo &amp;quot;Copy failed. Leaving app in $VAR.&amp;quot;&lt;br /&gt;
   code=13&lt;br /&gt;
  fi&lt;br /&gt;
  rm -r $MEDIA/$APP&lt;br /&gt;
  rm /tmp/cpresult.out&lt;br /&gt;
  return $code&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
# Backup using tar if enabled&lt;br /&gt;
 if [ $BACKUP ]&lt;br /&gt;
 then&lt;br /&gt;
   if [ ! -d $BACKUPDIR ]&lt;br /&gt;
   then&lt;br /&gt;
    mkdir $BACKUPDIR&lt;br /&gt;
   fi&lt;br /&gt;
   echo &amp;quot;Backing up $APP $TITLE to $BACKUPDIR...&amp;quot;&lt;br /&gt;
   tar czf $BACKUPDIR/${APP}.tgz $VAR/$APP&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 rm -r $VAR/$APP&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $VAR.&amp;quot;&lt;br /&gt;
  rm -r $MEDIA/$APP&lt;br /&gt;
  cleanexit 14&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # create the symbolic link&lt;br /&gt;
 ln -s $MEDIA/$APP $VAR/$APP&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$APP moved and linked.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after move... &amp;quot;&lt;br /&gt;
 /usr/bin/du -sh $VAR&lt;br /&gt;
}&lt;br /&gt;
# end of linkapp function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: unlinkapp -  restore the app to var and remove symbolic link&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
unlinkapp () {&lt;br /&gt;
&lt;br /&gt;
 if [ ! $APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;No application supplied...&amp;quot;&lt;br /&gt;
   usage 20&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
 if [ -d $MEDIA/$APP ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Restoring $APP...&amp;quot;&lt;br /&gt;
 else&lt;br /&gt;
   echo &amp;quot;$APP does not exist...&amp;quot;&lt;br /&gt;
   usage 21&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;Size of $VAR before move... &amp;quot;&lt;br /&gt;
 /usr/bin/du -sh $VAR&lt;br /&gt;
&lt;br /&gt;
 # remove the old symbolic link&lt;br /&gt;
 rm -r $VAR/$APP&lt;br /&gt;
&lt;br /&gt;
 # move to original location or restore from tar if it exists&lt;br /&gt;
 if [ -f $BACKUPDIR/$APP.tgz ]&lt;br /&gt;
 then&lt;br /&gt;
  cd /&lt;br /&gt;
  tar xzf $BACKUPDIR/$APP.tgz&lt;br /&gt;
  if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
   echo &amp;quot;Tar restore failed. Remove and restore app using official webOS/Pre methods.&amp;quot;&lt;br /&gt;
   cleanexit 22&lt;br /&gt;
  else&lt;br /&gt;
   rm -r $BACKUPDIR/$APP.tgz&lt;br /&gt;
  fi&lt;br /&gt;
 else&lt;br /&gt;
  cp -r  $MEDIA/$APP $VAR&lt;br /&gt;
  if [ $? != 0 ]&lt;br /&gt;
  then&lt;br /&gt;
   echo &amp;quot;Copy failed. Leaving app in $MEDIA.&amp;quot;&lt;br /&gt;
   cleanexit 23&lt;br /&gt;
  fi&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 rm -r $MEDIA/$APP&lt;br /&gt;
 if [ $? != 0 ]&lt;br /&gt;
 then&lt;br /&gt;
  echo &amp;quot;Remove failed. Leaving app in $MEDIA.&amp;quot;&lt;br /&gt;
  rm -r $VAR/$APP&lt;br /&gt;
  cleanexit 24&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
 # rescan luna in case it's needed&lt;br /&gt;
 luna-send -n 1 palm://com.palm.applicationManager/rescan {} &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
 echo &amp;quot;$APP moved and unlinked.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Size of $VAR after move... &amp;quot;&lt;br /&gt;
 /usr/bin/du -sh $VAR&lt;br /&gt;
}&lt;br /&gt;
# end of unlinkapp function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: bulkmv -  move/link many apps&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
bulkmv() {&lt;br /&gt;
 echo&lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;This allows moving many apps, asking which you'd like to move.&amp;quot;&lt;br /&gt;
 echo &amp;quot;Starting with the largest apps.&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mount -o remount,rw /&lt;br /&gt;
 cd $VAR&lt;br /&gt;
&lt;br /&gt;
 for i in `/usr/bin/du -s * | sort -nr |cut -f 2`&lt;br /&gt;
 do&lt;br /&gt;
    export APP=$i&lt;br /&gt;
    SIZE=`/usr/bin/du -sh $APP |cut -f 1`&lt;br /&gt;
    TITLE=`grep title $VAR/$APP/appinfo.json |cut -d: -f2 |cut -d\&amp;quot; -f2`&lt;br /&gt;
    echo &amp;quot;Size of $APP - $TITLE is $SIZE.&amp;quot;&lt;br /&gt;
    echo &amp;quot;Would you like to move and link... $TITLE? [y/N/q]: &amp;quot;&lt;br /&gt;
    read answer&lt;br /&gt;
    case $answer in&lt;br /&gt;
    [Yy]*) linkapp;;&lt;br /&gt;
    [Qq]*) cleanexit 0;;&lt;br /&gt;
        *) echo &amp;quot;$APP not moved.&amp;quot;&lt;br /&gt;
           continue;;&lt;br /&gt;
    esac&lt;br /&gt;
&lt;br /&gt;
    echo&lt;br /&gt;
 done&lt;br /&gt;
}&lt;br /&gt;
# end of bulkmv function&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# function: restoreall - restore all apps, back to /var&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
restoreall() {&lt;br /&gt;
&lt;br /&gt;
#Only confirm if PROMPT turned on. (allows outside app to call) &lt;br /&gt;
  if [ $PROMPT ]&lt;br /&gt;
  then&lt;br /&gt;
   echo &amp;quot;This will restore all applications back to original location&amp;quot;&lt;br /&gt;
   echo &amp;quot;and remove the links.  Are you sure you want to continue? [y/N]:&amp;quot;&lt;br /&gt;
   read answer&lt;br /&gt;
   case $answer in&lt;br /&gt;
    [Yy]*) continue;;&lt;br /&gt;
        *) cleanexit 0;;&lt;br /&gt;
   esac&lt;br /&gt;
  fi&lt;br /&gt;
&lt;br /&gt;
  ls $MEDIA | while read APP&lt;br /&gt;
  do&lt;br /&gt;
    echo &amp;quot;Restoring $APP and unlinking...&amp;quot;&lt;br /&gt;
    unlinkapp&lt;br /&gt;
  done&lt;br /&gt;
}&lt;br /&gt;
# end of restoreall function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
# main - begins here&lt;br /&gt;
#-------------------------------------------------------------------------#&lt;br /&gt;
&lt;br /&gt;
case $COMMAND in&lt;br /&gt;
&amp;quot;clean&amp;quot;)&lt;br /&gt;
   cleanapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;list&amp;quot;)&lt;br /&gt;
   listapps&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;listmoved&amp;quot;)&lt;br /&gt;
   listmoved&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;link&amp;quot;)&lt;br /&gt;
   linkapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;unlink&amp;quot;)&lt;br /&gt;
   unlinkapp&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;bulkmv&amp;quot;)&lt;br /&gt;
   bulkmv&lt;br /&gt;
   ;;&lt;br /&gt;
&amp;quot;restoreall&amp;quot;)&lt;br /&gt;
   restoreall&lt;br /&gt;
   ;;&lt;br /&gt;
*)&lt;br /&gt;
   usage 1&lt;br /&gt;
   ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
cleanexit $code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Be sure to set execute permissions if you missed the step above...&lt;br /&gt;
&amp;lt;code&amp;gt;chmod 755 /usr/bin/mvapp&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Precautions ==&lt;br /&gt;
&lt;br /&gt;
So far, no one has reported an app that has issues due to linking.  These are best practices to avoid issues.&lt;br /&gt;
&lt;br /&gt;
- Be selective about what you move.  You may not want to move apps that store important information to you such as password lockers, memo apps, EverNote, Agenda, etc. Games, web content apps and information viewing apps should be safer to move as there is no data at risk.&lt;br /&gt;
&lt;br /&gt;
- Close apps before moving them.  Do not move an app while it is open and running.  I actually tested this and figured some apps would break but none have yet.  It is still not wise to move apps while they are open and running.&lt;br /&gt;
&lt;br /&gt;
== Commands ==&lt;br /&gt;
&lt;br /&gt;
'''To find the largest apps in /var/usr/palm/applications'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It shows the largest apps last... IE....&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
8352 com.apnews.webos&amp;lt;br&amp;gt;&lt;br /&gt;
8512 com.fandango.app.fandango&amp;lt;br&amp;gt;&lt;br /&gt;
8672 com.palm.app.musicplayerremix&amp;lt;br&amp;gt;&lt;br /&gt;
10304 com.shortcovers.palm.pre&amp;lt;br&amp;gt;&lt;br /&gt;
10432 com.fusioncreativestudios.deadman&amp;lt;br&amp;gt;&lt;br /&gt;
10656 com.ulocate.app.where&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To move and link an app to /media'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp link domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:  mvapp link com.ulocate.app.where&lt;br /&gt;
&lt;br /&gt;
The app should now work in the new location thanks to the link. Test each app to make sure it works before doing another. Looping the script to do every app in the dir or to link the entire app dir is not recommended. File attributes are lost on the move, which some apps may need. You need to test each app after a move.&lt;br /&gt;
&lt;br /&gt;
Continue moving apps until it reports that /var.../applications is about 25MB or less.&lt;br /&gt;
&lt;br /&gt;
There is an option to turn on/off tar-based backups.  See the BACKUP variable in the script.  If set to 1, it will perform a tar backup.  This takes up more space on /media but if you need to restore, it puts it back with full file attributes.  Recommend keeping this on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To move and link many apps''' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp bulkmv&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will show largest app first, ask if you want to move/link and then moves on to the next largest app.  If you answer no to an app, it will skip to the next.  Answer 'q' to quit.  Is easiest to use this method directly on a device using the Terminal app.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To revert the move and delete the link'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp unlink domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The application will be moved back to the original directory. File attributes are lost on the move if tar backup is turned off, which some apps may need. You need to test each app after a move.  If tar backup is turned on (default - see BACKUP variable in script), file attributes will be restored.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To list apps that have been moved and linked...'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp listmoved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows a list of apps that have been moved and linked to /media.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To restore all moved apps back to original location'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp restoreall&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If backup was turned on, this will restore ALL applications that have been moved/linked, back to the original location in /var with original attributes (using tar).  If backup was not turned on, it will still attempt to move the applications back to /var using the files in /media, but without original file attributes.  This may take several minutes to complete.  It will show each application progress.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To cleanup and remove directories and symlinks'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mvapp clean domain.appname&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you have any issues, first attempt to remove the app from the App Catalog or Homebrew app installer.  Then issue the 'clean' command to remove the applications directories at both locations and also the symlink.  You can then reinstall the app from the App Catalog or any Homebrew App installer.&lt;br /&gt;
&lt;br /&gt;
== Contingency Plan==&lt;br /&gt;
&lt;br /&gt;
If you have problems with an application, follow these steps...&amp;lt;br&amp;gt;&lt;br /&gt;
-- Close the application if open&amp;lt;br&amp;gt;&lt;br /&gt;
-- mvapp unlink domain.appname&amp;lt;br&amp;gt;&lt;br /&gt;
-- Try using the App&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the application still does now work correctly...&amp;lt;br&amp;gt;&lt;br /&gt;
-- Remove the App using official methods&amp;lt;br&amp;gt;&lt;br /&gt;
-- mvapp clean domain.appname&amp;lt;br&amp;gt;&lt;br /&gt;
-- Reinstall through the App Catalog or Homebrew installer app&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proposal to Dev Community ==&lt;br /&gt;
&lt;br /&gt;
This is a formal proposal to the Dev Community suggesting that PreWare, WebOS Quick Install and other Pre installer apps provide an option to move any app in /var to the /media fs and create a link similar to the code above.  &lt;br /&gt;
&lt;br /&gt;
The Homebrew Community somewhat created part of the storage problem so needs to come up with their own solution. The symbolic link proponents propose that Homebrew apps be moved with a link to /media/internal by default and physically use /var only if needed (per conditions stated below). The developer would put a flag in the package (or some other method during submission) to state their app is able to run linked to /media or if it specifically needs to physically be on /var.  Will propose additions to Packaging Standards to support /media links.  The homebrew installer apps could then automatically do the move/link if the package is flagged for it.&lt;br /&gt;
&lt;br /&gt;
Candidate apps for moving to /media&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that do not depend on file attributes not supported by FAT (such as sticky bit or internal links) - The script (post 0.2.0 now deals with this).&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that do not perform data operations to home app directory when device is USB mounted&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exceptions for maintaining apps on /var&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that depend on file attributes not supported by FAT - The script (post 0.2.0 now deals with this).&amp;lt;br&amp;gt;&lt;br /&gt;
- apps that won't work well when device is USB mounted, such as performing data or DB operations in home app directory&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Please update with other known candidates/exceptions)&lt;br /&gt;
&lt;br /&gt;
== Benefits over other methods ==&lt;br /&gt;
&lt;br /&gt;
''Resizing /var''  &amp;lt;br&amp;gt;&lt;br /&gt;
One challenge with resizing /var is that it will still have a fixed static limit - how do you decide how much to increase it? Many will still probably hit the limit or waste space if setting too high.  There is also the warning from Palm that resizing var may interfere with future updates.  The link method allows to dynamically use the /media partition, so there is no need to set a specific size dedicated to apps. If the USB drive is filled, users can decide if they use the space for media or apps on the fly.&lt;br /&gt;
&lt;br /&gt;
''AppPath in /etc/luna.conf'' &amp;lt;br&amp;gt;&lt;br /&gt;
I proposed a while back adding an AppPath to luna.conf to include apps stored on /media.  Some apps would not work because some apparently reference /var.  IE, the vampire/mafia/quest series could not access graphics.  The symbolic link fixed this because apps think they are in /var.&lt;br /&gt;
&lt;br /&gt;
''Link/mount [[all]] of /var/usr/palm/applications/ to /media/internal'' &amp;lt;BR&amp;gt;&lt;br /&gt;
If some apps rely on file attributes this won't work since file attributes are lost when moved to FAT fs.  While this is rare, it probably isn't wise to force all /var apps to /media.  Selectively moving apps one at a time is less risky.  Update:  Have found that &amp;quot;PDF View&amp;quot; app does not allow to be linked, so it appears that selectively moving apps is necessary.&lt;br /&gt;
&lt;br /&gt;
''Creating a loopback filesystem to a virtual file located on /media/internal'' &amp;lt;br&amp;gt;&lt;br /&gt;
This has been worked on [http://www.webos-internals.org/wiki/Tutorials_Linux_opt_on_loopback here] and still has potential.  Unfortunately it locks out USB mount and media sync altogether.  If a workaround can be found with low risk, this may be the most ideal solution.&lt;br /&gt;
&lt;br /&gt;
== Risks, Issues, Dependencies ==&lt;br /&gt;
&lt;br /&gt;
- Some file attributes of linux fs are not possible on FAT fs (USB drive).  The 0.2.0 version (and higher) now deals with any apps that cannot copy attributes/permissions properly.  The script will not move apps that have special attributes or conditions that FAT fs can't deal with.   In general, this has been resolved.  No known issues with apps since version 0.2.0 or later.&lt;br /&gt;
&lt;br /&gt;
- Some apps may not behave well if USB drive is mounted to computer, though I've tested several that behaved fine. Linux type background services probably would not work well so probably should not be moved, however I'm not aware of any service stored in the app home directory - they are usually setup somewhere else.  Apps that do IO to the home directory of the app while USB mounted may have issues when located on /media.  I'm not aware of any apps that write to their own home directory, so this may not be a risk in general, but is still a possibility.  If you run into issues with an app, see the Contingency Plan.&lt;br /&gt;
&lt;br /&gt;
== Future Versions ==&lt;br /&gt;
&lt;br /&gt;
Plans for future versions...&lt;br /&gt;
&lt;br /&gt;
- The script will soon be modified to be friendly for javascript calls... no prompting and no output, just result codes.   Will still maintain user interaction capability as well.&lt;br /&gt;
&lt;br /&gt;
== Confirmed Apps ==&lt;br /&gt;
=== Apps Confirmed ''Not'' to Work ===&lt;br /&gt;
com.palm.app.pdfviewer  (script v0.2.0 and higher properly handles this, won't allow it to move)&lt;br /&gt;
&lt;br /&gt;
== Discuss ==&lt;br /&gt;
Discuss in the Discussion tab or PreCentral...&lt;br /&gt;
&lt;br /&gt;
http://forums.precentral.net/web-os-development/205649-resolution-app-catalog-install-limit-proposal.html&lt;br /&gt;
&lt;br /&gt;
'''Your Experiences'''&lt;br /&gt;
&lt;br /&gt;
Please post your experiences, good or bad.  I'd like to get any kinks worked out before attempting to turn this into a webOS app.&lt;br /&gt;
&lt;br /&gt;
- How many apps did you move? &amp;lt;br&amp;gt;&lt;br /&gt;
- Did you find an app that won't work linked? &amp;lt;br&amp;gt;&lt;br /&gt;
- Did you move any back?  (please test)&amp;lt;br&amp;gt;&lt;br /&gt;
- How far down did you have to get /var.../applications down in MB before you could start adding apps from the App Catalog?&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
xorg - initially developed script and proposal.  maintainer of this page.&amp;lt;br&amp;gt;&lt;br /&gt;
daventx - added unlink and clean functions.&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Application:Preware&amp;diff=6390</id>
		<title>Application:Preware</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Application:Preware&amp;diff=6390"/>
		<updated>2009-10-09T13:52:09Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* Adding reference to AutoPatch transition URL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{application&lt;br /&gt;
|name=Preware&lt;br /&gt;
|type=webOS&lt;br /&gt;
|version=Version: Beta 0.9.3 &amp;lt;br /&amp;gt;(9 Oct 2009)&lt;br /&gt;
|tag=Utilities&lt;br /&gt;
|screenshot=Application_Preware_List.png&lt;br /&gt;
|description=&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
{{icon|Icon_Preware.png|float:right;}}&lt;br /&gt;
Preware is a package management application for the Palm Pre.  Preware allows the user to install any package from any of the open standard package repositories on preware.org (or any other location that hosts an open standard package repository).  Preware relies on a custom written service developed from community research which allows the mojo app to talk to the built-in ipkg tool.&lt;br /&gt;
&lt;br /&gt;
This application was the result of extensive community-based design in [[IPKG Service]] and [[Preware Design]].&lt;br /&gt;
&lt;br /&gt;
For application management, Preware can access more applications, and has more features, than any other on-device package installer.&lt;br /&gt;
&lt;br /&gt;
And since it is open source, and has a completely open development process supported by a team of world-class WebOS Internals developers, it will continue to get better much faster than any other package management application.&lt;br /&gt;
&lt;br /&gt;
Preware is the open application installer that has been written specifically to support a homebrew ecosystem where any developer can upload any application to any submission site, and that application can then be installed by any user.  Developers no longer need to upload their applications to multiple submission sites, and users are no longer excluded from accessing applications from any open standard package repository.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
This is beta software.  Even so, as of 27 August 2009 it is the only over-the-air installer for the palm capable of installing advanced palm applications such as the [[On_Screen_Keyboard|on screen keyboard]] or the terminal application. Also as of 27 August 2009 it is the only application supporting installation from all existing palm homebrew feeds.  As of 17 September 2009 it also supports installation of themes.  As of 8 October 2009 it also supports installation of webos patches.&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
Please be aware that org.webosinternals.preware and org.webosinternals.ipkgservice 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;
=== Limitations ===&lt;br /&gt;
&lt;br /&gt;
Preware does not individually sequence dependencies during installation, and ipkgservice only runs the postinst and prerm scripts for the requested app, so if you have a dependency for the app that you're installing, and that dependency needs a postinst or prerm script to be run, then it will fail to run them.  Please install the dependency first, and then install the app that you want.  This will be fixed before the 1.0.0 version.&lt;br /&gt;
&lt;br /&gt;
=== Known bugs ===&lt;br /&gt;
&lt;br /&gt;
No known bugs.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
You do not need to access the Linux command line or &amp;quot;root your Pre&amp;quot; to install or use Preware.&lt;br /&gt;
&lt;br /&gt;
Please use the [http://forums.precentral.net/homebrew-apps/206905-webos-quick-install-v2-7-beyond.html WebOS Quick Install] tool to install the Package Manager Service and the Preware application directly from the WebOS Internals feed.  &lt;br /&gt;
&lt;br /&gt;
No other application installer tool is sophisticated enough to install the custom Package Manager Service that Preware requires.  Preware can install it, but you need a way to bootstrap Preware first, so you need to use WebOS Quick Install for the very first installation of Preware.&lt;br /&gt;
&lt;br /&gt;
Note that Preware works just as well on the Emulator as it does on a real device, and is installed in exactly the same way.&lt;br /&gt;
&lt;br /&gt;
=== Installation  Steps ===&lt;br /&gt;
* Run WebOS Quick Install&lt;br /&gt;
* Press the third button on the right&lt;br /&gt;
* Choose WebOS Internals Feed (all) from the dropdown list at the top. &lt;br /&gt;
* Select ''Package Manager Service'' from the list.  &lt;br /&gt;
* Press DOWNLOAD.&lt;br /&gt;
* Press INSTALL.&lt;br /&gt;
* Press the third button on the right&lt;br /&gt;
* Choose WebOS Internals Feed (all) from the dropdown list at the top. &lt;br /&gt;
* Select ''Preware'' from the list.  &lt;br /&gt;
* Press DOWNLOAD.&lt;br /&gt;
* Press INSTALL.&lt;br /&gt;
&lt;br /&gt;
=== Updating ===&lt;br /&gt;
&lt;br /&gt;
'''Make sure you update the Package Manager Service first, and the Preware application second'''.  When dependencies are supported, this restriction will be lifted.&lt;br /&gt;
&lt;br /&gt;
If you are running a version of the Preware prior to 0.9.0, then you must use the WebOS Quick Install program to upgrade the Package Manager Service.&lt;br /&gt;
&lt;br /&gt;
To update Preware or the Package Manager Service, simpy use Preware version 0.9.0 or later.&lt;br /&gt;
&lt;br /&gt;
If you are updating to Preware version 0.9.3 and you have used the autopatch-feed package, please follow these [http://forums.precentral.net/webos-patches/208312-autopatch-transitioning-webos-patches-feed.html] directions for the update.&lt;br /&gt;
&lt;br /&gt;
=== Removal ===&lt;br /&gt;
&lt;br /&gt;
Why would you ever want to remove Preware?&lt;br /&gt;
&lt;br /&gt;
To remove Preware, use WebOS Quick Install's Device Management page and unselect the Package Manager Service and the Preware application.&lt;br /&gt;
&lt;br /&gt;
=== Recent enhancements ===&lt;br /&gt;
&lt;br /&gt;
0.9.3: Adds the webos-patches feed, and feed management support.&lt;br /&gt;
&lt;br /&gt;
0.9.1: Adds the All category, plus other miscellaneous fixes.&lt;br /&gt;
&lt;br /&gt;
0.9.0: Now supports themes, restart flags and the new memory-reduction service methods.&lt;br /&gt;
&lt;br /&gt;
0.8.5: Massive speed improvement on loading, now supports package types and adding feeds.&lt;br /&gt;
&lt;br /&gt;
0.8.2: More preferences added and now functional, with listing and update frequency options.&lt;br /&gt;
&lt;br /&gt;
0.8.1: Preferences scene implemented. Upstart job stops on removal.&lt;br /&gt;
&lt;br /&gt;
0.8.0: Now supports Descriptions and Screenshots.&lt;br /&gt;
&lt;br /&gt;
0.7.7: Addition of ipkglog and config list, and if ipkgservice fails at start it notifies people, and if it fails after postinst it considers it complete anyways&lt;br /&gt;
&lt;br /&gt;
0.7.6: Fixed the superfluous update subscription message windows&lt;br /&gt;
&lt;br /&gt;
0.7.5: Fixed update subscription oddity.&lt;br /&gt;
&lt;br /&gt;
0.7.4: Fixed remounting of root filesystem for post-install and pre-remove scripts on the Pre.&lt;br /&gt;
&lt;br /&gt;
0.7.1: Fixed buttons and title on script view screen.&lt;br /&gt;
&lt;br /&gt;
0.7.0: Initial support for post-install and pre-remove scripts, including secure informed user consent.  Does not work properly with dependencies yet, so please install dependencies one at a time.&lt;br /&gt;
&lt;br /&gt;
0.6.7: Fixed bug in category drop-down list.&lt;br /&gt;
&lt;br /&gt;
0.6.6: Fixed bug in package size reporting.&lt;br /&gt;
&lt;br /&gt;
0.6.5: Updated icon and other graphical annotations.&lt;br /&gt;
&lt;br /&gt;
0.6.4: Categories drop-down bug fixed.  Preware category updated.&lt;br /&gt;
&lt;br /&gt;
0.6.2: Categories now work to some extent.  Still a bug in the drop down box.&lt;br /&gt;
&lt;br /&gt;
0.6.1: Sorting by name or date is now available.  Application details screen is much more organized.&lt;br /&gt;
&lt;br /&gt;
0.6.0: No user visible changes.  Preparation for the secure informed user consent functionality.&lt;br /&gt;
&lt;br /&gt;
0.5.1: Filtering is now available on the list screens.  Just start typing ...&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
Preware and the Package Manager Service are housed in the applications/preware and services/ipkservice git repositories at http://git.webos-internals.org/&lt;br /&gt;
&lt;br /&gt;
For commit permission to the open source project, contact rwhitby on #webos-internals or email [[mailto:support@webos-internals.org support@webos-internals.org]]&lt;br /&gt;
&lt;br /&gt;
== Alternative Installation (ADVANCED/CLI Method)==&lt;br /&gt;
&lt;br /&gt;
Really, unless you *really* know what you are doing, you should use the WebOS Quick Install installation instructions above.&lt;br /&gt;
&lt;br /&gt;
This method is for '''LINUX EXPERTS ONLY''' and depends on the ipkg.preware.org/feeds/webos-internals repository.  You must install the [[Application:Terminal]] application first to set up the feeds correctly.&lt;br /&gt;
&lt;br /&gt;
=== Installing via IPKG ===&lt;br /&gt;
&lt;br /&gt;
Really, unless you *really* know what you are doing, you should use the WebOS Quick Install installation instructions above.&lt;br /&gt;
&lt;br /&gt;
If you have never configured the ipkg feed perform the following, then follow directions below:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,rw /&lt;br /&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 webosinternals http://ipkg.preware.org/feeds/webos-internals/all&amp;quot; &amp;gt; /var/etc/ipkg/webos-internals.conf&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;src/gz webosinternals-armv7 http://ipkg.preware.org/feeds/webos-internals/armv7&amp;quot; &amp;gt;&amp;gt; /var/etc/ipkg/webos-internals.conf&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have already configured the ipkg feed, perform the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
mount -o remount,rw /&lt;br /&gt;
&lt;br /&gt;
/usr/bin/ipkg -o /var update&lt;br /&gt;
/usr/bin/ipkg -o /var install org.webosinternals.ipkgservice&lt;br /&gt;
/usr/bin/ipkg -o /var install org.webosinternals.preware&lt;br /&gt;
sh /var/usr/lib/ipkg/info/org.webosinternals.ipkgservice.postinst&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&lt;br /&gt;
mount -o remount,ro /&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Updating via IPKG ===&lt;br /&gt;
&lt;br /&gt;
Really, unless you *really* know what you are doing, you should use the Preware update instructions above.&lt;br /&gt;
&lt;br /&gt;
If you are already running Preware 0.9.0 or later, you should use the Preware update instructions above.&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;
&lt;br /&gt;
/usr/bin/ipkg -o /var update&lt;br /&gt;
/usr/bin/ipkg -o /var upgrade&lt;br /&gt;
sh /var/usr/lib/ipkg/info/org.webosinternals.ipkgservice.postinst&lt;br /&gt;
luna-send -n 1 palm://com.palm.applicationManager/rescan {}&lt;br /&gt;
&lt;br /&gt;
mount -o remount,ro /&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Development_%26_Tweak_Ideas&amp;diff=6332</id>
		<title>Development &amp; Tweak Ideas</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Development_%26_Tweak_Ideas&amp;diff=6332"/>
		<updated>2009-10-07T18:01:58Z</updated>

		<summary type="html">&lt;p&gt;Nt4cats: /* Tweak Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here are some ideas for tweaks which have not been implemented yet (to my knowledge):&lt;br /&gt;
&lt;br /&gt;
If you decide to start working one of these, '''please leave a note''' under the item as a second-level bullet. If you don't have wiki access, find someone in the IRC channel who does. This will help encourage collaborative discovery, and reduce duplicate effort. We also recommend starting a new wiki page where you '''take notes about any discoveries''' you've made related to the tweak idea. &lt;br /&gt;
&lt;br /&gt;
Once you've figured it out, it would be appreciated if you make a write-up for the Stock App Mods page. If you don't want to do a write up, at least try to share your findings with someone who can subsequently document them for you. At the very least, jot a few notes onto a wiki page, and tag it with &amp;quot;cleanup&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Patch Ideas=&lt;br /&gt;
* Create a patch for showing day events in month view on calendar&lt;br /&gt;
* Restore &amp;quot;Ignoring calendar alarm repeats the alarm in 5 minutes&amp;quot; to WebOS 1.10, the way it was in WebOS 1.04 and Palm&lt;br /&gt;
* Enable simultaneous Voice and Data access.&lt;br /&gt;
&lt;br /&gt;
=Tweak Ideas=&lt;br /&gt;
* Device automatically goes into USB Drive Mode without tapping on the option (For bad touchscreen issues).  Another option is to do an Orange + Symbol + key sequence for that.&lt;br /&gt;
* Make bootup faster (parallel?)&lt;br /&gt;
** See [http://ubuntuforums.org/showthread.php?t=727224 Upstart on Ubuntu info]&lt;br /&gt;
* Fix the horrendous white balance issues with the camera (especially with the flash on)&lt;br /&gt;
** See http://www.theregister.co.uk/2009/06/25/cameraphone_faceoff/ for a post showing the problems.&lt;br /&gt;
* Make the Pre vibrate differently based on caller ID&lt;br /&gt;
** See http://www.azarask.in/blog/post/know-whos-calling-tactile-design/&lt;br /&gt;
*Enable image saving/save to wallpaper from the browse.&lt;br /&gt;
*Enable opening PDF/doc whatever from Web browser.&lt;br /&gt;
** //Done a slight bit of testing with this.  It's very easy to get the browser to pass along a link to the application (tested with PDF).  &amp;lt;code&amp;gt;/usr/palm/command-resource-handlers.json&amp;lt;/code&amp;gt; contains all of the MIME types and you just have to change &amp;lt;code&amp;gt;streamable&amp;lt;/code&amp;gt; to true.  Of course, the application itself has an issue with this and errors out.//&lt;br /&gt;
* Enable uploads in a browser (dialog box with browse, etc.).&lt;br /&gt;
* Enable track skipping without turning the device on.&lt;br /&gt;
** [[Hardware Key Track Skip]]&lt;br /&gt;
** [[track-skipping-using-volume-up-down-buttons|Skip tracks using volume up/down buttons]] ~ FXDemolisher&lt;br /&gt;
* Quick copy of locked calendar events to the local calendar so that they can be edited.&lt;br /&gt;
* Make the Pre vibrate longer.&lt;br /&gt;
** tictac is working on this [[make-pre-vibrate-longer | here]].&lt;br /&gt;
* Allow other messaging protocols using libpurple plugins (Facebook, Jabber, etc.).&lt;br /&gt;
* Trigger camera remotely.&lt;br /&gt;
** Wonder420 is working on this [[camera-remote-view | here]].&lt;br /&gt;
* Back up contact link information. (This is currently not stored in the Palm Profile, so it will be lost on a device wipe.) -- [[Contact Link Backup]]&lt;br /&gt;
* Landscape virtual keyboard in the Web app.&lt;br /&gt;
* Find better touch scroll threshold numbers so the action is not as jerky/fuzzy while moving. 1.0.3 update seems to have improved that a bit.. //~ Robi//&lt;br /&gt;
* Look into [http://www.lesswatts.org/projects/powertop/ PowerTop] to potentially save even more power and extend batt life. //~ Robi//&lt;br /&gt;
* Allow universal search to search through email text as well&lt;br /&gt;
* Multiple card rows in the small card view&lt;br /&gt;
* Add a &amp;quot;scrubber&amp;quot; to the music app to control song position&lt;br /&gt;
* Remove Amazon section from music app to see if it loads faster without  (Music app loads instantly but then you have to wait 30 seconds or so before you can do anything until the Amazon section shows up).&lt;br /&gt;
** Unfortunately it seems that it's the thumbnail creation for the few albums shown in shuffle all that causes the delay- removing the Amazon entry doesn't seem to change the speed at all.&lt;br /&gt;
* Change the sorting of the music app so that A, An, The in band names and album names are ignored and it sorts alphabetically using the next word [[Patch MediaPlayer Ignore 'A', 'An', and 'The' In Artist and Album names]] ~ Keegan99&lt;br /&gt;
* In the camera app, use the volume up/down buttons to snap a picture.&lt;br /&gt;
** [[Patch Camera Using Volume Buttons to Take a Picture|Take a picture using volume buttons]] ~ FXDemolisher&lt;br /&gt;
* When camera app loads, also load photos app (for quicker review). Even better, let user choose to &amp;quot;keep&amp;quot; or &amp;quot;delete&amp;quot; a picture, and keep the photo on the screen until a choice is made.&lt;br /&gt;
* Stop the alert noise from obnoxiously playing every single time you put the Pre back on the Touchstone.	&lt;br /&gt;
** [[remove-charging-event-alerts]]&lt;br /&gt;
* Set up the center button to wake the Pre up, like an iPhone's home button wakes up the iPhone.&lt;br /&gt;
* Allow copy to work from google maps, so you can get a url of your current location to paste in chats/sms/mms //~ hemna//&lt;br /&gt;
* Light up Navi lights when a notification is received&lt;br /&gt;
* Setting to disable ring for Unknown Number&lt;br /&gt;
* When the clock's alarm goes off, it only turns on the screen for the customary ~2 seconds before shutting the screen off.  Change this to keep the screen on as long as the alarm is playing, then go to sleep when the &amp;quot;snooze&amp;quot; button is pressed.&lt;br /&gt;
* Make &amp;quot;all-day&amp;quot; appointments show up in calendar month view (currently invisible)&lt;br /&gt;
** [[Patch Calendar Show All-Day Events in Month View]] //~ Sloloem// &lt;br /&gt;
* Allow the phone app to run in the background, without a visible card, (to speed up ringtone playing on incoming phone calls).&lt;br /&gt;
* Disable the end call sound and the low battery sound.&lt;br /&gt;
* Add the ability to snooze a calendar reminder for a certain amount of time that user can choose.&lt;br /&gt;
** [[Patch Clock Changing Alarm Button Order and Snooze Duration]] //~ HebrewzHammer//&lt;br /&gt;
* Add additional gstreamer plugins into the gstreamer plugin directory; should allow adding support for additional media formats pretty easily.&lt;br /&gt;
* Make Contacts app and Universal Search search ALL contact fields. Similar to Google Contacts.&lt;br /&gt;
* Provide for two different brightness levels, one (brighter) for while charging, with another for when the Pre is on battery  // Proposed on irc by navinag //&lt;br /&gt;
&lt;br /&gt;
=Development Ideas=&lt;br /&gt;
Get [[vnc | VNC]] input working with a mouse and keyboard driver. //~ ultraBlack//&lt;br /&gt;
&lt;br /&gt;
Get [http://synergy2.sourceforge.net/ Synergy] working with a mouse and keyboard driver. :O Why not? :P //~ ultraBlack//&lt;br /&gt;
&lt;br /&gt;
Develop a power calculator app for the Pre, with DIGIT-GROUPING, more functions, and possibly even a graphing mode. //~ ultraBlack//&lt;br /&gt;
&lt;br /&gt;
Put [http://www.mozilla.com/en-US/products/download.html?product=firefox-3.0.11&amp;amp;os=linux&amp;amp;lang=en-US Firefox] on it. Definitely not practical. Maybe [http://portableapps.com/node/9364 Portable Firefox?] //~ ultraBlack//&lt;br /&gt;
* Consider [http://www.opera.com/mobile/ Opera Mobile] or [http://www.opera.com/mini/ Opera Mini] as more worthwhile alternatives. //~ ultraBlack//&lt;br /&gt;
* Opera Mobile can successfully upload files to web servers. (re: idea to upload via browser) //~ oc80z//&lt;br /&gt;
&lt;br /&gt;
Work out a good backup solution, perhaps mrb or netapp like .snapshots,  so updates/upgrades are easier. //~ Robi//&lt;br /&gt;
&lt;br /&gt;
Look into setting up [[ad-hoc networking | ad-hoc networking]] for file sharing over WiFi and BitTorrent. //~ Robi//&lt;br /&gt;
&lt;br /&gt;
Put [http://www.apache.org/ Apache] on it. //~ ultraBlack// Done. http://predev.wikidot.com/apache //~nebula//&lt;br /&gt;
* Consider [http://www.lighttpd.net/ Lighttpd] or [http://www.cherokee-project.com/ Cherokee] as more worthwhile alternatives. //~ Robi//&lt;br /&gt;
* For limited needs thttpd + php as shown in [[ajaxphpterm]] seems to work fine with minimal resource usage. //~ djbclark//&lt;br /&gt;
* Sprint blocks connections to the Pre on port 80, but port 2222 and 8080 has been tested and work //~ smashman// 8000 also works //~nebula//&lt;br /&gt;
&lt;br /&gt;
Make LunaSysMgr run without exclusive access to I/O, so it can be run alongside [[DirectFB]] applications (and since directfb can run GTK, QT, and X11 applications directly, also those). Some ideas on how to do this are on the [[DFBTerm DirectFB Terminal Emulator]] page's &amp;quot;Virtual Keyboard-Video-Monitor (KVM) Switch&amp;quot; section, however if LunaSysMgr source code becomes available the best method would probably be to just change it to run against directfb instead of using /dev/fb* and /dev/input/* directly. //~ djbclark//&lt;br /&gt;
&lt;br /&gt;
Confirm that the device is free of Digital Restrictions Management (DRM) by installing Linux compiled from source. There is a /proc/config.gz, and palm has released the patches they used at http://opensource.palm.com/packages.html (search for &amp;quot;linux kernel&amp;quot;). This may also be useful as linux patches may be needed for some of the other ideas on this page. //~ djbclark// &lt;br /&gt;
* Done by //~ rwhitby// and //~ tonycpsu// at [[Custom Kernels]]&lt;br /&gt;
&lt;br /&gt;
Possibly easier accessing linux procedure - create an .ipk (ipkg) file that does the accessed linux setup; have user execute either by emailing them the file (it has been confirmed that you can install ipkg files via the email client), and/or by having them temporarily manually set their DNS to a DNS server that would direct the app store somewhere else.  //~ djbclark//&lt;br /&gt;
&lt;br /&gt;
Make directfb (via tslib - http://tslib.berlios.de/ - or gpm - http://unix.schottelius.org/gpm/ ) work with the palm pre's /dev/touchscreen (new driver CONFIG_TOUCHSCREEN_CY8MRLN=y (cypress touchscreen) included in http://palm.cdnetworks.net/opensource/1.0.1/linux-2.6.24-patch.gz) - see [[vala-terminal]] for more details.  //~ djbclark//&lt;br /&gt;
&lt;br /&gt;
Add more Bluetooth profiles/support such as HID so that BT keyboards can be used.&lt;br /&gt;
&lt;br /&gt;
Enable printing - my testing of CUPS install failed on the 'insmod' file missing, could not installed printer driver, CUPS-DOC worked and the web interface was functioning well on localhost from the Pre browser. //~ dld121//&lt;br /&gt;
&lt;br /&gt;
Implementing a learning autocorrect system.  Perhaps just a process that monitors keyboard input and removes //word// from the dictionary when //word//&amp;lt;space&amp;gt;&amp;lt;backspace&amp;gt;//nextword// is found.&lt;br /&gt;
&lt;br /&gt;
Create or port a Usenet news reader under WebOS&lt;br /&gt;
&lt;br /&gt;
Figure out how to add custom gestures to the screen/gesture area.  (I'd really like to tap around the center button to emulate a 5-way pad.)&lt;br /&gt;
&lt;br /&gt;
RSS Reader (Importable Feeds, Subscription to podcasts) //~ oc80z//&lt;br /&gt;
&lt;br /&gt;
Get [http://www.freesmartphone.org/ (FSO) ]working on the Palm Pre as an alternative platform to the nonfree  [http://www.freesmartphone.org/index.php/HardwareInteresting_Targets LunaSysMgr GUI] - http://laforge.gnumonks.org/weblog/2009/06/20/20090620-palm_pre_wanted //~ djbclark// [http://www.freesmartphone.org/index.php/Palm_Pre Links and community organizing.]&lt;br /&gt;
&lt;br /&gt;
TASK application - add categories column A-B-C like, and priority column 1-2-3-4-5, like the Treo755p Task application. Make them sortable by clicking on column header.  Additional development: maybe some way to sync the Tasks with desktop or web based interface&lt;/div&gt;</summary>
		<author><name>Nt4cats</name></author>
	</entry>
</feed>