Stable v0.1.0

garterm

GPU-accelerated terminal emulator for the gardesk desktop

garterm is a modern terminal emulator with GPU-accelerated rendering via wgpu, tabs, split panes, configurable keybindings, and Lua scripting support. It integrates with the gar ecosystem through shared configuration and IPC, supporting sessions, color schemes, and extensive customization.

🎯 RPM Available

Installation

Using DNF (Recommended)

$sudo dnf config-manager --add-repo https://repos.musicsian.com/musicsian.repo
$sudo dnf install garterm

Building from Source

$git clone https://github.com/espadon/gardesk.git
$cd gardesk/garterm
$cargo build --release
$sudo cp target/release/garterm /usr/local/bin/
$sudo cp target/release/gartermctl /usr/local/bin/

Quick Start

$# Launch terminal with default shell
$garterm
$# Run a specific command
$garterm -e htop
$# Set working directory
$garterm --working-directory ~/projects
$# Use custom config
$garterm -c ~/.config/garterm/custom.toml

Keyboard Shortcuts Quick Reference

Tabs

  • Alt+T - New tab
  • Alt+W - Close tab/pane
  • Alt+] / Alt+[ - Next/prev tab
  • Alt+1-9 - Jump to tab

Splits

  • Alt+H - Split horizontal
  • Alt+V - Split vertical
  • Alt+Arrow - Focus pane direction
  • Ctrl+Shift+Alt+Arrow - Resize pane

Clipboard

  • Ctrl+Shift+C - Copy selection
  • Ctrl+Shift+V - Paste clipboard
  • Select text auto-copies to PRIMARY
  • Middle-click pastes PRIMARY

Other

  • Ctrl+Shift+=/-/0 - Zoom in/out/reset
  • Ctrl+Shift+F - Search scrollback
  • F11 - Toggle fullscreen
  • Ctrl+Shift+R - Reload config

Features

GPU Rendering

Vulkan-first rendering via wgpu with OpenGL fallback. Glyph atlas caching for fast redraws.

Tabs & Split Panes

Multiple tabs with BSP tree-based split layouts. Each pane has independent PTY and state.

Lua & TOML Config

Configure via TOML or integrate with gar's init.lua for shared settings and sessions.

Color Schemes

Built-in presets: Tokyo Night, Catppuccin, Dracula, Nord, Solarized, Gruvbox, One Dark.

URL Detection

Clickable URLs with configurable modifier key. Opens in default browser via xdg-open.

Sessions

Define named sessions in Lua with tab layouts, commands, and working directories.