Chienomi

新たに3つのダイアログに対応 - My Browser Profile Chooser

開発::util

  • TOP
  • Articles
  • 開発
  • 新たに3つのダイアログに対応 - My Browser Profile Chooser

My Browser Profile Chooserは用途に応じてプロファイルとブラウザを使い分けることを容易にするユーティリティである。

もともとMy Browser Profiel ChooserのデフォルトのダイアログはZenityであり、yayとKdialogが選択可能だった。

ZenityはGtk3時代は、キータイプでのジャンプとキーボードでの選択が可能だった。 しかし、Gtk4になってからリスト部分にキーボードフォーカスが当たらなくなってしまい、キーボードで選択することができなくなった。

ダイアログ追加

そこで、キーボードでより操作しやすいダイアログを追加したいと思っていたため、今回新たにrofi, dmenu, bemenuを追加した。

個人的にはrofiは相当使いやすいと感じていて、おすすめだ。 CUIっぽい素朴な見た目だが、フローティングで出現するため非常に使いやすい。 いっそデフォルトにしたいくらいおすすめだが、rofiを入れている人は少ないと思うので実際にやる予定はない。 が、私はrofiを使うようになったとだけ言っておく。

Dialogオプションでそれぞれrofi, dmenu, bemenuとして使うことができる。

demnuとbemenuはオプション指定が必須な面があり、特にbemenu私の環境ではフォントとモニターの指定は必須だった。

このため、dmenubemenuに関しては追加でMenuOptsという設定項目を用意し、font, monitor, linesの指定ができるようにした。

正直、bemenuは私の環境だとまともに動作しないのでおすすめしかねる。

バージョン問題

READMEに次の記載がある。

Before version 3.3, PathBase is not set.

Since version 3.3, ${XDG_CONFIG_DIR}:-${HOME}/.config}/reasonset/browsers for PathBase by default. It may change in future.

ということは、私の中で「バージョン3.3」というものが存在したのだと思うのだが、特にtagも打っていないし、カウント方法も不明で「3.3……?」となっている。

ちなみに、バージョン2はコミットコメントに記載が残っており、バージョン2はそもそもZshで書かれている別物だったようなのでそこは不思議ではない。問題はマイナーバージョンだ。

ちなみに、My Browser Profile Chooserはウェブブラウザの事情に左右されて大きな変更が発生しやすく、ウェブブラウザのバージョン環境とMy Browser Profile Chooserのバージョンが連動しているため、セマンティックバージョニング的なものを採用していない。

だが、とにかく私には「バージョン3.3」が認識できないのだ。 このREADMEの記載をしたコミットからバージョン3.3を指しているコミットは推測できるのだが、バージョン管理自体されていない。

コミットログを確認したところ、この “バージョン3.3コミット” から機能追加をこれ以前に7回やっていたため、これらをマイナーバージョンアップとみなし、今回はv3.11タグを打った。

このプロジェクトに関してはユーザーのブラウザ環境によって使うべきバージョンが変わるため、今後Releasesを出すかもしれない。

GnuPGとSigned commit

私は2002年からGnuPGを使っていて、.gnupgはすごいことになっているし、鍵はまともに管理できていない。 鍵サーバーにアップロードしてある鍵もあるはずだが、どこの鍵サーバーかも、なんのアドレスの鍵かも分からない。

そこで今回思い切って.gnupgを一新して、GitHubなどで使っているアドレスの鍵を作ってsigned commitにすることにした。 ed25519/cv25519の超モダンな鍵である。

-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEaHjj3BYJKwYBBAHaRw8BAQdAs1hjSLlV57fTKdhbR+5YvAjPGcuOcxFnp5Wv
3S9t8SS0QU1hc2FraSBIYXJ1a2EgKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFzb25z
ZXQvKSA8eWVrQHJlYXNvbnNldC5uZXQ+iJUEExYKAD4WIQStnwX/PxMgxoV8Nj6N
A5JDL0tyCwUCaHjj3AIbAwUJA8JnAAULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
CRCNA5JDL0tyC8GJAP0R+TLqFndbQXz5Z0sbhkqAlplUGrwMsdggnOlCxwIt7QD4
psLTyWzw5N9W9NxVAoDsveJ2VCdyb9IEsL2xJGiXCbg4BGh45DQSCisGAQQBl1UB
BQEBB0BM9HbRPdzhaD2h7pRzeRKHf1nimsEzXqZZmHd+8w94QAMBCAeIfgQYFgoA
JhYhBK2fBf8/EyDGhXw2Po0DkkMvS3ILBQJoeOQ0AhsMBQkDwmcAAAoJEI0DkkMv
S3IL5F0BALFDA+kagbe2Yv/j89CbOv7ndIeO9240xIqXtwGrvNleAQCFwevKTflt
VVyBqichaJSthhM4mWQ+C+jfxiASQhzrBLgzBGh45J4WCSsGAQQB2kcPAQEHQCBO
XAZliF6N1ADSi8j1uSjeKnkGz+UwMviHGxPXCU6oiPUEGBYKACYWIQStnwX/PxMg
xoV8Nj6NA5JDL0tyCwUCaHjkngIbAgUJA8JnAACBCRCNA5JDL0tyC3YgBBkWCgAd
FiEEq8Cjj9fpkUodlcNmx+7nzyEL2xkFAmh45J4ACgkQx+7nzyEL2xky0gD/U98H
sjJMuJBonblya57XDN63hgApdxxQqIBLmZEiq5MBALcOro6te11Tzb2NMpzBZGpZ
TZ7UqmvshUsCeATAx+kIhBIA/j7Q3qLNT0Ss0FP0f+/lmCZXT3uxWjZFZ5tggTVL
1ljxAQDCKr8eKtFw/9HCU/6FCxk2V3yyS7RoNiI16x7IDbN1CA==
=hwc0
-----END PGP PUBLIC KEY BLOCK-----

ただ、これをやったタイミングがMy Browser Profile Chooserを更新したあとなので、今のところこれが確認できるのはOrbitalQueueだけである。

グローバルでやると支障があるので、_GitHub以下に対してこんな感じでやった。

for i in *(/)
do
  (
    cd $i
    git config user.signingkey $KEY_ID
    git config commit.gpgsign true
  )
done

GnuPGに関する詳しい話は、私がその話をできるほど詳しくないので略。