Go to file
Daniel Micay 7f03ded730 port to vte 0.38.0
VTE is not making any attempt to maintain API stability. The following
changes to the API impacted Termite, despite it avoiding deprecated
functions:

* vte_pty_set_term removed (hopefully without an impact...)
* vte_terminal_get_child_exit_status replaced with new signal parameter
* beep signal -> bell signal
* vte_char_attributes -> VteCharAttributes
* sync suffix added to I/O functions along with some parameter changes
* rgba suffix removed from all color functions
* inner-border attribute replaced with GtkStyleContext padding
* vte_terminal_set_font_from_string removed, use Pango directly
* vte_terminal_is_word_char removed - is_word_char copied to Termite
* vte_terminal_set_word_chars removed - feature dropped
* vte_terminal_set_visible_bell removed - feature dropped

Support for text selection is still not supported upstream. The required
API is tiny and does not expose internal details. Despite the lack of a
compelling reason to leave it out like a backwards compatibility risk,
the patch has been left to rot on the bug tracker.

The vte_terminal_get_user_shell_with_fallback API was also removed,
although it was an internal API and Termite was only using it for
convenience. The functionality has been moved inside Termite.

Closes #187
2014-09-21 19:11:40 -04:00
man document --name and --class 2014-08-24 13:09:08 -04:00
util@62faf9e46b cleanup 2013-01-04 23:49:38 -05:00
.gitignore Add a .gitignore 2012-06-08 15:07:11 -04:00
.gitmodules add util repo as submodule 2012-10-05 10:57:49 -04:00
.ycm_extra_conf.py add a .ycm_extra_conf.py file 2014-04-10 22:33:12 -04:00
Makefile port to vte 0.38.0 2014-09-21 19:11:40 -04:00
README.rst port to vte 0.38.0 2014-09-21 19:11:40 -04:00
TODO.rst add improving the hint uniqueness check to TODO 2013-02-20 03:45:45 -05:00
config port to vte 0.38.0 2014-09-21 19:11:40 -04:00
expose_select_text.patch port to vte 0.38.0 2014-09-21 19:11:40 -04:00
termite.cc port to vte 0.38.0 2014-09-21 19:11:40 -04:00
termite.desktop Application category is deprecated for .desktop 2013-01-01 16:21:27 -05:00
termite.terminfo Make ncurses recognize UTF8 support 2013-05-16 03:33:15 -04:00
url_regex.hh url_regex.hh: make path component optional 2012-10-07 11:45:37 -04:00

README.rst

A keyboard-centric VTE-based terminal, aimed at use within a window manager
with tiling and/or tabbing support.

Termite looks for the configuration file in the following order:
``$XDG_CONFIG_HOME/termite/config``, ``~/.config/termite/config``,
``$XDG_CONFIG_DIRS/termite/config``, ``/etc/xdg/termite/config``.

Termite's exit status is 1 on a failure, including a termination of the child
process from an uncaught signal. Otherwise the exit status is that of the child
process.

DEPENDENCIES
============

A vte version >= ``0.38.0``. A `patch
<https://github.com/thestinger/termite/blob/master/expose_select_text.patch>`_
is required to expose the functions needed for keyboard selection.

BUILDING
========
::

    git clone --recursive https://github.com/thestinger/termite.git
    cd termite && make

KEYBINDINGS
===========

INSERT MODE
-----------

+----------------------+---------------------------------------------+
| ``ctrl-shift-x``     | activate url hints mode                     |
+----------------------+---------------------------------------------+
| ``ctrl-shift-r``     | reload configuration file                   |
+----------------------+---------------------------------------------+
| ``ctrl-shift-c``     | copy to CLIPBOARD                           |
+----------------------+---------------------------------------------+
| ``ctrl-shift-v``     | paste from CLIPBOARD                        |
+----------------------+---------------------------------------------+
| ``ctrl-shift-u``     | unicode input (standard GTK binding)        |
+----------------------+---------------------------------------------+
| ``ctrl-tab``         | start scrollback completion                 |
+----------------------+---------------------------------------------+
| ``ctrl-shift-space`` | start selection mode                        |
+----------------------+---------------------------------------------+
| ``ctrl-shift-t``     | open terminal in the current directory [1]_ |
+----------------------+---------------------------------------------+
| ``ctrl-shift-up``    | scroll up a line                            |
+----------------------+---------------------------------------------+
| ``ctrl-shift-down``  | scroll down a line                          |
+----------------------+---------------------------------------------+
| ``shift-pageup``     | scroll up a page                            |
+----------------------+---------------------------------------------+
| ``shift-pagedown``   | scroll down a page                          |
+----------------------+---------------------------------------------+

.. [1] The directory can be set by a process running in the terminal. For
       example, with zsh:

       .. code:: sh

            if [[ $TERM == xterm-termite ]]; then
              . /etc/profile.d/vte.sh
              __vte_osc7
            fi
       ::

       For example, with bash:

       .. code:: sh

            if [[ $TERM == xterm-termite ]]; then
              . /etc/profile.d/vte.sh
              __vte_prompt_command
            fi

SELECTION MODE
------------

+--------------------------+-----------------------------------------------------------+
| ``escape`` or ``ctrl-[`` | enter insert mode                                         |
+--------------------------+-----------------------------------------------------------+
| ``x``                    | activate url hints mode                                   |
+--------------------------+-----------------------------------------------------------+
| ``v``                    | visual mode                                               |
+--------------------------+-----------------------------------------------------------+
| ``V``                    | visual line mode                                          |
+--------------------------+-----------------------------------------------------------+
| ``ctrl-v``               | visual block mode                                         |
+--------------------------+-----------------------------------------------------------+
| ``hjkl`` or arrow keys   | move cursor left/down/up/right                            |
+--------------------------+-----------------------------------------------------------+
| ``w`` or ``shift-right`` | forward word                                              |
+--------------------------+-----------------------------------------------------------+
| ``b`` or ``shift-left``  | backward word                                             |
+--------------------------+-----------------------------------------------------------+
| ``W`` or ``ctrl-right``  | forward WORD (non-whitespace)                             |
+--------------------------+-----------------------------------------------------------+
| ``B`` or ``ctrl-left``   | backward WORD (non-whitespace)                            |
+--------------------------+-----------------------------------------------------------+
| ``0``                    | move cursor to the first column in the row                |
+--------------------------+-----------------------------------------------------------+
| ``^``                    | beginning-of-line (first non-blank character)             |
+--------------------------+-----------------------------------------------------------+
| ``$``                    | end-of-line                                               |
+--------------------------+-----------------------------------------------------------+
| ``g``                    | jump to start of first row                                |
+--------------------------+-----------------------------------------------------------+
| ``G``                    | jump to start of last row                                 |
+--------------------------+-----------------------------------------------------------+
| ``ctrl-u``               | move cursor half a screen up                              |
+--------------------------+-----------------------------------------------------------+
| ``ctrl-d``               | move cursor half a screen down                            |
+--------------------------+-----------------------------------------------------------+
| ``y``                    | copy to CLIPBOARD                                         |
+--------------------------+-----------------------------------------------------------+
| ``/``                    | forward search                                            |
+--------------------------+-----------------------------------------------------------+
| ``?``                    | reverse search                                            |
+--------------------------+-----------------------------------------------------------+
| ``u``                    | forward url search                                        |
+--------------------------+-----------------------------------------------------------+
| ``U``                    | reverse url search                                        |
+--------------------------+-----------------------------------------------------------+
| ``o``                    | open the current selection as a url                       |
+--------------------------+-----------------------------------------------------------+
| ``Return``               | open the current selection as a url and enter insert mode |
+--------------------------+-----------------------------------------------------------+
| ``n``                    | next search match                                         |
+--------------------------+-----------------------------------------------------------+
| ``N``                    | previous search match                                     |
+--------------------------+-----------------------------------------------------------+
| ``+``                    | increase font size                                        |
+--------------------------+-----------------------------------------------------------+
| ``-``                    | decrease font size                                        |
+--------------------------+-----------------------------------------------------------+

During scrollback search, the current selection is changed to the search match
and copied to the PRIMARY clipboard buffer.

With the text input widget focused, up/down (or tab/shift-tab) cycle through
completions, escape closes the widget and enter accepts the input.

In hints mode, the input will be accepted as soon as termite considers it a
unique match.