# Guake

> Drop-down terminal for GNOME and other Linux desktops, written in Python with GTK 3 and VTE, toggled with a hotkey.

Stars: 4.7k · Language: Python · License: GPL-2.0 · Platforms: Linux, BSD · Config: gsettings

Features: built-in multiplexer, configurable

- Repository: https://github.com/Guake/guake
- Page: https://www.trmn.sh/terminals/guake

## Overview

Guake is a drop-down terminal for Linux written in Python with GTK 3 and the VTE terminal widget. It slides down from the top of the screen when you press a hotkey (F12 by default) and hides again on the next press, in the style of the console in first-person-shooter games. It was made for GNOME but runs on other desktops, and suits people who want a terminal one key away without managing a separate window.

Settings are stored in GSettings/dconf under `/org/guake/` and edited through the preferences dialog (`guake -p`). `guake --save-preferences FILE` and `guake --restore-preferences FILE` export and import them. The dialog covers window size and position, the monitor to open on, transparency, fonts, a large set of bundled color palettes, a separate GTK theme, and global and local key bindings. A startup script can run when Guake starts.

Each tab can be split vertically or horizontally, and tabs and splits can be saved and restored between sessions. Most actions are available from the command line and over D-Bus, for example `guake -n` for a new tab, `--split-vertical`, `-e` to run a command in a tab, `--rename-current-tab` and `--change-palette`. Quick Open recognizes file paths and line numbers in output such as gcc errors, Python tracebacks and pytest reports and opens them in a configured editor with Ctrl+click. URLs and OSC 8 hyperlinks are clickable, and a per-directory `.guake.yml` file can set a tab's title.

Rendering, text handling and escape-sequence support come from VTE, so Guake has no GPU renderer of its own, no programming-font ligatures, and does not enable VTE's Sixel image support. On Wayland the built-in global hotkey may not work, and the documentation recommends binding `guake-toggle` as a custom shortcut in the desktop's keyboard settings instead.

## Alternatives

- [Windows Terminal](https://www.trmn.sh/terminals/windows-terminal.md): Microsoft's terminal for Windows that hosts PowerShell, cmd and WSL shells in tabs and panes, with GPU text rendering and JSON settings. (Windows, 105.3k stars)
- [Tabby](https://www.trmn.sh/terminals/tabby.md): Cross-platform Electron terminal with a built-in SSH, Telnet and serial client, saved connection profiles and a plugin system. (Linux/macOS/Windows, 75.2k stars)
- [Alacritty](https://www.trmn.sh/terminals/alacritty.md): Cross-platform OpenGL terminal emulator written in Rust, configured with a TOML file and leaving tabs and splits to a multiplexer like tmux. (Linux/macOS/Windows/BSD, 66.1k stars)
- [Warp](https://www.trmn.sh/terminals/warp.md): Terminal written in Rust with an IDE-style command editor, command output grouped into blocks, and built-in AI agents. (macOS/Linux/Windows, 65.7k stars)
- [Termux](https://www.trmn.sh/terminals/termux.md): Android terminal emulator and Linux environment that installs packages through its own apt repository, no root required. (Android, 63.6k stars)
- [Ghostty](https://www.trmn.sh/terminals/ghostty.md): Terminal emulator written in Zig with GPU rendering and a native UI on each platform: Swift/AppKit on macOS, GTK on Linux. (Linux/macOS, 62.8k stars)
- [Hyper](https://www.trmn.sh/terminals/hyper.md): Electron terminal built on HTML, CSS and JavaScript, themed and extended through npm plugins. (Linux/macOS/Windows, 44.8k stars)
- [Kitty](https://www.trmn.sh/terminals/kitty.md): GPU-rendered terminal written in C and Python, with its own graphics protocol, built-in tabs and splits, and scriptable 'kittens'. (Linux/macOS/BSD, 35.5k stars)

## Guides

- [Best Drop-Down (Quake-Style) Terminals](https://www.trmn.sh/best/drop-down-terminals): Guake, Yakuake, Tabby and Windows Terminal compared as hotkey-toggled drop-down terminals on Linux, KDE, macOS and Windows.

---

Canonical: https://www.trmn.sh/terminals/guake
