まくろぐ
更新: / 作成:

starship とは

starship は、ターミナルのプロンプトを簡単にカスタマイズするためのツールです。 下記はデフォルト設定でのプロンプト表示例です。

/p/s8doawu/img-001.png
図: starship でカスタマイズされたプロンプト表示

このプロンプトの内容は、カレントディレクトリがどのような言語のプロジェクトであるかによって自動的に変化します。 例えば、Git 管轄下のディレクトリであればブランチ名や編集状態が表示されるし、Golang のプロジェクトであれば Golang のバージョンが表示されます(go.mod ファイルなどが参照される)。

  • starship の特徴
    • クロスプラットフォーム対応(Windows、macOS、Linux)
    • ほとんどのシェルに対応 (bash、zsh、fish、PowerShell、…)
    • デフォルト設定で多くの情報を表示(Git ブランチ、Python バージョン、AWS プロファイル、…)
    • Rust で実装されているため高速

starship は内部的には PS1 環境変数 (bash/zsh) や prompt 関数 (PowerShell) などのシェルプロンプト設定を置き換えるというシンプルな仕組みで動作しています。 もちろん、PS1 環境変数を自力で設定してプロンプトをカスタマイズすることは可能ですが、starship を使うと簡単に多くの情報を表示できます。 さらに、starship はクラスプラットフォーム対応しているので、一度設定ファイル (~/.config/starship.toml) を作ってしまえば、Windows、Linux、macOS などいろんな環境で同じプロンプト設定を使い回すことができます。

本質的に starship は、さまざまな言語環境や情報を表示するためのツールですが、背景色や Nerd Font によるアイコン表示を組み合わせることで、プロンプトの見た目をより魅力的にすることもできます。

/p/s8doawu/img-002.png
図: Gruvbox Rainbow プリセットによるプロンプト表示

Nerd Font のインストール

Starship は様々なアイコン画像を表示するために Nerd Font 系のフォントがインストールされていることを前提としています(ちなみに、Nerd Font は Vim のステータスライン表示をカスタマイズする Powerline などでも使われています)。 Nerd Font 系のフォントはいろいろありますが、ここでは、日本語のグリフを含んでいる HackGen Nerd Font を使います。 リリースページから .ttf ファイルをダウンロードしてダブルクリック すればインストールできます。

☝️ 2種類の白源フォント

白源(はくげん/HackGen)フォントには下記の 2 種類がありますが、35 の方は「半角:全角」の横幅を「3:5」に調整したものなので、基本は 35 の付いていない方(比率1:2)を使います。

  • HackGen Console NF ←こっち
  • HackGen35 Console NF

フォントのインストールが完了したら、ターミナルアプリのフォント設定でそのフォントを選択 してください。 これを忘れると、Starship の各種アイコン表示が文字化けしてしまいます。

Starship のインストールと初期化

starship コマンドのインストール

starship はパッケージマネージャーで簡単にインストールできます。

macOS の場合
brew install starship
Windows の場合
winget install Starship.Starship

starship --version コマンドが実行できるようになっていればインストール成功です。

starship の初期化設定

次に、各シェルの設定ファイルで starship init を実行するように設定します。

~/.zshrc(zsh の場合)
eval "$(starship init zsh)"
~/.bashrc(bash の場合)
eval "$(starship init bash)"
$PROFILE(PowerShell の場合)
Invoke-Expression (&starship init powershell)

上記のように starship init コマンドを実行すると、内部的に $PS1 変数(bash/zsh)や prompt 関数(PowerShell)が書き換えられ、プロンプトがこんな感じの表示に切り替わります。

/p/s8doawu/img-001.png
図: starship でカスタマイズされたプロンプト表示

٩(๑❛ᴗ❛๑)۶ 動いたっ

Starship のカスタマイズ

設定ファイル (starship.toml)

starship は ~/.config/starship.toml という設定ファイルでカスタマイズできます(ファイルがなければデフォルト設定で動きます)。

プロンプトとして表示される内容は、トップレベルの format オプションで指定しますが、デフォルトの format 設定 だけでもかなり多くの情報が表示されるようになっています。

デフォルトの format 設定
format = '$all'

# 下記と同様
format = """
$username\
$hostname\
...
$git_branch\
$git_commit\
$git_state\
..."""

複雑なプロンプト設定を 1 つの文字列として表現するのは無理があるため、starship のプロンプト表示設定は上記のようにモジュール化されて管理されています。 例えば、$usename$git_branch のように表示項目(モジュール)ごとに分割されて管理されており、それぞれの表示設定を TOML のセクションの形で定義します。

~/.config/starship.toml(抜粋)
[git_branch]
symbol = '🌱 '
truncation_length = 4
truncation_symbol = ''
ignore_branches = ['master', 'main']

それぞれの表示項目(モジュール)でどのような設定ができるかは、Starship の Configuration ドキュメントを参照してください(例: git_branch の設定方法)。

例えば、下記のように directory モジュールを設定すると、ディレクトリ名を省略せずにフルパスで表示するようになります。

~/.config/starship.toml
[directory]
truncation_length = 0  # ディレクトリパスの最大表示セグメント数(0:無制限)
truncate_to_repo = false  # リポジトリルートからの相対パスにしない

プリセット機能で設定ファイルを生成する

starship preset <プリセット名> というコマンドを使用すると、starship が組み込みで用意してくれている設定例を出力してくれます。 どのようなプリセットが用意されているかは下記のページを参照してください。

例えば、Gruvbox Rainbow というプリセットを使うには次のように設定ファイルを作成します。

$ starship preset gruvbox-rainbow -o ~/.config/starship.toml
/p/s8doawu/img-002.png
図: Gruvbox Rainbow プリセットによるプロンプト表示
☝️ macOS の Terminal で色がおかしくなる場合 macOS (Sequoia 15) に標準搭載されている Terminal アプリは True Color 非対応なので、starship の設定で #a6da95 のような色指定をしてしまうと正しい色で表示されません(全て一色表示などになってしまう)。 代わりに、パレットのインデックス指定で色を指定するか、True Color 対応のターミナルアプリを使用する必要があります(例: iTerm2 / Alacritty)。 Visual Studio Code 内のターミナルなどは正しく True Color 表示されます。

その他

現在の設定内容を出力する
starship print-config
現在のプロンプトの説明を表示する
startship explain

関連記事

更新: / 作成:

先日発売した 『ドラゴンクエストI・II』 Switch 版をプレイしています。 懐かしいというより、もはや別のゲームみたいな感覚です。 いきなり城が広く感じます。 ファミコン版は縦横数マスの狭い部屋だったのに。

今回は小さなメダルのシステムが採用されています。 基本的に攻略サイトなどは見ないで進められるゲームですが、小さなメダルだけは取り逃がすとあとあと面倒なので、リストを作って集めています。 といっても、AI さんに一覧出してもらっただけですが。

印刷してチェックリストにすると使いやすいです。

ドラクエ I 小さなメダルリスト

取得場所(全40枚)

No.場所詳細備考
1ロトの洞窟地下2階南西の宝箱
2マイラ道具屋2階のツボ
3マイラ北西部毒沼近くのツボ
4雨のほこら1階西のツボ
5ガライの町西海沿いのツボ
6ガライ周辺ガライ南の海辺の秘密の場所のツボ
7街道の宿屋南西小部屋のタンス
8岩山の洞窟地下1階の宝箱
9妖精の隠れ里錬金室内右上のタル
10ラダトーム城2階隠し部屋のツボ盗賊の鍵
11ガライの墓地下1階小部屋のツボ盗賊の鍵
12旅人の教会右の部屋のタンス盗賊の鍵
13忘れられた廃墟南部のタル
14沼地の洞窟地下1階北部右通路のタル
15リムルダール北の民家のタンス
16ドワーフの洞窟地下2階西部の宝箱
17沼地の洞窟地下2階北部の宝箱魔法の鍵
18ラダトーム城地下1階中央部屋のタンス魔法の鍵
19ドムドーラ周辺南西の秘密の場所の木の間の足元
20ドムドーラ武器屋のツボ
21ドムドーラ南東のツボ
22迷いの森右の宝箱
23旅人の宿屋井戸の中の足元(岩の間)
24メルキド一番右の墓を調べる
25岩泣き島周辺南の秘密の場所の宝箱
26岩泣き島1階北西の宝箱
27岩泣き島2階南東の宝箱
28メルキド北東民家2階の宝箱最後の鍵
29ラダトーム教会2階鍵部屋のツボ最後の鍵
30ドワーフの洞窟地下1階左側扉の宝箱最後の鍵
31メダル王の城左側扉の中央宝箱最後の鍵
32雨のほこら3階階段近くのタル最後の鍵
33雨のほこら5階中央左側の宝箱最後の鍵
34ガライの墓地下3階中央左の銅像最後の鍵
35精霊のほこら1階左奥の足元
36聖なるほこら水の裏通路の足元
37竜王の城地下5階通路の宝箱
38ラダトーム西の島埠頭先端の足元(ザライイベント後)
39妖精の隠れ里北西秘密の場所のタル(雨のほこら攻略後)
40岩泣き島南西秘密の場所の袋(雨のほこら攻略後)

報酬

枚数アイテム名種類効果
5枚いのりのゆびわアイテムMPを少し回復(たまに壊れる)
8枚インテリめがね装備賢さ+15
10枚ビーストの巻物アイテムビーストモード習得(2回行動)
12枚ふしぎなボレロ装備守備+50、MP消費半減
15枚ドラゴンシールド装備守備+47、炎・吹雪耐性
17枚ツインスワロー装備攻撃+52、虫系特効、全体攻撃(威力減衰)
20枚まよけのすず装備状態異常耐性
25枚バスターウィップ装備攻撃+82、グループ攻撃
30枚えいゆうの杖装備攻撃+91、使用でフバーハ効果
35枚めいそうの巻物アイテム「めいそう」習得(HP500回復)
37枚メタルウィング装備攻撃+102、メタル系特効、全体攻撃(威力減衰)
39枚たたかいのドラムアイテム攻撃力アップ(何度でも使用可)
40枚グリンガムのムチ装備攻撃+118、グループ攻撃

ドラクエ II 小さなメダルリスト

取得場所(全80枚)

No.地域詳細備考
1ローレシア南の海ひみつの場所、右側の足元フィールド
2ローレシア城教会の女神像前の足元城内
3ローレシア南の島真ん中の壺の中フィールド
4ローレシア町東の崩壊した建物の宝箱町内
5リリザ武器防具屋2階の花壇町内
6リリザ南東ひみつの場所、木にぶら下がっている袋フィールド
7サマルトリア南西砂漠のひみつの場所、西の岩付近のタルフィールド
8サマルトリア東の民家のタンス町内
9サマルトリア城地下1階の突き当たりの樽城内
10ローラの門地下通路T字路前の樽ダンジョン
11妖精の城南東ひみつの場所、岩付近のタルフィールド
12妖精の城3階屋外西側の地面城内
13湖の洞窟地下2階最初の部屋の壺ダンジョン
14ムーンペタ教会横の木の近くの樽町内
15ムーンペタ西島のひみつの場所、木の下の宝箱魔法の鍵
16ムーンブルク城1階中央北側の円の中心の床城内
17ラーのほこら南西ひみつの場所、木の横の宝箱フィールド
18風の塔7階階段先の樽ダンジョン
19風の塔2階像の前の壺ダンジョン
20ムーンブルク西のほこら中央の壺ほこら
21メダル王の島石像の足元
22メダル王の島砂浜の足元
23メダル王の島噴水前の足元
24メダル王の島袋を調べる
25ラダトーム宿屋の袋(魔法の鍵)魔法の鍵
26ラダトーム城2階のツボ
27ロトの洞窟地下2階 石板裏の足元
28雨のほこら5階のツボ
29ガライ港の宝箱
30ガライの墓地下3階のタル最後の鍵
31マイラ井戸の中の足元
32メルキド銀行1階 鹿の壁飾り付近
33リムルダール教会1階のツボ
34聖なるほこら足元
35竜王の城1階左上の足元
36竜王の城地下5階の宝箱最後の鍵
37竜王の城地下6階の青い宝箱魔法の鍵
38大灯台7階の足元
39ベラヌール民家の本棚
40ベラヌール北のほこら緑の宝箱最後の鍵
41ペルポイ地下1階 自警団の宝箱最後の鍵
42ザハンツボ
43舟守のほこら宝箱盗賊の鍵
44デルコンダル城足元最後の鍵
45テパ民家のタンス
46テパ東のほこら宝箱
47満月の塔3階の足元
48アルメハ女王の広場のツボ
49なぞの海底基地地下1階の足元
50海底火山の洞窟地下3階の空箱
51沈没船地下1階の宝箱
52ヌシのすみか・北海足元
53ヌシのすみか・東海宝箱
54ヌシのすみか・南海宝箱
55ロンダルキアへの洞窟4階の宝箱
56ロンダルキアへの洞窟6階の宝箱
57雪原のほこら宝箱
58ハーゴンの神殿2階の宝箱
59ひみつの場所リリザ右下の袋
60ひみつの場所サマルトリア左下のタル
61ひみつの場所ローラの門左下のタル
62ひみつの場所ラーのほこら左下の宝箱
63ひみつの場所ルプガナ左下 海上のツボ
64ひみつの場所テパ左下のタル
65世界樹の森宝箱盗賊の鍵
66ひみつの場所ドムドーラ右下の足元
67ひみつの場所ローレシア右下のツボ
68ひみつの場所ローレシア南のほこら左下 海上の足元
69ひみつの場所ムーンペタ左の島 青い宝箱魔法の鍵
70海底宝物庫・西海宝箱魔法の鍵
71ひみつの場所雨のほこら上のツボ
72海底宝物庫・北海宝箱最後の鍵
73ひみつの場所ロンダルキアのほこら上のツボ
74ひみつの場所ペルポイ左上のツボ
75ゼニスの城魔法の鍵
76謎の塔4階の宝箱
77ドワーフの洞窟地下1階の宝箱最後の鍵
78ドワーフの洞窟地下4階(井戸の中)の宝箱
79無限の回廊8層のタル
80無限の回廊12層 南の部屋の足元

報酬

枚数アイテム名効果・性能
5命のゆびわ守備力+2、歩くごとにHPが回復する
15メラミの巻物使用で「メラミ」習得
20モーニングスター攻撃力+33、グループ攻撃
25けんじゃのせいすいMPを中回復(戦闘中使用可)
30うさみみバンド守備力+32
35はやてのベスト守備力+52、素早さ+30
40せいしんの巻物使用で「せいしんとういつ」習得(MP回復)
45ツインスワロー攻撃力+50、虫系特効、全体攻撃(威力減衰)
50きせきのつるぎ攻撃力+75、攻撃時HP回復
55ゆうわくの剣攻撃力+79、使用で「メダパニ」効果
60ほのおのブーメラン攻撃力+65、炎属性、グループ攻撃
65しんぴのよろい守備力+106、毎ターンHP回復、状態異常耐性
70せいぎのそろばん攻撃力+122
75グリンガムのムチ攻撃力+118、グループ攻撃
80神鳥の杖攻撃力+123、使用で「メラゾーマ」効果

関連記事

更新: / 作成:

表紙の絵に騙されてはいけない漫画にランク入りです。 決してほんわかラブラブ漫画ではないのでご安心を(何を😅)。 全12巻ですけど一気に読んでしまいました。

夏目アラタが面会に来たのは、連続殺人犯の女性(真珠)でした。 重要な事実を聞き出すために獄中結婚を約束してしまい、ずるずると深みにはまっていきます。

わずかな時間しかない面会中に心理戦が繰り広げられるのですが、真珠が何を考えているのか分かりそうで分かりません。 アラタは翻弄されつつも、自分の心を見透かしてくる真珠にどんどん惹かれていってしまっていることに気づきます。

それは読者も同じなんですよね。 殺人犯のはずなのに、怖いやつのはずなのに、なぜか真珠に魅了されていく。 いやー恐ろしいですね。 だってこんな顔する人ですよ。

/p/mkhhizp/img-001.png

まるでグラップラー刃牙の筋肉描写にいつの間にか慣れてハマっているかのように、 まるでカイジの奇妙な横顔がいつの間にか気にならなくなっているかのように、 真珠の顔芸もいつの間にかクセになっているんですよね。 あーコワイコワイ。

なぜ真珠の歯はボロボロなのか、なぜ幼少期に低かった知能指数が飛躍的に上昇しているのか、なぜこんなに自信満々なのか。 ある事実が明らかになることにより、すべてがつながります。

/p/mkhhizp/img-002.jpg

映画化もされていたので YouTube でレンタル して見てしまいました。 終盤は漫画とは異なる展開になっていましたが、とてもよかったです。 2 時間という短い時間で 2 人の関係に深みを持たせるためには、このような話にするのが都合がよかったのでしょう。 しかし、原作とは登場人物の関係性を変えているのにうまくまとめたなあと感心しました。

関連記事

メニュー

まくろぐ
サイトマップまくへのメッセージ