最終更新:
genpack/devlauncher は、Wayland環境でのGUI開発作業に必要なツール一式をまとめたメタパッケージである。GTK4ベースのアプリケーションランチャー (devlauncher) をインストールし、エディタ、ブラウザ、ターミナルエミュレータ、コンテナツール、コマンドラインユーティリティ等を一括で導入する。
| パッケージ | 説明 |
|---|---|
sys-devel/binutils | バイナリユーティリティ |
sys-devel/gcc | GCC コンパイラ |
dev-debug/gdb | GDB デバッガ |
| パッケージ | 説明 |
|---|---|
www-client/google-chrome | Web ブラウザ |
app-editors/vscode[wayland] | Visual Studio Code |
x11-terms/ghostty (<1.2) | Ghostty ターミナルエミュレータ |
app-text/xournalpp | 手書きノート・PDF注釈 (GTK3) |
dev-util/claude-code | Claude Code CLI |
| パッケージ | 説明 |
|---|---|
gui-apps/waypipe[lz4,zstd] | Wayland リモートディスプレイ転送 |
gui-libs/gtk[wayland] | GTK4 (devlauncher 本体が使用) |
x11-libs/gtk+[wayland] | GTK3 (xournalpp 等が使用) |
dev-python/pygobject | Python GObject バインディング |
media-fonts/noto | Noto フォント |
media-fonts/noto-cjk | Noto CJK フォント |
media-fonts/noto-emoji | Noto 絵文字フォント |
media-sound/alsa-utils | ALSA オーディオユーティリティ |
| パッケージ | 説明 |
|---|---|
app-containers/docker | Docker コンテナエンジン |
app-containers/docker-compose | Docker Compose |
| パッケージ | 説明 |
|---|---|
app-admin/sudo | 特権昇格 |
sys-process/psmisc | プロセス管理ユーティリティ |
app-misc/jq | JSON プロセッサ |
sys-apps/fd | ファイル検索 |
app-text/tree | ディレクトリツリー表示 |
sys-apps/bat | シンタックスハイライト付き cat |
dev-python/pip | Python パッケージマネージャ |
dev-python/pylint | Python リンター |
dev-python/pytest | Python テストフレームワーク |
/usr/bin/devlauncher としてインストールされる GTK4 (PyGObject) ベースのアプリケーションランチャー。起動するとインストール済みの .desktop アプリケーションをグリッド表示し、クリックで起動できる。
devlauncher は起動時に以下の条件を確認し、環境変数を自動設定する:
WAYLAND_DISPLAY が設定されているDISPLAY が設定されていない(X11 でない)XDG_SESSION_TYPE が wayland でないこの条件に該当する場合、XDG_SESSION_TYPE=wayland と MOZ_ENABLE_WAYLAND=1 を設定する。waypipe SSH 経由でのリモート接続時に Wayland セッション情報が不完全なケースを補完する目的がある。
devlauncher とその依存パッケージを正しくビルドするには、ebuild の RDEPEND で直接指定されるもの以外にも、間接的な依存関係で要求される USE フラグがある。weston プロファイルを使用する場合はプロファイル側で設定されるが、paravirt 等の GUI 設定を持たないプロファイルと組み合わせる場合は genpack.json5 の use セクションで明示的に指定する必要がある。
プロプライエタリパッケージには genpack.json5 の license セクションでの承諾が必要:
license: {
"www-client/google-chrome": "google-chrome",
"dev-util/claude-code": "all-rights-reserved",
"app-editors/vscode": "Microsoft-vscode"
}
GTK が Wayland バックエンドで動作するには、グラフィックスタックにも Wayland サポートが必要となる。
| パッケージ | USE フラグ | 理由 |
|---|---|---|
gui-libs/gtk | wayland | GTK4 の Wayland バックエンド。devlauncher が直接使用 |
x11-libs/gtk+ | wayland | GTK3 の Wayland バックエンド。xournalpp 等が使用 |
media-libs/mesa | vulkan wayland | gtk[wayland] が mesa[wayland] を要求。vulkan は lavapipe/zink の REQUIRED_USE |
x11-libs/cairo | X | gtk+[X] が要求。Chrome/Electron 系の依存チェーンで必要 |
media-libs/libglvnd | X | gtk+ 経由で要求 |
app-crypt/gcr | gtk | VSCode → gnome-keyring → gcr の依存チェーン |
media-libs/freetype | harfbuzz | フォントレンダリング。harfbuzz との循環依存あり |
app-text/poppler | cairo | xournalpp の PDF 描画で必要 |
media-libs/freetype と media-libs/harfbuzz は相互依存の関係にあるため、circulardep_breaker の設定が必要:
circulardep_breaker: {
packages: ["media-libs/freetype", "media-libs/harfbuzz"],
use: "-harfbuzz -truetype"
}
paravirt プロファイルで devlauncher を使用する場合の最小限の USE フラグ設定:
{
profile: "paravirt",
packages: ["genpack/devlauncher"],
use: {
"gui-libs/gtk": "wayland",
"x11-libs/gtk+": "wayland",
"media-libs/mesa": "vulkan wayland",
"x11-libs/cairo": "X",
"media-libs/libglvnd": "X",
"media-libs/freetype": "harfbuzz",
"app-crypt/gcr": "gtk",
"app-text/poppler": "cairo"
},
circulardep_breaker: {
packages: ["media-libs/freetype", "media-libs/harfbuzz"],
use: "-harfbuzz -truetype"
},
license: {
"www-client/google-chrome": "google-chrome",
"dev-util/claude-code": "all-rights-reserved",
"app-editors/vscode": "Microsoft-vscode"
}
}
weston プロファイルは make.defaults でグローバルに USE="wayland -X" を設定し、package.use で上記のほとんどの USE フラグをカバーしている。ただし weston/paravirt プロファイルは Weston コンポジタを含む完全なデスクトップ環境を前提としており、waypipe 経由のリモート表示のみで使う場合は過剰になる。paravirt プロファイルに必要な USE フラグを個別指定する方が軽量なイメージを構築できる。