社区编辑申请
注册/登录
Kitty: 又一款基于 GPU 加速的终端工具
开源 Linux
Kitty 是一个跨平台、特性丰富的基于 GPU 的终端模拟器。使用线程渲染将输入延迟最小化,以及 GPU 渲染技术,使得肉眼可见的速度提升,以及降低系统负载和平滑的滚动效果。它是一个轻量级的模拟器,可以通过脚本、shell 提示符和 SSH 进行控制。


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

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

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

  • Kitty - 官方仓库
  • Kitty - 官方文档
  • Kitty - 官方文档 - 快捷键
  • Kitty - 官方文档 - 集成功能


1. 终端安装

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

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

  • 跨平台 (​​Linux/macOS​​)
  • 纯文本的配置 (​​config​​)
  • 肉眼可见的速度提升 (​​GPU​​)
# 二进制安装
# Linux: ~/.local/kitty.app
# macOS: /Applications/kitty.app
$ curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh

# Ubuntu安装
$ sudo apt update
$ sudo apt install kitty -y
$ kitty

# 任务栏显示
$ ln -s ~/.local/kitty.app/bin/kitty ~/.local/bin/
$ cp ~/.local/kitty.app/share/applications/kitty.desktop ~/.local/share/applications/
$ cp ~/.local/kitty.app/share/applications/kitty-open.desktop ~/.local/share/applications/
$ sed -i "s|Icon=kitty|Icon=/home/$USER/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty*.desktop

# 默认的配置文件
# 默认不支持热加载配置(需重进)
~/.config/kitty/kitty.conf

# 调试模式
$ kitty --debug-config

2. 使用方式

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

  • [1] Scrolling

Kitty 基于 GPU 的终端工具 - Scrolling

  • [2] Tabs

Kitty 基于 GPU 的终端工具 - Tabs

  • [3] Windows

Kitty 基于 GPU 的终端工具 - Scrolling

  • [4] Other

Kitty 基于 GPU 的终端工具 - Scrolling

3. 开箱即用

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

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

  • 查看更多的 Kitty 扩展功能

Kitty 基于 GPU 的终端工具 - 开箱即用

  • 显示的色彩效果是真的好
  • [1] diff
# 对比
$ kitty +kitten diff file1 file2

# 集成到git配置里面
$ vim ~/.gitconfig
[diff]
    tool = kitty
    guitool = kitty.gui

[difftool]
    prompt = false
    trustExitCode = true

[difftool "kitty"]
    cmd = kitty +kitten diff $LOCAL $REMOTE

[difftool "kitty.gui"]
    cmd = kitty kitty +kitten diff $LOCAL $REMOTE

Kitty 基于 GPU 的终端工具 - diff

  • 可以直接终端里面显示图片
  • [2] icat
# 图片
$ kitty +kitten icat

# 设置别名
$ vim ~/.zshrc
alias icat="kitty +kitten icat"

Kitty 基于 GPU 的终端工具 - icat

  • 可以让你即时预览主题效果并支持一键切换
  • [3] themes
# 主题
$ kitty +kitten themes
$ kitty +kitten themes --reload-in=all Dimmed Monokai

Kitty 基于 GPU 的终端工具 - themes

  • 接受字符然后输出对应码
  • [4] Unicode input
# 输出
$ kitty +kitten unicode_input

  • 将终端所以的链接地址高亮起来并可以快捷打开
  • [5] Hints
# 设置快捷键绑定
$ map ctrl+g kitten hints \
    --type=linenum \
    --linenum-action=tab nvim +{line} {path}

Kitty 基于 GPU 的终端工具 - Hints

4. 缺点介绍

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

  • tmux-plugins/tmux-resurrect 自动保存
  • tmux-plugins/tmux-continuum 自动加载
  • [1] 会话保存和加载
# kitty目前还没有直接就拿来能用的插件方案
# https://github.com/kovidgoyal/kitty/issues/1197)

  • 并没有像 tmux 一样自带这个功能
  • 但是其扩展能力极强,实现这个 非常轻松
  • [2] 禅模式
# vim ~/.config/kitty/zoom_toggle.py
def main(args):
    pass

from kittens.tui.handler import result_handler
@result_handler(no_ui=True)
def handle_result(args, answer, target_window_id, boss):
    tab = boss.active_tab
    if tab is not None:
        if tab.current_layout.name == 'stack':
            tab.last_used_layout()
        else:
            tab.goto_layout('stack')

  • panel 貌似可以实现类似的功能
  • [3] 状态栏
# 可以实现类似的功能
# https://sw.kovidgoyal.net/kitty/kittens/panel/

  • 如果尝试 ssh 到远程机器,可能会发生报错
  • [4] 远程机器
# 不能使用远程SSH命令
# https://sw.kovidgoyal.net/kitty/faq
$ kitty +kitten ssh myserver

# 设置别名
$ vim ~/.zshrc
alias ssh="kitty +kitten ssh"

5. 参考链接

  • Kitty – 一个被严重忽视的生产力利器
责任编辑:庞桂玉 来源: 奇妙的Linux世界
相关推荐

2022-06-05 21:09:47

Python办公自动化

2022-06-16 17:02:49

微软智能云混合云Azure

2022-05-27 10:00:06

C++游戏引擎

2022-06-16 15:42:16

攻击面管理ASM

2022-06-22 09:19:55

HDC鸿蒙ADB命令

2022-06-28 08:40:16

LokiPromtail日志报警

2022-06-28 12:35:21

DockerPython

2022-06-23 14:03:26

混合ITCIOIT管理工具

2022-06-27 17:46:53

PythonFlask

2022-06-20 08:58:25

Obsidian笔记工具

2022-06-28 14:01:42

MITOpenAI预训练模型

2022-06-01 17:47:24

运维监控系统

2022-06-28 09:34:24

可视化Python代码

2022-06-19 14:13:29

tmateLinux

2022-06-28 10:03:56

CentOSLinux

2022-06-27 23:44:37

云原生云存储云计算

2022-06-03 09:41:03

DockerKubernetes容器

2022-06-01 11:14:42

Java代码技巧

2022-06-09 21:34:41

2022-06-16 09:22:28

图数据库图数据数据库

同话题下的热门内容

用这些开源工具在 Linux 上编辑 PDF 文件首个全链路国产操作系统要诞生了,OpenCloudOS首度披露技术路线开放原子开源基金会 TOC 副主席谭中意:企业开源从来不是做慈善丨T观海专为开发人员构建的个人知识管理工具 - Dendron2022 年受欢迎的五大开源自动化和编排技术Apache Kafka:为“无缝系统”提供异步消息支持将 Zeek 与 ELK 栈集成​Podman Desktop 能否取代 Docker Desktop呢?

编辑推荐

十大免费开源云文件共享平台使用Go语言开发必备的5大开源工具开源人脸识别seetaface入门教程(一)Docker不香吗,为啥还要K8s?值得考虑的九大开源ERP系统,看看都有谁
我收藏的内容
点赞
收藏

51CTO技术栈公众号