en_USで頑張るArch Linux日記 7日目:fastfetch, Kitty(その2)
en_USで頑張るArch Linux日記の7日目です。
個人的に気になった部分に手を入れていきます。
Fastfetch
fastfetchはシステム情報をコマンドラインで表示するツールですが、標準的な情報の他にも細かなスタマイズが可能です。
すでにML4Wの設定が入っているはずなので、そのファイルを修正します。
GB
に変更
サイズ表示をまずはFAQにあるように、RAMやストレージのGiB
単位をGB
に変更してみます。
:
"display": {
// ここから追加
"size": {
"binaryPrefix": "jedec"
},
// ここまで追加
"separator": " ➜ "
},
:
Arch Linuxのインストール日付を追加
次に、より柔軟な例を挙げます。
筆者はディストロのインストール日付が結構気になるので、これをfastfetchで表示させています。
最上部のOS
の下にインストール日付を出すようにしました。
"modules": [
:
{
"type": "os",
"key": "OS ",
"keyColor": "31", // = color1
},
// ここから追加
{
"type": "command",
"text": "printf \"\b\b\b (at %s)\n\" $(stat -c '%w' /var/log/pacman.log|cut -d' ' -f1)",
"key": " │ ",
"keyColor": "31",
},
// ここまで追加
:
type
をcommand
にすると、任意のコマンドの出力結果を表示することができます。
使うコマンドはtext
に記入します。
ここでは、stat
コマンドを使ってpacmanのログファイルの生成日付を取得しています[1]。
printf
コマンドに与えている\b
はバックスペースを表すエスケープ文字です。
これはfastfetchが自動的に埋め込んでいる➜
を消すために使っています。
Kitty(その2)
Kittyにも少し慣れてきたので、いくつか設定を入れました。
Kittyの設定をリロード
KittyにはWezTermのようなホットリロード機能はありませんが、ctrl
+shift
+f5
でリロードすることができます。
しかし筆者のキーボードにはファンクションキーがないので、以下のように設定しています。
map kitty_mod+r load_config_file
Kittyのキーバインドを表示
Kittyにキーバインドを表示する機能はありません。
しかしKittyにはKittenというプラグイン機能があり、それを使って表示させているユーザが多いようです[2]。
ここでは、その中でわりと新し目なものを紹介します。
上記のファイルをダウンロードして、下記のようにファイルを置きます。
mv ~/Downloads/keymap.py ~/.config/kitty/
# show keybindings
map kitty_mod+k kitten keymap.py
これでctrl
+shift
+k
でキーバンド一覧を表示できます。
lessっぽいので検索も出来ますし便利ですね。
スクロールバックバッファをNeovimで開く
Kittyにはctrl
+shift
+p
で画面をスクロールバックする機能の他にもctrl
+shift
+h
を押すことで専用のバッファを開いて検索したり、出力結果をコピーしたり出来る機能があります。
これはとても便利ですが、できればvimで開きたいと思ってしまうのがやはりVimmerの性でしょう[3]。
これもカスタムKittenがすでにあるのでそれを入れました。
これを使うにはKittyだけではなく、Neovimにも設定が必要になります。
まずはNeovimから設定します。
筆者は Lazynvimなので以下のようにインストールしました。
:
-- Setup lazy.nvim
require("lazy").setup({
spec = {
:
-- ここから追加
{
'mikesmithgh/kitty-scrollback.nvim',
enabled = true,
lazy = true,
cmd = { 'KittyScrollbackGenerateKittens',
'KittyScrollbackCheckHealth',
'KittyScrollbackGenerateCommandLineEditing' },
event = { 'User KittyScrollbackLaunch' },
-- version = '*', -- latest stable version, may have breaking changes if major version changed
version = '^6.3.0', -- pin major version, include fixes and features that do not have breaking changes
config = function() require('kitty-scrollback').setup() end,
opts = {
search = {
callbacks = {
after_ready = function()
vim.api.nvim_feedkeys('?', 'n', false)
end,
},
},
},
},
-- ここまで追加
},
:
checker = { enabled = true },
})
次にKittyの設定です。
# kitty_scrollback_nvim
allow_remote_control socket-only
listen_on unix:/tmp/kitty
shell_integration enabled
# nvim --headless +'KittyScrollbackGenerateKittens'
# ----->8-------->8-------->8--------->8-------
# kitty-scrollback.nvim Kitten alias
action_alias kitty_scrollback_nvim kitten ~/.local/share/nvim/lazy/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py
# Browse scrollback buffer in nvim (ctrl + shift + h)
map kitty_mod+h kitty_scrollback_nvim
# Browse output of the last shell command in nvim
#map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
# Show clicked command output in nvim
#mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
# -----8<--------8<--------8<---------8<-------
上記の---8<--------8<---
で囲んだ部分は下記のコマンドの出力を貼り付けます。
nvim --headless +'KittyScrollbackGenerateKittens'
このコマンドの出力にはバッファをnvimで開く以外にも、直近のコマンドを編集したり、マウスで操作する機能もありますが、筆者はnvimで開ければそれでいいので、他の機能はコメントアウトしています[4]。
これでCtrl
+Shift
+h
でNeovimで開けるようになりました。
画面の右上にインジケータがあり、Neovimで開いていることが分かります。
終了するには:q
+ Enter
を押します。
Integrations with other toolsを見ると他にも色々なKittenが紹介されているので、そのうちまた何か試したいです。
ただ、こういったカスタムなKittenはユーザが書いたものなので、KittyのバージョンアップでAPIが変更されると動かなくなる可能性があるので注意が必要です[5]。
Discussion