26 Commits

Author SHA1 Message Date
Mitchell Hashimoto
1739418f6f cli: make the action parser (+foo) generic and reusable 2025-07-09 15:06:24 -07:00
Jason Rayne
75c703071a feat(ssh): rewrite SSH cache system in native Zig
- Eliminates standalone bash dependency
- Consolidates `+list-ssh-cache` and `+clear-ssh-cache` actions into
single `+ssh-cache` action with args
- Structured cache format with timestamps and expiration support
- Memory-safe entry handling with proper file locking
- Comprehensive hostname validation (IPv4/IPv6/domains)
- Atomic updates via temp file + rename
- Updated shell integrations for improved cross-platform support and
reliability
- Cache operations are now unit-testable
2025-07-03 20:11:45 -07:00
Jason Rayne
e5e2a56c98 fix: use imported modules consistently in action dispatch 2025-06-25 16:47:17 -07:00
Jason Rayne
21d95c42c6 docs: improve clear-ssh-cache description (missed in previous commit)
Clarifies this clears hosts cached by SSH shell integration, completing
mitchellh's feedback on both action descriptions.
2025-06-25 15:58:13 -07:00
Jason Rayne
0ccb7cf353 docs: improve SSH cache CLI action descriptions
- Clarify that +list-ssh-cache shows shell integration cached hosts
- Add note about +clear-ssh-cache command and when to use it

Addresses mitchellh's feedback on action descriptions.
2025-06-25 15:46:18 -07:00
Jason Rayne
0565ed3954 refactor: replace ghostty wrapper with proper CLI actions for terminfo cache management
- Add +list-ssh-cache and +clear-ssh-cache CLI actions
- Remove ghostty() wrapper functions from all shell integrations
- Improve variable naming in shell scripts for readability

Addresses @00-kat's feedback about CLI discoverability and naming
consistency. The new CLI actions follow established Ghostty patterns
and are discoverable via `ghostty --help`, while maintaining clean
separation of concerns between shell logic and cache management.
2025-06-25 15:46:18 -07:00
Mitchell Hashimoto
865ba546a9 cli: +edit-config command to open the config file in $EDITOR
This adds a new CLI `ghostty +edit-config`. This will open the config
file in the user's specified `$EDITOR`. If Ghostty has never been
configured, this will also create the initial config file with some
default templated contents (the same as that which we introduced back in
Ghostty 1.0.1 or something -- not new behavior here).

This is useful on its own because it will find the correct configuration
path to open. If users are terminal users anyway (not a big stretch
since this is a terminal app), this will allow them to easily edit
config right away.

This is also forward looking: I want to replace our "Open Config" action
to open a Ghostty window executing this command so that users can edit
their config in a terminal editor. This has been heavily requested since
forever (short of a full GUI settings editor, which is not ready yet). I
don't do this in this PR but plan to in a future PR.
2025-06-24 07:17:05 -04:00
Mitchell Hashimoto
0f4d2bb237 Lots of 0.14 changes 2025-03-12 09:55:52 -07:00
Tim Culverhouse
9cb297202b cli: add +boo command
Add a `+boo` command to show the animation from the website. The data
for the frames is compressed during the build process. This build step
was added to the SharedDeps object because it is used in both
libghostty and in binaries.

The compression is done as follows:
- All files are concatenated together using \x01 as a combining byte
- The files are compressed to a cached build file
- A zig file is written to stdout which `@embedFile`s the compressed
  file and exposes it to the importer
- A new anonymous module "framedata" is added in the SharedDeps object

Any file can import framedata and access the compressed bytes via
`framedata.compressed`. In the `boo` command, we decompress the file and
split it into frames for use in the animation.

The overall addition to the binary size is 348k.
2025-02-14 14:46:18 -08:00
Anund
168dd31367 documentation: consistent format for actions help 2025-01-23 15:58:33 -08:00
Jeffrey C. Ollie
82e67430cd cli: add +show-face CLI action
This CLI action shows what font face Ghostty will use to display
a particular codepoint.
2024-12-17 13:09:32 -06:00
Anund
c7deea6a7f zsh: add completions generation 2024-12-11 21:11:38 +11:00
Mitchell Hashimoto
b11b5871e9 cli: do not parse actions (+command) after -e
Fixes #2506
2024-10-30 20:56:53 -04:00
Jeffrey C. Ollie
d907cebae9 feat: basic +crash-report cli action
Only lists crash reports right now. Viewing and/or submitting crash
reports to come later.
2024-09-10 20:43:00 -07:00
Mitchell Hashimoto
c5d03bbbd6 comment 2024-08-01 20:12:22 -07:00
Jeffrey C. Ollie
c5e9913def Add +list-actions CLI action to list keybind actions. 2024-08-01 18:57:37 -05:00
Remi Gelinas
431c99313c feat(cli): add initial validate-config action 2024-07-17 12:27:12 -04:00
Jeffrey C. Ollie
de428d9fe9 add +show-config action to print out the config from the cli 2024-01-20 19:24:17 -08:00
Mitchell Hashimoto
1778905f53 cli: add help command 2024-01-20 09:49:17 -08:00
Mitchell Hashimoto
b438998fb8 cli: support --help and -h for actions 2024-01-20 09:29:26 -08:00
Mitchell Hashimoto
203b38fdac rewrite generate_help for personal style
- Output to stdin instead of a file
- Less nesting
- Utilize ranged for loops instead of while loops
- Eliminate unnecessary state tracking
- Put help in a struct
2024-01-20 09:05:25 -08:00
Jeffrey C. Ollie
bc1544a3f0 add ability to specify RGB colors as names from the X11 rgb name list 2024-01-10 20:26:59 -08:00
Mitchell Hashimoto
f25a136ea5 cli: +list-themes 2023-11-22 21:50:16 -08:00
Raiden1411
59daecc304 feat(actions): add new list-keybinds action 2023-11-02 21:34:14 +00:00
Mitchell Hashimoto
8214471e2c cli/list-fonts: dumb implementation 2023-09-23 22:59:22 -07:00
Mitchell Hashimoto
7fc66f3851 cli: dedicated directory 2023-09-23 22:42:09 -07:00