Sxmo
Please read the section about #Sound. |
Sxmo, or Simple X Mobile, is a collection of simple programs and scripts used together to create a fully functional mobile UI adhering to the Unix philosophy.
Installation
You can download an installer image or prebuilt image here.
pmbootstrap config ui sxmo-de-sway
or sxmo-de-dwm
to use dwm instead of sway as the window manager
Alternatively, you may download a PostmarketOS image with Sxmo preinstalled (equivalent to running pmbootstrap init
and selecting pinephone
and sxmo
as the interface).
Usage
User graphical interface controlled by gestures and hardware buttons. Refer to the user guide for detailed usage instructions.
Note that Sxmo is designed for the Pinephone, so don't expect everything to work well on any device out of the box. However, Sxmo is open to contributions that would help to extend portability, see this issue. See below for how to improve functionality on other devices.
Components
Default installation on Xorg consist of:
- dwm — window manager,
- dmenu — menu system,
- lisgd — gesture daemon,
- svkbd — virtual keyboard,
- feh — wallpaper,
- conky — desktop clock,
- clickclack — audio/vibration feedback on keypress,
- st — simple terminal,
Default installation on Wayland consist of:
- Sway — window manager,
- bemenu — menu system,
- lisgd — gesture daemon,
- wvkbd — virtual keyboard,
- swaybg — wallpaper,
- wayout — desktop clock,
- foot — terminal,
State on other devices
Basic functionality works well out of the box on almost any mainline device. However, there are some things that are still have to be generalised, like:
- Vibration (sxmo_vibratepine doesn't work on msm8916 even if correct path to vibrate device is set)
- Sound control (need to get it completly universal instead of hardcoding alsa devices)
Fonts on devices with smaller screens can be configured using the variables dmenu.font
, dwm.font
, st.font
and svkbd.font
in the file ~/.Xresources
. The positioning of the xdm login greeter can be configured with the xlogin*geometry
line of the file /etc/X11/xdm/Xresources
.
For more information on how to port new devices, see: https://git.sr.ht/~mil/sxmo-utils/tree/master/item/scripts/deviceprofiles/README.md
Pictures
-
Sxmo on bq-paella with a few apps running.
-
Sxmo main page.
-
Sxmo main menu.
-
The script page of the Sxmo menu.
-
The application menu in Sxmo.
-
Swipe gestures illustration.
Sound
SXMO is delivered with PipeWire installed by default; however, PipeWire might not work well with all devices yet pmaports#1534,which means that sound volume may be significantly low and saturated (as if there were some too low gains as well as saturated ones on the sound path).
If your device is subjected to the audio issue as depicted above, please report about it on the issue tracker.
This issue has been fixed for OnePlus6 (see pmaports!4186); and there is a new solution which might keep PipeWire audio stable and might also fix low volume and crackling issues (see sdm845-mainline#48).
The following suggested solution might not work. |
To get better results it is advised to switch back to pulse (sxmo supports alsa/pulse/pipewire). You can do so by removing the constraint on pipewire and installing pulseaudio :
$ sudo apk add sxmo-utils-audio-pulse
If you use pmbootstrap to generate your image, you can add sxmo-utils-audio-pulse to your extra packages, it will generate a correct image.
See also
- Sxmo: Freedom on mobile devices through simplicity and hackability — Video Presentation at Libreplanet 2022
- Sxmo: Simple X Mobile - A minimalist environment for Linux smartphones — Video Presentation at AlpineConf 2021
- project homepage
- Sxmo Tips & Tricks
- postmarketOS podcast interviews about Sxmo with proycon, Miles Alan