#Sxmo: Simple X Mobile

Pinephone Sxmo Demo

Project Overview | Install Guide | User Guide | System Guide | Contributing | Images | Demo Video

Documentation (postmarketOS Stable) | Documentation (postmarketOS edge) | Documentation (Development Version)

builds.sr.ht status builds.sr.ht status builds.sr.ht status

Sxmo, or Simple X Mobile, is a collection of simple and suckless programs and scripts used together to create a fully functional mobile UI adhering to the Unix philosophy. We focus on Linux smartphones such as the Pinephone. Sxmo is primarily written in POSIX shell scripts and can be easily modified and extended using our hook system.

Sxmo >= 1.6.0 runs both on Xorg (using dwm) as well as on Wayland (using sway). The X in our name historically referred to Xorg, but is now open to whatever interpretation you prefer (eXtensible, eXcellent, eXperimental, etc...)

A brief overview of Sxmo's features:

  • Hardware buttons action: press hardware buttons different number of times for different actions (like launching terminals, browsers, and window management)
  • Swipe gestures: (via lisgd) move between workspaces, move windows between workspaces, and raise/lower volume via swipe gestures
  • Menu interfaces: (via bemenu or dmenu) use the Pinephone hardware buttons to select menu entries (e.g. volume up/volume down/select translates to previous/next/select)
  • Onscreen keyboard: (via svkbd or wvkbd) Multiple layer responsive onscreen keyboard that autoadjusts WM space
  • Window Managment: (via sway or dwm) Arrange windows (in classic dwm layouts like monocle, tile, and bstack), kill clients, and cycle window focus using Pinephone buttons
  • Calls & Texting: (via scripts/mmcli) Compose texts in $EDITOR / vim-like editor, read texts in $PAGER, make calls (and audio-route) via dmenu script utilizing modemmanager. Support also for MMS since v1.6.0.
  • Incoming Text/Call notifications: (via script) Vibrate phone & blink led when there is an incoming call/text
  • Lock Screen: (via custom script) Disable screen input, toggle screen on/off for listening to music / pocket use, automatic deep sleep when idle
  • Menu Scripts: Web Search, Files, Countdown Timer, Youtube audio and video (mpv-based), Weather, RSS
  • Web browser: (e.g. firefox) Browse the web while saving screenspace and includes Pinephone buttons (via dmenu) based link-following
  • Terminal: (via foot or st) Excellent terminal support with scrollback, copy-paste, and color invert
  • Camera (via megapixels) Take photos and videos
  • System-menus: Control Volume, Brightness, Wifi, Logout, Modem Info, Launching Apps, and more
  • Application-specific context menus: Increase font-size, zoom, paste, on per-application level via dmenu scripts
  • Auto Login: (via tinydm)
  • SSH as a first class citizen: Log into your phone over ssh and have full access to all sxmo menus and functionality.
  • Alpine Linux / PmOS Based Images: postmarketOS's infrastructure bakes images that bundle Sxmo and pmOS (based on Alpine Linux) which keeps things small, simple, and pragmatic

Sxmo 1.4.1 was presented at AlpineConf 2021, you can watch the video.

A screenshot of the interface:


screenshot with keyboard

About this wiki

commit f79b95ca5ecee26919243c001bc763358924140d
Author: Maarten van Gompel <proycon@anaproy.nl>
Date:   2024-05-03T11:14:29+02:00

updated logging information
Clone this wiki
https://git.sr.ht/~anjan/sxmo-docs (read-only)
git@git.sr.ht:~anjan/sxmo-docs (read/write)