「St」の版間の差分
(同期) |
(→カラー: 同期) |
||
(4人の利用者による、間の33版が非表示) | |||
1行目: | 1行目: | ||
{{Lowercase title}} |
{{Lowercase title}} |
||
[[Category:ターミナルエミュレータ]] |
[[Category:ターミナルエミュレータ]] |
||
+ | [[Category:Suckless]] |
||
[[en:St]] |
[[en:St]] |
||
+ | [[cs:St]] |
||
+ | [[pt:St]] |
||
+ | [[zh-hans:St]] |
||
[http://st.suckless.org/ st] は [http://suckless.org suckless] による [[Xorg|X]] 向けのシンプルなターミナル実装です。[[xterm]] や [[urxvt]] を置き換える軽量なターミナルとして作られました。st は現在、256色、ほとんどの VT10X エスケープシーケンス、UTF-8、X11 コピー/ペースト、フォントのアンチエイリアス (fontconfig を使用)、フォールバックフォント、リサイズ、config.h によるショートカット、線画をサポートしています。 |
[http://st.suckless.org/ st] は [http://suckless.org suckless] による [[Xorg|X]] 向けのシンプルなターミナル実装です。[[xterm]] や [[urxvt]] を置き換える軽量なターミナルとして作られました。st は現在、256色、ほとんどの VT10X エスケープシーケンス、UTF-8、X11 コピー/ペースト、フォントのアンチエイリアス (fontconfig を使用)、フォールバックフォント、リサイズ、config.h によるショートカット、線画をサポートしています。 |
||
== インストール == |
== インストール == |
||
− | {{ |
+ | {{AUR|st}} または {{AUR|st-git}} パッケージを[[インストール]]してください。 |
+ | |||
+ | * [[Wayland]] では、st は Xwayland を使用します。現時点では、利用可能なアクティブな Wayland ポートはありません。Xwayland のメモリフットプリントは避けられません。 |
||
== 設定 == |
== 設定 == |
||
− | ''st'' は {{ic|config.h}} ファイルで設定します。コンパイル時に {{ic|config.h}} からコピーされます。デフォルトの {{ic|config.def.h}} はソースに含まれています。 |
||
− | + | ''st'' は、コンパイル時にコピーされる {{ic|config.h}} ファイルを介して構成されます。デフォルトは、ソースに含まれている{{ic|config.def.h}} です。独自の {{ic|config.h}} と [[PKGBUILD]] を自分でメンテナンスするようにしてください。 |
|
=== シェル === |
=== シェル === |
||
16行目: | 21行目: | ||
''st'' のデフォルトシェルを変更するには、以下の行を編集: |
''st'' のデフォルトシェルを変更するには、以下の行を編集: |
||
− | static char shell |
+ | static char *shell = "/bin/sh"; |
+ | |||
+ | または、'st' の起動時にオプションの最後にシェルを指定します。 |
||
+ | |||
+ | $ st ''options'' fish |
||
=== ターミナル === |
=== ターミナル === |
||
22行目: | 31行目: | ||
ターミナルのタイプを変更するには、以下の行を編集: |
ターミナルのタイプを変更するには、以下の行を編集: |
||
− | static char termname |
+ | static char *termname = "st-256color"; |
''st'' は {{ic|termname}} の値を {{ic|TERM}} 変数に設定します。 |
''st'' は {{ic|termname}} の値を {{ic|TERM}} 変数に設定します。 |
||
− | |||
− | {{note|''st'' で問題が発生する場合、{{ic|termname}} を {{ic|xterm}} や {{ic|xterm-256color}} に設定してみてください。}} |
||
=== フォント === |
=== フォント === |
||
32行目: | 39行目: | ||
以下の行を自由に編集してください: |
以下の行を自由に編集してください: |
||
− | static char font |
+ | static char *font = "Liberation Mono:pixelsize=12:antialias=false:autohint=false"; |
コマンドラインでフォントの名前を指定することもできます: |
コマンドラインでフォントの名前を指定することもできます: |
||
$ st -f "Liberation Mono:size=12" |
$ st -f "Liberation Mono:size=12" |
||
+ | $ st -f 'Liberation Mono-12' |
||
+ | |||
+ | フォント名は {{ic|fc-list}} で見つけることができます。 |
||
+ | |||
+ | === カーソル === |
||
+ | |||
+ | デフォルトでは、マウスポインタは {{ic|XC_xterm;}} であり、見つけるのが難しいかもしれません。 |
||
+ | |||
+ | カーソルテーマの通常のテーマに変更するには、以下を編集します: |
||
+ | |||
+ | static unsigned int mouseshape = XC_left_ptr; |
||
=== カラー === |
=== カラー === |
||
42行目: | 60行目: | ||
以下の行を編集することで''前景''・''背景''・''カーソル''の色を設定できます: |
以下の行を編集することで''前景''・''背景''・''カーソル''の色を設定できます: |
||
− | + | unsigned int defaultfg = 7; |
|
− | + | unsigned int defaultbg = 0; |
|
static unsigned int defaultcs = 256; |
static unsigned int defaultcs = 256; |
||
49行目: | 67行目: | ||
static const char *colorname[] = { |
static const char *colorname[] = { |
||
− | /* 8 normal colors */ |
+ | /* 8 normal colors */ |
− | "black", |
+ | "black", |
− | "red3", |
+ | "red3", |
− | "green3", |
+ | "green3", |
− | "yellow3", |
+ | "yellow3", |
− | "blue2", |
+ | "blue2", |
− | "magenta3", |
+ | "magenta3", |
− | "cyan3", |
+ | "cyan3", |
− | "gray90", |
+ | "gray90", |
+ | |||
− | |||
− | /* 8 bright colors */ |
+ | /* 8 bright colors */ |
− | "gray50", |
+ | "gray50", |
− | "red", |
+ | "red", |
− | "green", |
+ | "green", |
− | "yellow", |
+ | "yellow", |
− | "#5c5cff", |
+ | "#5c5cff", |
− | "magenta", |
+ | "magenta", |
− | "cyan", |
+ | "cyan", |
− | "white", |
+ | "white", |
+ | |||
− | |||
− | [255] = 0, |
+ | [255] = 0, |
+ | |||
− | |||
− | /* more colors can be added after 255 to use with DefaultXX */ |
+ | /* more colors can be added after 255 to use with DefaultXX */ |
− | "#cccccc", |
+ | "#cccccc", |
− | "#eeeeee", |
+ | "#eeeeee", |
− | "#111111", |
+ | "#111111", |
− | + | }; |
|
+ | |||
− | |||
/* |
/* |
||
* Default colors (colorname index) |
* Default colors (colorname index) |
||
* foreground, background, cursor |
* foreground, background, cursor |
||
*/ |
*/ |
||
− | + | unsigned int defaultfg = 257; |
|
− | + | unsigned int defaultbg = 258; |
|
static unsigned int defaultcs = 256; |
static unsigned int defaultcs = 256; |
||
+ | |||
+ | カラーパレットの作成を容易にするツールが存在します。例えば、 [https://terminal.sexy terminal sexy] にはあらかじめ用意されたものがあり、''st'' のフォーマットに直接エクスポートすることができます。([https://github.com/stayradiated/terminal.sexy/issues/22#issuecomment-430629424 comment on issue 22] を参照) |
||
+ | |||
+ | Solarized カラースキームのパッチがあります。インストールするには、https://st.suckless.org/patches/solarized/ を参照してください。 |
||
+ | |||
+ | === パッチ === |
||
+ | |||
+ | [https://st.suckless.org/patches/alpha/ suckless website] から入手できるパッチはたくさんあります。 パッチを適用するには、[https://www.gnu.org/software/diffutils/manual/html_node/Invoking-diff.html diff] をダウンロードし、 {{ic|patch -i patch.diff}} を使用して適用します。 これにより、デフォルトの設定ファイル {{ic|config.def.h}} が変更されます。 独自の {{ic|config.h}} を維持している場合は、 {{ic|config.h}} から {{ic|config.def.h}} に構成をコピーし、名前を {{ic|config.h}} に変更してから、 {{ic|make clean install}} を実行します。 |
||
=== デスクトップエントリ === |
=== デスクトップエントリ === |
||
106行目: | 132行目: | ||
== トラブルシューティング == |
== トラブルシューティング == |
||
+ | ==== キーボード ==== |
||
− | ==== アプリケーションによっては DEL キーが正しく機能しない ==== |
||
+ | |||
− | 以下の行を {{ic|~/.inputrc}} または {{ic|/etc/inputrc}} に追加してください: |
||
+ | 一部のアプリケーションで {{ic|Delete}} が正しく機能しない場合は、以下を {{ic|~/.inputrc}} または {{ic|/etc/inputrc}} に追加します。 |
||
+ | |||
set enable-keypad on |
set enable-keypad on |
||
+ | |||
+ | bash 上の IPython などの一部のアプリケーションで上記が動作しない場合、代わりに {{ic|enable-keypad}} をオフにして、st の [https://git.suckless.org/st/file/FAQ.html#l55 st FAQ] で紹介されているように、 {{ic|~/.bashrc}} に以下を追加してください。 |
||
+ | |||
+ | printf '\033[?1h\033=' >/dev/tty |
||
+ | |||
+ | === Vim === |
||
==== ''vim'' のテキストの背景色が文字でない部分に表示されない ==== |
==== ''vim'' のテキストの背景色が文字でない部分に表示されない ==== |
||
121行目: | 155行目: | ||
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}} |
||
+ | }} |
||
+ | |||
+ | ==== アラビア語シェーピングのサポート ==== |
||
+ | |||
+ | [[Vim#双方向サポート]] で説明されているように、アラビア文字を完全にサポートするには、アラビア語 Forms-B の Unicode エントリをカバーするフォールバックフォントが必要です。これを行うには、font2 パッチを追加し、次のように設定を編集します。 |
||
+ | |||
+ | static char *font = "Cascadia Code:size=12:pixelsize=13:antialias=true:autohint=true"; |
||
+ | static char *font2[] = { "DejaVu Sans Mono:size=12:pixelsize=13:antialias=true:autohint=true" }; |
||
+ | |||
+ | 次に、{{ic|1= st -f 'Vazir Code:pixelsize=15'}} で {{ic|st}} を起動します。この設定は、ほとんどのアラビア語のシェーピングケース (シェーピングなし、イタリック体なし、Forms-B、イタリック体の Forms-B) をカバーします。 |
||
== 参照 == |
== 参照 == |
2024年3月31日 (日) 21:19時点における最新版
st は suckless による X 向けのシンプルなターミナル実装です。xterm や urxvt を置き換える軽量なターミナルとして作られました。st は現在、256色、ほとんどの VT10X エスケープシーケンス、UTF-8、X11 コピー/ペースト、フォントのアンチエイリアス (fontconfig を使用)、フォールバックフォント、リサイズ、config.h によるショートカット、線画をサポートしています。
目次
インストール
stAUR または st-gitAUR パッケージをインストールしてください。
- Wayland では、st は Xwayland を使用します。現時点では、利用可能なアクティブな Wayland ポートはありません。Xwayland のメモリフットプリントは避けられません。
設定
st は、コンパイル時にコピーされる config.h
ファイルを介して構成されます。デフォルトは、ソースに含まれているconfig.def.h
です。独自の config.h
と PKGBUILD を自分でメンテナンスするようにしてください。
シェル
st のデフォルトシェルを変更するには、以下の行を編集:
static char *shell = "/bin/sh";
または、'st' の起動時にオプションの最後にシェルを指定します。
$ st options fish
ターミナル
ターミナルのタイプを変更するには、以下の行を編集:
static char *termname = "st-256color";
st は termname
の値を TERM
変数に設定します。
フォント
以下の行を自由に編集してください:
static char *font = "Liberation Mono:pixelsize=12:antialias=false:autohint=false";
コマンドラインでフォントの名前を指定することもできます:
$ st -f "Liberation Mono:size=12" $ st -f 'Liberation Mono-12'
フォント名は fc-list
で見つけることができます。
カーソル
デフォルトでは、マウスポインタは XC_xterm;
であり、見つけるのが難しいかもしれません。
カーソルテーマの通常のテーマに変更するには、以下を編集します:
static unsigned int mouseshape = XC_left_ptr;
カラー
以下の行を編集することで前景・背景・カーソルの色を設定できます:
unsigned int defaultfg = 7; 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 */ unsigned int defaultfg = 257; unsigned int defaultbg = 258; static unsigned int defaultcs = 256;
カラーパレットの作成を容易にするツールが存在します。例えば、 terminal sexy にはあらかじめ用意されたものがあり、st のフォーマットに直接エクスポートすることができます。(comment on issue 22 を参照)
Solarized カラースキームのパッチがあります。インストールするには、https://st.suckless.org/patches/solarized/ を参照してください。
パッチ
suckless website から入手できるパッチはたくさんあります。 パッチを適用するには、diff をダウンロードし、 patch -i patch.diff
を使用して適用します。 これにより、デフォルトの設定ファイル config.def.h
が変更されます。 独自の config.h
を維持している場合は、 config.h
から config.def.h
に構成をコピーし、名前を config.h
に変更してから、 make clean install
を実行します。
デスクトップエントリ
以下のようなデスクトップエントリを作成することで、指定したフォントで 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 として表示されます。
トラブルシューティング
キーボード
一部のアプリケーションで Delete
が正しく機能しない場合は、以下を ~/.inputrc
または /etc/inputrc
に追加します。
set enable-keypad on
bash 上の IPython などの一部のアプリケーションで上記が動作しない場合、代わりに enable-keypad
をオフにして、st の st FAQ で紹介されているように、 ~/.bashrc
に以下を追加してください。
printf '\033[?1h\033=' >/dev/tty
Vim
vim のテキストの背景色が文字でない部分に表示されない
config.h
の termname
を st-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 などで機能しない
まず、この スレッド で説明されているように、 ~/.bashrc
で TERM
の値を設定およびエクスポートしていないことを確認してください
次に使用している 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
アラビア語シェーピングのサポート
Vim#双方向サポート で説明されているように、アラビア文字を完全にサポートするには、アラビア語 Forms-B の Unicode エントリをカバーするフォールバックフォントが必要です。これを行うには、font2 パッチを追加し、次のように設定を編集します。
static char *font = "Cascadia Code:size=12:pixelsize=13:antialias=true:autohint=true"; static char *font2[] = { "DejaVu Sans Mono:size=12:pixelsize=13:antialias=true:autohint=true" };
次に、st -f 'Vazir Code:pixelsize=15'
で st
を起動します。この設定は、ほとんどのアラビア語のシェーピングケース (シェーピングなし、イタリック体なし、Forms-B、イタリック体の Forms-B) をカバーします。