X11転送を使用するときにカーソルが大きすぎるのはなぜですか?

X11転送を使用するときにカーソルが大きすぎるのはなぜですか?

私はCygwinを使ってWindowsコンピュータで作業しています。ローカルでは、カーソルは期待されるサイズでうまくレンダリングされます。

ここに画像の説明を入力してください。

ただし、リモートコンピュータに接続するとカーソルが大きくなります。

ここに画像の説明を入力してください。

この例では xterm を実行します。ここのカーソルの変更はXでレンダリングされます。これは一般的なWindowsカーソルではありません。 CentOS 7とFedora 33でテストするときも同じ問題が発生しました。

カーソルが大きすぎる理由と回避策は何ですか?

ベストアンサー1

リモートシステムとローカルシステムの画面解像度が異なるため、カーソルが大きい。

あなたはそれを知ることができますIビームカーソル(実際にはxterm)2つのスクリーンショットは異なります。これは、イメージがローカルコンピュータからロードされるためです。カーソルテーマX サーバーにプロパティが既知の文字の外観を表示するのではなく (X の元のデザインに従って) ビットマップとして使用されます。

ほとんどのアプリケーションは、カーソルテーマを実装するXcursorライブラリに直接リンクされていません。これX11ライブラリカーソルテーマは、「フォントカーソル」または「文字状カーソル」を生成する呼び出しを変更することによってサポートされています。これはアプリケーションに直接表示されません。

xtermの起動時にXcursorライブラリが見つかった環境で構築されている場合は、カーソルテーマが使用されている可能性があることを「認識」して環境XCURSOR_PATH変数をオーバーライドします。 xtermパッチ#367はこの領域でより多くの設定を可能にします(他のカーソルテーマを選択する機能を含む)、根本的な問題は完全に解決されていないカーソルテーマのデザイン制限です。

回避策として、次のように小さい文字の外観を選択できます。XCURSOR_SIZE環境変数(リモートプロセスでスタートxterm):

XCURSOR_SIZE
この変数は、目的のカーソルサイズをピクセル単位で設定します。
環境変数が与えられない場合、カーソル 努力するXcursor.sizeリソース。
環境変数またはリソース設定でサイズが指定されていない場合 カーソル 次に、Xft.dpiリソース設定を使用して16ポイントカーソルサイズを推測します。最後にXft.dpi未設定、カーソルディスプレイの高さを48で割った値を使用します(高さが768と仮定)。

おすすめ記事