デスクトップ¶
デスクトップは両機種で同じです。上端にメニューバー、その下に壁紙、その上に窓が乗ります。
メニューバー¶
システムが伝えたいことは、この高さ 13 ピクセルの帯に全部載っています。
┌─────────────────────────────────────────────────────────────────────┐
│ Family mruby ▪▪ 137KB A B ▂▄▆ 08/07 21:04:11 │
└─────────────────────────────────────────────────────────────────────┘
↑ ↑ ↑ ↑ ↑ ↑ ↑
| | | | | | 時計
| | | | | WiFi
| | | | BLE
| | | かな
| | RAM
| タスクバー
システムメニュー
Family mruby¶
押すとシステムメニューが出ます。中身は下記。
動作中のアプリ (タスクバー)¶
動いているアプリが、起動した順に小さな四角として題字のすぐ右に並びます。これがタスクバーです。
並ぶのは窓であって、プロセスではありません。四角は、押せば前に出てきて入力できるもの、という
意味です。窓を持たないアプリ (サービスホストなど) は前に出しようがないので並びません。
ps と Monitor には出ます。
- 文字はアプリ名の 1 文字目です
-
色は動いている言語を表します
色 言語 赤 Ruby (mruby) 黄 MicroPython 緑 BASIC 青 Lua 灰 ネイティブ C -
白い枠が付いているのが、いまキーボードの入力先になっているアプリです
- 四角を押すと、そのアプリが前面に出て、キーボードもそちらへ移ります
3 本動いているところ。白い枠が付いているのがキーボードの入力先です
Ctrl + Tab で退避したアプリ (下記) も、凍結中タスクバーに残ります。いつでも
押して戻れます。
内蔵 RAM の空き¶
右側の数字 — 例では 137KB — は内蔵 RAM の空きで、空きメモリ全体ではありません。
アプリのヒープは潤沢な PSRAM から取りますが、動いているアプリ 1 本につき内蔵 RAM を
およそ 25KB 使い、先に尽きるのはこちらです。「もう 1 本開けるか」に答える数字です。
Linux のシミュレータにはこの制約が無いので ---KB と出ます。
右端の拡大。空きメモリ、かな、BLE、WiFi、時計
かな入力¶
ASCII を打っているときは A、ひらがなは あ、カタカナは ア です。押すと 3 つを順に
巡ります。起動時からどの言語でも出ています。半角/全角キーの無いキーボードや、そもそも
キーボードの無い機種では、この押下が唯一の入口だからです。キーボードからは
Ctrl + Space で同じことができます。
BLE¶
| 見た目 | 意味 |
|---|---|
| 何も出ない | BLE が止まっている |
灰色の箱に白い B |
BLE は動いていて、接続を待っている |
白い箱に反転した B |
何かが接続している (たいていは web コンソール) |
Retro では、システムメニューから BLE を起動できます。起動時に立ち上げるかどうかは Config の
ble_auto_start です。一度動き出した BLE を止める手段は、再起動のほかにありません。
Modern にも同じ設定があり、false にすると何も告知せず、誰も接続できなくなります。C6 との
接続自体は上がります (WiFi がそれを必要とするため)。
WiFi¶
時計のすぐ左にある電波の棒です。
| 見た目 | 意味 |
|---|---|
| 白い棒 | 接続している |
| 灰色の棒に赤い斜線 | 接続していない |
| 何も出ない | この構成には WiFi がない |
棒を押すと Network ダイアログが開き、割り当てられたアドレスが見られます。 WiFi につなぐ を参照してください。
時計¶
日付と時刻です。合わせるのは Set Clock、時間帯は別の設定で Config にあります。
システムメニュー¶
| 項目 | 内容 |
|---|---|
| Launcher | 入っているアプリの一覧 |
| Editor | エディタ。ファームウェアに組み込みで、Shell とアプリの店とともにランチャーの先頭に並びます |
| File Manager | フラッシュの中のファイルを見る |
| Log Viewer | システムログ |
| Monitor | 動いているタスク、メモリ、サービス |
| Set Clock | 日付と時刻 |
| Config | 言語、キーボード配列、カーソル速度、配色、壁紙、時間帯、WiFi/BLE の自動起動、表示の余白 |
| Storage | キャッシュの削除 |
| Network | WiFi の状態、アドレス、ホスト名 |
| BLE Start | Retro のみ。起動時に BLE が上がらない設定のとき |
| Shortcuts | ここで効くキーの一覧 |
| About | バージョンとチップの情報 |
| Reset | 再起動 |
Config で変えたものは /etc/system_conf.toml に書き戻されます。書き込みは行単位なので、
コメントや他の設定はそのまま残ります。実機では、起動時にしか効かない設定のために
Save & Reboot も出ます。
デスクトップが出るまで¶
電源を入れるとロゴが出て短い音が鳴り、そのあとデスクトップになります。この演出が
/etc/system_conf.toml の boot_splash です。false に
すると両方とばして約 2.7 秒短くなります。1 つのことをさせる用途では、毎回の儀式は要らない
からです。それ以外は変わりません。カーソルも状態 LED も、次の startup_app も同じように
動きます。
隣の startup_app は、デスクトップが出たらすぐ開くアプリをパスで指定します (ランチャーが
使うのと同じパスです)。空なら通常のデスクトップです。全画面のアプリを指定すると、
デスクトップを見せずにそのまま画面を取ります。どちらの設定も Config ダイアログには無いので、
エディタでファイルを開いて書き換えます。
ランチャー¶
アイコンをダブルクリックするとアプリが起動します。矢印キーで選択を動かし、Enter でも
起動できます。
一覧は起動時に一度だけ作られます
ランチャーがファイルを探すのは、デスクトップの起動時だけです。アプリを追加したら ランチャーの窓の中で右クリックして読み直させてください。そうしないと、次に 再起動するまで新しいアプリは出てきません。
窓の操作¶
| したいこと | 操作 |
|---|---|
| 動かす | 見出しの部分をつかんで動かす |
| 入力先にする | 窓の中を押す、またはタスクバーの四角を押す |
| 閉じる | 見出しの閉じるボタン、または Ctrl + Q |
| 大きさを変える | 角をつかんで動かす (resizable を宣言したアプリのみ) |
押した判定は指やボタンを離したときに、少しの動きを許容して行われます。押すときに手元が 少し動いても、引きずり操作にはなりません。
キー¶
いつでも効くもの¶
| キー | 動作 |
|---|---|
Ctrl + Q |
手前のアプリを終了する。全画面のものでも効きます |
Ctrl + Tab |
デスクトップと動いているアプリを切り替える |
Ctrl + , |
同じ動作。ブラウザは Ctrl + Tab を自分のタブ切り替えに使うので Studio ではこちらを使います。実機でも効きます |
Ctrl + Space |
かな入力の on/off |
いずれもアプリにイベントが届く前に処理されるので、全画面のアプリが画面を占有していても 効きます。
デスクトップ上で¶
アプリを操作しておらず、ダイアログも出ていないとき、1 文字打つとアプリが起動します。
| キー | 起動するもの |
|---|---|
L |
ランチャー |
S |
シェル |
E |
エディタ |
N |
NSF 再生 |
I |
HID Inspector — HID 機器設定 を参照 |
この割り当ては /etc/system_conf.toml の [[shortcuts]] にあります。アプリの場所を
書けば自分の割り当ても足せます。システムメニューの Shortcuts は、その本体が実際に
持っている割り当てを設定から読んで並べます。
メニューバー自体もキーボードで操作できます。
| キー | 動作 |
|---|---|
F10 |
システムメニューを開く。先頭が選ばれた状態で開きます |
↑ ↓ Home End |
選択を動かす。端では反対側へ回り込みます |
Enter |
選んだ項目を実行する |
Esc または F10 |
閉じる |
強調表示はマウスで動かすものと同じなので、2 つの操作方法が食い違うことはありません。
スクロール¶
マウスのホイールで、エディタ、シェル、ログ、ランチャー、ファイル選択が送れます。送られるのは キーボードの入力先になっている窓で、カーソルの下の窓ではありません。クリックよりキーに 近い扱いです。
シミュレータ、Studio、遠隔画面 では何もしなくても
効きます。実機では、USB マウスのホイールは
/etc/hid_devices.toml に書いた機器でしか動きません。
マウスをつなぐと、書き足す行がログに出ます。
アプリの切り替え¶
Ctrl + Tab は、手前に何があるかで動きが 2 通りに分かれます。
窓のアプリ: 順に巡る¶
デスクトップと動いているアプリを順に巡ります。最初がデスクトップで、その後は起動した順に
アプリが並びます。窓が前に出るだけでなくキーボードの入力先も移るので、エディタから自分の
アプリへ移って打ち込み、また Ctrl + Tab でエディタへ戻る、という往復ができます。
デスクトップが巡回に入っているのは、メニューバーと 1 文字の割り当てが、デスクトップが キーボードを持っているときにしか答えないからです。入っていないと、アプリを 1 つ起動した 時点でメニューにマウスでしか戻れませんでした。全画面のアプリが出ている間はデスクトップが 凍結されるので、巡回からは外れます。
全画面のアプリ: 退避する¶
全画面のアプリの中で Ctrl + Tab を押すと、そのアプリは退避します。その場で凍結されて
描画面が隠れ、デスクトップが戻ります。状態も描画面も保たれるので、巡ってきたときや
タスクバーの四角を押したときには、描き直しも無しにさっきの画面がそのまま戻ります。
アプリ側の宣言が要ります
退避できるのは、.app.toml で
fullscreen_switchable = 1 を宣言したアプリだけです。宣言していないアプリは、
全画面中の Ctrl + Tab を無視します。
この宣言は「途中で凍結されても構わない」という意思表示です。音源を鳴らしっぱなしに するアプリは宣言すべきではありません。凍結しても音は鳴り続けるからです。
同梱の発表用アプリ PicoRabbit はこれを宣言しています。スライドの途中で抜けて、別のことを してから、同じスライドに戻れます。
関連¶
- Modern (M5Stack Tab5) / 起動まで (Retro)
- 標準アプリ — ランチャーに入っているもの
- システム設定 — Config が書き換えるもの、ダイアログに無いもの
- アプリ設定ファイル (.toml) — 自分のアプリの窓の宣言
- WiFi につなぐ