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
を押すことでポップアップして表示されます。メニューアイテムで設定できることは、大抵コマンドラインオプションやリソースの設定でも可能です。
Some of the menu options are discussed below.
メインのオプションメニュー
Ctrl + 左マウス
Secure Keyboard
attempts to ensure only the xterm window, and no other application, receives your keystrokes. The display changes to reverse video when it is invoked. If the display is not in reverse video, the Secure Keyboard mode is not in effect. Please read the "SECURITY" section of the xterm man page for this option's limitations.
Allow SendEvents
allows other processes to send keypress and mouse events to the xterm window. Because of the security risk, do not enable this unless you are very sure you know what you are doing.
Log to File
– The log file will be namedXterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX
. This file will contain all the printed output and all cursor movements. Logging may be a security risk.
- The six
Send *** Signal
menu items are not often useful, except when your keyboard fails.HUP
,TERM
andKILL
will close the xterm window.KILL
should be avoided, as it does not allow any cleanup code to run.
- The
Quit
menu item will also close the xterm window – it is the same as sending aHUP
signal. Most users will use the keyboard combinationCtrl+d
or will typeexit
to close an xterm instance.
VT オプションメニュー
Ctrl + 中マウス
Select to Clipboard
– Normally, selected text is stored in PRIMARY, to be pasted withShift+Insert
or by using the middle mouse button. By toggling this option to on, selected text will use CLIPBOARD, allowing you to paste the text selected in an xterm window into a GUI application usingCtrl+v
. The corresponding XTerm resource isselectToClipboard
.
Show Alternate Screen
– When you use an a terminal application such as vim, or less, the alternate screen is opened. The main VT window, now hidden, remains in memory. You can view this main window, but not issue any commands in it, by toggling this menu option. You are able to select and copy text from this main window.
Show Tek Window
とSwitch to Tek Mode
– Tektronix 4014 は CAD やプロットアプリケーションで使われていた1970年代のグラフィックスターミナルです。plotutils に含まれているコマンドラインプログラムgraph
やアプリケーション gnuplot が xterm の Tek エミュレーションを使うことができます。ただし、普通の人はデータを図に記すのに近代的なディスプレイオプションを使うでしょう。下の #Tek 4014 デモンストレーション を見て下さい。
VT フォントメニュー
Ctrl + 右マウス
- When using XLFD fonts, the first seven menu items will change the font face and the font size used in the current xterm window. If you are using an Xft font, only the font size will change, the font face will not change with the different selections, .
Selection
, when using XLFD font names, allows you to switch to the font name stored in the PRIMARY selection (or CLIPBOARD).
Tek オプションメニュー
Tek Window から Ctrl + 中マウス
The first section's options allow you to change the Tek window font size. The second set of options are used to move the focus between the Tek emulation window and the main, or VT, window and to close or hide the Tek window.
コピーアンドペースト
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 など別のターミナルエミュレータを使うほうが良いでしょう。
Using bitmapped XLFD fonts with CJK has many pitfalls in xterm. It is much easier to use TrueType fonts for CJK display, using the faceNameDoublesize
resource. This example uses DejaVu Sans Mono as the normal font and WenQuanYi Bitmap Song as the double width font:
xterm*faceName: DejaVu Sans Mono:style=Book:antialias=false xterm*faceNameDoublesize: WenQuanYi Bitmap Song xterm*faceSize: 8
Tips and tricks
自動透過
transset-df パッケージと 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 を参照。