問題タブ [icccm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
x11 - 紛らわしい_NET_SUPPORTING_WM_CHECK
ウィンドウマネージャを ICCCM 仕様に準拠させようとしています。_NET_SUPPORTING_WM_CHECK アトムの理由を完全に理解しています。これにより、ウィンドウ マネージャーが実行されなくなったときに無効な情報が残らないことが保証されます。
私が理解していないのは、_NET_WM_NAME と _NET_SUPPORTING_WM_CHECK 自体以外に、サポート ウィンドウで _NET_NUMBER_OF_DESKTOPS のような他のアトムが期待されない理由です。
ウィンドウ マネージャーはデータを設定して上書きすることになっていますが、新しいウィンドウ マネージャーが準拠していない場合、これは誤解を招く可能性があります。
c++ - xlibを使用してトップレベルのX11ウィンドウを識別する方法は?
X11 セッションですべてのトップ レベルのデスクトップ ウィンドウのリストを取得しようとしています。基本的に、ウィンドウ マネージャーのアプリケーション切り替え UI (通常、ユーザーが ALT + TAB を押すと開く) に表示されるすべてのウィンドウのリストを取得したいと考えています。
これまで X11 プログラミングを行ったことはありませんが、これまでのところ、次のようなコードを使用して、ウィンドウ リスト全体を列挙することができました。
enumerateWindows()
最初にルート ウィンドウで呼び出されます。
これは、何百ものウィンドウに関する情報を出力する限り、機能します。私が必要としているのは、特定Window
のウィンドウがトップレベルのデスクトップ アプリケーション ウィンドウであるかどうかを判断するために、どのプロパティを調べることができるかを調べることです (公式の用語が何であるかはわかりません)。 )、 か否か。
誰でもこれに光を当てることができますか?私が見つけた X11 プログラミングのリファレンス ドキュメントはすべて、ひどく無味乾燥で理解しにくいものでした。おそらく、誰かがより良いリソースを指し示すことができますか?
x11 - X11、ディスプレイ上の最後のウィンドウ/アプリケーションであることを検出する方法
私は、windowmanager (悲しいことに、特定のものではありません。twm、dtwm、mwm、metacity など)、myApp、およびその他のウィンドウ付きアプリケーションを備えた x11 ディスプレイを持っています。他のアプリケーションが閉じられていて、myApp がディスプレイ上にウィンドウを持つ唯一のアプリケーションである場合は、ディスプレイを閉じたいと思います。myApp のウィンドウは知っていますが、ウィンドウマネージャーのウィンドウと他のアプリケーションのウィンドウをどのように区別すればよいでしょうか。
現在、 xwininfo -tree -root -children でポーリングし、これを期待しているものと比較していますが、これは「明確に定義された」環境でのみ機能します。
上記のウィンドウマネージャの多くは EWMH をサポートしていないようです。
utf-8 - X11XM_NAMEタイプはSTRING_UTF8ではなく'UTF-8'です
エンコーディングスタイルでプロパティXmbTextListToTextProperty
を設定するために使用するいくつかのX11コードを見ています。WM_NAME
XTextStyle
http://tronche.com/gui/x/xlib/ICC/client-to-window-manager/XmbTextListToTextProperty.htmlXTextStyle
は、プロパティのタイプ/エンコーディングが現在のロケールに依存することを意味します。
http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.1の解釈方法がわかりません。これにより、タイプをWM_NAME
現在のロケールに依存させることができるようです。
私の現在のロケールは「en_US.UTF-8」です。私がこれまで見てきたことはすべて、のタイプWM_NAME
はタイプSTRING
、COMPOUND_STRING
またはである必要があることを示唆していUTF8_STRING
ます。
ただし、xprop
レポートUTF-8
、およびxwininfo
レポート'サポートされていないエンコーディングUTF-8の名前'。コードをチェックすると、確かにサポートされていますが、サポートされてUTF8_STRING
いませんUTF-8
。
私はこれがどこUTF-8
から来ているのか途方に暮れています。何か案は?
linux - ウィンドウがフローティングかタイルかを知る標準的な方法はありますか?
フローティング ウィンドウまたは最小化されたウィンドウのみを表示するようにタスク バーを変更しています。ICCCMとEWMHの標準があることは知っています。それらを使用して、ウィンドウがフローティングかタイルかを確認できますか? または、他に使用できるものはありますか?
別のウィンドウマネージャーに切り替えようとしているので、ウィンドウマネージャー専用にはしたくありません。
linux - クリップボードは xlib によって実装されるか、個々のアプリケーションによって実装されます
ICCCM では、1) プライマリ 2) セカンダリ 3) クリップボードの 3 つの選択肢が定義されています。しかし、xlib では、xatom.h は XA_PRIMARY と XA_SECONDARY しか定義していませんでしたが、クリップボードにはそのようなアトムはありません。だから私の疑問は、クリップボードが xlib によって実装されているのか、それともプライマリやセカンダリなどの個々のアプリケーションによって実装されている必要があるのかということです?
個々のアプリケーションで実装する必要がある場合、あるアプリケーションのウィンドウからコピーして別のアプリケーションのウィンドウに貼り付けるなど、さまざまなアプリケーションがクリップボードとどのようにやり取りするのでしょうか..? 異なるアプリケーションが共通のバッファを共有する方法は? Linuxでのクリップボードの実際の実装を手伝ってくれる人はいますか..? 私はこのリンクを通過しました。しかし、実装に関する多くの情報は見つかりません。