Jump to content

Sxmo: Difference between revisions

From postmarketOS Wiki
See also: link to interview podcast episode
Fossdd (talk | contribs)
add openrc
 
(29 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{ note | Due to PipeWire media server, you might want to refer to [[Sxmo/Sound]]. }}
{{Infobox interface
{{Infobox interface
|name=Sxmo
|name=Sxmo
|image=File:Sxmo homescreen.png
|image=File:Sxmo homescreen.png
|imagecaption=Sxmo homescreen.
|imagecaption=Sxmo homescreen.
|graphics=dwm on X11/Xorg
|graphics=dwm on X11/Xorg or sway on Wayland
|toolkit=suckless tools (dwm, dmenu, st, etc)}}
|toolkit=suckless tools (dwm, dmenu, st, etc) or equivalents on Wayland - sway, bemenu, foot, etc.}}
Sxmo, or Simple X Mobile, is a collection of simple and suckless X programs and scripts used together to create a fully functional mobile UI adhering to the Unix philosophy for the Pinephone.
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 ==
== Installation ==


<code>pmbootstrap config ui sxmo</code>
{{UI_init|only_openrc=true}}
 
You can download an installer image or prebuilt image [http://postmarketos.org/download/ here].
 
<code>pmbootstrap config ui sxmo-de-sway</code> or <code>sxmo-de-dwm</code> to use dwm instead of sway as the window manager


Alternatively, you may download a PostmarketOS image with Sxmo preinstalled (equivalent to running <code>pmbootstrap init</code> and selecting <code>pinephone</code> and <code>sxmo</code> as the interface): [https://git.sr.ht/~mil/sxmo-docs/tree/master/INSTALLGUIDE.md]
Alternatively, you may [https://man.sr.ht/~anjan/sxmo-docs/INSTALLGUIDE.md download a PostmarketOS image with Sxmo preinstalled] (equivalent to running <code>pmbootstrap init</code> and selecting <code>pinephone</code> and <code>sxmo</code> as the interface).


== Usage ==
== Usage ==


User graphical interface controlled by gestures and hardware buttons. Refer to the [https://git.sr.ht/~mil/sxmo-docs/tree/master/USERGUIDE.md user guide] for detailed usage instructions.
User graphical interface controlled by gestures and hardware buttons. Refer to the [https://man.sr.ht/~anjan/sxmo-docs/USERGUIDE.md 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 [https://todo.sr.ht/~mil/sxmo-tickets/207 this issue]. See below for how to improve functionality on other devices.
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 [https://todo.sr.ht/~mil/sxmo-tickets/207 this issue]. See below for how to improve functionality on other devices.
Line 21: Line 27:
== Components ==
== Components ==


Default installation consist of:
Default installation on Xorg consist of:
* dwm — window manager,
* dwm — window manager,
* dmenu — menu system,
* dmenu — menu system,
Line 30: Line 36:
* clickclack — audio/vibration feedback on keypress,
* clickclack — audio/vibration feedback on keypress,
* st — simple terminal,
* 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 ==
== State on other devices ==


Basic functionality forks well out of the box on almost any mainline device. However, there are some things that are still have to be generalised, like:
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)
* Vibration (sxmo_vibratepine doesn't work on msm8916 even if correct path to vibrate device is set)
Line 39: Line 54:


Fonts on devices with smaller screens can be configured using the variables <code>dmenu.font</code>, <code>dwm.font</code>, <code>st.font</code> and <code>svkbd.font</code> in the file <code>~/.Xresources</code>. The positioning of the xdm login greeter can be configured with the <code>xlogin*geometry</code> line of the file <code>/etc/X11/xdm/Xresources</code>.
Fonts on devices with smaller screens can be configured using the variables <code>dmenu.font</code>, <code>dwm.font</code>, <code>st.font</code> and <code>svkbd.font</code> in the file <code>~/.Xresources</code>. The positioning of the xdm login greeter can be configured with the <code>xlogin*geometry</code> line of the file <code>/etc/X11/xdm/Xresources</code>.
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 ==
== Pictures ==
<gallery>
<gallery>
File:Sxmo-bq-paella.jpg|thumb|left|Sxmo on bq-paella with a few apps running
File:Sxmo-bq-paella.jpg|thumb|left|Sxmo on bq-paella with a few apps running.
File:sxmo-main-page.JPG|thumb|left|Sxmo main page.
File:sxmo-main-menu.JPG|thumb|left|Sxmo main menu.
File:Sxmo-scripts-page.JPG|thumb|left|The script page of the Sxmo menu.
File:Sxmo-app-page.JPG|thumb|left|The application menu in Sxmo.
File:Sxmo_gestures.png|thumb|Swipe gestures illustration.
</gallery>
</gallery>


== See also ==
== See also ==
* [https://framatube.org/w/dHBrnMQeEt8Mq82KxV4zKm?start=0s Sxmo: Freedom on mobile devices through simplicity and hackability] — Video Presentation at Libreplanet 2022
* [https://diode.zone/w/8MtkgWkkmyH946hwTGLAjE Sxmo: Simple X Mobile - A minimalist environment for Linux smartphones] — Video Presentation at AlpineConf 2021
* [https://sxmo.org/ project homepage]
* [https://sxmo.org/ project homepage]
* [[Sxmo/Tips_and_Tricks|Sxmo Tips & Tricks]]
* [[Sxmo/Tips_and_Tricks|Sxmo Tips & Tricks]]
* [https://cast.postmarketos.org/episode/05-Interview-with-proycon-from-sxmo/ postmarketOS podcast interview with proycon from Sxmo]
* postmarketOS podcast interviews about Sxmo with [https://cast.postmarketos.org/episode/05-Interview-with-proycon-from-sxmo/ proycon], [https://cast.postmarketos.org/episode/15-Interview-Miles-Alan-Sxmo-fbp-Mepo/ Miles Alan]

Latest revision as of 12:18, 19 March 2025

Note Due to PipeWire media server, you might want to refer to Sxmo/Sound.
Sxmo
Sxmo homescreen.
Sxmo homescreen.
Name Sxmo
Graphics stack dwm on X11/Xorg or sway on Wayland
Toolkit suckless tools (dwm, dmenu, st, etc) or equivalents on Wayland - sway, bemenu, foot, etc.
In postmarketOS
Package postmarketos-ui-sxmo
Status Available

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

Note This user interface uses OpenRC systemd is not supported for this user interface (yet)

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

See also