VPN(リバースフォワーディング)をアイコン操作にしてみる

先日の多段SSHによる外出時のログインだが、外出時にリバースフォワーディングをオンにし、帰ってきたらオフにするのはちょっと面倒だし、忘れそうだ。 そこで私は「システムトレイにアイコン出してもらって、クリックしたら閉じてくれるようにしたらいいじゃない」と考えた。

まず、「Linuxでシステムトレイにアイコン」と考えたらまずYadを考えて良い。 ZenityやKDialogはシステムトレイをサポートしていない。

yad --notification --image=<icon> --title=<title on hover>

の形式でシステムトレイにアイコンを表示できる。 --commandオプションをつかってクリック時の動作を指定することもできるし、--menuオプションで右クリックに対応させることもできる。 --commandオプションを指定した場合は終了するかわりにそのコマンドを実行する。

今回の場合クリックしたら終了を含む動作をさせたいので、特にコマンドは指定しない。 そこでyadプロセスが終了したらクリックした後の動作をさせていけばよいわけだ。

必ずしもこの操作をこのプログラムから行う、という制約はないこと、 そして「トンネルを解除しない」という選択がありえることから、ループとし、当該ユニットが動作中であればアイコンを表示する方式にした。

ひとつめのyadはシステムトレイにアイコンを表示し、クリックされるのを待つものだ。 これでクリックされるまではスクリプトはここでブロックされる。

ふたつ目のyadだが、yadの場合zenityと違い、タイプを指定しないで起動するとシンプルなダイアログになる。 アイコンとボタンのタイプはそれぞれ指定できる仕組みだ。 このため、ZenityやKDialogにあるいくつかの動作オプションがまとめられている。 ここではYes/Noダイアログを表示している。

なお、ボタンはボタンのあとに終了コードを書くようになっており、gtk-cancelも利用可能。それ以外は単にラベルとして使用される。

さらにランチャーで使用するため、.desktopファイルも作っておいた。 右クリックでの開始/停止もサポートしている。

これでわかりやすく、操作しやすくなった。

もちろん、SSHフォワーディングを行うスクリプトに含めるというのも手だが、そうすると他の手段が失われてしまう。 Systemdユニットにした上で追加機能は別のスクリプトにするというのは良いアイディアだと思う。

プレゼントが無駄になったので弟子を募集するよ

プレゼントとして用意していた「ピンクセット」が音信不通により無駄になってしまった、という理由で弟子を募集するよ。

条件は以下

  • 女性であること
  • ピンクが好きであること (ピンクというか、ローズゴールド)
  • 真剣に(労力・熱意・時間を割いて)コンピュータに精通する強い意思があること (現状の能力は不問)
  • エンジニアまたはハッカーの志望者、あるいは新人であること

特典

  • 今回の主題である無駄になったピンクセットのプレゼント
  • 私から教わり放題
  • 場合によってはP720のリソースも利用可能
  • 自分のコンピュータを持っていない人には一時利用向けにコンピュータを貸与

基本的にはコンピュータに精通し、私を超越することを目標とする人に余ってしまったピンクセットをプレゼント、という内容。 条件はおおよそ、音信不通になった人物を踏襲したもの。

正規の弟子募集要項と比べてずいぶんと簡単な動機だけれど、 志望者がいればもちろんきっちりと対応するよ。