Convert Figma logo to code with AI

gnunn1 logotilix

A tiling terminal emulator for Linux using GTK+ 3

5,382
293
5,382
419

Top Related Projects

55,502

A cross-platform, OpenGL terminal emulator.

23,729

Cross-platform, fast, feature-rich, GPU based terminal

16,583

A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust

43,192

A terminal built on web technologies

34,383

tmux source code

Quick Overview

Tilix is a tiling terminal emulator for Linux systems using GTK+ 3. It provides a highly customizable interface with advanced features like splitting terminals, drag and drop functionality, and session management. Tilix aims to follow the GNOME Human Interface Guidelines for a consistent user experience.

Pros

  • Advanced tiling capabilities with intuitive drag and drop interface
  • Extensive customization options for appearance and behavior
  • Session management for saving and restoring terminal layouts
  • Integration with GNOME desktop environment

Cons

  • Limited to Linux systems, not available for Windows or macOS
  • May have higher resource usage compared to simpler terminal emulators
  • Learning curve for users accustomed to traditional terminal emulators
  • Occasional bugs or stability issues reported by some users

Getting Started

To install Tilix on Ubuntu or Debian-based systems:

sudo apt update
sudo apt install tilix

For Fedora:

sudo dnf install tilix

After installation, you can launch Tilix from your application menu or by running tilix in the terminal.

To create a new terminal split:

  1. Right-click in the terminal window
  2. Select "Split Right" or "Split Down"

To customize Tilix:

  1. Open Tilix
  2. Click on the hamburger menu in the top-right corner
  3. Select "Preferences"
  4. Explore the various tabs to customize appearance, behavior, and shortcuts

For more detailed information and advanced usage, refer to the official documentation on the GitHub repository.

Competitor Comparisons

55,502

A cross-platform, OpenGL terminal emulator.

Pros of Alacritty

  • Faster performance due to GPU acceleration
  • Cross-platform support (Linux, macOS, Windows)
  • Minimal resource usage

Cons of Alacritty

  • Limited built-in features compared to Tilix
  • Steeper learning curve for configuration
  • No built-in tab or split-pane functionality

Code Comparison

Tilix (VTE-based terminal emulator):

public class Terminal : Gtk.Box, ITerminal {
    private Vte.Terminal terminal;
    
    public Terminal() {
        terminal = new Vte.Terminal();
        add(terminal);
    }
}

Alacritty (Rust-based terminal emulator):

pub struct Term<T: EventListener> {
    pub grid: Grid<Cell>,
    pub cursor: Cursor,
    pub vi_mode_cursor: ViModeCursor,
    pub event_proxy: T,
}

Both projects are terminal emulators, but they differ in their implementation and feature sets. Tilix is a more feature-rich terminal emulator with a graphical interface, while Alacritty focuses on performance and minimalism. Tilix uses the VTE (Virtual Terminal Emulator) library, while Alacritty is built from scratch in Rust for optimal performance. The code snippets show the different approaches: Tilix wraps the VTE terminal in a Gtk widget, while Alacritty implements its own terminal structure.

23,729

Cross-platform, fast, feature-rich, GPU based terminal

Pros of Kitty

  • Faster rendering due to GPU acceleration
  • More customizable with extensive configuration options
  • Cross-platform support (Linux, macOS, BSD)

Cons of Kitty

  • Steeper learning curve for configuration
  • Less intuitive GUI for settings management

Code Comparison

Kitty configuration (kitty.conf):

font_family      Fira Code
font_size        12.0
background_opacity 0.9

Tilix configuration (via dconf):

[/]
terminal-title-style='small'
theme-variant='dark'

Key Differences

  • Kitty is a single-window terminal emulator, while Tilix supports multiple panes and tabs
  • Tilix offers a more traditional GUI experience, whereas Kitty focuses on keyboard-driven workflows
  • Kitty has built-in support for ligatures and color emoji, which Tilix may require additional setup

Performance

Kitty generally offers better performance, especially for rendering complex text and graphics, due to its GPU acceleration. Tilix, while still efficient, may not match Kitty's speed in certain scenarios.

Customization

Both terminals are highly customizable, but Kitty's text-based configuration file allows for more granular control. Tilix relies more on GUI settings and dconf for customization.

User Experience

Tilix provides a more familiar interface for users accustomed to traditional terminal emulators, while Kitty caters to power users who prefer keyboard-centric control and extensive customization options.

16,583

A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust

Pros of WezTerm

  • Cross-platform support (Windows, macOS, Linux)
  • GPU-accelerated rendering for improved performance
  • Extensive configuration options via Lua scripting

Cons of WezTerm

  • Steeper learning curve due to Lua configuration
  • Larger resource footprint compared to Tilix

Code Comparison

WezTerm configuration (Lua):

return {
  font = wezterm.font("JetBrains Mono"),
  color_scheme = "Dracula",
  default_prog = {"zsh"},
  use_fancy_tab_bar = false,
}

Tilix configuration (Dconf):

[/]
prompt-on-close=true
quake-height-percent=40
quake-specific-monitor=0
theme-variant='dark'

Key Differences

  • WezTerm is a standalone terminal emulator, while Tilix is a tiling terminal emulator for GNOME
  • WezTerm uses Lua for configuration, offering more flexibility but requiring more setup
  • Tilix integrates well with the GNOME desktop environment, providing a native look and feel
  • WezTerm focuses on cross-platform compatibility and performance, while Tilix emphasizes ease of use and integration with GNOME

Both projects are actively maintained and offer unique features catering to different user preferences and needs.

43,192

A terminal built on web technologies

Pros of Hyper

  • Built with web technologies (HTML, CSS, JavaScript), making it highly customizable and extensible
  • Cross-platform support (Windows, macOS, Linux)
  • Large ecosystem of plugins and themes

Cons of Hyper

  • Performance can be slower compared to native terminal emulators
  • Higher memory usage due to Electron framework
  • May lack some advanced features found in traditional terminal emulators

Code Comparison

Tilix (VTE-based terminal emulator):

public class Terminal : Gtk.Box, ITerminal {
    private Vte.Terminal terminal;
    
    public Terminal() {
        terminal = new Vte.Terminal();
        add(terminal);
    }
}

Hyper (Web-based terminal emulator):

class Term extends React.Component {
  constructor(props) {
    super(props);
    this.term = new Terminal();
    this.term.open(this.termRef.current);
  }
}

The code snippets illustrate the fundamental difference in implementation between Tilix (using VTE and GTK) and Hyper (using web technologies and React). Tilix leverages native libraries for terminal emulation, while Hyper uses a JavaScript-based approach with xterm.js.

34,383

tmux source code

Pros of tmux

  • Lightweight and runs in terminal, usable over SSH
  • Highly customizable with extensive scripting capabilities
  • Session persistence across network disconnects

Cons of tmux

  • Steeper learning curve, less intuitive for beginners
  • Limited GUI features and visual customization options
  • No built-in drag-and-drop support for panes/windows

Code Comparison

tmux configuration example:

# ~/.tmux.conf
set -g mouse on
bind-key v split-window -h
bind-key s split-window -v
set -g status-bg black
set -g status-fg white

Tilix configuration (via GUI or dconf):

dconf write /com/gexperts/Tilix/theme-variant "'dark'"
dconf write /com/gexperts/Tilix/window-style "'borderless'"
dconf write /com/gexperts/Tilix/prompt-on-close false

Summary

tmux is a powerful, terminal-based multiplexer with excellent session management and customization options. It's ideal for remote work and users comfortable with command-line interfaces. Tilix, on the other hand, offers a more user-friendly GUI experience with drag-and-drop functionality and easier visual customization. While tmux excels in flexibility and performance, Tilix provides a more accessible and visually appealing environment for those who prefer a modern desktop terminal experience.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Build Status Translation status

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.

: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!

Screenshot

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 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)
  • Experimental badge support (Requires patched VTE, see wiki)

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 (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 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 in order to assist with translations, please do not submit direct pull requests to this repository for translations.

Building

Tilix is written in D 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 (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 for more information.

Build Dependencies

Tilix depends on the following libraries as defined in dub.json:

  • gtkd >= 3.8.2
  • gdk-pixbuf-pixdata (Used when building resource file)

Install Tilix

Tilix is available as 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