diff --git a/README.md b/README.md index be633b8e8..40570b829 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ kitty - A terminal emulator Major features: - * Uses OpenGL+FreeType for rendering + * Uses OpenGL+FreeType for rendering, does not depend on any GUI toolkits. * 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, @@ -17,6 +17,37 @@ Major features: not occur. The downside is that scripts with complex glyph layout, such as Arabic do not render well. +Installation +-------------- + +kitty is designed to run from source, for easy hackability. Make sure the +following dependencies are installed first: + + * python >= 3.5 + * glew >= 2.0 + * glfw-dev >= 3.2 + * freetype + * fontconfig + * gcc (required for building, clang should also work, but it is not tested) + * pkg-config (required for building) + +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 + +Configuration +--------------- + +kitty is highly customizable, everything from keyboard shortcuts, to painting +frames-per-second. See the heavily commented [default config file](kitty/kitty.conf). +By default kitty looks for a config file in the OS +config directory (usually `~/.config/kitty/kitty.conf` on linux) but you can pass +a specific path via the `--config` option. + Resources on terminal behavior ------------------------------------------ diff --git a/kitty/kitty.conf b/kitty/kitty.conf index 95aaeb53a..5542657dc 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -49,7 +49,8 @@ click_interval 0.5 mouse_hide_wait 3.0 # The enabled window layouts. A comma separated list of layout names. The special value * means -# all layouts. For a list of available layouts, see the file layouts.py +# all layouts. The first listed layout will be used as the startup layout. +# For a list of available layouts, see the file layouts.py enabled_layouts * # Delay (in milliseconds) between screen updates. Decreasing it, increases fps @@ -116,21 +117,21 @@ color15 #ffffff # For a list of modifier names, see: http://www.glfw.org/docs/latest/group__mods.html # Clipboard -map ctrl+shift+v paste_from_clipboard -map ctrl+shift+s paste_from_selection -map ctrl+shift+c copy_to_clipboard +map ctrl+shift+v paste_from_clipboard +map ctrl+shift+s paste_from_selection +map ctrl+shift+c copy_to_clipboard # Scrolling -map ctrl+shift+up scroll_line_up -map ctrl+shift+down scroll_line_down -map ctrl+shift+page_up scroll_page_up +map ctrl+shift+up scroll_line_up +map ctrl+shift+down scroll_line_down +map ctrl+shift+page_up scroll_page_up map ctrl+shift+page_down scroll_page_down -map ctrl+shift+home scroll_home -map ctrl+shift+end scroll_end +map ctrl+shift+home scroll_home +map ctrl+shift+end scroll_end # Window management -map ctrl+shift+enter new_window -map ctrl+shift+] next_window -map ctrl+shift+[ previous_window -map ctrl+shift+w close_window -map ctrl+shift+l next_layout +map ctrl+shift+enter new_window +map ctrl+shift+] next_window +map ctrl+shift+[ previous_window +map ctrl+shift+w close_window +map ctrl+shift+l next_layout diff --git a/kitty/main.py b/kitty/main.py index ec35cf710..5c7f37cdf 100644 --- a/kitty/main.py +++ b/kitty/main.py @@ -38,7 +38,7 @@ def option_parser(): a('--dump-commands', action='store_true', default=False, help=_('Output commands received from child process to stdout')) a('--replay-commands', default=None, help=_('Replay previously dumped commands')) a('--window-layout', default=None, choices=frozenset(all_layouts.keys()), help=_( - 'The window layout to use on startup. Choices: {}').format(', '.join(all_layouts))) + 'The window layout to use on startup')) a('args', nargs=argparse.REMAINDER, help=_( 'The remaining arguments are used to launch a program other than the default shell. Any further options are passed' ' directly to the program being invoked.'