Drop-down Terminal

Posted on 4 2026

The concept comes from the Quake game engine, where pressing a key slides a console down from the top of the screen. Applied to a desktop terminal, it means you always have a shell one keypress away, without managing a terminal window in the taskbar, without switching workspaces, without breaking your current focus. Press the key, run a command, press the key again. Gone.

The source material covers Guake, which is the GNOME implementation. On Kubuntu, the native KDE equivalent is Yakuake. Both work on KDE Plasma, but Yakuake integrates more cleanly: it uses the KDE terminal engine (Konsole), respects KDE themes, stores its configuration in the KDE config system, and does not pull in GTK dependencies. The recommendation for Kubuntu is Yakuake. Guake is documented below for completeness.

Yakuake

Installation

sudo apt install yakuake

First launch

Yakuake does not start automatically after installation. Launch it once from the application launcher or the terminal:

yakuake &

On first launch, Yakuake shows a brief welcome dialog and lets you set the toggle shortcut. The default is F12. Confirm and close the dialog.

Enable Yakuake to start automatically at login: the first-launch dialog offers this, or configure it via System Settings > Startup and Shutdown > Autostart > Add Application > Yakuake.

Basic use

Press F12. A terminal slides down from the top of the screen, taking up roughly half the screen height by default. Press F12 again and it slides back up.

The terminal runs a full Konsole session. Every feature of Konsole is available: tabs, split view, profiles, SSH bookmarks, and the tmux integration configured in the toolbox section.

Configuration

Right-click anywhere in the Yakuake window and select Configure Yakuake, or access it via the Yakuake settings icon in the toolbar.

Key settings worth adjusting:

Behaviour tab:

  • Open/Retract animation duration: reduce to 0 for an instant show/hide
  • Focus terminal when shown: enable, so you can type immediately without clicking
  • Show when mouse pointer touches screen edge: personal preference, can be distracting

Appearance tab:

  • Height: 40-50% of screen height is practical for most work
  • Width: 100% for full-width, or less if you prefer a narrower console
  • Opacity: adjust to taste. Partial transparency lets you see the content behind the terminal

Keyboard shortcuts tab:

Set the toggle shortcut to whatever feels natural. F12 is the standard choice. If you prefer not to use a function key, Ctrl+`` (backtick) or Super+T` work well.

Named tabs with startup commands

Yakuake tabs can be named and configured to run specific commands on startup, similar to the Guake startup script approach. Create a startup script at ~/.config/yakuake-startup.sh:

#!/usr/bin/env bash
# Yakuake startup: configure named tabs
# Called from KDE autostart after Yakuake has started

# Wait for Yakuake to be ready
sleep 1

# Rename the default tab
qdbus org.kde.yakuake /yakuake/sessions renameSession \
    "$(qdbus org.kde.yakuake /yakuake/sessions activeSessionId)" \
    "shell"

# Create a monitoring tab with btop
qdbus org.kde.yakuake /yakuake/sessions addSession
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal \
    "$(qdbus org.kde.yakuake /yakuake/sessions activeSessionId)" \
    "btop"
qdbus org.kde.yakuake /yakuake/sessions renameSession \
    "$(qdbus org.kde.yakuake /yakuake/sessions activeSessionId)" \
    "monitor"

# Create a logs tab
qdbus org.kde.yakuake /yakuake/sessions addSession
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal \
    "$(qdbus org.kde.yakuake /yakuake/sessions activeSessionId)" \
    "journalctl --follow --full"
qdbus org.kde.yakuake /yakuake/sessions renameSession \
    "$(qdbus org.kde.yakuake /yakuake/sessions activeSessionId)" \
    "journal"

# Switch back to the first tab
qdbus org.kde.yakuake /yakuake/sessions raiseSession 0

Make it executable:

chmod +x ~/.config/yakuake-startup.sh

Add it to KDE autostart after Yakuake: System Settings > Startup and Shutdown > Autostart > Add Script, and point it at ~/.config/yakuake-startup.sh. Set it to run after Yakuake.

D-Bus control

Yakuake exposes a D-Bus interface that allows controlling it from scripts and other applications:

# Toggle visibility
qdbus org.kde.yakuake /yakuake/window toggleWindowState

# Open a new tab
qdbus org.kde.yakuake /yakuake/sessions addSession

# Run a command in the current tab
qdbus org.kde.yakuake /yakuake/sessions runCommandInTerminal \
    "$(qdbus org.kde.yakuake /yakuake/sessions activeSessionId)" \
    "ssh server.yourdomain.net"

This is useful for creating keyboard shortcuts that open Yakuake and immediately connect to a specific server, or for launching Yakuake with a specific working directory from another application.


Guake

Guake is the GNOME equivalent of Yakuake. It works on KDE Plasma but uses GTK and does not integrate with KDE’s configuration system. On Kubuntu, Yakuake is the better choice. Guake is documented here for anyone who prefers it or who needs it for GNOME compatibility.

Installation

sudo apt install guake

First launch

guake &

Set Guake to start at login: System Settings > Startup and Shutdown > Autostart > Add Application > Guake.

Configuration

Right-click the Guake window and select Preferences, or run:

guake --preferences

Configure the keyboard shortcut, appearance, and startup behaviour. The default toggle key is F12, which will conflict with Yakuake if both are installed. Change one of them if you intend to run both.

Startup script

Guake supports running a script on startup to configure tabs. Set the script path in Preferences > Hooks > On start. Create ~/.config/guake-startup.sh:

#!/usr/bin/env bash
# Guake startup: configure named tabs

sleep 2

# Rename first tab
guake --rename-current-tab="shell"

# Add a monitoring tab
guake --new-tab
guake --execute-command="btop"
guake --rename-current-tab="monitor"

# Add a logs tab
guake --new-tab
guake --execute-command="journalctl --follow --full"
guake --rename-current-tab="journal"

# Return to first tab
guake --select-tab=0
chmod +x ~/.config/guake-startup.sh

Choosing between them

On Kubuntu, Yakuake is the right choice. It is the KDE-native implementation, uses Konsole as its terminal backend, and integrates properly with the KDE desktop. Guake works but brings GTK dependencies and does not feel at home in the KDE environment.

The only reason to choose Guake on Kubuntu is if you are specifically configuring a multi-desktop environment and want consistent behaviour between GNOME and KDE sessions.

Both Yakuake and Guake default to F12 as the toggle shortcut. If you install both or have another application using F12, change the shortcut in one of them to avoid conflicts.