コンテンツにスキップ

「Alacritty」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
Kgx (トーク | 投稿記録)
カラー: リンクを修正
Kgx (トーク | 投稿記録)
 
(2人の利用者による、間の11版が非表示)
4行目: 4行目:
[[ru:Alacritty]]
[[ru:Alacritty]]
[[tr:Alacritty]]
[[tr:Alacritty]]
[https://github.com/alacritty/alacritty Alacritty] は [[Rust]] によって書かれている、シンプルで GPU アクセラレーションを使用するターミナルエミュレータです。スクロールバックゥルーカラーURL のクリックカスタムキーバインドに対応しています。
[https://github.com/alacritty/alacritty Alacritty] は [[Rust]] によって書かれている、シンプルで GPU アクセラレーションを使用するターミナルエミュレータです。スクロールバック、24ビットカラー ([[w:Color depth#True color (24-bit)]] コピーペースト、URL のクリックカスタムキーバインドをサポートしています。


== インストール ==
== インストール ==
46行目: 46行目:
family: monospace
family: monospace
style: Bold Italic
style: Bold Italic

size: 11
}}
}}


63行目: 65行目:
- { key: Return, mods: Control|Shift, action: SpawnNewInstance }
- { key: Return, mods: Control|Shift, action: SpawnNewInstance }


=== ウィンウのタイトルバに "user@host:cwd" ===
=== Viモーとコピ/ペースト ===


Vi モードでは、キーボードを使用して Alacritty のビューポート内を移動したりスクロールバックしたりできます。 デフォルトでは、 {{ic|Ctrl+Shift+Space}} を使用して切り替えることができます。 コピーするには、マウスを使用して {{ic|Ctrl+Shift+c}} を選択して押すか、Vi モードに入り、 {{ic|v}} を使用して選択を開始し、 {{ic|hjkl で移動します。}} vim のように、 {{ic|y}} で選択範囲をコピーします。 ペーストするには、 {{ic|Ctrl+Shift+v}} を押します。 X クリップボードとの間でコピー/ペーストを行うには、マウスの選択を使用してコピーし、マウスの中クリックでペーストします。
Arch の他のターミナルエミュレータではデフォルトでウィンドウのタイトルバーに "user@host:cwd" と表示されますが、Alacritty は "Alacritty" と表示します。


=== Hints ===
Alacritty の全てのユーザーに Arch のデフォルトの挙動を適用したい場合、{{ic|/etc/bash.bashrc}} ファイルを編集してください。


Hints を使用すると、ターミナルの表示部分でテキストまたはハイパーリンクを検索し、それを他のアプリケーションにパイプすることができます。デフォルトでは、Alacritty は {{ic|Ctrl+Shift+U}} ショートカットを介して Hints URL を提供し、[[xdg-open]] で開きます。詳細については、[https://alacritty.org/config-alacritty.html Alacritty TOML 設定マニュアル] の {{ic|HINTS}} セクションを参照してください。
他のターミナルで {{ic|$PROMPT_COMMAND}} を設定している case 文を検索してください:


たとえば、{{ic|''filename''.rs:''line'':''character''}} ファイル Hints を作成するには (例: {{ic|my_crate/src/server.rs:181:49}}) クリックして [[Visual Studio Code]] などで開いて、Alacritty の TOML 設定に次のセクションを追加します。
case ${TERM} in
xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
;;
screen*)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
;;
esac


{{hc|alacritty.toml|output=<nowiki>
それから {{ic|xterm*{{!}}rxvt*{{!}}Eterm{{!}}aterm{{!}}kterm{{!}}gnome*)}} の行を編集して {{ic|alacritty}} を追加して {{ic|xterm*{{!}}rxvt*{{!}}Eterm{{!}}alacritty{{!}}aterm{{!}}kterm{{!}}gnome*)}} としてください。
[[hints.enabled]]
regex = "[^ ]+\\.rs:\\d+:\\d+"
command = { program = "code", args = [ "--goto" ] }
mouse = { enabled = true }
</nowiki>}}


複数の {{ic|<nowiki>[[hints.enabled]]</nowiki>}} セクションを追加することで、複数の種類の正規表現ベースの Hints を追加できます。
=== Viモードとコピー/ペースト ===

Vi モードでは、キーボードを使用して Alacritty のビューポート内を移動したりスクロールバックしたりできます。 デフォルトでは、 {{ic|Ctrl+Shift+Space}} を使用して切り替えることができます。 コピーするには、マウスを使用して {{ic|Ctrl+Shift+c}} を選択して押すか、Vi モードに入り、 {{ic|v}} を使用して選択を開始し、 {{ic|hjkl で移動します。}} vim のように、 {{ic|y}} で選択範囲をコピーします。 ペーストするには、 {{ic|Ctrl+Shift+v}} を押します。 X クリップボードとの間でコピー/ペーストを行うには、マウスの選択を使用してコピーし、マウスの中クリックでペーストします。

=== Regex ヒント ===


=== その場でテーマを切り替える ===
Regex ヒントは、端末の可視部分にあるテキストを検索し、他のアプリケーションにパイプするために使用することができます。有効にすると、マッチしたテキストは設定されたアルファベットに従って ''hints'' でハイライトされ、キーボードで選択できるようにユーザに提示されます。


ssh 経由でサーバーに接続する場合など、テーマを切り替えたい場合。次のコマンドで適用できます。
デフォルトでは Alacritty は {{ic|Ctrl+Shift+U}} ショートカットでヒントの URL を提供し、それらを [[xdg-open]] で開いています。設定の詳細については {{ic|alacritty.yml}} の {{ic|hints:}} セクションを参照してください。
$ alacritty msg config "$(cat ~/path/to/theme.toml)"


== トラブルシューティング ==
== トラブルシューティング ==
98行目: 93行目:
=== Vim でマウスが動かない ===
=== Vim でマウスが動かない ===


{{ic|.vimrc}} に {{ic|1=ttymouse=sgr}} を追加するか [[Neovim]] に切り替えてください。[https://github.com/alacritty/alacritty/issues/803 こちらの issue] も参照。
{{ic|.vimrc}} に {{ic|1=ttymouse=sgr}} と {{ic|1=set Mouse=a}} を追加するか [[Neovim]] に切り替えてください。[https://github.com/alacritty/alacritty/issues/803 こちらの issue] も参照して下さい


=== dwm 使用時の透明な枠線 ===
=== dwm 使用時の透明な枠線 ===
110行目: 105行目:
=== リモートシェルでターミナル機能を使用できない ===
=== リモートシェルでターミナル機能を使用できない ===


Alacritty 端末から、例えば [SSH] 経由でリモートシステムに接続する場合、システムの terminfo データベースに Alacritty のエントリがないことがあります ({{ic|/usr/share/terminfo/a/alacritty*}}) すべての対話型端末機能が動作するわけではありません。これは Alacritty の terminfo をリモートサーバにコピーすることで修正できます [[termite#SSH での端末の問題|参照]]
Alacritty 端末から、例えば [[SSH]] 経由でリモートシステムに接続する場合、システムの terminfo データベースに Alacritty のエントリがないことがあります ({{ic|/usr/share/terminfo/a/alacritty*}}) すべての対話型端末機能が動作するわけではありません。これは Alacritty の terminfo をリモートサーバにコピーすることで修正できます [[termite#SSH での端末の問題|参照]]


ローカルホストで、Alacritty を使用して次の操作を行います。
ローカルホストで、Alacritty を使用して次の操作を行います。


$ infocmp > alacritty.terminfo # Alacritty の Terminfo をエクスポートする
$ infocmp > alacritty.terminfo # Alacritty の Terminfo をエクスポートする
121行目: 116行目:
$ tic -x alacritty.terminfo # 現在のユーザの Terminfo をインポートする
$ tic -x alacritty.terminfo # 現在のユーザの Terminfo をインポートする
$ rm alacritty.terminfo # オプション:Terminfo ファイルの削除
$ rm alacritty.terminfo # オプション:Terminfo ファイルの削除

上記プロセスのワンライナーバージョンを次に示します。

$ infocmp | ssh "$user@$host" 'tic -x /dev/stdin'


{{Note|この後、リモートシェルに新しい Terminfo をロードさせるために、新しい SSH セッションを開始する必要があります。}}
{{Note|この後、リモートシェルに新しい Terminfo をロードさせるために、新しい SSH セッションを開始する必要があります。}}
130行目: 129行目:
TERM: xterm-256color
TERM: xterm-256color
}}
}}

=== GLSL 3.30 をサポートするハードウェアが必要です ===

[[環境変数]] を指定して Alacritty を起動すると、ソフトウェアレンダリングを強制的に使用できます。

{{ic|1=LIBGL_ALWAYS_SOFTWARE=1}} [https://github.com/alacritty/alacritty/issues/3624#issuecomment-617428381]

$ LIBGL_ALWAYS_SOFTWARE=1 alacritty


=== Wayland 環境の GNOME でタイトルバーが無くなる ===
=== Wayland 環境の GNOME でタイトルバーが無くなる ===
143行目: 134行目:
Wayland 環境の GNOME を使用すると、タイトル バーに何も表示されず、奇妙なアイコンが表示されます。詳細については、https://github.com/alacritty/alacritty/issues/4739 を参照してください。
Wayland 環境の GNOME を使用すると、タイトル バーに何も表示されず、奇妙なアイコンが表示されます。詳細については、https://github.com/alacritty/alacritty/issues/4739 を参照してください。


1つの回避策は、空の {{ic|WAYLAND_DISPLAY}} を [[環境変数]] に設定して、ネイティブ Wayland の代わりに [[Wayland#XWayland|XWayland]] で Alacritty を起動することです。
1つの回避策は、空の {{ic|WAYLAND_DISPLAY}} を [[環境変数]] に設定して、ネイティブ Wayland の代わりに [[Wayland#Xwayland|Xwayland]] で Alacritty を起動することです。
もう一つのオプションとして {{ic|1=env GDK_BACKEND=x11 alacritty}} で起動する方法もあります。
もう一つのオプションとして {{ic|1=env GDK_BACKEND=x11 alacritty}} で起動する方法もあります。


155行目: 146行目:


$ WINIT_X11_SCALE_FACTOR=1.66 alacritty
$ WINIT_X11_SCALE_FACTOR=1.66 alacritty

これは、設定ファイルで {{ic|WINIT_X11_SCALE_FACTOR}} の値を設定することによっても実現できます。

{{bc|
env:
WINIT_X11_SCALE_FACTOR: "1.66"
}}

=== pywal で設定した配色が復元されない ===

次のコードをシェルの実行コマンド ({{ic|.bashrc}}) に追加します。

if command -v wal > /dev/null 2>&1 && [ "$TERM" = "alacritty" ]; then
wal -Rqe
fi

これは、単純に {{ic|wal -R}} を追加するよりも優れています。

# 必要なのはターミナルエミュレータのウィンドウ内だけです。
# {{ic|wal -R}} はかなり遅いので、全てのサブシェルで実行する必要はありません。
# StdOut を確認する必要はありません, {{ic|-q}} オプションを使います。
# デスクトップの他の部分 (gtk, xrdb, polybar, i3など) にカラーを再読み込みさせる必要はありません。これは {{ic|-e}} フラグで行います。

2024年10月31日 (木) 10:38時点における最新版

AlacrittyRust によって書かれている、シンプルで GPU アクセラレーションを使用するターミナルエミュレータです。スクロールバック、24ビットカラー (w:Color depth#True color (24-bit) コピーペースト、URL のクリック、カスタムキーバインドをサポートしています。

インストール

alacritty パッケージまたは alacritty-gitAUR (開発版) をインストールしてください。

設定

Alacritty は以下の順番でディレクトリ内の設定ファイルを検索します:

  • $XDG_CONFIG_HOME/alacritty/alacritty.yml
  • $XDG_CONFIG_HOME/alacritty.yml
  • $HOME/.config/alacritty/alacritty.yml
  • $HOME/.alacritty.yml

/usr/share/doc/alacritty/example/alacritty.yml に存在するサンプル設定ファイルを上のどれかのディレクトリにコピーして、変更したい設定をアンコメントしてください。ほとんどの設定はファイルを保存した後すぐに反映されます。

カラー

利用可能なカラースキームのリストは the upstream wiki を参照してください。使用したいカラースキームがリストに存在したら、設定ファイルにコードを貼り付けてください。

フォント

システムのデフォルトフォントを使用したくない場合、以下の行を変更することで別のフォントを指定できます:

font:
  normal:
    family: monospace
    style: Regular

  bold:
    family: monospace
    style: Bold

  italic:
    family: monospace
    style: Italic

  bold_italic:
    family: monospace
    style: Bold Italic

  size: 11

monospace を以下のコマンドで出力されるフォント名に置き換えてください:

$ fc-list : family style

一部のフォントは Italic 書体を提供しておらず、代わりに Oblique 書体が使われることがあります。

ヒントとテクニック

同一ディレクトリに新しいインスタンスを生成

以下の行を設定ファイルに追加することで Ctrl+Shift+Enter を押したときにカレントディレクトリに Alacritty の新しいインスタンスを生成できます:

key_bindings:
  - { key: Return,   mods: Control|Shift, action: SpawnNewInstance }

Viモードとコピー/ペースト

Vi モードでは、キーボードを使用して Alacritty のビューポート内を移動したりスクロールバックしたりできます。 デフォルトでは、 Ctrl+Shift+Space を使用して切り替えることができます。 コピーするには、マウスを使用して Ctrl+Shift+c を選択して押すか、Vi モードに入り、 v を使用して選択を開始し、 hjkl で移動します。 vim のように、 y で選択範囲をコピーします。 ペーストするには、 Ctrl+Shift+v を押します。 X クリップボードとの間でコピー/ペーストを行うには、マウスの選択を使用してコピーし、マウスの中クリックでペーストします。

Hints

Hints を使用すると、ターミナルの表示部分でテキストまたはハイパーリンクを検索し、それを他のアプリケーションにパイプすることができます。デフォルトでは、Alacritty は Ctrl+Shift+U ショートカットを介して Hints URL を提供し、xdg-open で開きます。詳細については、Alacritty TOML 設定マニュアルHINTS セクションを参照してください。

たとえば、filename.rs:line:character ファイル Hints を作成するには (例: my_crate/src/server.rs:181:49) クリックして Visual Studio Code などで開いて、Alacritty の TOML 設定に次のセクションを追加します。

alacritty.toml
[[hints.enabled]]
regex = "[^ ]+\\.rs:\\d+:\\d+"
command = { program = "code", args = [ "--goto" ] }
mouse = { enabled = true }

複数の [[hints.enabled]] セクションを追加することで、複数の種類の正規表現ベースの Hints を追加できます。

その場でテーマを切り替える

ssh 経由でサーバーに接続する場合など、テーマを切り替えたい場合。次のコマンドで適用できます。

$ alacritty msg config "$(cat ~/path/to/theme.toml)"

トラブルシューティング

Vim でマウスが動かない

.vimrcttymouse=sgrset Mouse=a を追加するか Neovim に切り替えてください。こちらの issue も参照して下さい。

dwm 使用時の透明な枠線

dwmalacritty を使用すると境界が透明になります。この行を dwm のソースディレクトリ drw.c に追加して再コンパイルすると、問題が解決されます。

 if (!XftColorAllocName)...
     die("error, cannot allocate color '%s'", clrname); /* Find this line */
 dest->pixel |= 0xff << 24; /* Add this line */

リモートシェルでターミナル機能を使用できない

Alacritty 端末から、例えば SSH 経由でリモートシステムに接続する場合、システムの terminfo データベースに Alacritty のエントリがないことがあります (/usr/share/terminfo/a/alacritty*) すべての対話型端末機能が動作するわけではありません。これは Alacritty の terminfo をリモートサーバにコピーすることで修正できます 参照

ローカルホストで、Alacritty を使用して次の操作を行います。

$ infocmp > alacritty.terminfo  # Alacritty の Terminfo をエクスポートする
$ scp alacritty.terminfo user@remote-host:~/  # リモートホストにコピーする別の方法

リモート・ホストで、alacritty.terminfo をコピーしたディレクトリに移動します。

$ tic -x alacritty.terminfo  # 現在のユーザの Terminfo をインポートする
$ rm alacritty.terminfo  # オプション:Terminfo ファイルの削除

上記プロセスのワンライナーバージョンを次に示します。

$ infocmp | ssh "$user@$host" 'tic -x /dev/stdin'
ノート この後、リモートシェルに新しい Terminfo をロードさせるために、新しい SSH セッションを開始する必要があります。

または、構成内の TERM の値をデフォルトの alacritty ではなく xterm-256color に設定することもできます。

env:
  TERM: xterm-256color

Wayland 環境の GNOME でタイトルバーが無くなる

Wayland 環境の GNOME を使用すると、タイトル バーに何も表示されず、奇妙なアイコンが表示されます。詳細については、https://github.com/alacritty/alacritty/issues/4739 を参照してください。

1つの回避策は、空の WAYLAND_DISPLAY環境変数 に設定して、ネイティブ Wayland の代わりに Xwayland で Alacritty を起動することです。 もう一つのオプションとして env GDK_BACKEND=x11 alacritty で起動する方法もあります。

マルチモニタでフォントサイズが異なる

デフォルトでは、Alacritty は Device pixel ratio に基づいて各モニタの適切なポイントサイズにフォントを拡大縮小しようとします。複数のディスプレイを使用したセットアップの中には、この動作によって物理的なサイズ [1][2] が大きく異なるものがあります。

各モニタの既存のデバイスピクセル比の値を表示するには、alacritty-v を実行し、子ウィンドウを各モニタに移動して、親ウィンドウで報告された Device pixel ratio に注意します。

環境変数 WINIT_X 11_SCALE_FACTOR を使用してデバイスピクセル比を強制的に一定にすることで、フォントサイズの問題を解決できる場合があります。

$ WINIT_X11_SCALE_FACTOR=1.66 alacritty

これは、設定ファイルで WINIT_X11_SCALE_FACTOR の値を設定することによっても実現できます。

env:
  WINIT_X11_SCALE_FACTOR: "1.66"

pywal で設定した配色が復元されない

次のコードをシェルの実行コマンド (.bashrc) に追加します。

if command -v wal > /dev/null 2>&1 && [ "$TERM" = "alacritty" ]; then
    wal -Rqe
fi

これは、単純に wal -R を追加するよりも優れています。

  1. 必要なのはターミナルエミュレータのウィンドウ内だけです。
  2. wal -R はかなり遅いので、全てのサブシェルで実行する必要はありません。
  3. StdOut を確認する必要はありません, -q オプションを使います。
  4. デスクトップの他の部分 (gtk, xrdb, polybar, i3など) にカラーを再読み込みさせる必要はありません。これは -e フラグで行います。