未加星标

Kitty, a modern, hackable, featureful OpenGL based terminal emulator

字体大小 | |
[系统(windows) 所属分类 系统(windows) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏
kitty - A terminal emulator

Major features

Supports tiling multiple terminal windows side by side in different layouts without needing to use an extra program like tmux

Supports all modern terminal features: unicode, true-color, mouse protocol, focus tracking, bracketed paste and so on.

Allows you to view the scrollback buffer in a separate window using your favorite pager program such as less

Support startup sessions which allow you to specify the window/tab layout, working directories and programs to run on startup.

Easily hackable (UI layer written in python, inner loops in C for speed). Less than ten thousand lines of code.

Uses OpenGL+FreeType for rendering, does not depend on any GUI toolkits, offloads rendering work to the GPU for lower system load.


Kitty, a modern, hackable, featureful OpenGL based terminal emulator

Table of Contents

The scrollback buffer Miscellaneous features Resources on terminal behavior Installation

kitty is designed to run from source, for easy hackability. Make sure the following dependencies are installed first.

Dependencies

python >= 3.5

glew >= 2.0

glfw-dev >= 3.2

freetype

fontconfig

gcc or clang (required for building)

pkg-config (required for building)

Install kitty with:

git clone https://github.com/kovidgoyal/kitty && cd kitty

Now build the C parts of kitty with the following command:

python3 setup.py build

You can run kitty, as:

python3 /path/to/kitty/folder

Design philosophy

kitty is designed for power keyboard users. To that end all its controls work with the keyboard (although it fully supports mouse interactions as well). It’s configuration is a simple, human editable, single file for easy reproducability (I like to store config files in source control).

The code in kitty is designed to be simple, modular and hackable. It is written in a mix of C (for performance sensitive parts) and Python (for easy hackability of the UI). It does not depend on any large and complex UI toolkit, using only OpenGL+FreeType for rendering everything.

Finally, kitty is designed from the ground up to support all modern terminal features, such as unicode, true color, bold/italic fonts, text formatting, etc. It even extends existing text formatting escape codes, to add support for features not available elsewhere, such as colored and styled (curly) underlines. One of the design goals of kitty is to be easily extensible so that new features can be added in the future with relatively less effort.

Tabs and Windows

kitty is capable of running multiple programs organized into tabs and windows. The top level of organization is the Tab . Each tab consists of one or more windows . The windows can be arranged in multiple different layouts, like windows are organized in a tiling window manager. The keyboard controls (which are all customizable) for tabs and windows are:

Table 1. Scrolling Action Shortcut

Scroll line up

ctrl+shift+up or ctrl+shift+k

Scroll line down

ctrl+shift+down or ctrl+shift+j

Scroll page up

ctrl+shift+page_up

Scroll page down

ctrl+shift+page_down

Scroll to top

ctrl+shift+home

Scroll to bottom

ctrl+shift+end

Table 2. Tabs Action Shortcut

New tab

ctrl+shift+t

Close tab

ctrl+shift+q

Next tab

ctrl+shift+right

Previous tab

ctrl+shift+left

Next layout

ctrl+shift+l

Move tab forward

ctrl+shift+.

Move tab backward

ctrl+shift+,

Table 3. Windows Action Shortcut

New window

ctrl+shift+enter

Close window

ctrl+shift+w

Next window

ctrl+shift+]

Previous window

ctrl+shift+[

Move window forward

ctrl+shift+f

Move window backward

ctrl+shift+b

Move window to top

ctrl+shift+`

Focus specific window (windows are counted clockwise from the top left corner)

ctrl+shift+1 , ctrl+shift+2 … ctrl+shift+0

The scrollback buffer

kitty supports scrolling back to view history, just like most terminals. You can use either theor the mouse scroll wheel to do so. However, kitty has an extra, neat feature. Sometimes you need to explore the scrollback buffer in more detail, maybe search for some text or refer to it side-by-side while typing in a follow-up command. kitty allows you to do this by pressing the ctrl+shift+h key-combination, which will open the scrollback buffer in a new window, using your favorite pager program (which is less by default). You can then explore the scrollback buffer using whatever program you normally use. Colors and text formatting are preserved.

Miscellaneous features

You can double click to select a word and triple click to select a line. You can also hold down ctrl+shift and click on a URL to open it in a browser.

Layouts

Currently, there are two layouts available,

Stack ― Only a single maximized window is shown at a time

Tall ― One window is shown full height on the left, the rest of the windows are shown one below the other on the right.

You can switch between layouts using the ctrl+shift+l key combination.

Writing a new layout only requires about thirty lines of code, so if there is some layout you want, take a look atlayout.py and submit a pull request!

Configuration

本文系统(windows)相关术语:三级网络技术 计算机三级网络技术 网络技术基础 计算机网络技术

主题: OpenGLWindowsPython
分页:12
转载请注明
本文标题:Kitty, a modern, hackable, featureful OpenGL based terminal emulator
本站链接:http://www.codesec.net/view/521545.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(windows) | 评论(0) | 阅读(85)