「St」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎トラブルシューティング: ページに絵文字が含まれているとクラッシュするを翻訳して追加)
(→‎トラブルシューティング: 英語版と同期してVimの項目を翻訳して追加)
122行目: 122行目:
 
set enable-keypad on
 
set enable-keypad on
   
  +
=== Vim ===
 
==== ''vim'' のテキストの背景色が文字でない部分に表示されない ====
 
==== ''vim'' のテキストの背景色が文字でない部分に表示されない ====
 
{{ic|config.h}} の {{ic|termname}} を {{ic|st-256color}} に設定して再コンパイルしてみてください。シェルの中で {{ic|TERM}} 変数は設定しないでください。{{ic|st-256color}} に設定すると問題が発生します。
 
{{ic|config.h}} の {{ic|termname}} を {{ic|st-256color}} に設定して再コンパイルしてみてください。シェルの中で {{ic|TERM}} 変数は設定しないでください。{{ic|st-256color}} に設定すると問題が発生します。
133行目: 134行目:
 
set t_ut=
 
set t_ut=
 
endif
 
endif
  +
  +
==== 256color と truecolor が tmux などで機能しない ====
  +
  +
まず、この [https://bbs.archlinux.org/viewtopic.php?pid=1755862#p1755862 スレッド] で説明されているように、 {{ic|~/.bashrc}} で {{ic|TERM}} の値を設定およびエクスポートしていないことを確認してください
  +
{{note|{{ic|TERM}} を明示的に設定しないでください。 {{ic|tmux.conf}} で {{ic|default-terminal}} 設定を設定して正しく実行してください}}
  +
  +
次に使用している vim のバージョンが '''{{ic|1=>=7.4.1799}}''' であることを確認します。これは、 {{ic|termguicolors}} が追加されたときです。
  +
  +
最後に、以下を {{ic|~/.vimrc}} に追加します:
  +
  +
set t_8f=^[[38;2;%lu;%lu;%lum " set foreground color
  +
set t_8b=^[[48;2;%lu;%lu;%lum " set background color
  +
colorscheme Tomorrow-Night-Eighties
  +
set t_Co=256 " Enable 256 colors
  +
set termguicolors " Enable GUI colors for the terminal to get truecolor
  +
  +
{{note|{{ic|^[}} は、{{ic|t_8f}} と {{ic|t_8b}}の各値の前に付けるリテラルエスケープ(<Esc>)文字です。 これは単一の文字であり、{{ic | vim}}で再現できます。 '''INSERT''' モードで、{{ic|<C-v>-<Esc>}} を押します(Control+v を押してから Esc を押します)。 引き続き '''INSERT''' モードになります。 もう一度 <Esc> を押すと、 '''NORMAL''' モードに戻ります。
  +
  +
{{tip|{{ic|colorscheme}}、{{ic|t_Co}}、{{ic|を設定する前に、{{ic|t_8f}} と {{ic|t_8b}} の値を設定することをお勧めします。 termguicolors}}.}}
  +
  +
詳細については、{{ic|vim}} の {{ic|:help}} を参照してください: {{ic|xterm-true-color}}、{{ic|t_8f}}、{{ic|t_8b}}
  +
}}
   
 
=== ページに絵文字が含まれているとクラッシュする ===
 
=== ページに絵文字が含まれているとクラッシュする ===
   
[https://lists.suckless.org/dev/1707/31965.html グリフが関連付けられていない] カラー絵文字を含むページを読み込もうとすると、st がクラッシュする可能性があります。特に、 {Pkg|ttf-joypixels}} などのフォントで見られる場合、別の端末から実行すると、次のようなものが返されます。
+
[https://lists.suckless.org/dev/1707/31965.html グリフが関連付けられていない] カラー絵文字を含むページを読み込もうとすると、st がクラッシュする可能性があります。特に、 {{Pkg|ttf-joypixels}} などのフォントで見られる場合、別の端末から実行すると、次のようなものが返されます。
   
 
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
 
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
143行目: 166行目:
 
Serial number of failed request: 5118
 
Serial number of failed request: 5118
 
Current serial number in output stream: 5209
 
Current serial number in output stream: 5209
  +
 
 
これを修正するには、Unicode カバレッジ用に {{AUR|ttf-symbola}} をインストールするだけです。
 
これを修正するには、Unicode カバレッジ用に {{AUR|ttf-symbola}} をインストールするだけです。
   

2020年11月10日 (火) 18:12時点における版

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

インストール

stAUR または st-gitAUR パッケージをインストールしてください。

設定

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"

カーソル

デフォルトでは、マウスポインタは XC_xterm; であり、見つけるのが難しいことがよくあります。

カーソルテーマの通常のテーマに変更するには、以下を編集します:

static unsigned int mouseshape = XC_left_ptr;

カラー

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

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;

パッチ

suckless website から入手できるパッチはたくさんあります。 パッチを適用するには、diff をダウンロードし、 patch -i patch.diff を使用して適用します。 これにより、デフォルトの構成ファイル config.def.h が変更されます。 独自の config.h を維持している場合は、 config.h から config.def.h に構成をコピーし、名前を config.h に変更してから、クリーンインストールを実行します。

デスクトップエントリ

以下のようなデスクトップエントリを作成することで、指定したフォントで st を簡単に起動できます (例: adobe-source-code-pro-fonts):

~/.local/share/applications/simple-terminal.desktop
[Desktop Entry]
Name=Simple Terminal
GenericName=Terminal
Comment=standard terminal emulator for the X window system
Exec=st -t "Suckless Terminal" -f "Source Code Pro:style=Semibold:size=12" -g "80x24"
Terminal=false
Type=Application
Encoding=UTF-8
Icon=terminal
Categories=System;TerminalEmulator;
Keywords=shell;prompt;command;commandline;cmd;

上記のメニューエントリはアプリケーションリストのシステムツールに Simple Terminal として表示されます。

トラブルシューティング

アプリケーションによっては DEL キーが正しく機能しない

以下の行を ~/.inputrc または /etc/inputrc に追加してください:

set enable-keypad on

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

256color と truecolor が tmux などで機能しない

まず、この スレッド で説明されているように、 ~/.bashrcTERM の値を設定およびエクスポートしていないことを確認してください

ノート: TERM を明示的に設定しないでください。 tmux.confdefault-terminal 設定を設定して正しく実行してください

次に使用している vim のバージョンが >=7.4.1799 であることを確認します。これは、 termguicolors が追加されたときです。

最後に、以下を ~/.vimrc に追加します:

set t_8f=^[[38;2;%lu;%lu;%lum        " set foreground color
set t_8b=^[[48;2;%lu;%lu;%lum        " set background color
colorscheme Tomorrow-Night-Eighties
set t_Co=256                         " Enable 256 colors
set termguicolors                    " Enable GUI colors for the terminal to get truecolor
ノート: ^[ は、t_8ft_8bの各値の前に付けるリテラルエスケープ(<Esc>)文字です。 これは単一の文字であり、 vimで再現できます。 INSERT モードで、<C-v>-<Esc> を押します(Control+v を押してから Esc を押します)。 引き続き INSERT モードになります。 もう一度 <Esc> を押すと、 NORMAL モードに戻ります。
ヒント: colorschemet_Coを設定する前に、t_8ft_8b の値を設定することをお勧めします。 termguicolors.

詳細については、vim:help を参照してください: xterm-true-colort_8ft_8b

ページに絵文字が含まれているとクラッシュする

グリフが関連付けられていない カラー絵文字を含むページを読み込もうとすると、st がクラッシュする可能性があります。特に、 ttf-joypixels などのフォントで見られる場合、別の端末から実行すると、次のようなものが返されます。

X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
 Major opcode of failed request:  139 (RENDER)
 Minor opcode of failed request:  20 (RenderAddGlyphs)
 Serial number of failed request:  5118
 Current serial number in output stream:  5209

これを修正するには、Unicode カバレッジ用に ttf-symbolaAUR をインストールするだけです。

別の解決策は、 libxft-bgraAUR パッケージをインストールすることです。 これによりカラー絵文字をサポートするパッチバージョンの libXft が提供されます。

参照