追加検証!CachyOSのHyprland環境にDANK Shellをぶち込んでいきなり使い勝手を良くする

前回、CachyOS Cosmic環境をインストールする際に色々確かめるためにHyprlandも入れていました。ただそれだけでは基本部分だけで便利ではなかったので便利にするためにDANK Shellを入れてしまおうと言う内容です

Hidekichi

CachyOSのHyprland環境について

CachyOSのHyprlandは特別便利なわけではなく、基本的なウィンドウ操作などが設定されているだけで、後は自身でなんとかする必要がありました
しかし、Hyprlandを設定するだけで便利になるのではなく各種ツールとその設定をして初めて便利になるわけで、それらをどうするかというのがとても高い壁です。

海外では、自身のカスタマイズした設定を公開・配布してそれらをそれぞれが適用してLinuxを飾るというRice(あるいはRiceng)という文化があり、それらは単にカスタマイズしただけというものもありますが、高度に設定されたものもたくさんあります。
そのひとつがDankMaterialShellです。

DankShellについて

CachyOS-DankShell hypeland desktop

DankMaterialShellは、quickshell と Go言語で作られています。Go言語と聞くと以前紹介したArchRiotを思い出します。自動で必要なものが全て導入できるという意味ではとても似ています。quickshellはend-4のillogical-impulseで私は初めて触れました。他にも同じような構成のものはたくさんありますが、日本語のローカライズと完成度、導入の簡単さと設定の細かさなどを考えると、最新鋭かつ最も優れたHyprland環境の一つであるだろうと思われるのがDankMaterialShellです。

全て導入・設定済みと言うとOmarchyを思い出しますが、導入されるものが多すぎてそこまではいらない、必要なものは後で自分で入れるという意味からするとOmarchyはやりすぎな感じもあり、色々加味して考えてもDankMaterialShellはその手の業界のトップレベルにあると思われます。

例えば、日本語のローカライズはできているものとできていないRice環境もあり、パッと見た感じ特別おかしな日本語もなく読めばほとんど分かる日本語訳がされています。これは文字数などがレイアウトの関係で限られているUIの環境でそこに合うように訳せるというだけでも素晴らしいとも言えます。
それらが設定できるそれぞれの項目にかなり細かく用意されていて、一部まだ英語の部分もありますがそれはごく(わず)かで、ほぼ日本語で設定はできます。ただこの設定というのは、用意されているDankShell部分の設定だけでHyprlandの設定は一部別で行わないといけません(例えば日本語キーボードにするとか、fcitx5を読み込ませる等)。

一部のRice環境では、パッケージの問題などで独自パッケージを展開するManjaroCachyOSよりも素のArchLinuxあるいはそれに近いEndeavourOSに適用するように求めるものもあります。しかしDankMaterialShellは、Arch, ArchARM, Archcraft, CachyOS, EndeavourOS, Manjaroをサポートしています。
更に、Arch系だけではなくFedoraUbuntuDebianopenSUSE Tumbleweedもサポートしているようです。

機能

CachyOS-DankShell Dgop Terminal

画像はプロセスとシステムモニタリングするdgopが動作している所にターミナル(Ghostty)を開いた所です。これ以外にもどんなプロセスが動作しているか、メモリの使用量、あるいはCPUの負荷などを表示するものもあります。トップバー中央の日付の所がそれらにすぐにアクセスできます。

このトップバーセンターのパネル(DANK DASH)には天気の表示もでき、日本の各市町村の名称((どこまで細かくかは不明だけどもかなり狭い範囲も行けそう日本なら各市までは行けると思います))の天気情報を設定でき、それを時計の右側に表示して置けますし、パネル内でも見ることができます。もちろん時計のフォーマットや並びをいくつかの候補からも選べますし、サンプルを参考にカスタマイズすることもできます。

CachyOS DankShell DankDash

CachyOS TopBar SystemMonitor

左側((スマホなどの幅が狭い画面では最初の))画像左下のグラフがおおよそのCPU仕様率、温度、メモリ使用率かと。この他にトップバー右側にはシステムモニターがあって、ここからはもっと詳細に見ることができます。

右側でメモリが1.9GBと表示されていますが、裏で色々と動作さているのでこれぐらいになっています。だいたい1.2~1.5GB前後かと思います。Windows11が4GBは超えてくると思うので、どれだけ軽量であるかがわかると思います。

DankShellは、プラグインで機能を拡張できます。それらもターミナルで導入するのではなくDankShellの設定画面から導入・設定ができるので難しく考える必要はありません。予めプラグインを入れるディレクトリを制作する必要がありますが、それもDankShell上から行えます。

アーキテクチャ

Wikiには、次のような記載があります。

DankMaterialShell uses a client-server architecture where a Go backend (dms) manages system integrations and spawns the Quickshell-based UI as a child process. Communication happens over Unix sockets using REQ/REP and PUB/SUB patterns.

REQ/REP と PUB/SUB は、ZeroMQ(ØMQ) というメッセージングライブラリが提供する2つの通信パターンです。
DankMaterialShellでは、これらをUnixソケット(同じマシン内の高速通信路)で使って、Goバックエンド <-> Quickshellを繋いでいます。

REQ/REP と PUB/SUBをなぜ組み合わせるのかは、

そのため、2つを併用することでより完璧にしているわけです。命令はREQ/REP、通知はPUB/SUBなど。つまりごく簡単に言うと必要なものを、必要な瞬間に、超高速で届けるという考えなわけです。そういう仕組みを実現しています。

Super + T((configのキーバインドをこう設定すればですが))でターミナルが開きます。(あくまで体感ですが)これを0.05秒で起動できるといったことであったり、バッテリーの残量が変わった瞬間に表示も変えるとか、キーを押した瞬間になどで即表示するというような反応速度の向上のための技術と言えます。

DankMaterialShellを導入

導入はとても簡単です。CachyOSにHyprlandを適用してあるとして、ターミナルを起動して次のコマンドを実行します。

curl -fsSL https://install.danklinux.com | sh

後は画面に従うだけなので、特別難しい所は何もありません。途中で各インストールに必要な管理人パスワードを1度だけ求められるのと、niriHyprlandを選択する部分があります。ここはHyprlandを選択します

niri(ニリ)は、「スクロールで無限に広がるデスクトップ」を実現する超軽量Waylandコンポジターです。Hyprlandより軽量かも知れません。無限横スクロールでとても滑らかに表示されるということです

後は全自動です。待つだけでOKですが、自分は既にCosmic環境である程度のセットアップをしていたので特別やることはないと言うだけで、実際はその後で色々とやらないといけないことはあります。しかし、ただそのままただ待てばよいだけであるというのに変わりはありません。通信環境とPCパワーにもよると思いますがおおよそ、10~15分ぐらいで完成します。

インストール後にすること

インストールが終わったら、まず再ログインします。これでDankMaterialShellが適用されたデスクトップが表示されるはずです。しかし、このままだとディスプレイが200%で表示されている状態なので、まず一番最初にモニター設定をする必要があります。
Super + Spaceでランチャーを起動させ、何かしらのファイルマネージャーを起動し~/.config/hyprを開きます。するとその中にhyprland.confがあるのでそれを開きます。開いたらすぐにMONITOR CONFIGがあるので、

monitor = eDP-2m 2560x1600@239.998993, 2560x0, 1, vrr, 1

とある部分の先頭に#と半角で#スペースとしてコメントアウトしその下に、これが正しいかどうかはわかりませんが、機能するコマンドとして、

momitor = , preferred, auto 1

と追記します。これでCtrl + Sで保存すれば、すぐにディスプレイの解像度が戻るはずです。

次に、INPUT CONFIGというセクションが下の方にあるはずなので、そこの、

input {
    kb_layout = en
}

とある部分をenからjpに変更して下さい。まずここまでが絶対しないといけない設定です。

このINPUT CONFIGのセクションの上にSTART UP APPSと言うセクションがあります。他のIMEは知りませんが、fcitx5を導入・設定していた場合、このセクションの最後に、

exec-once = fcitx5

と追記します。これで次回起動時にfcitxが有効になるのでfcitx5-config等で設定した入力モードの切り替えで日本語が入力できるようになります。同時にトップバーの右側・左隅にfcitx5-mozcのアイコンがでているはずです。

~/は、ユーザーディレクトリの /home/ユーザー名を省略しています。書くのに省略しているというのもありますが、このままでも実際に適用される公式なものです。$HOME/$XDG_CONFIG_HOMEなどもあります。
$XDG_CONFIG_HOME~/.configと同じことです。ユーザー名はそれぞれ異なりますが、$XDG_CONFIG_HOMEであればそのシステムの/.configディレクトリを選択することができます。

fcitx5の導入方法

ターミナルから、

sudo pacman -S fcitx5-im fcitx5-mozc

として導入します。デフォルトは、選択肢の全部がインストールされるので、たいていはこのままで大丈夫だろうと思います。ランチャーからfcitx5-configtoolを起動させて、Mozcと日本語キーボードを設定し、入力モードの切り替えをどのキーでするのか、かな入力、ローマ字入力のいずれを使用するのかなどを設定します。
詳細は別のサイトか何かしらで調べてみて下さい。GUIの設定で全部できます。

CachyOS-DankShell localsend Thunar

画像は、LocalSendを起動させ、ファイルマネージャのThunarを起動させたものです。このように、各ウィンドウが半透明になったりしています。アクセントカラーは独自に選択もできますし、前述したかも知れませんが壁紙の色から抽出したり、カスタマイズして色を選択することもできます。

Cosmicデスクトップでは、選択しているウィンドウにボーダーが入っていました。これはHyprlandの設定できます。そのボーダーの色などは、アクセントカラーと同様に壁紙から色を抽出してに合わせることも指定することもできます。

アプリを起動するキーバインドを設定する

DankShellの設定からドックを設定すれば、場所は色々選べますがデフォルトでは画面下部中央に表示されて、よく使うアプリを登録しておけばアプリは素早く起動させられますが、いくつかキーバインドを付け加えるといちいちドックやランチャーから起動しなくても良くなるので便利です。

例えば、~/.config/hypr/hyprland.confのどこでも良いと思いますが、START UP APPSセクションの最後に変更した所をわかるようにして、

bind = $mod, B, exec, firefox

と書くと、Super + BでFirefoxが起動するようになります。

他に使用されているキーが重複しているとそれらがほぼ同時に展開されるので、なるべく重複しないようにするか、重複しているキーがAキーだとすると

unbind = $mod, A
bind = $mod, A, exec, thunar

このように、まず重複しているキーAのバインドを解除して、新たにCtrl + Aでthunarを起動するようにできます。
これはAキーが重複していたらの場合で書きましたが、こうできるというだけです。ThunarはファイルマネージャーなのでFキーが空いていたら一番良いのですが、フルスクリーン表示がFキーに当てられているので個人的にはEに設定しています。

スクリーンショットを撮るには

CachyOS 設定

いくつか方法があるようですが、まず設定画面のプラグインで、3rdPartyのプラグインGrimblastを導入します。これは設定画面上ですべて完了できます

  1. プラグインタブ → ブラウズ で該当のプラグインを探す
  2. インストールで導入するとすぐ下にリストアップされるのでタイトル横の((上下に切り替わる三角の記号))でオプション表示
  3. プラグインのオプションからスクリーンショットの保存場所を~/画像に変更。~/画像/screenshotなども任意の場所可能
  4. もちろん、プラグインタイトル右側のスイッチもONにしておく

これらを設定して、トップバーの右側にスクリーンショットのアイコン表示もできるように設定するには、

  1. Dank Bar → 右セクションの下にあるウィジェットを追加からGrimblastを追加する
  2. 表示位置は、セクションの一番上がになるのでタイトル左側にある︙︙をつかんで移動させます(場所は別に移動させなくても好き好きでOK)

これでトップバーのアイコンからスクリーンショットが可能になります。

しかしこれだけではパネルのように何か別のものをクリックしたりで選択すると閉じてしまうようなウィンドウがスクリーンショットできないため、トップバーのスクリーンショット機能ではできないことがあるため、ダイレクトにスクリーンショットが動作するようにキーバインドの設定を変更します

~/.config/hypr/hyprland.confの下の方にスクリーンショットのセクションがあります。どのように設定するかは色々考えられますが、

をスクリーンショットできるようにしたいとする場合、

bind = , Print, exec, grimblast copy area
bind = CTRL, Print, exec, grimblast copy screen

となっている部分の先頭に#と入れて、コメントアウトして

# bind = , Print, exec, grimblast copy area
# bind = CTRL, Print, exec, grimblast copy screen
bind = , Print, exec, grimblast save screen
bind = CTRL, Print, exec, grimblast save area

と書き換えます。

こうすることでPrintキーで画面全体のスクリーンショットがプラグインで設定したディレクトリに保存されます。CTRL + Printキーで任意のエリアを選択できるような画面になって任意の箇所をスクリーンショットできるようになります。
これもコメントアウトではなく、unbindしても良いと思いますが、何をどうするかあるいは何をどうしたかをわかりやすいと思う方法で書くのが良いかと思います。

まとめ と 動画

他にも色々とできる事がありますが、機能が多彩なので全部を紹介するのは大変ということから主な所を書いてみました。
CachyOSのデフォルトのHyprland環境からすると劇的に普段遣いできるレベルまで機能向上ができ、かつインストールも簡単で、インストール後にやることもたいして多くないDankMaterialShellは素晴らしいと思います。

CachyOSを1からインストールするやり方を解説しているサイトは他にたくさんあるでしょうからそれらを参考に導入してもらって、Hyprlandを入れたけどもどうやって使えば良いんだろうと困った方はこれを期に再度このDankShellと合わせて使用してみてはどうでしょうか?

動画もまだ多くはないですが、機能説明などをしている動画がいくつかあったのでその中から2つを貼っておきました。まずはどういうものかを見てから試しても良いですし、記事の最初に公式サイトにリンクしているのもあるので、英語ではありますがどういうものかは画像などからわかると思うので確認してみても良いと思います。

https://youtu.be/EuMAyiDAgbw
https://youtu.be/iqYiCpDY54E

blogカテゴリ内のタグ一覧