構成ファイルの「Xterm」または「xterm」

構成ファイルの「Xterm」または「xterm」

Archを使い始めた後、xtermとurxvt端末に切り替えて柔軟性(特にscaleHeightリソース)を楽しんだ。ただし、構成が時折、Xtermまたは(小文字と大文字の合計)で機能する理由はわかりません。xtermXTermxt

たとえば、Ubuntuで奇妙な設定が実行されています。

XTerm*faceName: terminus
XTerm*faceSize: 11
XTerm*saveLines: 16384
XTerm*loginShell: true
XTerm*charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48
XTerm*termName: xterm-color
XTerm*eightBitInput: false
xterm*VT100.geometry: 100x80    ! <------ this line would not work with "Xterm" or "XTerm"
XTerm*scaleHeight: 1.3          ! <----- but all others work with "XTerm"

しかし、私のArchボックスは「xterm」としてうまく動作します。 URxvt端末でも同様です。単にArchを移植することはできません。

xrdb -merge .Xresources

X.orgにxtermの例はありません(「xterm *」を検索すると、そのページには何も返されません)。私はオンラインでXterm、そして...のxterm例を見たことがありますXTerm。私を混乱させるのは、上記の構成が構文的に閉じているために機能できることです。なぜですか?これはXの新しいリソースや既存のリソースに関連する可能性がありますか?ありがとうございます!

UbuntuのxtermはXterm(297)です。現在私のArchボックスにアクセスすることはできませんが、最新のままになります。 XtermのバージョンをArchリポジトリと区別する方法がわかりませんが、おそらく次のようになります。https://www.archlinux.org/packages/extra/i686/xterm/ したがって、そのリンクが正しい場合、はい、私は別のXtermバージョンを実行しています。

xtermをアップグレードしようとしましたが、まだ297です。

apt-get update && apt-get install --only-upgrade xterm

今はこれを行うことはできませんが、問題が解決しないことを確認するために、最新バージョンを再コンパイルしてみてください。

以下のILMostro_7の提案に従ってください。しかしXTerm.vt100.geometryまだ機能しません。 Ubuntu14のXterm(297)です。したがって、基本的に.または*非常に少数の場合にのみ機能するようですxt


appres XTerm xterm | grep geometry結果についてGilesに感謝します。xrdb -mergeこの混乱の原因が何であるかを調べることは私には起こりませんでした。それでは、私の考えでは、そのうちの1つが他のものよりも優先されます。

xterm.VT100.geometry:   100x100
xterm*VT100.geometry:   100x80
xterm*VT100*geometry:   50x50
xterm.vt100.geometry:   160x40
xterm*vt100.geometry:   100x20
xterm.geometry: 5x5
xterm*geometry: 100x20
XTerm.VT100.geometry:   100x100
XTerm*VT100.geometry:   50x50
XTerm*VT100*geometry:   20x10
XTerm.vt100.geometry:   100x5
XTerm*vt100.geometry:   40x40
XTerm*geometry: 50x50

実際xterm.vt100.geometry: 160x40、インスタンスが引き続き表示されるので、他のインスタンスよりも優先順位が高いようです。また、Xtermメニュー(Ctrl +マウスクリック)を完全に台無しにしました。小さな黄色い線で表示されます。ヘヘ

答え1

X11リソースドットで区切られた一連のコンポーネントで構成される名前を持ちますxterm.vt100.geometry。最初のコンポーネントはアプリケーションの名前、2番目のコンポーネントはそのアプリケーション内のウィジェット、最後のコンポーネントはウィジェットのプロパティです。ウィジェットは入れ子にすることができるため、3つ以上のコンポーネントがある場合があり、アプリケーション属性の場合は2つしかありません。

X リソースの仕様は、単一のリソースまたはパターンに一致するリソースグループに適用できます。複数のリソースに仕様を適用する方法は2つあります。

  • すべてのコンポーネントに対してインスタンス名の代わりにクラス名を使用できます。通常、インスタンス名は小文字で始まり、クラス名は大文字で始まります。

    • アプリケーションレベルでは、特定のアプリケーションのクラス名は一般的に固定されており、通常、アプリケーション名は大文字であり、時には他の文字も大文字です(たとえば、、、、、XTerm...を使用)。XCalcGVNetHackXツールキット-class-nameクラス名とインスタンス名を設定するオプションをサポートします(デフォルトは実行可能ファイルのデフォルト名)。たとえば、このクラスのインスタンスのウィジェットのプロパティ値設定はXTerm.vt100.geometry適用されますが、適用されません。geometryvt100XTermxterm -name fooxterm -class Foo
    • ウィジェットレベルでは、同じウィンドウに複数のボタンがあるかのように、同じクラスを持つ複数のウィジェットがある可能性があります。 Xtermには、ウィンドウ全体をカバーする端末エミュレータの一部であるVT100ウィジェットというクラスがあります。vt100他のウィジェットにはメニューとmainMenuクラスが含まれます。fontMenuvtMenuSimpleMenu
  • ワイルドカードがあります。?「すべてのウィジェット」を意味し、*「すべてのウィジェットシーケンス」を意味します。たとえば、xterm*backgroundXterm ウィンドウ内のすべての背景を定義します。

次のコマンドを使用して、editresプロトコルをサポートするアプリケーションのリソースツリーを参照できます。editres。このプロトコルをサポートするアプリケーションはほとんどありませんが、Xtermはそのうちの1つです。

特定のリソースは複数のパターンと一致することがあります。この場合、優先順位ルールが適用されます。より手動全体のルールを学びます。

あなたの場合、notに近いどこかに他の項目がある可能性が高く、対応する一致がxterm.vt100.geometry設定xterm*VT100.geometryを上書きします。誰も他の設定を持っていないので、何をしても勝つことができます。

答え2

一部のレビューなどは正確ではありません。ところで、Xリソースの説明は次のとおりです。X(7) マニュアルページ、タイトルにリソース。これは最高あなたが読み始めた部分をここで繰り返すことはあまり意味がありません。

以下は見落とされたいくつかのことです。

  • リソース名は次のとおりです。大文字と小文字の区別A :XTerm違うXtermなどxterm
  • 慣例によるとX リソース名は前に大文字を使用します。クラス名前。
  • クラス名の最初の文字が次Xのような場合習慣2 番目の文字を大文字にします。だから私たちは得ますXTermXCalcXClockXConsoleXLoadXLogo
  • 一方、(Xedit小文字eXfd、、、、、があります。したがって、このコンベンションはXmagXmanXmessageXvidtuneルール
  • Xツールキットアプリケーション(例xterm:)の使用XtOpenApplicationまたはXtAppInitializeアプリケーションリソースを初期化します。これらの呼び出しでははいそしてクラス名前。
  • 通常、インスタンス名はプログラムの実際の名前(ファイル名)です。プログラムの名前を変更すると(たとえば、時には発生するxterm.real)、名前も変更されます。このプログラムはそうではありません持つしてください。しかし、よくしてください。 xtermできる。
  • 通常クラス名前は定数です。または(3つの大文字)xterm2つのカテゴリのうちの1つが必要なため、含まれません。後者はスクリプトに使用され、フォントの指定方法を簡素化します。これXTermUXTermuxterm日付は2000年から始まります。、X歴史の真ん中になりました。 2000年初頭/半ばのXソースツリーで30個のプログラムをすばやく調べてみると、XtAppInitializeクラス名変数を使用する他のプログラムは表示されません。
  • この-classオプションはxtermによって異なります。実際にオプションdbedizzyを受け入れます-class視覚的クラス。それは違います。 X Toolkitにはそのようなオプションはありません。 Xツールキットの一般的なオプションは、X(7)のマニュアルページにリストされています。オプション。 xtermのマニュアルでこれについて詳しく説明しています。Xツールキットオプション
  • editresマニュアルページに示すように、Xツールキットを使用するすべてのプログラムに適用されます。上記の2つの初期化呼び出しのうちの1つまたは別のものを使用するXソースツリーには36個のプログラムがあるため、ここに適用されるプログラムは「いくつかのプログラム」ではありません。
  • 一方、xtermそれは次のいずれかです。珍しいこれはeditresあまり役に立ちません。リソース設定が多すぎます。

xterm他のアプリケーション用にインストールされたアプリケーション基本ファイル慣例によるとアスタリスク()で始まるリソース設定を指定します*。これはそれらを独立させる。はい名前。アスタリスクは、xterm FAQ のように、混乱の原因となるウィジェット階層のすべてのレベルとよく一致します。メニューがなぜこんなに少ないのですか?、ウィジェットで使用されているジオメトリリソースがメニューにVT100(誤って)適用される可能性があります。リソースに過度に寛大なマッチングを適用しても、同様の問題がありますfont。両方の問題に対する解決策は、VT100ウィジェット参照(特定)、ドット(.)などを使用してより具体的な一致を使用することです。

app-defaults ファイルは不要な使用を防ぐため、'.'独自の構成でそれを上書きするのは比較的簡単です。リソースへのアクセスに問題がある場合

xterm*VT100.geometry: 100.80

申請するには、見える場所がいくつかあります。

  • 使用したことがある場合それモードを使用する前にリセットすると(後でリソースファイルで)、使用された値には影響しません。
  • xterm.VT100.geometryワイルドカードの使用やあまり具体的な設定の上書きなどのより具体的な設定です。*?

関連情報