refactor: resolve cross-crate integration TODOs and resources discovery

Cleanup pass over items collected in docs/rewrite/INTEGRATION_TODO.md:
- OSC 133 printf-q / percent decoders live once in
  ghostty_vt::string_encoding; ghostty-os re-exports them.
- CursorStyle and clipboard codepoint map entries have one definition
  (ghostty-terminal); ghostty-config now depends on ghostty-terminal.
- ActionKey::docs() trailing blank lines fixed at the source; cli's
  workaround removed (+list-actions --docs still byte-identical).
- x11_color exposes names in original case; cli no longer re-parses
  rgb.txt.
- One cgroup scope wait loop (ghostty_os::cgroup::wait_for_scope).
- Flatpak passwd lookup implemented in ghostty-os via a local pty.
- +version shows the rustc version captured at build time.

Resources: dev builds find <workspace>/resources automatically (keeping
Ghostty's sentinel-file detection and GHOSTTY_RESOURCES_DIR);
scripts/gen-terminfo.sh (just terminfo) regenerates the compiled
terminfo; `just install [PREFIX]` installs binary, share/ghostty,
terminfo, desktop/D-Bus/systemd/metainfo files and icons.

Test Plan:
- cargo test for vt, os, config, input, cli
- diff `+list-keybinds`, `+list-actions --docs`, `+show-config --default`
  against /usr/bin/ghostty
This commit is contained in:
ddidderr committed 2026-10-12 02:08:22 +02:00
1 parent 0c4f0ee412
commit 967e3a176d
24 files changed
+656 -513

No files matched your search

@@ -1438,7 +1438,6 @@ Valid arguments are:
Adjust the selection to the beginning or the end of the line
respectively.
"##
}
ActionKey::JumpToPrompt => {
@@ -1469,7 +1468,6 @@ Valid actions are:
The default OS editor is determined by using `open` on macOS
and `xdg-open` on Linux.
"##
}
ActionKey::WriteScreenFile => {
@@ -1576,7 +1574,6 @@ Valid arguments:
Creates a new split along the larger direction.
For example, if the parent split is currently wider than it is tall,
then a left-right split would be created, and vice versa.
"##
}
ActionKey::GotoSplit => {
@@ -1943,7 +1940,6 @@ The value determines the crash location:
- `render`
Crash on the render thread for the focused surface.
"##
}
}
+3 -2
View File
@@ -9,8 +9,9 @@ use indexmap::IndexMap;
use super::{Action, Elem, Error, Flags, FoldedTrigger, Parser, Trigger, TriggerKey};
use crate::key::KeyEvent;
/// TODO(integration): stand-in for `config/formatter.zig` `EntryFormatter`.
/// The config crate implements this to write `keybind = <value>` lines.
/// Sink for `config/formatter.zig` `EntryFormatter`. The config crate
/// implements this (`ghostty_config::keybinds`) to write `keybind = <value>`
/// lines.
pub trait EntryFormatter {
/// Format a single `key = value` entry where `value` is a string.
fn format_entry(&mut self, value: &str);