{
  "markdown": "# Ghostty Quick Terminal for GNOME Shell\n\nA drop-down terminal for GNOME on Wayland, rendered by Ghostty.\n\nGhostty has a quick terminal of its own, but on Linux it needs the\n`wlr-layer-shell` protocol, and Mutter does not implement it. On GNOME the\nfeature is simply disabled. This extension fills that gap from the other\nside: the shell launches a dedicated Ghostty process as its own Wayland\nclient and does what the layer shell would have done, which is placing the\nwindow, keeping it above everything, sticking it to every workspace, hiding\nit from the switcher and sliding it in and out. Ghostty does everything a\nterminal does, with your own config, fonts, theme and shell integration.\n\n## Requirements\n\n- GNOME Shell 50 on Wayland\n- Ghostty 1.3 or later on the path\n\n## Install\n\n```sh\nmake build\nmake install\n```\n\nLog out and back in, then enable it:\n\n```sh\ngnome-extensions enable ghostty-quick-terminal@abn.is\n```\n\nPress Control and grave, the key left of 1, to drop the terminal down.\nPress it again to put it away. The shortcut can be changed in the preferences.\n\n## Configure\n\nPosition, autohide, animation duration and screen come from the Ghostty\nconfig, so one file drives both the quick terminal here and the one Ghostty\nwould give you on a layer-shell compositor:\n\n```\nquick-terminal-position = bottom\nquick-terminal-autohide = true\nquick-terminal-animation-duration = 0.15\n```\n\nChanges apply when the file is saved. The extension keeps only what Ghostty\ndoes not define: the shortcut, the size along the drop axis, and the\nGhostty command. Open them with:\n\n```sh\ngnome-extensions prefs ghostty-quick-terminal@abn.is\n```\n\nScripts and other keybinding tools can toggle the terminal over D-Bus:\n\n```sh\ngdbus call --session --dest org.gnome.Shell \\\n  --object-path /org/gnome/Shell/Extensions/GhosttyQuickTerminal \\\n  --method is.abn.GhosttyQuickTerminal.Toggle\n```\n\n## How it works\n\nThe extension spawns Ghostty through Mutter's own client API, so it knows\nwhich window is its own without guessing by class or title. Hiding minimises\nthe window; showing unminimises, activates and animates it. Nothing polls,\nand no timer runs while the terminal sits idle. Disabling the extension\nends the terminal, except when the screen locks, where the process is kept\nso a running job survives the lock.\n\nThe design and its alternatives, including why Ghostty's wasm build and\nlibghostty were not used, are recorded in [docs/adr](docs/adr/index.md).\n\n## Develop\n\n```sh\nmake check          # lint, schema, metadata and unit tests\nmake test/headless  # drive the built extension in an isolated headless shell\nmake help           # everything else\n```\n\nThe headless harness boots a private GNOME Shell on its own session bus and\nconfig directories, installs the package, toggles the terminal over D-Bus\nand checks where the window ends up. See [docs](docs/index.md) for the\nfull documentation bundle and [AGENTS.md](AGENTS.md) for the working\nconventions.\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 2984,
  "sha": "7a0d1ca1778b0945e496486c3984775074a7fd86a93e4393610f88aa67604069",
  "repo_slug": "abn/gnome-extension-ghostty-quick-terminal",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_abn_gnome_extension_ghostty_quick_termin_69c99b8c/readme"
}