Ubuntu版の機能更新は?
今は、Ubuntu向けソフトのWayland対応をしようとしていて、TiDesktopRecorderの更新作業は終わりつつある。今回の開発を通して、作者製Ubuntu向けソフト全般をWaylandセッションで動作させる目処は付いたのだが・・・
今回の開発を通して作者が取得したノウハウは、Waylandセッションでの画面キャプチャー、キーボード・マウスエミュレーション、キーボード・マウスイベント監視だ。
これらは、主に、Mirror-DTC ServerをWaylandセッションで動作させる為に必要になるノウハウなのだが、現在更新中の画面録画ツールである所のTiDesktopRecorder、更に、キーボード監視とスクリーンキーボード機能を併せ持つTiKeyboardViewerにも必要になる。
逆に言うと、今回得られたノウハウを使えば、Mirror-DTC Server / Transporter、TiDesktopRecorder / TiKeyboardViewerを、UbuntuのWaylandセッションで動作可能にできる事になる。
AGMPlayer / AG-ムービーカッター / Mirror-DTC Client / TiWebCamRecorder / Nostalgic UFO Battlerについては、既に、XWaylandに対応させる事で、現行版でも、Waylandセッションで正常動作する様になっている。
と、言う事を鑑みれば、作者製のUbuntu向けソフトで、現時点で、Waylandセッションでの動作を実現でる見込みが立っていないのは、TiClickEffectorのみ! な筈だ。
このTiClickEffectorというのは、Windows環境ではよく使われている、マウスクリックがあった位置の周辺に、同心円のエフェクトを表示したりするツールになるのだが、Waylandセッションでは、アプリが自分のウインドウ位置を自分で制御する事が禁止されている。
更に言えば、マウスポインタの位置を参照する事も禁止されているので、普通に鑑みれば、Waylandセッションでは、少なくとも、システム開発者並みの特権が与えられないサードパーティーからは、こんな機能を実現するソフトを提供する事は出来なくなっている。
なので、普通に鑑みれば、TiClickEffectorをWaylandセッションで動作させる事は出来ない筈なのだが、何度か書いてきた様に、Waylandのセキュリティというのは絵に描いた餅で、抜け道は色々と存在している。
具体的には、TiClickEffectorの場合、XWayland上で動作しているソフトのウインドウ上にマウスカーソルがある場合には、その上にあるマウスポインタ位置を検出できるし、そのウインドウ上でなら、エフェクトを表示する事も出来ている。
つまり、XWaylandを使って、画面全体に常に手前に表示される透明なウインドウを表示してしまえば、マウスポインタ位置は常時検出できるし、エフェクトも常時表示できる様になる訳だ。
もっとも、まだ、そんな変更は行なっていないので、実際にやれるかどうかの確認は取れていないのだが、TiDesktopRecorderには、デスクトップ上の領域をマウス指定して、領域指定録画が行える機能がある。
で、その機能については、既に、動作する事を確認できている訳だ。
この機能は、デスクトップ画面全体に自前の透明ウインドウを表示し、そこを通過するマウスイベントを取得する事で、当該機能を実現しているのだが、領域指定後には、領域表示のみを行なっている。
そして、その領域表示は、イベントを透過しているので、そこをマウスクリックしても、その下にあるオブジェクトに対して、マウスイベントが発生する格好になっている。
つまり、見た目は違うものの、機能的には、TiClickEffectorのエフェクトと同様な感じになっているので、TiDesktopRecorderの領域選択機能が普通に動作している事を鑑みれば、前述の様に、TiClickEffectorについても、画面全体に透明なウインドウを表示しておく形式に変更すれば、Waylandセッションでも、X.org環境と同様の機能を実現できそうではある訳だ。
と、言う事で、作者的には、今回の更新で、Ubuntu向けソフトのWayland対応については、その実現性を確保できた感じなのだが、何度も書いてきている様に、最大の問題は、Ubuntuユーザーが少ない事だ。
なので、作者的には、やれば出来る事が判ったのでやらない! という感じになる可能性も出てくる訳だ。
更に言えば、もし、そういう事をやったとしても、現行版と比べて、より便利になる訳ではない。
つまり、何故、そんな事をやる必要がある? という話になってくる訳だ。
まあ、将来的には、X.orgセッションが廃止される! という事になっているので、それまでには、Waylandセッションで動作する様にしておかないと、折角10年くらいかけて開発してきたUbuntu向けソフトは全て動作しなくなる。
と、言う事で、今回、Waylandセッションに対応可能か否かを確認する作業をしてきた訳なのだが、その結論としては、今現在のXWayland機能が削除されないのなら、対応は可能な感じだ。
もっとも、XWaylandを使用する事で、Waylandセッションでは実現不可能な筈の機能を実現できる事になる訳なので、近い将来、セキュリティを鑑みて、XWaylandも廃止! みたいな事を言い出すシステム開発者も出てくるかもしれない。
そうなれば、数日前の表題にしたように、Linuxが一番不自由なOSになる事になるのだが、もしそうなったら、より自由にサードパーティー製ソフトを動作させる事が出来る別エディションを開発して提供すれば済む話ではあるかもしれない今日この頃だ。
ちなみに、今日の表題はどういう事なのか、というと、ずっと書いてきている様に、今回の更新作業を終えられたとしても、機能的な更新にはならないので、実際の所、作者的には、嬉しくはない訳だ。
なので、Ubuntu向けにも、少なくとも、Windows / macOS向けソフトで実現しているWebブラウザをクライアントにできるAGMServer機能だとか、Webブラウザをクライアントにするリモートデスクトップ機能なんかは、作りたい。
更に言えば、Windows / macOSでは、タスクバー/メニューバーにアイコンを登録して常駐アプリ化するソフトを提供してきているのだが、Ubuntu向けには、まだ、そういうメニューバー常駐タイプのアプリはない。
しかし、今回の開発を通して、実は、メニューバーへのアイコン登録の方法についても調査は完了していて、テストルーチンも動作しているので、作る気になれば、作れる状況にまでは来ている。
と、言う事なので、一昨日みたいな表題を書いてみたりもしている今日この頃になる訳だ。

