TabbyのHotkeysを良い感じにカスタマイズする
はじめに
普段の業務では、主に Vue.js や Rails を書いている @kt15 です。先日、GitHub のトレンドを漁っていたところ、Tabby という良さげなターミナルを見つけました。本記事では、Tabby へ乗り換えるために変更した Hotkeys をまとめていきます。
Tabbyとは
Windows、macOS、Linux などマルチプラットフォームで動作するモダンなターミナルです。
下記の公式ドキュメントを見ていただけると、大体何ができるか把握できると思います。
Hotkeys を設定していく
Hotkeys の設定方法
Tabby の設定ファイルは YAML 形式で管理されています。Hotkeys は下記のいずれかの方法で設定していくことになると思います。
- Preferences → Hotkeys(GUI 上で直感的に設定できる)
- Preferences → Config file(直接 YAML を編集する)
特に前者の体験が良くて、このように設定したい Hotkey を選び、割り当てたいキーを入力するだけで設定できます。
変更する Hotkeys
ここからは筆者が変更した Hotkeys を列挙していきます。
また、最後に後述する変更が反映された設定ファイル(YAML 形式)も載せているので、もし同じ設定にしたい方がいれば、そちらを使用してください。
Split to the right(ウィンドウを左右に分割する)
Command + shit + D → Command + D
Split to the bottom(ウィンドウを上下に分割する)
Command + D + Command + shit + D
Clear terminal(画面の表示をクリアする)
Command + K → Command + R
Focus the pane on the right(右側のパネルにフォーカスする)
Command + ]
Focus the pane on the left(左側のパネルにフォーカスする)
Focus the pane on the right
と対になるように、こちらも Command + [
と設定したいところですが、上手く設定できませんでした。
試したのは下記です。
- 他と同様に Hotkeys で設定
-
Command + [
と入力しても認識してくれない
-
- yaml を直接編集
- 設定はできるが、上手く機能しない
Tabby の issue を眺めていたところ、似たような issue がありました。
上記が修正されるか分かりませんが、急ぎでもないので一旦 Focus the pane on the left
には何も設定せず、上記の issue を追ってみようと思います。
New window(新規ウィンドウを立ち上げる)
Command + N
Copy current path(カレントパスをクリップボードにコピーする)
Command + P
Toggle terminal window(ターミナルの表示/非表示を切り替える)
Ctrl + Space → 何も設定しない
筆者の環境では、Ctrl + Space
で 英字↔かな
を切り替えているためバッティングした & あまり使う機会がなさそうだと判断したので、キーの割り当てを解除しました。
Show pane labels(パネルに設定しているラベルを表示する)
Command + Shift → 何も設定しない
筆者の環境では、Command + Shift + 4
で選択範囲のスクショを撮る設定になっており、それとバッティングしたためキーの割り当てを解除しました。
Scroll terminal to buttom(1番下までスクロールする)
Command + Down
最終的な設定ファイル
こちらがこれまでの変更を反映した設定ファイルになります。
同じ構成にする場合は下記の hotkeys
の部分を設定ファイルに反映してください。
(Preferences → Config file
で複数行のペーストができなかった場合は Preferences → Config file → Show config file
で、直接 config.yaml
を開いて編集してください)
config.yaml
version: 3
profiles: []
hotkeys:
copy-current-path:
- - ⌘-P
ctrl-c:
- Ctrl-C
copy:
- ⌘-C
paste:
- ⌘-V
clear:
- - ⌘-R
select-all:
- ⌘-A
zoom-in:
- ⌘-=
- ⌘-Shift-=
zoom-out:
- ⌘--
- ⌘-Shift--
reset-zoom:
- ⌘-0
home:
- ⌘-Left
- Home
end:
- ⌘-Right
- End
previous-word:
- ⌥-Left
next-word:
- ⌥-Right
delete-previous-word:
- ⌥-Backspace
delete-next-word:
- ⌥-Delete
search:
- ⌘-F
pane-focus-all:
- ⌘-Shift-I
restart-telnet-session: []
restart-ssh-session: []
launch-winscp: []
settings:
- ⌘-,
serial:
- Alt-K
restart-serial-session: []
toggle-window: []
new-window:
- ⌘-N
new-tab:
- ⌘-T
profile: {}
profile-selectors: {}
toggle-fullscreen:
- Ctrl+⌘+F
close-tab:
- - ⌘-W
reopen-tab:
- ⌘-Shift-T
toggle-last-tab: []
rename-tab:
- ⌘-R
next-tab:
- Ctrl-Tab
previous-tab:
- Ctrl-Shift-Tab
move-tab-left:
- ⌘-Shift-Left
move-tab-right:
- ⌘-Shift-Right
rearrange-panes: []
tab-1:
- ⌘-1
tab-2:
- ⌘-2
tab-3:
- ⌘-3
tab-4:
- ⌘-4
tab-5:
- ⌘-5
tab-6:
- ⌘-6
tab-7:
- ⌘-7
tab-8:
- ⌘-8
tab-9:
- ⌘-9
tab-10:
- ⌘-0
tab-11: []
tab-12: []
tab-13: []
tab-14: []
tab-15: []
tab-16: []
tab-17: []
tab-18: []
tab-19: []
tab-20: []
split-right:
- - ⌘-D
split-bottom:
- - ⌘-Shift-D
split-left: []
split-top: []
pane-nav-right:
- - ⌘-]
pane-nav-down:
- ⌘-⌥-Down
pane-nav-up:
- ⌘-⌥-Up
pane-nav-left: []
pane-nav-previous: []
pane-nav-next:
- ⌘-⌥-]
pane-maximize:
- ⌘-⌥-Enter
close-pane:
- ⌘-Shift-W
profile-selector:
- ⌘-E
switch-profile:
- ⌘-Shift-E
duplicate-tab: []
scroll-to-bottom:
- - ⌘-Down
terminal:
frontend: xterm
fontSize: 14
fallbackFont: null
linePadding: 0
bell: 'off'
bracketedPaste: true
background: theme
ligatures: false
cursor: block
cursorBlink: true
hideTabIndex: false
hideCloseButton: false
rightClick: menu
pasteOnMiddleClick: true
copyOnSelect: false
scrollOnInput: true
altIsMeta: false
wordSeparator: ' ()[]{}''"'
colorScheme:
name: Material
foreground: '#eceff1'
background: rgba(38, 50, 56, 1)
selection: null
cursor: '#FFCC00'
cursorAccent: null
colors:
- '#000000'
- '#D62341'
- '#9ECE58'
- '#FAED70'
- '#396FE2'
- '#BB80B3'
- '#2DDAFD'
- '#d0d0d0'
- rgba(255, 255, 255, 0.2)
- '#FF5370'
- '#C3E88D'
- '#FFCB6B'
- '#82AAFF'
- '#C792EA'
- '#89DDFF'
- '#ffffff'
customColorSchemes: []
warnOnMultilinePaste: true
searchRegexAlwaysEnabled: false
searchOptions:
regex: false
wholeWord: false
caseSensitive: false
detectProgress: true
scrollbackLines: 25000
font: Menlo
autoOpen: false
useConPTY: true
environment: {}
setComSpec: false
profile: local:default
showBuiltinProfiles: true
showRecentProfiles: 3
ssh:
warnOnClose: false
winSCPPath: null
agentType: auto
agentPath: null
x11Display: null
configSync:
host: https://api.tabby.sh
token: ''
configID: null
auto: false
parts:
hotkeys: true
appearance: true
vault: true
clickableLinks:
modifier: null
appearance:
dock: 'off'
dockScreen: current
dockFill: 0.5
dockSpace: 1
dockHideOnBlur: false
dockAlwaysOnTop: true
flexTabs: false
tabsLocation: top
cycleTabs: true
theme: Standard
frame: thin
css: '/* * { color: blue !important; } */'
opacity: 1
vibrancy: false
vibrancyType: blur
profiles: []
profileDefaults: {}
recoverTabs: true
enableAnalytics: true
enableWelcomeTab: true
electronFlags:
- - force_discrete_gpu
- '0'
enableAutomaticUpdates: true
version: 1
vault: null
encrypted: false
enableExperimentalFeatures: false
pluginBlacklist: []
hacks:
disableGPU: false
おわりに
今回は Tabby の Hotkeys をカスタマイズしていきました。筆者としてはなかなか満足のいく形に落ち着いたので、しばらくはこの構成で使ってみようと思います。
Discussion