1概要
Totem Barは、macOSのメニューバーに任意の文字列を常時表示する常駐アプリです。 映画『インセプション』に登場する totem(現実と夢を見分けるための個人的な道具)から名前を取りました。
仕事用と個人用、クライアントAとクライアントB、本番環境とステージング — 複数のMacを使い分ける人が「今どのマシンにいるのか」を一目で把握するためのツールです。
主な特長:
- 任意のテキストを常時メニューバーに表示(マシン名、環境名、絵文字、警告文、なんでも)
- 幅モード:
Auto(コンテンツに合わせる)/Fixed(40〜300ptで固定) - オーバーフロー挙動:
Truncate(末尾を…で省略)/Scroll(マーキースクロール) - カラープリセットとカスタムカラー(In-App Purchase)
- URLスキーム
totem://set?text=...でコマンドラインやスクリプトから動的に更新 - ログイン時に自動起動、Dockアイコンなし(
.accessoryポリシー)
2はじめに(クイックスタート)
インストールから最初の表示までの基本手順です。
- Totem Barを起動します。起動するとメニューバー右側に
Enter your Totemという仮表示が現れます。Dockにはアイコンは表示されません。 - メニューバーのTotemラベルをクリックしてメニューを開き、Settings…(⌘,)を選択します。
- Display Text欄に表示したい文字列(例:
MacBook-Work、PROD、🏠 Home)を入力します。 - 必要に応じてWidth Mode、Colors、Launch at Loginを設定します。
- 設定ウィンドウを閉じれば完了です。入力内容はすぐにメニューバーに反映されます。
4設定画面
メニューバーのTotemラベル → Settings…(⌘,)で開きます。すべての設定は即座にメニューバーに反映され、UserDefaultsに自動保存されます。
セクション一覧
| セクション | 含まれる項目 |
|---|---|
| Display | Display Text / Width Mode / Fixed Width / Overflow Behavior |
| Preview | 実際のメニューバー描画を模したプレビュー |
| Colors | カラープリセット / Text Color / Background Color(Proで解放) |
| System | Launch at Login |
| Feature Flags | Enable overflow scroll |
| URL Scheme | 外部から表示テキストを更新する手順とサンプルコマンド |
5表示テキスト
メニューバーに表示する文字列を設定します。
入力できるもの
- ASCII文字:
MacBook-Work、PROD、staging-2 - 日本語・全角文字:
仕事用、本番 - 絵文字・記号:
🏠 Home、🔥 PROD、⚠️ DO NOT DEPLOY - 空文字列: 空白のみの場合は
Enter your Totemにフォールバック
仕様
| 項目 | 値 |
|---|---|
| デフォルト | Enter your Totem |
| 文字数制限 | ソフト制限なし(幅で見切れる) |
| フォント | System, 13pt |
| 永続化 | UserDefaultsキー displayText |
| 外部更新 | URLスキーム totem://set?text=... |
🏠、仕事用に 💼、本番サーバー作業用に 🔥 のような運用がシンプルでおすすめです。
6幅モード
メニューバーに確保する幅の決め方を選択します。
| モード | 挙動 | 使いどころ |
|---|---|---|
| Auto | テキストの実サイズに合わせて幅が変わる | 常に短い表示にしたい場合、表示が動的に変わる場合 |
| Fixed | 40〜300ptの指定幅で固定(余白は空、超過は省略 or スクロール) | レイアウトを固定して他のメニューバーアイコンの位置を安定させたい場合 |
Fixed Widthの設定
- 範囲: 40pt 〜 300pt
- 初期値: 120pt
- Width Modeが
Autoのときは無視されます
Fixed幅での見え方の例
Fixed 120pt — 収まる長さの文字列
Fixed 60pt — 超過分はTruncate(末尾省略)
7オーバーフロー挙動
Fixed幅で収まりきらないテキストの扱いを選びます。
Enable overflow scroll をONにし、さらにWidth ModeがFixedのときに限り、Overflow Behaviorの選択肢が表示されます。
Truncate(末尾省略)
固定幅に収まらない部分を末尾の…で省略します。デフォルトの挙動です。
Scroll(マーキースクロール)
テキストが幅いっぱいを左から右へ、または右から左へ、滑らかに流れます。全文を読ませたい場合に使います。
| 項目 | 値 |
|---|---|
| スクロール速度 | 30 pixels/sec |
| テキスト間の余白 | 24pt |
| 有効化の条件 | Feature Flag ON かつ Width Mode = Fixed |
8カラーカスタマイズ
テキスト色と背景色を組み合わせて、一目で識別できる見た目を作れます。
カラープリセット
無料で使える組み込みプリセットです。ワンタップで適用できます。
| プリセット | テキスト | 背景 | 用途の例 |
|---|---|---|---|
| Default | システム色(自動) | 透明(メニューバー地色) | 控えめに常駐 |
| White on Red | #FFFFFF | #D9342B | 本番環境の警告 |
| White on Blue | #FFFFFF | #2563EB | 開発環境 |
| White on Green | #FFFFFF | #16A34A | ステージング成功 |
| Yellow on Black | #F5C518 | #111111 | 注意・保留 |
| Black on Yellow | #111111 | #F5C518 | ハザード |
PRO カスタムカラー(アプリ内課金)
買い切り型のアプリ内課金「Totem Bar Pro」を購入すると、色の自由なカスタマイズが解放されます。
- Text Color: 任意の色を設定(カラーピッカー)
- Background Color: 透明度付きで任意の色を設定
- 設定値は
#RRGGBBまたは#RRGGBBAA形式で保存 - 一度購入すれば、同じApple IDで使用する他のMacにもRestore Purchasesで引き継げます
9URLスキーム
表示テキストをコマンドラインやスクリプトから動的に更新するためのURLスキームです。自動化やシェル統合に便利です。
書式
totem://set?text=<表示したい文字列>
textパラメータはURLエンコードされた文字列を受け付けます。
使い方
ターミナルからopenコマンドで開きます。
# シンプルな文字列
open "totem://set?text=Hello"
# ホスト名を表示
open "totem://set?text=$(scutil --get LocalHostName)"
# Gitブランチ名を表示
open "totem://set?text=$(git rev-parse --abbrev-ref HEAD)"
# IPアドレス
open "totem://set?text=$(ipconfig getifaddr en0)"
# 絵文字付き
open "totem://set?text=%F0%9F%94%A5%20PROD"
スクリプト例: ディレクトリ移動時にブランチ名を表示
シェル(zsh)のchpwdフックで、Gitディレクトリに入ったときに自動更新します。
chpwd() {
if git rev-parse --is-inside-work-tree &>/dev/null; then
local branch=$(git rev-parse --abbrev-ref HEAD)
open "totem://set?text=$branch"
fi
}
動作
| 項目 | 挙動 |
|---|---|
| 更新の反映 | 即座(UserDefaultsにも保存) |
| アプリが起動していない場合 | Launch Servicesにより起動してから反映 |
| 不明なコマンド | 無視(エラーにはならない) |
空のtext | フォールバック文字列が表示される |
10ログイン項目ほか
Launch at Login(ログイン時に自動起動)
設定画面のSystemセクションでLaunch at LoginトグルをONにすると、macOSログイン時にTotem Barが自動起動します。
- macOSの
SMAppServiceを使用(macOS 13+ の推奨API) - システム設定 > 一般 > ログイン項目 にも同じ状態が反映されます
- 初回ONにしたとき、macOSから許可ダイアログが出ることがあります
Dockに表示されない(Accessory App)
Totem BarはmacOSの.accessoryアクティベーションポリシーで動作します。
- Dockにアイコンは表示されません
⌘+Tabのアプリ切替にも表示されません- フォアグラウンドにならないため、メインメニューバーは置き換わりません
リソース使用
- ネイティブSwift実装
- アイドル時のCPU消費はほぼゼロ(スクロール有効時を除く)
- ネットワーク通信なし。インターネット接続は不要です
データ保存
- 設定はすべて
UserDefaults(@AppStorage)に保存 - サンドボックスコンテナ内にのみデータを書き込みます
- 個人情報は一切収集しません(App PrivacyはData Not Collected)
11よくある質問
totem://set?text=...が反応しません&などを含むとシェルに解釈されるため)。例: open "totem://set?text=Hi"。また、マルチバイト文字はURLエンコードが必要です。SMAppServiceが使えないため、このアプリ自体が動作しません。UserDefaultsに保存されるため、自動同期はされません。ただし、各Macで別々のテキスト(例: Home / Work)を設定するのが本来の使い方です。カスタムカラーの購入状態のみ、同じApple IDで共有されます。UserDefaultsに保存され、ネットワークを通じた送信は一切ありません。App PrivacyでもData Not Collectedを宣言しています。12このアプリについて
| アプリ名 | Totem Bar |
| Bundle ID | jp.prototypelabs.totem |
| 対応OS | macOS 13 Ventura 以降 |
| カテゴリ | Utilities / Productivity |
| 言語 | 英語 / 日本語 |
| 実装 | Swift / SwiftUI (MenuBarExtra) |
| 開発元 | Prototype Labs |
| 価格 | 無料(Totem Bar Pro: アプリ内課金) |