GithubHelp home page GithubHelp logo

jlrickert / termite Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thestinger/termite

0.0 3.0 0.0 669 KB

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

Python 3.64% Makefile 2.08% C++ 94.29%

termite's Introduction

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

The vte-ng project is required until VTE exposes the necessary functions for keyboard text selection and URL hints (if ever). A simple patch has been submitted upstream but they're unwilling to expose functionality that's not required by GNOME Terminal even if there's no extra maintenance (it already exists internally) and no additional backwards compatibility hazards.

If no browser is configured and $BROWSER is unset, xdg-open from xdg-utils is used as a fallback.

BUILDING

git clone --recursive https://github.com/jlrickert/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-shift-e emoji (standard GTK binding)
ctrl-tab start scrollback completion
ctrl-shift-space start selection mode
ctrl-shift-t open terminal in the current directory1
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
ctrl-shift-l reset and clear
ctrl-+ increase font size
ctrl-- decrease font size
ctrl-= reset font size to default

SELECTION MODE

q or 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
e forward to end of word
b or shift-left backward word
W or ctrl-right forward WORD (non-whitespace)
E forward to end of WORD (non-whitespace)
B or ctrl-left backward WORD (non-whitespace)
H jump to the top of the screen
M jump to the middle of the screen
L jump to the bottom of the screen
0 or home move cursor to the first column in the row
^ beginning-of-line (first non-blank character)
$ or end end-of-line
g jump to start of first row
G jump to start of last row
ctrl-u move cursor a half screen up
ctrl-d move cursor a half screen down
ctrl-b move cursor a full screen up (back)
ctrl-f move cursor a full screen down (forward)
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

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.

PADDING

Internal padding can be added by using CSS to style Termite. Adding the following snippet to $XDG_CONFIG_HOME/gtk-3.0/gtk.css (or ~/.config/gtk-3.0/gtk.css) will add uniform 2px padding around the edges:

.termite {
    padding: 2px;
}

This can also be used to add varying amounts of padding to each side via standard usage of the CSS padding property.

TERMINFO

When working on a remote system with termite's terminfo missing, an error might occur:

Error opening terminal: xterm-termite

To solve this issue, install the termite terminfo on your remote system.

On Arch Linux:

pacman -S termite-terminfo

On other systems:

wget https://raw.githubusercontent.com/thestinger/termite/master/termite.terminfo
tic -x termite.terminfo

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

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

    :

    For example, with bash:

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

termite's People

Contributors

thestinger avatar vodik avatar jelly avatar jlrickert avatar holomorph avatar numerical avatar xzfc avatar ixjlyons avatar lemonboy avatar gtmanfred avatar kohlerm avatar kapsh avatar mattikus avatar meribold avatar boblehest avatar janza avatar kyrias avatar schoettl avatar evanpurkhiser avatar throsturx avatar tiredsounds avatar ror0 avatar mikkeloscar avatar migueldvb avatar jck avatar xecantur avatar jorise avatar wbangna avatar h12w avatar earnestly avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.