世界を動かす技術を、日本語で。

FyneDesk: Go言語で書かれたLinux用のフルデスクトップ環境

2025年10月3日原文(github.com)

概要

  • FyneDesk は、Linux/Unix向けの シンプルなデスクトップ環境
  • Go言語Fyneツールキット で構築、開発・利用が容易
  • 必要な 依存ツールインストール手順 を紹介
  • 開発者向け のデバッグ・実行方法も解説
  • ディストリビューションへの組み込み時の 注意点 も記載

FyneDesk の特徴

  • Material Design 思想に基づく、直感的なユーザーインターフェース
  • Fyneツールキット を利用したクロスプラットフォーム開発
  • Go言語 ベース、拡張性と開発のしやすさ
  • オープンソース、コミュニティからの貢献やフィードバック歓迎
  • 軽量動作、初心者から上級者まで幅広いユーザー層を想定

依存関係と必要ツール

  • Fyne 本体と同様の依存関係(詳細はGetting Startedドキュメント参照)
  • デスクトップ体験向上のための外部ツール
    • arandr :ディスプレイ設定変更用
    • xbacklight または brightnessctl :ノートPCの明るさ調整
    • connman-gtk :Wi-Fi設定管理
    • compton :コンポジタ(合成処理)サポート
  • これらツールがなくても動作するが、体験は限定的

インストール・起動手順

  • Go標準ツール でのインストール
    • go get fyshos.com/fynedesk/cmd/fynedesk
    • $GOPATH(通常は~/go/bin)に追加される
  • プレビュー起動:通常のFyneアプリとして実行可能
  • 本格的なデスクトップ環境として利用するには追加設定が必要

デスクトップ環境としてのセットアップ

  • ログインマネージャ(例:LightDM)で選択可能なデスクトップ環境に設定
    • git clone https://github.com/fyshos/fynedesk
    • cd fynedesk
    • make
    • sudo make install
  • ログアウト後、ログイン画面でFyneDeskを選択可能

デバッグ・テスト方法

  • Xephyr ツールを使った埋め込みXウィンドウでのテスト
    • make embedコマンドで起動
    • 既存のウィンドウマネージャが動作中、または非対応OS(Windows/macOS)ではUIテストモードで起動
    • ウィンドウ制御以外の全機能テストが可能

安定性向上のためのRunnerユーティリティ

  • fynedesk_runner ユーティリティによるクラッシュ時の自動復旧
    • go get fyshos.com/fynedesk/cmd/fynedesk_runnerでインストール
    • テストや事前リリース版利用時は、通常のfynedeskコマンドの代わりに実行
    • 予期せぬクラッシュ時もアプリケーションデータの損失を最小限に抑制

デザインと壁紙

  • Jost Grant によるデザインコンセプトと抽象壁紙の提供

ディストリビューションへの組み込み・配布時の注意

  • ライブラリや依存関係 の同梱は不要
  • 推奨追加アプリ
    • fingithub.com/fyshos/fin):FyneDeskのデザインに合うディスプレイマネージャ
  • FyneDeskをパッケージ化した場合は、公式へ連絡推奨(公式サイトからリンク掲載可能)

Hackerたちの意見

これ、全く新しい開発にしてはかなり良さそうだね。僕は縦型ドックの大ファンだけど、その縦型の時間…

マスターの最後の更新は去年で、開発はあまり進んでないみたい。始まったのは7年前のようだね。

新しい?Waylandをサポートしてるようには見えないけど。

開発ブランチの最後のコミットは3日前だったから、まだ開発は続いてるみたい。ただ、メインへの最後のマージは2024年3月だったけど。

マスターはリリース専用に使ってるんじゃないかな。開発ブランチはアクティブに作業されていて、マスターより100以上もコミットが進んでるから、全然活発だよ。2024年3月のフルリリースも全然問題ないし、みんな開発ブランチからビルドできるしね。

誰かの努力に対するいつもの受動攻撃的なHNコメント。

僕にとっては、OberonやInferno系のオペレーティングシステムのユーザー体験の現代的な解釈の基盤になりそう。Goがどうやって生まれたかを考えると、LimboやOberon-2のミックスで。デスクトップ環境もあって、Goのダイナミックリンクに対するスタンス(ちょっと放置気味のプラグインパッケージ)を考えると、OberonやInfernoのコマンドやアプリケーション拡張のダイナミックな動作をD-Busやnet/rpcで置き換えられるかも。ただ、デスクトップの断片化の状態を考えると、努力する価値はないかもね、どんな感じになるかを知るためだけに。

僕の目標は、開発者やコーディングを学んでる人にとって最高のデスクトップになることだよ。FyshOSにアプリエディタを統合していて、(今は名前が変わって https://apptrix.ai になってるけど)昔の動画でプレビューとして見ることができるよ:https://youtu.be/XXmDmn-et4E?si=5n1Ao-V6dKurXzS6(主に15:30から)

Goのダイナミックリンクに関する立場(そしてちょっと放置されたプラグインパッケージ)を考えると、Goプラグインの代わりに有望な選択肢があるよ。これはオベロンシステムに似ていて、コンパイラが生成したオブジェクトファイルを直接読み込んで実行するんだ: https://github.com/pkujhd/goloader。

今のところ、Waylandは絶対に必要だね。サポートが始まったら、ちゃんと試してみるつもり。

次の大きなリリースの後に、その作業が始まると思うよ。今は上流のライブラリの修正を待ってるところ。

正直な質問なんだけど、なんで?しばらくWaylandを試してみたけど、ユーザーとして何が違うのか分からなかった。

Hacker Newsで議論の続きを見る