Back to rankings

liamg/darktile

Go

:waning_crescent_moon: Darktile is an experimental/abandoned GPU rendered terminal emulator designed for tiling window managers.

terminalvt100xtermxterm-256coloropenglgolangterminal-emulatorterminal-emulators
Star Growth
Stars
3.1k
Forks
116
Weekly Growth
Issues
36
1k2k3k
Jan 2023Mar 2024May 2025Jul 2026
ArtifactsGo Modulesgo get github.com/liamg/darktile
README

Darktile

Darktile is a GPU rendered terminal emulator designed for tiling window managers.

Demo

Features

  • GPU rendering
  • Unicode support
  • Variety of themes available (or build your own!)
  • Compiled-in powerline font
  • Works with your favourite monospaced TTF/OTF fonts
  • Font ligatures (turn it off if you're not a ligature fan)
  • Hints: Context-aware overlays e.g. hex colour viewer, octal permission annotation
  • Take screenshots with a single key-binding
  • Sixels
  • Window transparency (0-100%)
  • Customisable cursor (most popular image formats supported)

Installation

Install dependencies:

  • xorg-dev
  • libgl1-mesa-dev

Grab a binary from the latest release, chmod +x it and place it in your $PATH.

If you're too lazy to do the above and you like to live life on the edge, you can pipe this script to sudo:

curl -s "https://raw.githubusercontent.com/liamg/darktile/main/scripts/install.sh" | sudo bash

Configuration

Configuration files should be created in $XDG_CONFIG_HOME/darktile/ if the variable is defined, otherwise in $HOME/.config/darktile/.

If you wish, you can create an example config file as a starting point using darktile --rewrite-config.

Darktile will use sensible defaults if no config/theme files are available. The same applies when you omit settings from config/theme files, meaning it is perfectly valid to start with empty config/theme files and add to them as required to override the default behaviour.

Config File

Found in the config directory (see above) inside config.yaml.

opacity: 1.0       # Window opacity: 0.0 is fully transparent, 1.0 is fully opaque
font:
  family: ""       # Font family. Find possible values for this by running 'darktile list-fonts'
  size: 16         # Font size
  dpi: 72          # DPI
  ligatures: true  # Enable font ligatures e.g. render '≡' instead of '==='
cursor:
  image: ""        # Path to an image to render as your cursor (defaults to standard rectangular cursor)

Example Theme

Found in the config directory (see above) inside theme.yaml. You can replace this file with a symlink or any theme file from darktile-themes.

black: '#1d1f21'
red: '#cc6666'
green: '#b5bd68'
yellow: '#f0c674'
blue: '#81a2be'
magenta: '#b294bb'
cyan: '#8abeb7'
white: '#c5c8c6'
brightblack: '#666666'
brightred: '#d54e53'
brightgreen: '#b9ca4a'
brightyellow: '#e7c547'
brightblue: '#7aa6da'
brightmagenta: '#c397d8'
brightcyan: '#70c0b1'
brightwhite: '#eaeaea'
background: '#1d1f21'
foreground: '#c5c8c6'
selectionbackground: '#aa8800'
selectionforeground: '#ffffff'
cursorforeground: '#1d1f21'
cursorbackground: '#c5c8c6'

Key Bindings

Action Binding
Copy ctrl + shift + C
Paste ctrl + shift + V
Decrease font size ctrl + -
Increase font size ctrl + =
Take screenshot ctrl + shift + [
Open URL ctrl + click

FAQ

What happened to Aminal?

The name changed as a result of a near-complete rewrite of Aminal. Also, Google's "did you mean animal?" was getting pretty annoying.

Did Darktile drop Windows/OSX support?

While the project likely won't need much work to build on Windows/OSX, the focus is to develop Darktile for tiling window managers under Linux. If you'd like to get Darktile working for other environments, pull requests are always very welcome, especially when preceded by issues/discussion.

Related repositories
ohmyzsh/ohmyzsh

🙃 A delightful community-driven (with 2,500+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.

ShellMIT Licenseshellzsh-configuration
ohmyz.sh
188.7k26.5k
microsoft/terminal

The new Windows Terminal and the original Windows console host, all in the same place!

C++MIT Licenseconsoleterminal
104.3k9.4k
jesseduffield/lazygit

simple terminal UI for git commands

GoGo ModulesMIT Licensecligit
80.6k2.9k
Eugeny/tabby

A terminal for a more modern age

TypeScriptnpmMIT Licenseterminal-emulatorsterminal
tabby.sh
73.4k4.2k
alacritty/alacritty

A cross-platform, OpenGL terminal emulator.

Rustcrates.ioApache License 2.0terminal-emulatorsopengl
alacritty.org
65k3.5k
warpdotdev/warp

Warp is an agentic development environment, born out of the terminal.

Rustcrates.ioGNU Affero General Public License v3.0rustlinux
warp.dev
63.5k5.3k
tldr-pages/tldr

Collaborative cheatsheets for console commands 📚.

MarkdownOthershellman-page
tldr.sh
63.2k5.3k
sharkdp/bat

A cat(1) clone with wings.

Rustcrates.ioApache License 2.0command-linetool
59.8k1.6k
termux/termux-app

Termux - a terminal emulator application for Android OS extendible by variety of packages.

JavaMavenOtherandroidterminal
f-droid.org/en/packages/com.termux
57.9k7k
Textualize/rich

Rich is a Python library for rich text and beautiful formatting in the terminal.

PythonPyPIMIT Licensepythonpython3
rich.readthedocs.io/en/latest/
56.9k2.3k
GitSquared/edex-ui

A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.

JavaScriptnpmGNU General Public License v3.0terminalscience-fiction
45k3.2k
vercel/hyper

A terminal built on web technologies

TypeScriptnpmMIT Licenseterminaljavascript
hyper.is
44.7k3.6k