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

Quickshell – デスクトップのためのビルディングブロック

概要

Quickshell はQtQuickを使い、デスクトップの ステータスバーやウィジェット などを構築できるツールキット。 Waylandコンポジタやウィンドウマネージャ と組み合わせてデスクトップ環境を構築可能。 QML による簡単な記述とリアルタイム反映に対応。 豊富な 統合機能 を標準搭載し、拡張性も高い。 開発効率を重視した設計。

Quickshell概要

  • QtQuick ベースのツールキットで、 ステータスバー・ウィジェット・ロック画面 などの作成が可能
  • Waylandコンポジタウィンドウマネージャ と連携して、独自デスクトップ環境の構築を実現
  • QML という直感的な言語で設定、 LSP (Language Server Protocol)サポートにより開発効率向上
  • リアルタイムプレビュー 機能により、保存と同時に変更内容が即時反映
  • 豊富な統合機能 を標準搭載、新機能も随時追加

QMLによる簡単な記述例

  • FloatingWindowTimer などの標準コンポーネントを利用可能
    • 例:0.5秒ごとにウィンドウの色を変更するQMLコード
      • Timer コンポーネントでカスタムプロパティ(invert)を定義
      • onTriggered でプロパティの値をトグル
      • color プロパティで色を動的に切り替え
  • id を割り当てて、オブジェクト参照やプロパティ制御が容易

リアルタイム開発体験

  • 保存と同時 に変更内容が自動反映、即座に結果を確認可能
  • 高速な反復開発 に最適化されたワークフロー

豊富な統合・拡張性

  • 多様な統合機能 を標準で提供
  • 新しいインテグレーション も継続的に追加
  • 柔軟な拡張性 により、独自のデスクトップ体験を実現

まとめ

  • Quickshell は、 QtQuickQML を活用した、 カスタマイズ性と開発効率 を両立するデスクトップ構築ツールキット
  • Wayland や既存の ウィンドウマネージャ と組み合わせて、独自のデスクトップ環境を素早く構築可能
  • リアルタイム反映豊富な統合 により、開発・運用の柔軟性を最大化

Hackerたちの意見

いいね!これ、どのOSに対応してるの?

「Linux専用」って言うと思う。だって、Linuxだけが設定できるOSだから。

現在はLinuxとBSDが対応してるみたいで、作成者はMacOSとWindowsもサポートしたいって言ってるけど、それは有料版にしか含まれないみたい。LinuxとBSDではWaylandとX11がサポートされてるけど、Waylandの方がサポートが良いよ。つまり、Quickshellは無料のOSではずっと完全に無料のままだね。

いい感じだね!

ショーケースで使われてる動画がめっちゃフレーム落ちてるのが面白い。QuickShellが特に重いの?それとも録画してるシステムが貧弱なの?動画の前半はQuickShellがトランジションに対応してるなんて全然気づかなかったし、ただのハードカットだと思ってた。でも、トランジションがサポートされてるなら、すごく面白いプロジェクトだね。

動画は125fps(ffprobeによると)で、俺の120Hzディスプレイではスムーズに見えるから、もしかしたら君の方でフレームが落ちてるのかも。

それは君の接続か、君のコンピュータの問題だね。今使ってる古いiPad miniでは動画は問題なく再生できて、最初のアクションからトランジションも見えてるよ。

実は、そのページが最初に俺のコンピュータをクラッシュさせたんだ。「なんで再試行したの?」って感じ。似たような問題が他の特定のものでもあって、特にTwitchのクリッピングインターフェースが原因でそれが起こることが多いんだ。原因を突き止めようとしてるけど、正直、何をやってるのか分からない。

参考までに、古いAndroidのFirefoxで見たときも同じようにカクカクしてたけど、ダウンロードしてローカルで見るとスムーズだったよ。すごく速いWiFiで、動画はたったの2MBだから、ページ内の何かがデバイスのパフォーマンスと競ってるんじゃないかな。

安い最近のAndroidフォンでも、Firefoxで全然問題なく見られるよ。

アップデートを追いたいなら:ForgejoのRSSでリリース専用のフィードが見つからなかったし、ブログも古くなってるみたい。XやDiscordを使わない人もいるだろうから、リリースを購読できるGitHubミラーをここに貼っとくね: https://github.com/quickshell-mirror/quickshell

"XやDiscordを使わない人" 価値観に基づいて選択できる特権を持っている人たちで、その価値観には人権や自由にアクセスできる情報が含まれている。どちらのサービスを利用することを選んでも、誰も判断しないけど、利用したくない人の気持ちも理解できるよ。GitHubミラーのリンクありがとう、そこから始めるつもり。いいプロジェクトだね。

みんなQMLを見逃してると思うんだ。

言語自体はあんまり好きじゃないけど、QtQuickとQMLはこういうウィジェットには使うかな。一方で、仕事で二つのプロジェクトを始めるんだけど、一つは伝統的なデスクトップアプリで、もう一つは機能がたくさんあるHMI。だから、QtWidgetsを使うことにして、QMLのJSの影響やC++のインターフェースのボイラープレートから自分を救おうと思ってる。

GitHubの検索が大好き!他の人がQuickshellをどう使ってるか見れるからね: https://github.com/search?q=quickshell+language%3Anix&type=c... これめっちゃクールだね!