Top Related Projects
A cross-platform, OpenGL terminal emulator.
Cross-platform, fast, feature-rich, GPU based terminal
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
A terminal built on web technologies
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:
- Right-click in the terminal window
- Select "Split Right" or "Split Down"
To customize Tilix:
- Open Tilix
- Click on the hamburger menu in the top-right corner
- Select "Preferences"
- 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
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.
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.
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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
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
Top Related Projects
A cross-platform, OpenGL terminal emulator.
Cross-platform, fast, feature-rich, GPU based terminal
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
A terminal built on web technologies
tmux source code
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot