当前位置:   article > 正文

Kitty: 又一款基于 GPU 加速的终端工具

kitty终端

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

58520d50dcb97f91ee9a5186d7a44598.png

基于 GPU 的功能强大的终端仿真器(跨平台是王道)

近几年越来越多人喜欢使用 dotfiles 中进行追踪自己的服务端相关的工具配置,这样就可以跨平台使用,只需要同步一下配置,即可无痛使用机器了。

Kitty 是一个跨平台、特性丰富的基于 GPU 的终端模拟器。使用线程渲染将输入延迟最小化,以及 GPU 渲染技术,使得肉眼可见的速度提升,以及降低系统负载和平滑的滚动效果。它是一个轻量级的模拟器,可以通过脚本、shell 提示符和 SSH 进行控制。

  • Kitty - 官方仓库

  • Kitty - 官方文档

  • Kitty - 官方文档 - 快捷键

  • Kitty - 官方文档 - 集成功能


1. 终端安装

简单介绍终端的安装以及相关的配置文件

如果你系统安装(带图形化界面)之后,默认的终端是 Gnome Terminal 这个,如果我们直接使用的话,比如分屏显示、同时执行命令等高级操作多需要借助于第三方插件来完成,比如使用功能 Tmux 等。而 kitty 是一个功能完备的终端,其包含的功能做了Tmux 所做的一切,且做的更好。

  • 跨平台 (Linux/macOS)

  • 纯文本的配置 (config)

  • 肉眼可见的速度提升 (GPU)

  1. # 二进制安装
  2. # Linux: ~/.local/kitty.app
  3. # macOS: /Applications/kitty.app
  4. $ curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh
  1. # Ubuntu安装
  2. $ sudo apt update
  3. $ sudo apt install kitty -y
  4. $ kitty
  5. # 任务栏显示
  6. $ ln -s ~/.local/kitty.app/bin/kitty ~/.local/bin/
  7. $ cp ~/.local/kitty.app/share/applications/kitty.desktop ~/.local/share/applications/
  8. $ cp ~/.local/kitty.app/share/applications/kitty-open.desktop ~/.local/share/applications/
  9. $ sed -i "s|Icon=kitty|Icon=/home/$USER/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty*.desktop
  1. # 默认的配置文件
  2. # 默认不支持热加载配置(需重进)
  3. ~/.config/kitty/kitty.conf
  4. # 调试模式
  5. $ kitty --debug-config

2. 使用方式

介绍如何快速使用该终端和其对应快捷键组合!

  • [1] Scrolling

f65629dab1a52c65f96d46c88ec8faae.png
Kitty 基于 GPU 的终端工具 - Scrolling
  • [2] Tabs

3946c73005ddaf6a12593545eb5edf63.png
Kitty 基于 GPU 的终端工具 - Tabs
  • [3] Windows

e26898e3060a00be339f0334998a8d2f.png
Kitty 基于 GPU 的终端工具 - Scrolling
  • [4] Other

f45a5a432cc2cd372c3b42fca08622e8.png
Kitty 基于 GPU 的终端工具 - Scrolling

3. 开箱即用

Kitty 的核心部分采用 C 编写, UI 界面采用 python 展示!

Kitty 提供了极其强大的接口,如脚本控制、自定义 kittensicat 看图功能,允许它无缝地与其他工具集成。

  • 查看更多的 Kitty 扩展功能

ed341862a8a6ab841fe8e60a65c2152c.png
Kitty 基于 GPU 的终端工具 - 开箱即用
  • [1] diff

    • 显示的色彩效果是真的好

  1. # 对比
  2. $ kitty +kitten diff file1 file2
  1. # 集成到git配置里面
  2. $ vim ~/.gitconfig
  3. [diff]
  4.     tool = kitty
  5.     guitool = kitty.gui
  6. [difftool]
  7.     prompt = false
  8.     trustExitCode = true
  9. [difftool "kitty"]
  10.     cmd = kitty +kitten diff $LOCAL $REMOTE
  11. [difftool "kitty.gui"]
  12.     cmd = kitty kitty +kitten diff $LOCAL $REMOTE
7b39171ea5498a7990ddf496f87e4582.png
Kitty 基于 GPU 的终端工具 - diff
  • [2] icat

    • 可以直接终端里面显示图片

  1. # 图片
  2. $ kitty +kitten icat
  3. # 设置别名
  4. $ vim ~/.zshrc
  5. alias icat="kitty +kitten icat"

c8ec62bdb7cca7171e9a81f9646e6902.png

Kitty 基于 GPU 的终端工具 - icat
  • [3] themes

    • 可以让你即时预览主题效果并支持一键切换

  1. # 主题
  2. $ kitty +kitten themes
  3. $ kitty +kitten themes --reload-in=all Dimmed Monokai
c3e8d0fad3f6cd4e6cf50870525d32bb.png
Kitty 基于 GPU 的终端工具 - themes
  • [4] Unicode input

    • 接受字符然后输出对应码

  1. # 输出
  2. $ kitty +kitten unicode_input
  • [5] Hints

    • 将终端所以的链接地址高亮起来并可以快捷打开

  1. # 设置快捷键绑定
  2. map ctrl+g kitten hints \
  3.     --type=linenum \
  4.     --linenum-action=tab nvim +{line} {path}
0e8eac4d6d16a852bd9ecb8173a18d66.png
Kitty 基于 GPU 的终端工具 - Hints

4. 缺点介绍

介绍该终端工具目前还没有实现的特性!

  • [1] 会话保存和加载

    • tmux-plugins/tmux-resurrect 自动保存

    • tmux-plugins/tmux-continuum 自动加载

  1. # kitty目前还没有直接就拿来能用的插件方案
  2. # https://github.com/kovidgoyal/kitty/issues/1197)
  • [2] 禅模式

    • 并没有像 tmux 一样自带这个功能

    • 但是其扩展能力极强,实现这个 非常轻松

  1. # vim ~/.config/kitty/zoom_toggle.py
  2. def main(args):
  3.     pass
  4. from kittens.tui.handler import result_handler
  5. @result_handler(no_ui=True)
  6. def handle_result(args, answer, target_window_id, boss):
  7.     tab = boss.active_tab
  8.     if tab is not None:
  9.         if tab.current_layout.name == 'stack':
  10.             tab.last_used_layout()
  11.         else:
  12.             tab.goto_layout('stack')
  • [3] 状态栏

    • panel 貌似可以实现类似的功能

  1. # 可以实现类似的功能
  2. # https://sw.kovidgoyal.net/kitty/kittens/panel/
  • [4] 远程机器

    • 如果尝试 ssh 到远程机器,可能会发生报错

  1. # 不能使用远程SSH命令
  2. # https://sw.kovidgoyal.net/kitty/faq
  3. $ kitty +kitten ssh myserver
  4. # 设置别名
  5. $ vim ~/.zshrc
  6. alias ssh="kitty +kitten ssh"

5. 参考链接

  • Kitty – 一个被严重忽视的生产力利器

本文转载自:「 Escape 的博客 」,原文:https://url.hi-linux.com/s3T9x ,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

9fadd40e6afc1ebbf58c9cc3daa8df30.gif

最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

ebfbfc3cece92d5b0f502fef1159bce6.png

你可能还喜欢

点击下方图片即可阅读

ccaf7a9da8feeda8af96499cf5b3f69a.png

三款开源 Kubernetes 负载均衡器大比拼 (MetalLB vs PureLB vs OpenELB)

40a53e8250fe0732223776785fe524b3.png

点击上方图片,『美团|饿了么』大额外卖红包天天免费领

87cfaf90af27f155c606e53083102024.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/826030
推荐阅读
相关标签
  

闽ICP备14008679号