nvim-treesitter の master→main 移行で踏んだ treesitter エラー3連発(Neovim 0.12)

Neovim を 0.12.4 に上げたあたりから、nvim-treesitter 関連のエラーが立て続けに出るようになった。原因を追っていくと、nvim-treesitter の master ブランチがすでに EOL で Neovim 0.12 に付いてこられていないという一点に行き着く。main ブランチへ移行して解決したが、その過程と、移行後にもう一段踏んだ落とし穴をまとめておく。 環境: 項目 値 Neovim v0.12.4(Arch Linux) nvim-treesitter master(tag v0.10.0、2025年5月で凍結)→ main へ移行 プラグインマネージャ Lazy.nvim 症状1: Markdown を開くと gotmpl parser で落ちる Markdown ファイルを開いた瞬間、エラーで停止する(続けるにはENTERを押すか…)。 Error in BufReadPost Autocommands for "*": ... ftplugin/markdown.lua: Vim(runtime):E5113: Lua chunk: .../treesitter.lua:460: Parser could not be created for buffer 1 and language "gotmpl" Copy これを ENTER で流すと、今度はコードフェンス(```go など)のシンタックスハイライトが効かなくなり、:messages に別のエラーが出ている。 Decoration provider "start" (ns=nvim.treesitter.highlighter): .../treesitter.lua:197: attempt to call method 'range' (a nil value) Copy Packer.nvim → Lazy.nvim へ移行した時期と重なっていたので最初はプラグインマネージャを疑ったが、それは無関係。同時期に上げた Neovim 0.12 が引き金だった。原因は2つ重なっていた。 ...

swayfxのscratchpadクラッシュを追う: git blameで見つけたupstreamとの噛み合わせ問題

事象 普段使っているswayfx上で、scratchpadに入れたウィンドウを表示している状態からもう一度scratchpad showを叩くと、コンポジタごと丸ごと落ちる現象に遭遇した。SDDMのログイン画面まで戻される、なかなか派手なクラッシュ。 環境: 項目 値 swayfx 0.5.3-4(sway 1.11.0ベース、Arch Linuxパッケージ) wlroots 0.19.3 GPU AMD Radeon RX 6600 XT(amdgpu) bindsymはこう組んでいた: bindsym $mod+minus scratchpad show, resize set width 90 ppt height 90 ppt, move position center Copy scratchpad showと同時にresize・moveを連続実行する形。これを2回続けて押す(1回目で表示、2回目でフォーカスしたまま押してhideパスに入る)とクラッシュする。 スタックトレースを取る coredumpctl + gdb(デバッグシンボル入り)でコアダンプを解析した。 #0 root_scratchpad_hide (con=0x55f058a52400) at ../swayfx-0.5.3/sway/tree/root.c:257 257 set_container_transform(con->pending.workspace, con); seat = 0x55f0580db940 focus = 0x55f058a41760 ws = 0x0 Copy ws(= con->pending.workspace)がNULLのままset_container_transform()に渡され、内部で参照外しして落ちていた。該当箇所のコードはこうなっていた: void root_scratchpad_hide(struct sway_container *con) { struct sway_seat *seat = input_manager_current_seat(); struct sway_node *focus = seat_get_focus_inactive(seat, &root->node); struct sway_workspace *ws = con->pending.workspace; if (con->pending.fullscreen_mode == FULLSCREEN_GLOBAL && !con->pending.workspace) { // If the container was made fullscreen global while in the scratchpad, // it should be shown until fullscreen has been disabled return; } ... set_container_transform(con->pending.workspace, con); // ガードなし Copy NULLチェックが「FULLSCREEN_GLOBALのときだけ」に絞られていて、それ以外の理由でpending.workspaceがNULLになるケースを素通りしてしまう。set_container_transform()はswayfx独自の追加関数(本家swayには存在しない)なので、一見swayfx側のバグに見えた。 ...

Street Fighter 6 (Proton) で日本語入力ができない問題は /etc/environment のIME環境変数で解決した

訂正 (2026-08-08) この記事の当初の結論「ユーザー側の設定では解消できない」は 誤りでした。 /etc/environment にIME環境変数を設定することで、Ctrl+Space での直接入力が動作するようになりました。 結論だけ必要な方は 追記: 解決した へ。 以下の調査記録は、当時どう考えて誤った結論に至ったかの記録として、そのまま残します。 事象 Street Fighter 6のチャット欄でCtrl+Space(fcitx5のトリガーキー)を押しても、日本語入力(Mozc)に 切り替わらない。ローマ字のまま反応しない。 項目 値 OS Arch Linux WM Sway (swayfx) IME fcitx5 + fcitx5-mozc ゲーム Street Fighter 6 (Steam, AppID 1364780) Proton Proton Experimental / GE-Proton11-3 当時の結論(誤り) Proton公式ビルドは意図的にXIMを無効化しており、加えてWineの新しいIME実装がキー入力を XIMサーバーまで橋渡ししていない。この二つが重なっているため、レジストリでXIMを 再有効化しても効果が出ない。Street Fighter 6固有の不具合ではなく、Wine/Proton全体に 共通する構造的な制約であり、ユーザー側の設定では解消できない。 ——これが誤りだった。 実際には環境変数がゲームの起動経路まで届いていなかっただけの可能性が高い。 詳細は末尾の追記を参照。 当時の根拠 以下は2026-08-06時点で実際に観測した内容。観測自体は正しいが、そこから導いた結論が誤っていた。 Sway/fcitx5の設定は正常 — Ctrl+Spaceに該当するbindsymはなし、GTK_IM_MODULE/ QT_IM_MODULE/XMODIFIERSはenvironment.dで正しく設定済み、fcitx5のトリガーキーも Control+spaceのままでXIMアドオンも無効化されていない。 後から振り返ると、ここが見落としの核心だった。 「environment.dで設定済み」であることは確認したが、 その変数がSteam経由で起動されるゲームプロセスまで届いているか は確認していなかった。 Protonは意図的にXIMを無効化している — Proton公式リポジトリのIssueに記載がある。 XIM is disabled for working around a X11 issue ...

ASRock環境のArch+Windowsデュアルブート問題の記録

Arch Linux と Windows 11 デュアルブート問題 ASRock 環境で「restart だと起動しないのに、shutdown だと起動する」謎バグの記録 はじめに Arch Linux と Windows 11 を同じマシンでデュアルブートしているときに、 「Arch から再起動すると Windows が起動しないのに、電源OFF→ONだと普通に起動する」 という不可解な現象に遭遇した。 環境: ASRock A520M Pro4 Ryzen 7 5700X Radeon RX 6600 XT DDR4 32GB systemd-boot ESP を共有 この記事は、このときに見た現象と、EFI / systemd-boot / ASRock UEFI まわりを調べたメモをまとめたもの。 トラブルの症状と再現性 症状 Arch → 再起動 → systemd-boot で Windows を選択 → 自動修復、ロゴ停止、黒画面 Arch → シャットダウン → 電源ON → Windows → 正常起動 再現手順 Arch を起動 再起動(reboot) systemd-boot で Windows を選択 起動失敗 or 自動修復に入る 逆に、 ...