Xterm
xterm は X Window System の標準のターミナルエミュレータです。様々なカスタマイズができ、多数の役に立つ機能と、少数のあまり役に立たない機能を備えています。
基本設定
リソースファイルの設定
ターミナルエミュレータとして使いやすさを向上させるオプションを X resources ファイルで設定することができます。オプションのリストは man xterm
を見て下さい。
TERM 環境変数
xterm が TERM
変数を適切に設定できるようにしてください。~/.bashrc
や ~/.bash_profile
などのファイルから TERM 変数を設定してはいけません。ターミナルが自ら適切な TERM
を設定することで、適切な terminfo ファイルが使われるようになります。利用できる terminfo ファイルは xterm と xterm-256color です。
TERM を明示的に設定しなかった場合、xterm は $TERM
を xterm
と設定します。以下のコマンドを xterm の中から実行することで確認できます:
$ echo $TERM $ tset -q
TERM が明示的に設定されていない場合、vim など、プログラムによっては何かキーが押されるまでカラースキームが正しく表示されないことがあります。この問題は以下のようにリソースを設定することで直せます:
xterm*termName: xterm-256color
UTF-8
UTF-8 の適切なロケール設定がされていることを確認してください。以下の行をリソースファイルに追加することで xterm は全てのデータを UTF-8 でエンコードされていると解釈します:
XTerm*locale: true
'Alt' キーの修正
キーボードショートカットに Alt
キーを使う場合、リソースファイルに以下の設定をしてください:
XTerm*metaSendsEscape: true
スクロール
xterm ウィンドウの一番下に新しい行が書き込まれると、一番上の古い行は消えます。マウスホイールや Shift+PageUp
または Shift+PageDown
のキーコンビネーション、あるいはスクロールバーを使うことで画面から消えた行をスクロールして見ることができます。
デフォルトでは、1024行が保存されます。保存する行数は saveLines
リソースで変更できます:
Xterm*saveLines: 4096
スクロールの設定を変更する他の X リソースとしては jumpScroll
(デフォルトでは true
) や、multiScroll
と fastScroll
があります (どちらもデフォルトでは false
)。別のスクリーンの中をスクロールするには、alternateScroll
を true
に設定してください。
スクロールバー
スクロールバーはデフォルトでは表示されません。メニューセレクションやコマンドラインオプションを使ったり、あるいはリソースを設定することで表示させることができます。ウィンドウの左右に表示させることができ、リソース設定を弄ることで見た目も変えることができます。
スクロールバーの使い方は普段使用するようなスクロールバーとは異なっています。
- 下にスクロール:
- – スクロールバーを左マウスボタンでクリック。
- – スクロールバーのつまみ (サム) の下部を中マウスボタンでクリック。
- 上にスクロール:
- – スクロールバーを右マウスボタンでクリック。
- – スクロールバーのつまみ (サム) の上部を中マウスボタンでクリック。
- 上下どちらかに移動:
- – 中マウスボタンでつまみをクリックして"クリックアンドドラッグ"。
メニュー
Arch Linux の xterm ではツールバーやメニューバーは無効にしてコンパイルされています。メニューは xterm ウィンドウの中で Ctrl+MouseButton
を押すことでポップアップして表示されます。メニューアイテムで設定できることは、大抵コマンドラインオプションやリソースの設定でも可能です。
メニューオプションは以下で説明します。
メインのオプションメニュー
Ctrl + 左マウス
Secure Keyboard
を設定すると xterm ウィンドウだけがキーストロークを受け取れるようになり、他のアプリケーションがキーストロークを傍受することはできなくなります。実行すると画面の色が反転します。色が反転しない場合、Secure Keyboard モードが有効になっていません。このオプションの制限については xterm の man ページの "SECURITY" セクションを読んで下さい。
Allow SendEvents
は他のプロセスが xterm ウィンドウに打鍵やマウスのイベントを送信できるようにします。セキュリティ上のリスクがあるため、何の効果があるのかよくわからないときは有効にしないでください。
Log to File
– ログファイルの名前はXterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX
になります。このファイルには印字された出力とマウスの移動が全て記録されます。ログ出力はセキュリティリスクになることもあります。
- 6つの
Send *** Signal
メニューアイテムはキーボードが動作しなくなったような場合を除いて、基本的に使うことはありません。HUP
,TERM
,KILL
は xterm ウィンドウを終了します。KILL
はできるだけ使わないでください。
Quit
メニューアイテムは xterm ウィンドウを終了します。HUP
シグナルを送信するのと同じです。キーボードでCtrl+d
を押すか、またはexit
を入力することでも xterm は終了できます。
VT オプションメニュー
Ctrl + 中マウス
Select to Clipboard
– 通常、選択されたテキストは PRIMARY に保存され、中マウスボタンを使うかShift+Insert
で貼り付けることができます。このオプションをオンにすると、選択されたテキストは CLIPBOARD を使うようになり、xterm ウィンドウで選択したテキストをCtrl+v
で GUI アプリケーションに貼り付けることができます。対応する XTerm リソースはselectToClipboard
です。
Show Alternate Screen
– vim や less などのターミナルアプリケーションを使うときに、新しい画面が開きます。メインの VT ウィンドウは非表示になりますが、メモリ上に残ります。このメニューオプションを有効にすると、メインウィンドウを見ることができるようになりますが、メインウィンドウでコマンドを実行することはできません。メインウィンドウからテキストを選択・コピーすることは可能です。
Show Tek Window
とSwitch to Tek Mode
– Tektronix 4014 は CAD やプロットアプリケーションで使われていた1970年代のグラフィックスターミナルです。plotutils に含まれているコマンドラインプログラムgraph
やアプリケーション gnuplot が xterm の Tek エミュレーションを使うことができます。ただし、普通の人はデータを図に記すのに近代的なディスプレイオプションを使うでしょう。下の #Tek 4014 デモンストレーション を見て下さい。
VT フォントメニュー
Ctrl + 右マウス
- XLFD フォントを使用する場合、最初の7つのメニューアイテムが xterm ウィンドウで使われるフォントフェイスやフォントサイズを変更します。Xft フォントを使う場合、フォントサイズだけが変わります。フォントフェイスは変わりません。
- XLFD フォントの名前を使うときに、
Selection
で PRIMARY (または CLIPBOARD) セレクションに保存されたフォントの名前に切り替えられます。
Tek オプションメニュー
Tek Window から Ctrl + 中マウス
最初のセクションのオプションは Tek ウィンドウのフォントサイズを変えられます。2番目のセットのオプションは Tek エミュレーションウィンドウとメインウィンドウ、VT ウィンドウのフォーカスを移動したり、Tek ウィンドウを終了・非表示にするのに使います。
コピーアンドペースト
First, highlighting text using the mouse in an xterm (or alternatively another application) will select the text to copy, then clicking the mouse middle-button will paste that highlighted text. Also the key combination Shift+Insert
will paste highlighted text, but only within an xterm.
PRIMARY または CLIPBOARD
デフォルトでは、X で動作する xterm などのアプリケーションは、選択されたテキストを PRIMARY セレクションと呼ばれるバッファにコピーします。PRIMARY セレクションは短命です。他のテキストが選択されるとすぐに新しい PRIMARY セレクションによってテキストは置き換えられます。アプリケーションによっては (Shift+Insert
ではなく) 中マウスで PRIMARY セレクションを貼り付けることができますが、PRIMARY を全く貼り付けることができないアプリケーションも存在します。
テキストをコピーするときは CLIPBOARD セレクションと呼ばれるバッファも使われます。CLIPBOARD のテキストは長命で、ユーザーによって上書きされるまで保存されます。Ctrl+c
, Ctrl+x
, Ctrl+v
を使ってテキストのコピー・切り取り・貼り付けをするアプリケーションはこの CLIPBOARD を使っています。
他のセレクションを選択するとすぐコピーしたテキストが消失してしまう PRIMARY セレクションの儚さが鬱陶しいと感じられるかもしれません。Xterm では #VT オプションメニュー の Select to Clipboard
や selectToClipboard
リソースを使うことで PRIMARY と CLIPBOARD の使用を切り替えることができます。
PRIMARY と CLIPBOARD
上記の設定では PRIMARY または CLIPBOARD どちらかを使うことを選択できますが、両方使いたい場合、.Xresources
に以下のように記述する必要があります:
XTerm*VT100.translations: #override <Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)
テキストの選択
The new user usually discovers that text may be selected using a "click-and-drag" with the left mouse button. Double-clicking will select a word, where a word is defined as consecutive alphabetic characters plus the underscore, or the Basic Regular Expression (BRE) [A-Za-z_]
. Triple-clicking selects a line, with a "tab" character usually copied as multiple "space" characters.
Another way of selecting text, especially useful when copying more than one full screen, is:
- Left-click at the start of the intended selection.
- Scroll to where the end of the selection is visible.
- Right-click at the end of the selection.
You do not have to be precise immediately with the right-click – any highlighted selection may be extended or shortened by using a right-click.
You can clear any selected text by left-clicking once, anywhere within the xterm window.
カラー
Xterm のデフォルトでは白い背景に黒字のテキストが使われます。前景と背景の色は VT オプションメニュー や -rv
コマンドラインオプションを使うことで逆転させることができます。
$ xterm -rv
もしくは、以下の X resources パラメータでも色を反転させられます (設定後にリソースを再読み込みするのを忘れないで下さい):
XTerm*reverseVideo: on
Xterm の前景色 (文字の色) と背景色はコマンドラインから設定することができます。それぞれ -fg
と -bg
オプションを使います。
xterm -fg PapayaWhip -bg "rgb:00/00/80"
前景色と背景色だけでなく、最初の16色のターミナルの色も X resources ファイルで設定できます:
XTerm*foreground: rgb:b2/b2/b2 XTerm*background: rgb:08/08/08 XTerm*color0: rgb:28/28/28 ! ...Lines omitted... XTerm*color15: rgb:e4/e4/e4
カラースキームについては Terminal Colour Scheme Screenshots のフォーラムスレッドに様々な設定例が載っています。
フォント
デフォルトフォント
Xterm のデフォルトフォントは X Logical Font Description エイリアスで fixed
という名前のビットマップフォントです。大抵は以下のフォントになります:
-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-?
This font, also aliased to the name 6x13
, has remakably wide coverage for unicode glyphs. The default "TrueType" font is the 14‑point font matched by the name mono
. The FreeType font that will be used can be found with this command:
$ fc-match mono
フォントはコマンドラインから指定できます。ビットマップフォントの名前を指定するときは -fn
オプションを、Xft フォントを指定するときは -fa
を使います。以下の設定では #VT フォントメニュー の TrueType Fonts
で2つのフォントを切り替えることができます。
$ xterm -fn 7x13 -fa "Liberation Mono:size=10:antialias=false"
永続的に設定したい場合、デフォルトフォントを X resources ファイルで設定します:
xterm*faceName: Liberation Mono:size=10:antialias=false xterm*font: 7x13
太字フォントと下線フォント
Italic fonts are shown as underlined characters when using XLFD names in xterm. TrueType fonts should use an oblique typeface.
If you do not specify a bold font at the command line, -fb
, or through the boldFont
resource, xterm will attempt to find a bold font matching the normal font. If a matching font is not found, the bold font will be created by "overstriking" the normal font.
CJK フォント
中国語や日本語、韓国語で使われる全角文字が含まれているフォントは多くありません。これらの言語を使う場合は urxvt など別のターミナルエミュレータを使うほうが良いでしょう。
xterm における CJK のビットマップの XLFD フォントの使用は落とし穴がたくさんあります。CJK を表示するときは faceNameDoublesize
リソースを利用して TrueType フォントを使うほうがずっと楽です。以下の例では通常フォントとして DejaVu Sans Mono を全角フォントとして WenQuanYi Bitmap Song を使用します:
xterm*faceName: DejaVu Sans Mono:style=Book:antialias=false xterm*faceNameDoublesize: WenQuanYi Bitmap Song xterm*faceSize: 8
ヒントとテクニック
自動透過
transset-dfAUR パッケージと Xcompmgr などのコンポジットマネージャをインストールして、以下の行を ~/.bashrc
に追加します:
[ -n "$XTERM_VERSION" ] && transset-df -a >/dev/null
Now, each time you launch a shell in an xterm and a composite manager is running, the xterm window will be transparent.
The test in front of transset-df
keeps transet from executing if XTERM_VERSION
is not defined. Note that your terminal will not be transparent if you launch a program other than a shell this way. It is probably possible to work around this if you want the functionality.
アプリケーションごとの透過設定も参照。
緊急ベルの有効化
以下の行を ~/.Xresources
ファイルに追加します:
xterm*bellIsUrgent: true
フォントのヒント
太字や斜体の代わりに色を使う
フォントサイズを小さくしている場合、太字や斜体の文字を読むのは困難です。太字や斜体、下線を無効にして代わりにテキストに色を付けることができます。例:
! Forbid bold font faces; bold type is light blue. XTerm*colorBDMode: true XTerm*colorBD: rgb:82/a4/d3 ! Do not underscore text, underlined text is white. XTerm*colorULMode: true XTerm*colorUL: rgb:e4/e4/e4
行間の調整
場合によっては行間が狭すぎたり、広すぎるように感じられることもあるでしょう。例えば、DejaVu Sans Mono を使っていると、アンダーバー記号が CJK の文字にぶつかったり、次の行のカーソルに被さってしまうことがあります。行間 (植字工は鉛と呼ぶ) は scaleHeight
リソースを使うことで調整できます。例えば、行間を広げるには:
XTerm*scaleHeight: 1.01
scaleHeight
に設定できる値は 0.9
から 1.5
までの間の数値で、デフォルトは 1.0
です。
黒いボーターの削除
場合によって Xterm には黒い縁が表示されますが、以下の行を ~/.Xresources
ファイルに追加することで消すことができます。
xterm*borderWidth: 0
Tek 4014 デモンストレーション
plotutils をインストールしている場合、xterm の Tektronix 4014 エミュレーションを使って plotutils パッケージのテストファイルを表示することができます。#VT オプションメニュー のメニューアイテム Switch to Tek Mode
を使うか次のコマンドで xterm を起動することで Tek ウィンドウを開いて下さい:
$ xterm -t -tn tek4014
完全に表示されると、PS1 は正しく表示されなくなります。新しいウィンドウで、次のコマンドを入力してください:
cat /usr/share/tek2plot/dmerc.tek
Tek ウィンドウに世界地図が表示されます。同じディレクトリにある他の *.tek
ファイルを表示することもできます。Tek ウィンドウを終了するには、xterm メニューを使います。
トラブルシューティング
スクロールでチラつきが発生する
ABS を使って --enable-double-buffer
フラグを指定して xterm をリビルドしてください:
./configure --prefix=/usr \ ... --with-utempter \ --enable-double-buffer
詳しくは Xterm modifications を参照。
設定が適用されない
i3 などの一部のアプリケーションでは、xterm
の代わりに uxterm
のラッパーを呼び出すことがあります。このような場合は、uxterm
と同じ設定を追加することで解決することができます。
UXTerm.vt100.reverseVideo: true
設定ファイルに重複した項目を書かない方が良い場合は、ワイルドカードによるマッチングを使用することができます。
*.vt100.reverseVideo: true