Linuxデスクトップ向けのランチャーを作った

ずっとulauncherを使っていたんだけど,何度目かのこれ

github.com

で,毎回pythonバージョンが変わるたびに

$ yay -S ulauncher --answerclean All

をやり続け,いい加減嫌になった.そもそもランチャーが起動しないと色々アプリが起動できなくて困るわけで,こんなところでpython依存はもう嫌.ブチギレ.python嫌いだわ.

というわけでランチャーを自作した.こんなもん.desktopファイル読み込んで検索させるだけやろ. 面白そうだからRustで書く.

github.com

はい.

XでもWaylandでも動くよ

ちょうどWaylandの環境を少しずつ整えているところだったので,XもWaylandも両方対応するようにしたかった.とはいえGTK4でウィンドウを作る部分はXにもWaylandにも依存していない. 面倒なのはショートカットで,グローバルのショートカットを取ろうと思うとウィンドウシステムにかなり依存する.ランチャーだと,たいていグローバルのショートカットキーから起動したくなることが多いと思う.ここで,ウィンドウシステムごとの差異が生まれている.

Xの方はx11rbを使えば割と色々できたりするので,ここからグローバルなショートカットを登録できた.

Waylandの方は,Waylandがそんな機能を提供してくれないので諦めた. いや,GNOMEやKDEは知らんけど,swayとかhyprlandとか使ってる人にとって,グローバルのショートカットを定義するのはそんなに難しい話じゃないでしょ.ということはデーモン化したプロセスに対して,ウィンドウ表示のtoggleだけあればいいでしょ.

つまりsway configに

exec sleep 2 && rauncher

bindsym Control+space exec rauncher toggle

こう書ければいいでしょ.

なのでそう書いてくれれば問題ない.

設定とか

設定画面なんておしゃれなものを求める人はこんなアプリを使うはずがないのでそんなものは作っていない.tomlを書け.

で,初回rauncherを起動すると ~/.config/rauncher/config.toml が生成される.これがデフォルト設定だ.

[hotkey]
key = 102         # You can check the keycode with xev.
modifier = "ctrl" # "ctrl", "shift", or "alt"

[[custom_search]]
name = "Google"
exec = "https://www.google.com/search?q=%q"
icon_name = "web-browser"
default_search = true

ちなみに先程書いたが,hotkey の項目はXでのみ有効化される.Waylandの場合はこの項目に何を書いても無視される.

この状態で,i3とかswayとかhyprland等の設定に

exec sleep 2 && rauncher

こうやって書いてもらえれば,デーモンとして常駐してくれる.

今後

流石に設定項目が少なすぎる.もうちょっと色々設定できるようにしたいとは思っている.

あと, custom_search については,今のところ追加してもまったく意味がないのだが,好きな検索を追加できるようにしたいとは思っているよ.