website/content/blog/2018-08-03-installing-termite-on-void.md
Chinmay D. Pai 6d929483e2
feat: rewrite blog in zola
Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>
2021-05-28 00:10:50 +05:30

78 lines
3.1 KiB
Markdown

+++
title = "Installing Termite on Void Linux"
date = 2018-08-03T12:31:26+05:30
[extra]
tags = "void linux, termite, terminal, linux, systems"
+++
Termite is a VTE-based terminal emulator for GNU/Linux, which is available as a package on most Linux distribution repositories, but not on Void Linux. This is because termite uses a custom VTE build which isn't (and won't be) included in the void packages repository.[^void-packages]
In this post, I'll show you how to build and install termite on Void Linux.
<!-- more -->
{% message() %}
Even though termite is a pretty solid choice for a terminal emulator, I suggest checking out Alacritty[^alacritty], which is a GPU-accelerated terminal emulator and is [available](https://github.com/void-linux/void-packages/blob/master/srcpkgs/alacritty/template) in the Void Linux repository.
{% end %}
## Build Dependencies
We need to install some dependencies to set up the custom VTE build and compile termite. Luckily enough, all the required dependencies are available in the Void Linux repository.
```sh
$ sudo xbps-install -Sy git gcc make automake autoconf gtk-doc glib-devel \
vala-devel gobject-introspection pkg-config intltool \
gettext-devel gnutls gnutls-devel gtk+3 gtk+3-devel \
pango pango-devel gperf pcre2-devel
```
## Building VTE-ng
Make sure all of the dependencies have been installed before proceeding. We'll now be compiling a custom VTE build, VTE-ng. If you do not have a build directory yet, making one would help with better organization.
```sh
$ mkdir build && cd build
```
We then need to clone the VTE-ng git repository and checkout the latest versioned branch.
```sh
$ git clone https://github.com/jelly/vte-ng.git
$ cd vte-ng
$ git checkout 0.50.2-ng
```
It is now time to configure and build vte-ng. We need to add `--prefix=/usr` while configuring so that it installs the library to `/usr` and not `/usr/local`, which is not used by Void Linux. Unless you choose to add it to your `$PATH`, of course.
```sh
$ ./autogen.sh --prefix=/usr
$ make
$ sudo make install
```
That's it for the custom VTE build.
## Building Termite
To build and install termite, we need to go back to the build directory and clone the termite git repository. We'll clone it recursively as termite requires some git submodules.
```sh
$ cd $BUILDDIR
$ git clone --recursive https://github.com/thestinger/termite.git
$ cd termite
```
We do not need to configure anything in here since everything is hardcoded in the Makefile. Although we still need to edit the Makefile to make termite install to `/usr` and not `/usr/local`. We can do this using sed, and then finally make and install termite.
```sh
$ sed 's/PREFIX = \/usr\/local/PREFIX = \/usr/' -i Makefile
$ make
$ sudo make install
```
That's all. If everything goes well, you should end up with termite installed on your system.
[^void-packages]: [GitHub: On why termite won't be included in void-packages](https://github.com/void-linux/void-packages/issues/9769#issuecomment-472585514)
[^alacritty]: [Alacritty: A cross-platform, GPU-accelerated terminal emulator](https://github.com/alacritty/alacritty)