Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026-06-20

Ubuntu 26.04リリース記念オフラインミーティング26.06

Avatar for Nobuto Murata

Nobuto Murata

June 20, 2026

More Decks by Nobuto Murata

Other Decks in Technology

Transcript

  1. 私の場合、ミーティングが立ち行かない 音声周りを担当するPipewireがバッファを使い果たしました、と 報告する瞬間がランダムに発生し、音声がブツブツ切れてしまっていた。 pipewire-pulse[8198]: spa.audioconvert: 0x64d5d5a4e5d0: (19 suppressed) out of

    buffers on port 0 2 pipewire-pulse[8198]: spa.audioconvert: 0x64d5d5a4e5d0: (28 suppressed) out of buffers on port 0 2 $ journalctl | grep 'out of buffers' | cut -d' ' -f-2 | uniq -c | tail -5 89 Jun 01 159 Jun 02 26 Jun 03 30 Jun 04 10 Jun 05 新しいPipewireをビルドしたり、バッファの最低確保量を増やしたり していたが焼け石に水。 $ pw-metadata -n settings 0 clock.min-quantum 512
  2. 朗報です、昨日正式に直った来週直るはず どうもLinux kernel v7.0までに入ったタイマー関連のパッチが、 もろもろの問題を引き起こしていたようです。特に AMD CPUシステム。 Linux kernelでは4月末ごろのv7.0.1で下記修正が取り込まれています。 4096fd0

    "clockevents: Add missing resets of the next_event_forced flag" Ubuntuでは、昨日正式リリースされた来週リリースされる“7.0.0-26”に 含まれているので、アップデートをかけて再起動してみてください。 ずっとPipewireか省電力機能かWi-Fi*かを疑っていたので、カーネルのバグ報告を見つけられていなかった。 「この問題じゃない?」と教えてもらうのがもう少し遅れていたら、あやうくノート PCを窓から投げ捨てるところだった。 * Qualcomm/AtherosのWi-Fi firmwareがたまにクラッシュしたり不安定になったりするのはまた別の話
  3. 朗報です、回避策ならあります PSR(Panel Self Refresh)という省電力機能に関連するバグらしい。 “7840U/780M: `*ERROR* [CRTC:83:crtc-1] flip_done timed out`,

    leads to frozen display and need to hard reboot” https://gitlab.freedesktop.org/drm/amd/-/work_items/4141 AMD側で再現できなかった影響もあり原因究明がしばらく進んでいなかった ようだが、最近になって積極的にパッチ作成と検証のサイクルが 進んでいるように見受けられる。 正式なパッチを待つ間、PSR/省電力機能自体をオフにすることで回避できる。 # DC_DISABLE_PSR: (0x10) If set, disable Panel self refresh v1 and PSR-SU GRUB_CMDLINE_LINUX_DEFAULT="[...] amdgpu.dcdebugmask=0x10"
  4. • ウィンドウを探す ◦ ウィンドウタイトルが“Meet - <MEETING_ID> - Chromium”に 合致するものを探す ◦

    xdotool search --name "^Meet - .+ - Chromium$" ◦ あればMeetモードなければTeamsやZoomのウィンドウを探す • ウィンドウにフォーカスを当てる ◦ xdotool windowactivate <WINDOW_ID> • ショートカットキーを送る ◦ xdotool key ctrl+d ## Meetの場合 • この間約0.2秒 ウィンドウ操作の自動化
  5. “Description: simulate (generate) X11 keyboard/mouse input events xdotool lets you

    programmatically (or manually) simulate keyboard input and mouse activity, move and resize windows, etc. It does this using X11's XTEST extension and other Xlib functions. xdotoolも、名前からXな感じだったが “ WaylandセッションでもX互換レイヤー(Xwayland)のおかげで ある程度は問題なく使えていた。
  6. $ pgrep -a chrome 805393 /snap/chromium/3464/usr/lib/chromium-browser/chrome --type=gpu-process --ozone-platform=wayland [...] いつの間にかWaylandネイティブモードになってる!

    X互換レイヤーを使わなくなったので、 xdotoolからウィンドウ名で ウィンドウ検索できなくなった。 今までの伝統的なXでは誰でもウィンドウ一覧を取得したり ウィンドウ操作したりできる状態だったが、 Waylandではセキュリティ機構と隔離がしっかりしている。 ん?Chromiumでいつからか動かないぞ
  7. セキュリティ機構と自由度のジレンマ “GNOME 48: - Xwayland can send keystrokes to the

    compositor using XTEST. That’s kinda nice, but every few minutes get a popup with almost zero context stating “Allow remote interaction” with a toggle switch. It’s confusing, because sending keystrokes from a local command does not feel like “remote interaction” [...] GNOME offers window management only through GNOME Shell Extensions. [...] GNOME has a DBus method for executing javascript (org.gnome.Shell.Eval), but it’s disabled by default. “Exploring the Fragmentation of Wayland, an xdotool adventure” https://www.semicomplete.com/blog/xdotool-and-exploring-wayland-fragmentation/
  8. みんな頭をひねってどうにかしようと考える。 現時点のGNOME+Wayland向けの狙い目はuinputとGNOME Shell Extensionsの組 み合わせ。例えば前回紹介したキーリマッパー xremapや、 xdotool type代替のydotool typeなどは/dev/uinputに直接アクセス。 どのウィンドウがアクティブになっているか、という情報がほしいときは

    専用のGNOME Shell拡張へD-Bus経由で問い合わせ。 $ busctl --user call org.gnome.Shell \ /com/k0kubun/Xremap com.k0kubun.Xremap ActiveWindow s "{\"wm_class\":\"org.gnome.Ptyxis\",\"title\":\"nobuto@t14g5a: ~\"}" “セキュリティ”が強くなると
  9. ブラウザ上(Google Docsなど)で Ctrl + N (↓), Ctrl + P (↑),

    Ctrl + F (→), Ctrl + B (←) が使いたいからWaylandでも動くキーリマッパー、xremapを入れている。 設定を書くのは簡単だが、ハマったポイントとして Ctrl +Shift + Pが Shift + [Ctrl + P] Shift + [↑] と認識されてしまう。私の場合はそのままCtrl + Shift + Pと認識してほしい。 GitHub上で質問までしてしまったが、READMEにexact_matchという オプションの説明があって見逃していた。おバカな質問だったが、 開発者の人が「もっと見つけやすくしとくね」と優しかった 🙇 https://github.com/xremap/xremap/discussions/927 xremapへの移行も完了 * Firefoxだけでよければ最近は “about:keyboard”という手も出てきた
  10. 困っていること - まだベストのクリップボードマネージャーが見つかっていない - Firefoxの戻るメニューを長押しした時のマウスの動き - FirefoxのClipboardAPI “Paste”ポップアップ - スクリプトからクリップボードの内容を

    勝手に読ませないためのセキュリティ仕様だが、 1秒経たないと押せない - 26.04 LTSリポジトリ内のAnsibleバージョンで ステップ実行が動かなくて、sudo-rsにも対応して いなかった(環境変数でsudo.wsを指定すれば動く) その他新しくなっていいこと困ること
  11. いいこと - GNOME Terminalの代替、Ptyxisはなんだかんだ気に入っている - 設定は結構変えている new-tab-position='next', restore-window-size=false, restore-session=false, visual-bell=false,

    toast-on-copy-clipboard=false(いちいちコピーしましたの通知を出さない), bold-is-bright=true, opacity=0.95, palette='Horizon' - PROMPT_COMMAND='__vte_prompt_command'が /etc/profile.d/から設定されているのを知らずに初期化してしまって、 新規タブを開いたときに $PWDが保持されなくてハマった - Location serviceの復活、海外行っても自動でタイムゾーンが切り替わる - FirefoxのAI Chatサイドバー その他新しくなっていいこと困ること
  12. いいこと - 私が大好きtlpが、power-profiles-daemon互換実装“tlp-pd”を出してきた - まだリポジトリには入っていない - 電源抜いたら自動で省電力モード、 挿したらパフォーマンスモードに自動で切り替えられる - UPowerバッテリー保護モードのしきい値を変えられることを知った

    - 今までは保護のオンオフだけで、 バッテリー充電が何 %まで 減ったら充電開始、 何%で充電停止を細かく設定できないと 思い込んでいた。 - 61-battery-local.hwdbで自分で好きな パーセントを設定できる その他新しくなっていいこと困ること
  13. • リモコンの“Shift+F5”を“Ctrl+F5”に置き換えたかったのはGoogle Slidesで フルスクリーンのプレゼンテーションに入れるようにするため • Firefoxでは、Escでフルスクリーンを解除した直後に Ctrl+F5を押すと、 フルスクリーンに戻れない “Request for

    fullscreen was denied because Element.requestFullscreen() was not called from inside a short running user-generated event handler.” ◦ ユーザーの操作ありきでないとダメみたい • 回避策として、Esc -> Tab -> Ctrl+F5と 一度別のキーを挟むとフルスクリーンに戻れる Ctrl+F5はFirefoxで動くときと動かない時がある
  14. 朗報です、直りました 前回のイベントで 「これはFirefoxのバグなのだろうか、仕様なのだろうか」 という疑問が出て会場で挙動を追う。 帰宅後、会場からいただいたインプットを元に 検証、テストケース作成、そしてバグ報告をした。 [Bug 2001938] Ctrl+F5 in

    Google Slides to present in full screen is blocked https://bugzilla.mozilla.org/show_bug.cgi?id=2001938 著名なサービスで発生し、かつChrome/Chromiumでは発生しない Firefox特有の事象だったため、仕様ではなくバグ認定されそうな雰囲気があった。
  15. 朗報です、直りました 2025年 • 11月24日 前回イベント & Firefox 145で確認しバグ報告 • 11月30日

    暫定パッチが提案される 2026年 • 1月19日 年末休みを挟んだので議論が失速するかと思いきや、 Firefox 149用ブランチにパッチがマージされる • 1月30日 Firefox 148用ブランチにもマージされ前倒しリリースへ • 2月24日 Firefox 148.0リリース、修正されていることを確認 🎉 • 3月1日 Regressionが報告される • 3月3日 スクリーンリーダー環境に影響するため急ぎパッチ撤回 • 3月10日 Firefox 148.0.2として撤回したものがリリース 😔 • 4月22日 Firefox 152用ブランチにパッチv2がマージ • 6月16日 Firefox 152.0リリース、修正されていることを確認 🎉 • 6月20日 イベント(今日)🥳