Handhelds

== Matchbox Window Manager ==
A major component of embedded Linux distributions targeted at handhelds and PDAs, such as OpenZaurus, the Ångström distribution, and even Maemo, was the Matchbox Window Manager.
The main raison d'être for Matchbox is that:
* It is very lightweight. It consumes a couple of MB of memory and has little CPU usage.
* It presents only one window at a time, like traditional PDA interfaces e.g. Palm OS.
=== Status ===
Its main components are as follows:
Component name 	Status	Package name in PMOS 	Package version in PMOS	Description 	Comments
libmatchbox 	Ported	libmatchbox 	1.12 	Library for matchbox window manager 	The main library behind Matchbox. It is used so that window managers can use and customise its window management functionality without having to bundle the full matchbox-window-manager.
matchbox-common 	Ported	matchbox-common 	0_git20070606 	Common data files for Matchbox 	Includes files like the session, some basic configuration data like which directories are shown by the matchbox-desktop (via the Desktop Menu Specification). It starts the panel, the desktop interface, the keyboard in daemon mode, and the window manager.
matchbox-desktop 	Ported	matchbox-desktop 	2.0 	Desktop system for handhelds using the GTK+2 stack 	A desktop interface that runs behind the programs in Matchbox. The panel includes a home button that can bring this to the front, so that other programs can be switched to.
matchbox-keyboard 	Ported	matchbox-keyboard 	0.1.1 	An on-screen virtual keyboard 	It has GTK+2 and GTK+3 input method support, and can build a (currently non-working) panel applet for matchbox panel version 2. It also has cairo integration. It should be started in daemon mode so that the panel applet can send the signal to make it show itself.
matchbox-panel 	Ported	matchbox-panel 	2.11_git20161123 	Simple GTK+3-based panel for handheld devices 	This is a rewrite of the original matchbox-panel. It has GTK+3 support. However, some of the panel applets don't work quite how they should, e.g. the systray is seemingly always empty. However, e.g. notifications show up and the user can press a button to view the desktop.
matchbox-window-manager	Ported	matchbox-window-manager	2.0_git20171119 	Window manager intended for non-desktop embedded platforms such as handhelds and set-top boxes	This is a rewrite of the original matchbox-window-manager. It removes xsettings support in favor of GTK+2 integration and also has PNG theme support (not enabled yet). It also has pango integration.
=== Next steps ===
Old panel applets; ideally these would be packaged to work properly with matchbox-panel version 2, rather than to appear in the systray etc:
* Matchbox Panel Input Manager Applet
** Toggles an input method on and off
** It does actually show up in the panel, seemingly in systray (with no icon). The package was removed from the repository but can be added again if an icon can be added.
** Worth combining this functionality with the other applet's GTK signalling to call the keyboard (which runs daemonised).
* Matchbox Panel Screen Brightness Applet 
** Controls display brightness.
** Untested. Should be trivial to create something similar for the version 2 panel.
* Matchbox Panel Startup Monitor Applet
** Monitors and notifies users of applications as they start. 
** The equivalent seems to already be integrated into Matchbox Panel version 2, but it's not clear if it's in a working state.
* Matchbox Panel Volume Control Applet
** Controls ALSA volume
** PulseAudio is all the rage and succeeds esd. Perhaps we should create a PulseAudio volume control applet.
* Battery Monitor Applet
** Built in to the original Matchbox Panel, and an equivalent exists for version 2.
** However, it uses apmd, which is old and not widely used any more. 
** A battery monitor applet, making use of modern interfaces, similar to the XFCE4 battery monitor, would be very useful. (Perhaps we can use the XFCE4 Battery Monitor for this purpose?)
* Wireless Network Applet
** Like the Battery Monitor Applet, this is also built into the panel.
** It uses wireless tools. Modern systems use wpa_supplicant.
** nm-applet actually runs in the systray, which supports mobile broadband as well as some other connections in addition to WiFi. wpa_gui also runs in the systray but it has no tray icon, which makes it difficult to use.
Additional desirable applets:
* An applet to control shutdown/reboot, logging out of the graphical interface (back to some display manager?), screen-locking, etc.
* Calendar
* Alarm and more advanced clock
* Screen rotation control (xrandr frontend?)
* Shortcut to settings etc.
=== Active issues ===
* There is an odd issue with window focus. Under some circumstances (seemingly to do with the window-switching panel applet), it will become impossible to use the mouse to select GTK widgets etc. Opening and closing windows works. (Probably remove the window-switching panel applet for now.)
* After launching nm-applet from the systray, the panel sometimes grows in scale. This may be related to the 'allow-smaller-icons.patch' patch that was applied to it, which set small sizes to systray icons where applicable (it is a simple patch). Consider reverting the patch if this behaviour doesn't persist without the patch, obviously.
* Currently, the X cursor is displayed; there is a command-line option for matchbox-window-manager version 2 to enable/disable this, as well as set themes etc. This is fine, given that Matchbox is best suited to handhelds with touch screens. Nonetheless, the X cursor might be unsuitable for devices with capacitive touchscreens (i.e. likely without a stylus, although devices in the Galaxy Note series have a stylus with advanced features) and no hardware keyboard. It might be worth:
# devising a method of being able to check hardware features, e.g. have some kind of interactive setup program (or pmbootstrap) create some file
# just turning off the X cursor altogether, given it should be obvious for users using styluses where the cursor is likely to be
* The keyboard applet sends MBKeyboardRemoteToggle. This is not generic. It should call any GTK+2 or GTK+3 input method that is configured, and allow users to select the keyboard to call. This would allow one to call alternative keyboards and input methods.
* Input methods are not overlayed on top of the current windows. In the case of input methods that don't span the whole display, this causes the empty space where the keyboard would normally span right across to not be updated. The original matchbox-window-manager had a configure flag called 'enable-alt-input-wins' which should fix this. It can be forward-ported.
== The GPE Palmtop Environment ==
The GPE Palmtop Environment is a GTK+-based user interface for PDA devices. It's similar to OPIE (The Open Palmtop Integrated Environment) or QtMoko. GPE is designed to be extremely lightweight and small in size.
However, the last version of Debian that shipped the suite was Wheezy. The project appears to have suffered from a lack of maintainers, a trademark and copyright spat between the handhelds.org website and linuxtogo website, as well as very slow development. 
The GPE code is entirely unmaintained and has dependencies which are unmaintained, for instance SQLite versions from around 2005.
It also has its main configuration program running as setuid root, which presents quite a large attack surface for a simple program.
It also depended on non-standard components such as /etc/timezone (this is not portable to systems not based on Debian, let alone
POSIX-compliant Unix-like systems). 
Additionally, certain libraries, that the suite depends on, ship with some terrible security issues, for instance old versions of sqlite.
The most immediate problems, however are with compiling the thing. Many of the packages do not link properly or make assumptions about obscure glibc functions (such as the undocumented __isleap macro in glibc's time.h).
Another immediate problem is that the homepage for GPE is now gone. The source code archives that were used came from Debian. They appear to be the latest - they shipped with Debian Wheezy, which came out in May 2013.
* Some high-quality (?) screenshots
=== Status ===
The status of GPE and associated programs in PostmarketOS (WIP branch) is as follows:
Component name 	Status 	Package name in PMOS	Package version in PMOS	Description 	Comments 	Priority
audiofile 	Ported 	audiofile 	0.3.6 	Audio package which supports a large number of codecs and media types. 	Possibly not maintained; no update since 2016. 	High - keep it maintained or look for alternative
esd 	Ported 	esound 	0.2.41 	Enlightened sound daemon. Once the sound daemon for Enlightenment and GNOME. 	Not maintained upstream. Switch to PulseAudio may be desirable. 	High - switch to PulseAudio
gpe-aerial 	Not ported 	N/A 	N/A 	Wireless connectivity tool 	 	Low - not worth porting this.
gpe-announce 	Ported 	gpe-announce 	0.14 	Provides alarm support 	 	High - key part of suite
gpe-appmgr 	Ported 	gpe-appmgr 	2.8 	Application manager for GPE 	Application launcher for GPE 	High
gpe-autostarter 	Not ported 	N/A 	N/A 	Autostarts applications 	It is fairly niche and could be easily rewritten to be generic; alternatives probably already exist. 	Low - not worth porting this
gpe-beam 	Not ported 	N/A 	N/A 	IrDa file transfer tool 	This is very niche and there are very few devices currently in PMOS that support IR transfer (the only one that comes to mind is the LG G3 which had an IR blaster, but it is unknown if this would work). 	Low - not worth porting this yet
gpe-bluetooth 	Not ported 	N/A 	N/A 	Bluetooth connectivity tool 	Modern programs exist for bluetooth transfer. It is unknown as to whether this program would still work. 	Low - not maintained; find alternatives
gpe-bootsplash 	Not ported 	N/A 	N/A 	A boot splash screen. 	Not suitable for PMOS, as we already have a boot splash screen which offers more functionality. 	Low - defunct
gpe-calculator/gpe-calculator2	Not ported 	N/A 	N/A 	Calculator program for GPE 	This would perhaps be useful to have, but e.g. galculator is already packaged, which is at least as fully-featured. 	Low - near identical alternatives i.e. galculator
gpe-calendar 	Ported 	gpe-calendar 	0.92 	Calendar application for GPE 	A useful and lightweight calendar application. However, gpe-contacts does not currently work, so it may be missing any associated functionality. 	High - key part of suite
gpe-clock 	Ported 	gpe-clock 	0.27 	Clock application for GPE 	 	High - desktop clock key part of suite
gpe-conf 	Ported 	gpe-conf 	0.2.9 	Configuration toolset for GPE 	Not working very well. It depends on gpe-confd which needs to be running in the background. It also doesn't allow a user to enter and authenticate with the root password, possibly because the infrastructure it uses to do this is making incorrect assumptions about what is available to an unprivileged user (despite it being setuid root). A rewrite may be fruitful and useful.	High
gpe-confd 	Ported 	gpe-confd 	0.16 	Persistent XSettings storage daemon for GPE 	Key dependency of gpe-conf 	High - gpe-conf can't apply settings without it.
gpe-dm 	Not ported 	N/A 	N/A 	Desktop manager for GPE 	There is not a lot of information about this program. It probably refers to a display manager. However, there are alternative display managers to use for now. 	Low - unknown about status or what it did
gpe-edit 	Ported 	gpe-edit 	0.41 	Text editor for GPE 	Works really well. 	High - really useful
gpe-expenses 	Partially ported	gpe-expenses 	N/A 	Expenses application for GPE 	The program depends on libraries that weren't all ported yet. 	High - useful part of suite
gpe-filemanager 	Ported 	gpe-filemanager 	0.31 	An extremely lightweight file manager. 	It renames/deletes/moves files. It complements beefier file managers nicely. Midnight commander also works well in the terminal. 	High - integrates with the suite nicely
gpe-gallery 	Ported 	gpe-gallery 	0.97 	Image gallery application for GPE 	This works really well and stands on its own fine. 	High - integrates well
gpe-go 	Ported 	gpe-go 	 	A go game for GPE 	Should work on its own. But it is probably more valuable to port the CGoBan game, as this is an online Go game (as well as offline) and is more fully featured 	Medium - it is just a game
gpe-icons 	Ported 	gpe-icons 	0.25 	Basic icon set for GPE 	Depended on by almost every GPE program. It is a fairly inoffensive icon set. GPE does allow one to theme its programs, it should be noted. 	High - key part of suite
gpe-julia 	Ported 	gpe-julia 	0.0.6 	Julia set manipulation game for GPE 	Cute little game that lets users manipulate Julia sets 	Medium - it is just a game
gpe-lights 	Ported 	gpe-lights 	0.13 	Lights-out game for GPE 	Low priority. Not particularly fun. 	Medium - it is just a game
gpe-login 	Ported 	gpe-login 	0.95 	Login screen for GPE 	It also provides a lock screen which can lock on suspend, which is useful. However, given the program is not maintained, it seems questionable whether to rely on it to actually secure a given device. 	Medium - not necessarily needed
gpe-mini-browser 	Not ported 	N/A 	N/A 	A tiny web browser for GPE 	Not maintained (and this is bad for a web browser). Use Dillo, Netsurf, text-only web browsers instead on low-end devices. Midori also works reasonably well 	Low -
gpe-mininet 	Not ported 	N/A 	N/A 	Network connectivity monitor for GPE 	Probably not worth porting. Modern alternatives exist that are more fully-featured. 	Low
gpe-mixer 	Not ported 	N/A 	N/A 	Audio mixer frontend for GPE 	If we switch GPE to use PulseAudio instead, this becomes defunct (PulseAudio volume control program has plugins for panels and is very usable). As such, unlikely to port this. 	Low - move to PulseAudio
gpe-othello 	Not ported 	N/A 	N/A 	Othello board game for GPE 	Not particularly fun. May be useful to some. 	Medium - it is just a game
gpe-ownerinfo 	Ported 	gpe-ownerinfo 	0.28 	Owner details program 	This is probably not worth using without gpe-login. And gpe-login doesn't really compile, nor is it really worth porting. 	Low
gpe-package 	Not ported 	 	 	OPKG/IPKG package manager 	Can probably be hacked up to use apk, maybe dpkg etc 	
gpe-question 	Ported 	gpe-question 	0.04 	GPE interface for asking questions from shell scripts 	 	High
gpe-screenshot 	Ported 	gpe-screenshot 	0.4 	Screenshot program for GPE 	 	High
gpe-shield 	Not ported 	N/A 	N/A 	GPE firewall configuration tool 	Not ported. Similarly to gpe-mininet, there are modern equivalents which are more fully-featured, e.g. gufw. 	Medium
gpe-sketchbook 	Ported 	gpe-sketchbook 	0.2.9 	Sketchbook program for GPE 	A useful and fun application for PDAs. Well worth porting as it is not as complicated and heavy as, say, GIMP or InkScape. There are slightly larger programs such as mtpaint that are also useful. 	High
gpe-soundbite 	Not ported 	N/A 	N/A 	GPE tool to record sounds 	Probably worth porting. 	High
gpe-su 	Ported 	gpe-su 	 	GKSU equivalent for GPE. 	Potentially dangerous program. May still be useful. 	Medium
gpe-taskmanager 	Ported 	gpe-taskmanager 	0.20 	A task manager program for GPE 	Presents a simple list of running programs (excluding Xorg and the like) and offers the user an opportunity to kill/stop (etc) the programs in question. 	High
gpe-terminal 	Not ported 	N/A 	N/A 	Terminal program for GPE 	Not worth porting. Just use an existing X terminal program. 	Low - generic
gpe-tetris 	Not ported 	N/A 	N/A 	A Tetris game for GPE 	It is Tetris. It is not particularly unique. 	Medium - it is just a game
gpe-timesheet 	Not ported 	N/A 	N/A 	A timesheet application for GPE 	A useful PIM application. Reasonably high priority. 	High - useful part of suite
gpe-today 	Not ported 	N/A 	N/A 	A daily summary. 	Back in 2007 it was marked as "not really maintained". Not a high priority. 	Low
gpe-todo 	Not ported 	N/A 	N/A 	Record a todo list. 	 	High
gpe-watch 	Not ported 	N/A 	N/A 	A program for GPE that performs the functionality of a watch for a small screen.	Maybe useful. Especially for smartwatches. 	High
gpe-syncd 	Not ported 	N/A 	N/A 	PIM data syncronisation daemon. 	Not a lot of information about what this thing did. It appears to be related to GPE's functionality as a PalmOS replacement. 	Low
gsoko 	Not ported 	N/A 	N/A 	Sokoban game for GPE 	Rather fun. Worth porting. 	Medium
libcontactsdb 	Ported 	libcontactsdb 	0.5 	Library to interface with gpe-contacts' database of contacts 	Uses sqlite2. Required for gpe-contacts. 	
libdisplaymigration 	Ported 	libdisplaymigration 	0.28 	Display migration support library for GTK+ 	Not clear if this is at all maintained. It seems to derive from an upstream GNOME library that was abandoned. 	
libeventdb 	Ported 	libeventdb 	0.90 	Library that provides access to data from gpe-calendar 	Depends on sqlite2. 	
libgpelaunch 	Ported 	libgpelaunch 	0.14 	Helper library for launching programs in GPE 	Not clear why this is needed when the window manager will launch programs. 	
libgpepimc 	Ported 	libgpepimc 	0.9 	Category management for GPE applications 	Depends on sqlite2 	
libgpevtype 	Ported 	libgpevtype 	0.50 	Data interchange library for GPE 	 	
libgpewidget 	Ported 	libgpewidget 	0.117 	Main widget library for GPE 	 	
libmimedir 	Ported 	libmimedir 	0.4.2 	Library that implements MIME directory profiles 	This library seems defunct 	
libhandoff 	Ported 	libhandoff 	0.1 	Handoff library for GPE 	 	
libsoundgen 	Ported 	libsoundgen 	0.6 	GPE sound generator library 	There are probably modern alternatives 	
libtododb 	Ported 	libtododb 	0.11 	Library that provides access to gpe-todo's database 	 	
libxsettings-client 	Ported 	libxsettings-client 	0.17 	Utility functions for Xsettings protocol 	Due to conflicts with libxsettings, there is no -dev package; the package builds a library that libxsettings also builds, which Alpine automatically brings in to its dev package. This should be trivial to fix. 	
libxsettings 	Ported 	libxsettings 	0.11 	Xsettings protocol library fro GPE 	 	
sqlite2 	Ported 	sqlite2 	2.8.17 	Legacy Sqlite version 	Not maintained at all. The existence of this package is a bug. 	
xsd 	Ported 	xsd 	0.15 	XSettings daemon 	Required for gpe-conf 	
=== Next steps ===
* Move from SQLite version 2 to modern SQLite version 3
* Move from gconf and xsettings to gsettings and dconf. O-hand made xsettings-daemon, a bridge between xsettings and gconf. This can be useful for GPE, as it makes heavy use of xsettings.
* Proper GTK theme support.
* Move to GTK+3. Reworking libgpewidget should do the trick. Getting rid of it altogether may be desirable.
* Move from the Enlightened sound daemon (esound) to PulseAudio or similar. In fact, esdcompat is part of pulseaudio-utils. So, we can build against esd development libraries, but not actually install esd itself.
* Fix dependencies on non-standard system infrastructure such as /etc/timezone.
* Investigate modern replacement for the audiofile program.
* Modern configuration program for wireless networking with privilege separation.
* GTK programs that don't use xsettings aren't able to be configured by its theme support (as far as it appears). Enhance gpe-conf to be able to do this (or get rid of the xsettings-based theme system and just use GTK+.)
* It might be worth pulling out gpe-su and making use of pkexec (it's polkit; but it is at least maintained and works reasonably well for the purpose of running programs as root)
=== Active issues ===
* Sound does not appear to work. This may be device-specific.
* Rewrite gpe-conf's passwd.c interface, as it seems to make assumptions that are incorrect about standard systems.
* Disk space isn't reported, just system memory usage (which arguably isn't very useful anyway)
* Battery status is not shown in gpe-conf. This appears to be because some parts of GPE are built around the old apmd system, which is now deprecated in favour of acpid. But ACPI support has to be implemented in firmware. So, the apmd might be desirable to experiment with on very old devices.
* gpe-su always looks for the command x-terminal-emulator. A really dirty solution is to patch this to say xterm or similar. In Alpine, update-alternatives is actually provided by the dpkg package.
== Tracking PIM suite and mobile interface components ==
We should be able build a basic, lightweight system aimed at low-end PDA-like devices from Matchbox, GPE, and a few other components.
Functionality 	Status 	Packages providing this 	Evaluating
Alarm support 	Partially working 	gpe-alarm 	Apparently gpe-alarm was prone to randomly going off without users being able to stop it.
Camera 	Not working - v4l-utils (Video4Linux) typically needed for camera support e.g. on N900	 	GNOME-Cheese
Calendar 	Working fully 	gpe-calendar 	Pimlico Dates
Contacts 	Working fully 	gpe-contacts 	Pimlico Contacts
Dialer 	Not working at all 	 	GPE Mobile Edition's dialer (?)
Ebook reader 	Partially working - fbreader is not in Alpine [yet] 	fbreader 	
E-mail 	Working fully 	sylpheed 	Thunderbird, Claws-mail
Expenses 	Partially working 	gpe-expenses 	gnucash, beancount/plaintext accounting/hledger-web etc - we need a lightweight web browser optimised for mobile that can run scripts
File manager 	Working fully 	pcmanfm, gpe-filemanager 	
FM radio 	Not working 	 	Gnomeradio is an FM radio tuner for the GNOME desktop and works reasonably well on mobile/handhelds etc; it also supports recording. Video4Linux is required as that has support for certain radio tuners e.g. OMAP4's FM radio tuner. Also see http://wiki.openmoko.org/wiki/Wishlist:Digital_Radio.
Games 	Partially working 	gpe-julia, openttd 	gpe-tetris; gpe-lights; gsoko; xdemineur (minesweeper clone); cgoban (needs internet connection to be really fun); 2048-qt; Cave Story (in form of open-source NXEngine) also works fine without any hardware acceleration, and is very fun.
Graphical package-management 	Not working 	 	: Add apk backend support to PackageKit. This is a real blocker. We could also bungle some support onto one of the OPKG/IPKG frontends that have been lost to the mists of time (e.g. gpe-package).
Graphical installer/set-up tool 	Not working 	 	These are actually two different issues, but they're related. The former can be solved in pmbootstrap and isn't really essential as it stands. The latter can be partially worked-around by having good defaults. Nonetheless, there is a need for a simple tool to e.g.
# Set up users,
# Set up a wireless network and/or mobile network,
# Teach users the basic layout of the system.
One might also comment that creation of users is a function of pmbootstrap currently, but that it may not be desirable in the future, depending on which direction things go.
Image gallery 	Working fully 	gpe-gallery 	gpicview
Instant messaging 	Working partially 	nheko, pidgin 	A frontend for Signal's API would be very nice, or some Matrix client supporting e2e encryption e.g. Riot.im (Electron app, relatively resource heavy), RocketChat client, Conversations web client etc.
IR blaster manipulation 	Not working 	 	gpe-beam (?), Girda - the GNOME IR Monitor
Login / lock screen 	Not working 	gpe-login 	QtLockscreen
Media player 	Working partially 	VLC, mpv 	Sato Linux's gaku player, which is really nothing more than a GTK+2-based frontend for GStreamer
Navigation 	Not working 	 	gpsd is already packaged in Alpine, components that can use it include: navit, tango-gps, Geocaching tools like SHR's Advanced Geocaching Tool for Linux.
Note-taking and text-exiting 	Working fully 	gpe-todo, gpe-edit, leafpad	
On-screen keyboard 	Working fully 	matchbox-keyboard 	https://wiki.postmarketos.org/wiki/Input_methods, especially Maliit
Planning ('todo' apps) 	Not working 	gpe-todo 	Pimlico-Tasks
Power management and monitoring 	Not working 	 	Goals:
* Be able to monitor and display battery status (For Nokia N900: related)
* Respond to low-battery status
* Respond to presses of the power-off button
* Dim the screen automatically (already turns off after a while on N900)
* There should be a proper panel plugin and associated battery-monitoring program, e.g. see xfce4-battery-plugin which appears to also provide a panel applet
Program launcher 	Partially working 	 	There are a number of programs that will merely launch programs. However, they are quite varied and naturally satisfy different niches, or are not suitable as standalone programs. Some examples include:
* The Matchbox desktop program (works well with caveats)
* Gmenu2x, a graphical launcher suitable for handheld games consoles and was used on the Ben Nanonote handheld
* Various window managers'/desktop environments' panels and app launcher programs
* Sugar desktop (used to use Matchbox, moved to Metacity)
* It should be possible to customise AwesomeWM for handheld form-factor etc.
RFID/NFC 	Not working/implemented 	 	There don't seem to be any usage of NFC on desktop Linux. There is an NFC subsystem in the Linux kernel, and libhybris has adaptations for NFC to be made available. All that is needed is for applications to make use of it. See also neard for NFC (analogous to BlueZ or wpa_supplicant for Bluetooth and wireless networking respectively).
SMS 	Not working at all 	 	GPE Mobile Edition's SMS messanger (?)
Spreadsheets 	Working fully 	gnumeric 	gnumeric is lightweight and on the whole works well, albeit not being optimised for a stylus-based interface, and stands apart from expenses programs. LibreOffice-calc also exists, but it's incredibly heavy and even more unsuitable.
System panel 	Partially working 	matchbox-panel 	Applets can be added to the panel and the panel sits at the bottom of the display.
Time and date 	Not working - gpe-clock is broken 	gpe-clock 	
Terminal 	Partially working - gpe-terminal is a bit defunct though 	xterm 	rxvt, xfce4-terminal, st, gpe-terminal
Web browsing 	Partially working 	dillo 	Dillo works for low-end devices, but the modern web wants to run scripts, and accessing the web on handhelds and PDAs is one of their main attractions. One option, Midori, will run reasonably quickly but it is not well-optimized for handhelds or touch screens.
Windowing system 	Partially working 	matchbox 	Window manager, and graphical desktop builds, but not yet working with PNG themes
Wireless networks and mobile broadband	Partially working 	nm-applet 	Options:
* wpa_gui works (with some manual configuration)
** It is merely a frontend for wpa_supplicant. 
** It appears in the systray, with no icon, which is non-intuitive, especially given the panel isn't actually a visible widget (only the panel applets display their respective icons).
* Priority: get NetworkManager and nm-applet working properly. 
** Add "nm-applet &" to matchbox-session, and it will appear in the panel's system tray. A better solution is to check if it is installed, and only then start it. 
** Connecting to wireless networks has not been tested, only that the matchbox-panel systray displays it. 
** One advantage of NetworkManager is that it allows connections to mobile broadband.
== Pimlico Project, Sync, and miscellaneous PIM applications ==
The Pimlico Project was created by OpenHand as part of their Sato Linux distribution (based on OpenEmbedded-core). Sato seems primarily based on OE-core, Matchbox, and Gnome components (this is related to the Gnome embedded initiative in ~2007).
* Sato release announcement
* Pimlico project archive
* GNOME on Mobile and Embedded
* Forum post about the Pimlico suite
* Sync support discussion page
* Mirror of source tarballs
It is composed of the following four components:
* Dates - a calendar application
* Tasks - plan tasks etc
* Contacts - make a record of contact information
** Mystery 0.12 version
* Sync - synchronise the applications with external sources
** Unfortunately, OpenHand's website is now defunct, so Sync's source code appears to be inaccessible there. However, Sync appears to have been mirrored at https://git.yoctoproject.org/cgit/cgit.cgi/sync/. That being said, it's not clear if they're the same program.
** Sync is based on the (seemingly) now-defunct (or at least dormant?) OpenSync project, so it is probably not worth porting. Other mobile synchronisation programs such as KDEConnect are probably worth looking at.
Thoughts:
* It should be possible to make the programs use the modern Evolution data server. It currently is not possible to compile them because they use APIs that are deprecated and removed from upstream Evolution data server
* The programs may fit in nicely with existing GNOME components e.g. Evolution mail itself.
== GPE phone edition ==
There was also a now-defunct GPE phone edition. It provided Email, SMS, voicemail, and calling components. This could be useful.
== What about OPIE and others? ==
=== OPIE ===
OPIE is an alternative to GPE. It's similarly targeted at embedded systems and is similar in function. However, it uses QT Extended (QTE), which is no longer under active development, and does not compile on more recent systems, let alone under Musl.
* OPIE Project
=== QTMoko ===
Another alternative is QTMoko. QTMoko is similar to OPIE but they forked QTE and now use a custom patched version of QT (Itself unmaintained). QTMoko is the fork of QTE for OpenMoko handsets. The developers are looking into moving away from this in the future, though, so this is probably a viable alternative. In particular, they will at some point make QTMoko2 work on Debian Stretch, and that had similar compiling issues as on Alpine. The following pages are relevant:
* Main conversation about QTMoko for GTA04 owners
* Message about QTMoko potentially moving away from QTE
* Maintained QTMoko (now at version 2)
=== SHR ===
SHR is an OpenEmbedded-based system which combines Enlightenment with the freesmartphone stack, among other things. They use the illume2 Enlightenment module to make Enlightenment fit handhelds' form factor more easily, and provide an on-screen keyboard.
* SHR overview
* SHR user manual
A thought: It would be useful to port Enlightenment to Alpine at any rate. It can work as an X11 window manager or as a Wayland compositor, and it is used for instance by Tizen. However, it's codebase is "interesting", particularly the EFL libraries.
== Relevant links ==
* Debian GPE Packaging homepage
* Tracking status of GPE packages in Debian
* Archived documentation for GPE
* Archive of GPE development website
* WIP branch
* OpenMoko's list of distributions
* elinux.org page on user interfaces for embedded systems
* IpkgFind search results for GPE
* Information about Debian on mobile
* GPE phone edition announcement
* OpenMoko's list of applications
* 'Building consumer products with open source' - Insightful essay by Ari Jaaksi, Nokia's director of open source
* 'Matchbox: Window-management not for the desktop'
* Potentially useful tools and libraries from the FreeSmartphone project (especially apm2, which replaces apm commands with equivalent DBUS commands)
Category:Unavailable and/or unmaintained interfaces