st

提供: ArchWiki
2015年12月29日 (火) 17:23時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

stsuckless による X 向けのシンプルなターミナル実装です。xtermurxvt を置き換える軽量なターミナルとして作られました。st は現在、256色、ほとんどの VT10X エスケープシーケンス、UTF-8、X11 コピー/ペースト、フォントのアンチエイリアス (fontconfig を使用)、フォールバックフォント、リサイズ、config.h によるショートカット、線画をサポートしています。

インストール

公式リポジトリst パッケージか、Arch User Repositoryst-gitAURインストールしてください。

zsh が予め設定された stst-git-zshAUR[リンク切れ: アーカイブ: aur-mirror] パッケージも存在します。

設定

stconfig.h ファイルで設定します。コンパイル時に config.h からコピーされます。デフォルトの config.def.h はソースに含まれています。

PKGBUILDconfig.h を自分でメンテナンスするようにしてください。

シェル

st のデフォルトシェルを変更するには、以下の行を編集:

 static char shell[] = "/bin/sh";

ターミナル

ターミナルのタイプを変更するには、以下の行を編集:

 static char termname[] = "st-256color";

sttermname の値を TERM 変数に設定します。

ノート: st で問題が発生する場合、termnamextermxterm-256color に設定してみてください。

フォント

以下の行を自由に編集してください:

 static char font[] = "Liberation Mono:pixelsize=12:antialias=false:autohint=false";

コマンドラインでフォントの名前を指定することもできます:

 st -f "Liberation Mono:size=12"

カラー

以下の行を編集することで前景背景カーソルの色を設定できます:

 static unsigned int defaultfg = 7;
 static unsigned int defaultbg = 0;
 static unsigned int defaultcs = 256;

上記の値は同一ファイルの *colorname[] 配列を参照します。デフォルトの色を使うことも #rrggbb という形式で色を追加することもできます。例:

 static const char *colorname[] = {
   	/* 8 normal colors */
       "black",
       "red3",
       "green3",
       "yellow3",
       "blue2",
       "magenta3",
       "cyan3",
       "gray90",
 
       /* 8 bright colors */
       "gray50",
       "red",
       "green",
       "yellow",
       "#5c5cff",
       "magenta",
       "cyan",
       "white",
 
       [255] = 0,
 
       /* more colors can be added after 255 to use with DefaultXX */
       "#cccccc",
       "#eeeeee",
       "#111111",
 };
 
 /*
  * Default colors (colorname index)
  * foreground, background, cursor
  */
 static unsigned int defaultfg = 257;
 static unsigned int defaultbg = 258;
 static unsigned int defaultcs = 256;

トラブルシューティング

キーボード

Backspace が正しく機能しない

ノート: FAQ によれば、この挙動は上流で変更されてたということで、最新版にアップグレードすれば問題は解決するようです。

仮想端末や有名な X のターミナルエミュレータは backscape キーを ^? エスケープシーケンスにバインドしていますが、st の古いバージョンでは ^H にバインドされています (FAQ の旧版を参照)。

(read など) プログラムによっては標準入力で backspace キーを押すと、文字が消去されずに ^H が出力されることがあります。以下を設定することで解決できます:

stty erase '^H'

上記の設定でターミナルは ^H を消去コマンドとして認識するようになります。

シェルのプロファイルに上記のコマンドを記述したい場合、シェルを起動する前に $TERM を確認してください。

Vim

vim のテキストの背景色が文字でない部分に表示されない

config.htermnamest-256color に設定して再コンパイルしてみてください。シェルの中で TERM 変数は設定しないでください。st-256color に設定すると問題が発生します。

.vimrc ファイルに以下の行を記述するという解決方法もあります:

if &term =~ '256color'
    " disable Background Color Erase (BCE) so that color schemes
    " render properly when inside 256-color tmux and GNU screen.
    " see also http://sunaku.github.io/vim-256color-bce.html
    set t_ut=
endif

参照