2年生がデスクトップ環境を作成した方法について

画像 それはすべて人間のタブレットが登場し始めた2年目に始まり、Androidはまだ2番目のブランチにありました。 そのとき、私はLinuxシステムの柔軟性とカスタマイズ性の大ファンでした。そのため、複数のアプリケーションを同時に実行でき、同時に小さなタッチスクリーンに適応できる独自のデスクトップ環境を作成するというアイデアがあったことは驚くことではありません。 このアイデアは、クラスメートの1人(Cyril)によって共有されました。Cyrilは、その時点ですでにOpenGLでの開発の経験がありました。



計画はソフトウェア開発で最もエキサイティングな部分であり、このような大規模なタスクでは、1か月間快適に計画を進めました。 名前の選択がかなりの時間を要したことを認識する価値はありますが。 最初に2.5Dエンジンを記述し、次にそれを本格的な複合ウィンドウマネージャーに改良することが決定されました。 ツールキットをドラッグすることは、パネルとメニューがレンダリングに同じエンジンを使用することが理解されていたため、過剰に思えました(私が理解しているように、Unityで行ったように)。 ファイルマネージャーとプレーヤーを循環させるのは不合理であり、ツールキットから独立しているので、誰もが自分に近いものを使用できるようにします。 タッチスクリーンに適応するプログラムは実質的になかったため、リリース後に、適切なリポジトリを維持するために、いくつかの一般的なプロジェクトのGUIの適応作業を開始する予定でした。



開発



インターフェースのノートブックのスケッチを復活させる時が来ました。そして、Webテクノロジーの豊富な知識をまったく率直に集めてヒープに集めたので少しインタラクティブなプロトタイプを作成しました (トラフィック!)。



画像








最も重要なことは、コントロールが親指の下にあるため(タブレットを両手で持っている場合)、画面の中央に登る必要性を最小限に抑えることであると思われました。 左側のパネルでは、上から下へ:全画面モードへの移行の角度、クイック起動パネル、実行中のアプリケーションのパネル。 右トレイ、デスクトップを切り替えるための矢印、いくつかのユーティリティ機能。 ウィンドウ間のフォーカスはタッチで移動するはずでした。 ウィンドウの装飾の代わりに、右上のパネルにあるコントロール球を使用することが計画されていました。クリックすると、アクティブウィンドウの中央に移動し、その隣に「閉じる」、「最小化」などが表示されます。 もちろん、今ではそのようなことを長押しで行うのが慣習であり、私たちの解決策は少し奇妙に見えます。 解像度は私のラップトップのようなものであることが判明し、フルスクリーンモードでは本当に気に入った。 そうだとすれば、デスクトップバージョンが計画に追加され、巨人主義から免れ、マウスのサポートを受けました。 もっともっと。 理想的なDEの夢に追加するものは他にありますか?)高度なタイル機能を備えた赤い目をしたウィンドウマネージャー(WM)が必要でした。 ホットキー/アクティブコーナーによる切り替えの2つのモードが想定されました。





極端な顔を動かす-セルを追加し、中央を動かす-セルのサイズを変更します。 フローティングウィンドウをセルにドラッグしたり、その逆を行ったりすることができます。複数のウィンドウを同じセルに配置できる場合、タイトルはタブに表示されます。 もちろん、少し厄介に聞こえますが、例がより明確になることを願っています:



画像






他に何かを追加するのに十分な想像力はありましたか? :)もちろん、それを疑う人は誰でも十分でした。 私はいつも、タスクのために環境を変えることを夢見てきました。これが部屋のコンセプトの現れ方です。 このような概念により、各タイプのアクティビティは、デザインテーマから始まり、特定のウィンドウをデスクトップ上の特定のセルにバインドすることで終わる文字通りすべてを構成することができました。 このように、ワンクリックで仕事の雰囲気、またはゲームの最小限の環境を作成することが可能になりました。 Fooh ...一方、学期はすでに本格的に始まっており、展開されていた作業は非常にゆっくりと適切に開始されました。 その結果、夏までに、エンジンのいくつかのデモ、アプリケーションメニューのプロトタイプ、初期化システムが既にありました。デスクトップ環境の概念の山、これが一般的にどのように機能するかのおおよその理解を見ました。 夏の間、エンジンはほぼ完成し、ini無料の構成ファイルを使用するためのライブラリが作成されました(無料のデスクトップ標準に準拠)。





私たちの歴史の中で最も劇的な瞬間が来ました:ついに私たちはWMを書き始めました! Cyrilは合成の分野で仕事を始めました。そして、私はNETWM仕様の魅力的な世界に真っ向から飛び込みまし。NETWM仕様は、自尊心のあるウィンドウマネージャーができる必要のあるすべてを記述しています。 ヒントを操作するためのバインディングを作成し、小さなタスクバーとWMのソースをダウンロードして準備し、自分用のバックエンドを開始しました。 経験、ドキュメント、および例はほとんどありませんでしたが、落とし穴も多くありました。 仕事がゆっくりと進み、徐々に停滞し、再び勉強に道を譲ることは驚くことではありません。 そして、ウェイランドもまた地平線上に大きく現れ、XOrgの早期抑制とそれに対抗するための努力の減価を約束しました。 誘惑はそのすぐ下に忍び込み始め、最初の純粋なWayland環境になりました...開発者の100%が春に仕事に招待されず、OS Xが働かない場合、この物語がどのように終わるのか誰が知っていますか? もちろん、ウィンドウマネージャーは非常に平凡ですが、他のすべては価値があります。

山を動かそうとして、規模を認識しましたか? たぶんそうではないが、私たちは楽観主義に満ちていて、ライナスや他の人格の例に触発された。 もちろん、今日、そのようなプロジェクトを始めて、私たちは間違いなくQtで停止します。これは少なくとも1年の開発を節約し、プロトタイプの作業から始まります。 しかし、一方で、費やした時間について後悔はしていません。なぜなら、広大なものを把握しようとせずに、他にどのように多くの経験とインスピレーションを得ることができるのでしょうか?



All Articles