alacritty.toml 配置

网络迷航者發表於2024-11-30

[env]
TERM = "xterm-256color"

[keyboard]

action = "ResetFontSize"

key = "Key0"

mods = "Command"

bindings = [
{ key = "F2", mods="Control",action = "ToggleViMode" }
]

Mouse bindings

配置滑鼠動作繫結,和鍵盤繫結類似。詳細配置可以參考 Key bindings 一節

為了在 Alacritty 中執行的應用程式捕獲滑鼠時觸發滑鼠繫結,會自動新增 Shift 修飾符。

- mouse:

- Middle

- Left

- Right

- Numeric identifier such as 5

- action (see key bindings)

And optionally:

- mods (see key bindings)

mouse_bindings:

- { mouse: Middle, action: PasteSelection } # 按滑鼠中鍵貼上選中內容

[mouse]

bindings = [
{ mouse = "Right",action = "Paste" }
]

[scrolling]

auto_scroll = true

faux_multiplier = 100

history = 2000
multiplier = 20

size = 14

use_thin_strokes = true

[selection]

background = "#29263c"

save_to_clipboard = true
semantic_escape_chars = ",│`|:"' ()[]{}<>"

text = "CellForeground"st

[terminal.shell]
args = ["-l"]
program = 'D:\tools\system\nu\nu.exe'

program = 'bash.exe'

program = 'cmd.exe'

program = 'D:\tools\net\MobaXterm\Mxt111\slash\mx86_64b\bin\fish.exe'

program = 'D:\tools\net\MobaXterm\Mxt111\slash\mx86_64b\bin\zsh.exe'

游標

[cursor]
style = { shape = "Beam", blinking = "On" }

字型

[font]
normal = { family = "FiraCode Nerd Font", style = "Bold" }
bold = { family = "FiraCode Nerd Font", style = "Bold" }
italic = { family = "FiraCode Nerd Font", style = "Bold" }
size = 12.0

顏色主題可以在github上找想要的主題,複製他的配色.

[colors.primary]
background = "#1a1b26"
foreground = "#a9b1d6"

[colors.normal]
black = "#32344a"
red = "#f7768e"
green = "#9ece6a"
yellow = "#e0af68"
blue = "#7aa2f7"
magenta = "#ad8ee6"
cyan = "#449dab"
white = "#787c99"

[colors.bright]
black = "#444b6a"
red = "#ff7a93"
green = "#b9f27c"
yellow = "#ff9e64"
blue = "#7da6ff"
magenta = "#bb9af7"
cyan = "#0db9d7"
white = "#acb0d0"

改變視窗設定

[window]

視窗大小

dimensions = { columns = 185, lines = 45 }
padding = { x = 4, y = 2 }
dynamic_padding = true

透明度

opacity = 0.9

視窗名字

title = "Alacritty"
option_as_alt = "Both"
startup_mode = "Windowed"

- full: 有邊界 + 標題欄

- none: 無邊界 + 標題欄

decorations = "full"

[general]
live_config_reload = true

[terminal]

Key bindings

按鍵繫結是物件列表。比如西面的是預設的貼上的鍵位繫結

- { key: V, mods: Control|Shift, action: Paste }

Each key binding will specify a:

- key: 需要按到的鍵盤碼

- A-Z

- F1-F24

- Key0-Key9

鍵盤碼可以從下面找到

https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants

這裡對於不清楚鍵盤上每個鍵的英文名稱的同學,可以參考

https://www.computerhope.com/jargon/b/backquot.htm

除了使用按鍵的名字之外,還支援使用所需鍵的 scancode。不過必須為十進位制數字。下面的命令會顯示十六進位制的 scancode

showkey --scancodes.

Then exactly one of:

- chars: 傳送位元組序列到正在執行的應用程式

char 欄位可以將指定的字串寫入終端。這功能可以用在傳遞轉義序列中。

想要找到諸如 PageUp ("\x1b[5~") 這樣的跳脫字元,可以透過 showkey -a 命令

xxd -psd 命令也可以做到

- action: 執行預定義的操作

- ToggleViMode: 開啟/關閉 Vi 模式

- SearchForward: 向前搜尋

- SearchBackward: 向後搜尋

- Copy: 複製

- Paste: 貼上

- IncreaseFontSize: 增加字號

- DecreaseFontSize: 減小字號

- ResetFontSize: 重置字號

- ScrollPageUp: 向上翻一頁

- ScrollPageDown: 向下翻一頁

- ScrollHalfPageUp: 向上翻半頁

- ScrollHalfPageDown: 向下翻半頁

- ScrollLineUp: 向上滾動一行

- ScrollLineDown: 向下滾動一行

- ScrollToTop: 滾動到頂部

- ScrollToBottom: 滾動到底部

- ClearHistory: 清空滾動緩衝區

- Hide: 隱藏視窗

- Minimize: 最小化

- Quit: 退出

- ToggleFullscreen: 在全屏/當前模式下切換

- SpawnNewInstance: 啟動一個新的 Alacritty

- ClearLogNotice: 清 UI 上的 warning 和 error 的 notice

- ClearSelection: 清空當前選中

- ReceiveChar: 不執行任何動作,將字元輸入

- None: 不執行任何動作,並且攔截掉

- Vi 模式下獨佔的操作

- Open: 開啟一個連結,launcher 的配置參考 url.launcher

- ToggleNormalSelection: 切換到普通選中模式

- ToggleLineSelection: 切換到行選中模式

- ToggleBlockSelection: 切換到塊選中模式

- ToggleSemanticSelection: 切換到語義選中模式,參考 selection.semantic_escape_chars.

- Vi 模式下獨佔的游標操作:

- Up: 向上一行

- Down: 向下一行

- Left: 向左一個字元

- Right: 向右一個字元

- First: 第一列,如果已經在第一列,那麼到起始行

- Last: 最後一列,如果已經在最後一列,那麼到起始行

- FirstOccupied: 此終端行中的第一個非空單元格,如果已經位於該行的第一個單元格時,那麼該行的第一個非空單元格

- High: 螢幕最上方

- Middle: 螢幕中間

- Low: 螢幕底部

- SemanticLeft: 前一個在被語義上分隔的單詞的開頭

- SemanticRight: 下一個在被語義上分隔的單詞的開頭

- SemanticLeftEnd: 前一個被語義上分隔的單詞的結尾

- SemanticRightEnd: 下一個被語義上分隔的單詞的結尾

- WordLeft: 前一個被空白符分隔的單詞的開頭

- WordRight: 下一個被空白符分隔的單詞的開頭

- WordLeftEnd: 前一個被空白符分隔的單詞的結尾

- WordRightEnd: 下一個被空白符分隔的單詞的結尾

- Bracket: 與游標所在位置的括號匹配的字元

- SearchNext: 向後搜尋

- SearchPrevious: 向前搜尋

- SearchStart: vi 模式游標左側的首次匹配

- SearchEnd: vi 模式游標右側的最後匹配

- 搜尋模式獨佔的操作:

- SearchFocusNext: 將焦點移到下一個搜尋匹配項。

- SearchFocusPrevious: 將焦點移到上一個搜尋匹配項。

- SearchConfirm: 確認搜尋

- SearchCancel: 取消搜尋

- SearchClear: 清空搜尋內容

- SearchDeleteWord: 刪除搜尋內容的最後一個單詞

- SearchHistoryPrevious: 跳轉搜尋內容歷史的上一個

- SearchHistoryNext: 跳轉搜尋內容歷史的下一個

- macos 獨佔的操作:

- ToggleSimpleFullscreen: Enter fullscreen without occupying another space.

- Linux/BSD 獨佔的操作:

- CopySelection: 從選中緩衝區中複製

- PasteSelection: 從選中緩衝區中貼上

- command: 執行命令

The command field must be a map containing a program string and an

args array of command line parameter strings. For example:

{ program: "alacritty", args: ["-e", "vttest"] }

可選的:

- mods: 修飾鍵

- Command

- Control

- Option

- Super

- Shift

- Alt

多個修飾鍵使用 | 進行組合,像這樣:

mods: Control|Shift.

- mode: 對於指定的模式下進行繫結。用於在不同模式下向應用程式傳送正確的轉義序列

- AppCursor

- AppKeypad

- Search

- Alt

- Vi

A ~ 運算子,用於邏輯取反

Alacritty 有預設的鍵位繫結,如果想要替換需要使用新的繫結進行覆蓋。如果想取消預設的繫結,,可以對映到 ReceiveChar

另外,如果不希望接收該繫結的輸入字元,可以對映到 None

如果相同的觸發鍵位,有多個 action,那麼會順序執行