## File: README.md [](https://hosted.weblate.org/engage/tilix/?utm_source=widget) # Tilix A tiling terminal emulator for Linux using GTK+ 3. The Tilix web site for users is available at [https://gnunn1.github.io/tilix-web](https://gnunn1.github.io/tilix-web). > :warning: **Maintainers Wanted** > This project is looking for maintainers! > At the moment, only very minimal maintenance is done, no new features will be implemented and pull-requests may be reviewed very slowly. > > If you are interested in giving Tilix some :heart:, [please chime in](https://github.com/gnunn1/tilix/issues/1700)! ###### Screenshot ### About Tilix is a tiling terminal emulator which uses the VTE GTK+ 3 widget with the following features: * Layout terminals in any fashion by splitting them horizontally or vertically * Terminals can be re-arranged using drag and drop both within and between windows * Terminals can be detached into a new window via drag and drop * Tabs or sidebar list current sessions * Input can be synchronized between terminals so commands typed in one terminal are replicated to the others * The grouping of terminals can be saved and loaded from disk * Terminals support custom titles * Color schemes are stored in files and custom color schemes can be created by simply creating a new file * Transparent background * Background images * [Quake mode](https://github.com/gnunn1/tilix/wiki/Quake-Mode) support (i.e. drop-down terminal) * Custom hyperlinks * Automatic (triggered) profile switches based on hostname and directory * Supports notifications when processes are completed out of view. Requires the Fedora notification patches for VTE * Experimental trigger support (Requires patched VTE, see [wiki](https://github.com/gnunn1/tilix/wiki/Automatic-(Triggered)-Profile-Switching)) * Experimental badge support (Requires patched VTE, see [wiki](https://github.com/gnunn1/tilix/wiki/Badges)) The application was written using GTK 3 and an effort was made to conform to GNOME Human Interface Guidelines (HIG). As a result, it does use CSD (i.e. the GTK HeaderBar) though it can be disabled if necessary. Other than GNOME, only Unity has been tested officially though users have had success with other desktop environments. ### Dependencies Tilix requires the following libraries to be installed in order to run: * GTK 3.18 or later (Tilix 1.8.3 or later, earlier versions supported GTK 3.14) * GTK VTE 0.46 or later * dconf * GSettings * [Nautilus-Python](https://wiki.gnome.org/Projects/NautilusPython) (Required for Nautilus integration) ### Migrating Settings From Terminix Terminix was recently re-named to Tilix and as a result the settings key changed. To migrate your settings to Tilix, please perform the following steps: ``` dconf dump /com/gexperts/Terminix/ > terminix.dconf dconf load /com/gexperts/Tilix/ < terminix.dconf ``` This will export your settings from the Terminix key in dconf and re-import them into the Tilix key. Note that this will work even after you have uninstalled the Terminix schema, since the user customized settings are available even after the schema got removed, and the default settings are identical between the two and thus do not matter. Once you have imported the settings and everything is ok you can clear the old Terminix settings with: ``` dconf reset -f /com/gexperts/Terminix/ ``` Finally to copy the bookmarks and custom themes just do: ``` mv ~/.config/terminix ~/.config/tilix ``` ### Optional Fonts In some of the screenshots, the `powerline` statusline shell plugin is used. In order to ensure it works well, you may need to install its [fonts](https://github.com/powerline/fonts) and ensure Tilix is aware of them. They can be installed via `sudo apt install fonts-powerline` on Debian/Ubuntu and `sudo dnf install powerline-fonts` on Fedora/RedHat-based Linux distributions. After installing the fonts, select the "Powerline Symbols" font in Tilix via **Preferences -> Default -> Custom Font**. Sessions are updated automatically. ### Support If you are having issues with Tilix, feel free to open issues here in github as necessary. ### Localization Tilix is localized using Weblate, please visit the Weblate hosted [Tilix translations site](https://hosted.weblate.org/projects/tilix/translations) in order to assist with translations, please do not submit direct pull requests to this repository for translations. ### Building Tilix is written in [D](https://dlang.org/) and GTK 3 using the gtkd framework. This project uses dub to manage the build process including fetching the dependencies, thus there is no need to install dependencies manually. The only thing you need to install to build the application is the D tools (compiler and Phobos) along with dub itself. Note that D supports three [compilers](https://wiki.dlang.org/Compilers) (DMD, GDC and LDC) but Tilix only supports DMD and LDC. Once you have those installed, compiling the application is a one line command as follows: ``` dub build --build=release ``` The application depends on various resources to function correctly, run `sudo ./install.sh` to build and copy all of the resources to the correct locations. Note this has only been tested on Arch Linux, use with caution. Note : `install.sh` will install Tilix to your `/usr` directory. If you are interested in installing Tilix to a custom location, you can specify the `PREFIX` as an argument to the `install.sh` script (e.g : `./install.sh $HOME/.local` will install Tilix into `$HOME/.local`). However, this requires you to add your `$PREFIX/share` directory to your `$XDG_DATA_DIRS` environment variable. Note there is also support for building with the Meson buildsystem, please see the wiki page on [Meson](https://github.com/gnunn1/tilix/wiki/Building-with-Meson) for more information. #### Build Dependencies Tilix depends on the following libraries as defined in dub.json: * [gtkd](http://gtkd.org/) >= 3.11.0 * gdk-pixbuf-pixdata (Used when building resource file) ### Install Tilix Tilix is available as [packages](https://gnunn1.github.io/tilix-web/#packages) for a variety of distributions. #### Uninstall Tilix This method only applies if you installed Tilix manually using the install instructions. If you installed Tilix from a distribution package then use your package manager to remove tilix, do not use these instructions. Download the uninstall.sh script from this repository and then open a terminal (not Tilix!) in the directory where you saved it. First set the executable flag on the script: ``` chmod +x uninstall.sh ``` and then execute it: ``` sudo sh uninstall.sh ``` --- ## File: experimental/vte/README.md ## Introduction This folder contains patches to the GTK 3 VTE widget to support additional functionality in Terminix. The VTE widget provides the actual underlying terminal emulation and is used by many terminal emulators including gnome-terminal, terminator, xfce4-terminal, etc. Since the VTE is the component providing the terminal emulation, there is a limit to what Terminix can do in terms of supporting features. The VTE widget quite rightly abstracts a lot of this and provides higher level functionality to the enclosing application. Anything that involves interacting with the other underlying terminal emulation such as handling OSC codes, understanding the alternate screem, etc may require changes in the VTE to support. In an ideal world the patches available here would be upstreamed or equivalent functionality provided by upstream. Upstream typically prefers higher level patches that fully encompass the functionality to benefit all of the terminal emulators that depend on VTE, and this is the right approach in my opinion. However time is not infinite and my skills with C are limited so it's not always possible to make this happen. As well, sometimes I want to POC some piece of functionality before making a full commitment to implement it in VTE and a tactical approach is used in these cases. Generally the patches contained here should be considered experimental and applied cautiously. If you are not comfortable with development you are probably better off avoiding them. Finally note that applying these patches can break other terminal emulators depending on VTE, I make no guarentee of fitness or suitability. ## Patches The following patches are available: | Patch | Compatible | Description | |---|---|---| | alternate-screen.patch| Yes | This patch adds a new event to the VTE that signals when the terminal switches between normal and alternate screens. This patch is required to support triggers which are deactivated in Terminix unless this new event is detected as being available. Note that if this patch is applied with the fedora-notifications patch, the padding field in /src/vte/vteterminal.h must be decremented from 15 to 14 since that patch also adds a new event. Failure to do so will break gnome-terminal. |disable-bg-draw.patch| Yes| This patch adds a new property to the VTE that disables the background draw and allows the application to assume responsibility for it. In Terminix this is used to support badges, however if it gets accepted by upstream some of the other features like background image will leverage it in teh future. | ## Testing Patches To test these patches, you will need to manually compile the vte widget. To do so, first clone the VTE git respository: ``` git clone https://github.com/GNOME/vte ``` Next you will need to select either the 0.44 or 0.46 branches, these patches should work with either: ``` cd vte git checkout vte-0-46 ``` At this point we can apply the patches. Copy the patches into the vte directory and then run the following: ``` patch -p1 -i alternate-screen.patch patch -p1 -i disable-bg-draw.patch ``` Finally build vte as normal: ``` ./autogen.sh make ``` And finally to run terminix with the patched VTE: ``` LD_PRELOAD=src/.libs/libvte-2.91.so terminix ``` --- ## File: experimental/flatpak/README.md ### Building Tilix Flatpak Bundle This folder contains the scripts required to build Tilix as an Flatpak bundle. Flatpak allows desktop applications to be distributed independently of traditional Linux package managers, applications distributed in this way run in a sandboxed environment. Additional information on Flatpak can be found [here](http://flatpak.org/). The first step to building the Tilix Flatpak Bundle is to install the flatpak framework. This will vary by distribution, see [Getting Flatpak](http://flatpak.org/getting.html). Once that is done you will need to install the Gnome runtimes, this can be done by following the instructions on the [Flatpak wiki](http://docs.flatpak.org/en/latest/getting-setup.html). The specific steps you need are as follows: ) ``` flatpak install flathub org.gnome.Sdk//3.30 flatpak install flathub org.gnome.Platform//3.30 ``` With all the dependencies in place, you can now build the bundle: ``` flatpak-builder --install flatpak-builder com.gexperts.Tilix.yaml ``` And then run the application: ``` flatpak run com.gexperts.Tilix ``` --- ## File: source/x11/README.md ## Notice This is an extract of some specific files from the [x11](https://github.com/nomad-software/x11) repository. This was done instead of linking to it via DUB because DUB isn't well supported by Linux distro's so add adding dub libraries is problematic. Longer term this solution obviously does not scale, the hope is that DUB becomes better supported or an alternate build system like meson could be adapted to fit the bill.