メインコンテンツへスキップ

SXMO、スマホ上のi3wm、ミニマルなタイル型ウィンドウマネージャー

·
カテゴリー スマートフォン 真のLinuxスマホ
タグ SXMO PostmarketOS
目次

スマホでタイル型ウィンドウマネージャーを使う?狂った発想ですが、実際に作った人がいます。

Sxmo: Simple X Mobileは、suckless系ソフトウェアの集合体で、Linuxスマホ向けデスクトップ環境の選択肢のひとつです。

起動時はこんな感じです。何もクリックできません。

対応するハードウェアキーを押して、対応する操作を実行します。

複数のAPPを開くと、任意の順序で並べられます。

SXMOの設計思想は、Linuxデスクトップのi3wmやSwayなどのタイル型ウィンドウ環境に似ています。デスクトップのどの部品にも「hack」できます(カスタマイズ可能)。SSHは一等市民です。

使用するプロトコルによって、含まれるソフトウェアは少し異なります。

プロトコルにX11を使う場合、ウィンドウマネージャーはdwm、アプリケーションメニューはdmenu、タッチジェスチャーのデーモンはlisgd、タッチキーボードはsvkbdです。

プロトコルにWaylandを使う場合、ウィンドウマネージャー兼コンポジターはSway、アプリケーションメニューはbemenu、タッチジェスチャーのデーモンはlisgd、タッチキーボードはwvkbdです。

postmarketOS公式サイトが対応機種向けにビルドしているイメージでは、SXMOはWaylandを使用しています。

1. コマンド
#

SXMOの作者は、システムメニューにスクリーンショットなどの便利なスクリプトを用意しています。

ただし、システム設定を変更するには、やはりコマンドに頼るほうが便利な場面があります。

postmarketOS Tipsを参照して、SSHと起動時のWifi自動接続を設定してください。

2. 標準のキーバインド
#

SXMOの操作方式は、現在主流のスマホとは大きく異なります。Linuxスマホ向けのPhoshやPlasma Mobileともかなり違います。

つまり、SXMOはAPPとのタッチ操作に対応しているものの、タイル型ウィンドウの作法も受け継いでいます。ショートカットキー依存です。現在のスマホには普通キーボードがないので、使えるキーの組み合わせは電源キーと音量キーくらいしか残りません。潔いというか、逃げ場がありません。

標準では、SXMOは以下のキー操作を割り当てています。

音量上キー

1回押すと、現在のアプリケーションのメニューを呼び出します。タッチ操作もできます。音量キーで上下移動し、電源キーで確定することもできます。

2回押すと、全アプリケーションメニューを呼び出します。Configでは明るさ、音量、画面回転などのシステム設定を変更できます。

3回押すと、現在のアプリケーションのスタック方式を変更します。たとえば、ウィンドウの縦並びを横並びに変えられます。標準のタブ式レイアウトのほうがスマホUIには向いています。

音量下キー

  • 1回押すとwvkbdまたはsvkbdキーボードを開閉
  • 2回押すとdwmウィンドウマネージャーのレイアウトを切り替え
  • 3回押すと現在のアプリケーションを終了

電源キー

  • 1回押すと画面ロックを開始(SXMOの画面ロックには4つの状態があります。次の節を参照)
  • 2回押すと画面ロックの状態を逆方向に切り替え
  • 3回押すとfootまたはst端末を開く

続いて、よく使うジェスチャーも覚える必要があります。矢印は指の本数を表します。スマホに丸みのあるベゼルがある場合、端のタッチジェスチャーはかなり発動しにくくなるかもしれません。(SXMO USERGUIDEをもとに描き直し)

3. SXMOのロック状態
#

SXMOはstartxを打たないとデスクトップに入れない、というわけではありません。ちゃんとTinyDMというディスプレイマネージャーを使い、起動時にデスクトップへ誘導します。

SXMOの「ロック画面」には4つの状態があります。画面ロックのパスワードにはまだ対応していません。

電源キーを1回押すごとに、状態は下図の順序で切り替わります。電源キーを2回押すと逆方向に切り替わります。(SXMO USERGUIDEをもとに描き直し)

そのため、電源キーを1回押すと画面消灯のロック状態に入り、ロック解除状態に戻るには2回押す必要があります。

Unlocked ロック解除状態。画面は点灯しており、タッチ操作できます → Lock 画面点灯のロック状態。タッチ操作できず、ロック画面は点灯しています → Off 画面消灯のロック状態。タッチ操作できず、ロック画面は消灯しています → Crust スリープモード。スマホを一時停止(suspend)して電力を節約します。

思わずこのmemeを思い出します。

4. SXMO設定ファイルの場所
#

SXMOの設定ファイルは主に~/.config/sxmo/にあります。そのうち、ウィンドウマネージャーSwayの設定ファイル~/.config/sxmo/swayは、キーバインドや壁紙などのオプションを設定するために使います。

ウィンドウマネージャーがdwmの場合、キーバインドを変更するにはソースコードを編集する必要があります。再コンパイルしてインストールしてから有効になります。

標準イベントで発火するフックは/usr/share/sxmo/default_hooks/にあり、すべてスクリプトで構成されています。カスタマイズする場合は、~/.config/sxmo/default_hooks/へコピーしてから編集してください。

Swayは設定ファイルを変更するたびに、再読み込みしないと反映されません。設定ファイルを再読み込みするには、端末またはSSHでsway reloadコマンドを実行します。

4.1. 壁紙を変更する
#

VIMで~/.config/sxmo/swayを編集し、以下の行を変更して、パスを使いたい画像に向けます:

output * bg /home/user/Pictures/background.png

4.2. 透明度とウィンドウ境界を設定する
#

透明度とは、APPを透過表示して壁紙が見える状態にすることです。VIMで~/.config/sxmo/swayを編集し、以下の内容を追加します。for_windowでは、どのAPPに透明度を適用するか設定できます。

set $opacity 0.9
for_window [class=".*"] opacity $opacity
for_window [app_id=".*"] opacity $opacity

参考資料
#

関連記事


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。