コンテンツにスキップ

デスクトップ

デスクトップは両機種で同じです。上端にメニューバー、その下に壁紙、その上に窓が乗ります。

デスクトップ

メニューバー

システムが伝えたいことは、この高さ 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 つ並び、右端に白い枠が付いている
3 本動いているところ。白い枠が付いているのがキーボードの入力先です

Ctrl + Tab で退避したアプリ (下記) も、凍結中タスクバーに残ります。いつでも 押して戻れます。

内蔵 RAM の空き

右側の数字 — 例では 137KB — は内蔵 RAM の空きで、空きメモリ全体ではありません。 アプリのヒープは潤沢な PSRAM から取りますが、動いているアプリ 1 本につき内蔵 RAM を およそ 25KB 使い、先に尽きるのはこちらです。「もう 1 本開けるか」に答える数字です。

Linux のシミュレータにはこの制約が無いので ---KB と出ます。

メニューバーの右側の拡大。空きメモリ、かなの指示器、BLE、WiFi、時計
右端の拡大。空きメモリ、かな、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 はこれを宣言しています。スライドの途中で抜けて、別のことを してから、同じスライドに戻れます。

関連