まくろぐ
更新: / 作成:

Switch 版のドラクエ I をやっとクリアしました。 攻略時間 10〜15 時間程度って話だったけど、20 時間くらいかかったなぁ。 ドラクエ I はクリア後のやり込み要素とかないっぽいので、これで終了です。 ゲームシステムはちょっと前に出たドラクエ3の焼き増し感が激しかったですが楽しめました。 武器、特技、呪文がインフレ気味ですが気にしないことにします。

無事、りゅうおう様にローラ姫を進呈したので目的達成です(オイ)。

/p/u7wnoq5/img-lora1.jpg

共に旅してきたローラ姫をあっさりとひきわたす勇者まく。ごみくずですね。

/p/u7wnoq5/img-lora2.jpg

りゅうおう戦は、1 ターンで 5000 以上ダメージ出せたので満足です。 今回のドラクエ I のやり込み要素はたぶんこれくらいしかないです。

/p/u7wnoq5/img-damage.jpg
  • 1ターン目: リホイミ(超絶技「超ちからため」発動条件のため)
  • 2ターン目: バイキルミン(攻撃力がかなりアップ)
  • 3ターン目: ビーストモード(数ターンの間2回行動)
  • 4ターン目: Yキー長押しでちからためで「超ちからため」(次ターンのダメージ約3倍)
  • 5ターン目: Yキー長押しでドラゴン斬りで「竜王斬り」(ドラゴンへのダメージ約3倍)

最後の竜王斬りは「HP 50%以下」の条件で発動させるため、5ターン目までに残り HP を調整しておく必要がありますが、大体いい感じでダメージを喰らって発動できるようになっているはずです。

最終ステータスはこんな感じでした。 ドラクエ3は Lv99 からが本番でしたが、I はこれより強くしてもあまり意味なさそうです。

/p/u7wnoq5/img-status.jpg
/p/u7wnoq5/img-monster-list.jpg

あれ、モンスター 3 匹も倒し損ねてるな。。。まぁいいや。

それでは楽しみにしていたドラクエ II に進みます!

関連記事

更新: / 作成:

WezTerm は、クロスプラットフォームのターミナルエミュレーターです。 Windows でも macOS でも Linux でも使えるので、使いこなせるようになるととても便利です。 Neovim と同様に設定を Lua 言語で行うことができ、高度なカスタマイズが可能です。 慣れないうちは Lua でどのように設定すればよいか分からないことも多いので、ここにいろんな設定方法をメモしておきます。

操作

  • Ctrl + Shift + P … コマンドパレットを開く(迷ったらコレ)
  • タブ
    • Ctrl + Shift + T / Cmd + T … タブを開く
    • Ctrl + Shift + W / Cmd + W … タブを閉じる
    • Ctrl + Tab / Ctrl + Shift + Tab … 左右のタブへ移動
    • Ctrl + Shift + 1-9 / Cmd + 1-9 … その番号のタブへ移動
    • Ctrl + Shift + PageUp/Down … カレントタブの位置を左右に移動
  • ペーン分割
    • Ctrl + Shift + Alt + % … ペーンを左右に分割
    • Ctrl + Shift + Alt + " … ペーンを上下に分割
    • Ctrl + Shift + ↑↓←→ … ペーンを移動
    • Ctrl + Shift + Alt + ↑↓←→ … ペーンのサイズを変更

設定(見た目)

インアクティブなペーンの彩度や輝度を調整する

config.inactive_pane_hsb = {
  saturation = 0.9,  -- 彩度(デフォルトは 0.9)
  brightness = 0.4,  -- 輝度(デフォルトは 0.8)
}

ペーン分割したときに、アクティブなペーンを判別しにくいときは、インアクティブなペーンの彩度 (saturation) や輝度 (brightness) を下げるとよいです。 彩度を下げると、グレスケールに近づきます。 彩度よりも輝度を下げて調整するのがおすすめです。 一応 hue も設定できますが、色が変わるので気持ち悪いです。

背景の透過

config.window_background_opacity = 0.9  -- ウィンドウを透過させる (1.0で不透過)
config.macos_window_background_blur = 10  -- ウィンドウの背景をぼかす(macOSのみ)

背景は少しだけ透過させるとかっこいいです。

次の設定を入れると、Neovim などのエディタの背景色も完全に透過されますが、余計なところ(カーソル行ハイライトなど)も見えなくなってしまうのでこの設定は入れない方がよいです。

-- これは副作用が大きいので入れない
-- config.text_background_opacity = 0

Neovim の背景を透過させたいときは、Neovim の設定の方で highlight グループを指定するのがよいです。

Neovim の透過設定例 (init.lua)
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })

設定(応用)

Windows かどうかの判断

local is_windows = wezterm.target_triple:find("windows") ~= nil

if is_windows then
  -- Windows 固有の設定
else
  -- その他の OS 固有の設定
end

設定ファイルをモジュール化する

~/.config/wezterm/wezterm.lua(メインファイル)
local wezterm = require "wezterm"
local config = wezterm.config_builder()

require("core").setup(wezterm, config)  -- core.lua を読み込み
require("keys").setup(wezterm, config)  -- keys.lua を読み込み
require("windows").setup(wezterm, config)  -- windows.lua を読み込み
~/.config/wezterm/keys.lua(読み込まれるファイル)
local M = {}

function M.setup(wezterm, config)
  -- Claude Code での複数行入力のため、Shift + Enter で改行シーケンスを送信
  config.keys = {
    {key="Enter", mods="SHIFT", action=wezterm.action{SendString="\x1b\r"}},
  }
end

return M

Neovim の設定ファイルを分割する手法とまったく同じです。 各モジュールからテーブル(上記例では M オブジェクト)を return し、メインファイルから require() で読み込むだけです。

別タブで何らかの出力があったことを知る

wezterm.on('format-tab-title', function(tab, tabs, panes, config, hover, max_width)
  local has_unseen_output = false
  for _, pane in ipairs(tab.panes) do
    if pane.has_unseen_output then
      has_unseen_output = true
      break
    end
  end
  local title = tab.active_pane.title
  if has_unseen_output then
    title = title .. " 💡"
  end
  return title
end)

別のタブで何らかのバックグラウンド処理を実行していて、その処理結果が出力されたときにタブに電球アイコン 💡 を表示するようにしています。 WezTerm のタブの表示内容をカスタマイズするには、format-tab-title イベント をハンドルします。

タブバーの右端に現在時刻を表示する

wezterm.on('update-status', function(window, pane)
  local time = wezterm.strftime("%H:%M:%S")
  window:set_right_status("🕒" .. time)
end)

WezTerm 内で 1 秒おきに update-status イベント が呼び出されるので、このイベントハンドラーの中でタブバーの表示を更新しています。 set_right_status() で、タブバーの右端に任意のテキストを表示することができます。

WezTerm の設定楽しいなぁ ٩(๑❛ᴗ❛๑)۶

関連記事

更新: / 作成:

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 の場合)
# Starship によるプロンプトのカスタマイズ(インストール済みの場合のみ)
if command -v starship &> /dev/null; then
  eval "$(starship init zsh)"
else
  echo "⚠️ starship is not installed. See: https://starship.rs/"
fi
~/.bashrc(bash の場合)
# Starship によるプロンプトのカスタマイズ(インストール済みの場合のみ)
if command -v starship &> /dev/null; then
  eval "$(starship init bash)"
else
  echo "⚠️ starship is not installed. See: https://starship.rs/"
fi
$PROFILE(PowerShell の場合)
# Starship によるプロンプトのカスタマイズ(インストール済みの場合のみ)
if (Get-Command starship -ErrorAction SilentlyContinue) {
    Invoke-Expression (&starship init powershell)
} else {
    Write-Warning "starship is not installed. See: https://starship.rs/"
}

上記のように 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

関連記事

メニュー

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