25 Commits

Author SHA1 Message Date
furtidev
8901027e6d fix: theme search ranking is now case insensitive 2024-11-16 20:05:11 +06:00
furtidev
fb2510c2ed fix: +list-themes crashing when there's search result is empty 2024-11-16 20:03:58 +06:00
furtidev
a6bdd2f201 port +list-themes to latest libvaxis 2024-11-16 20:02:35 +06:00
Mitchell Hashimoto
bb60190630 update zf api 2024-11-12 19:15:25 -08:00
Pepper Lebeck-Jobe
3c493f2d0d Fix copying the theme name
Prior to this change both C and c would copy the path to the theme even though
the help screen claimed that c would copy the theme name.

There is a bug in libvaxis that results in both of these matches matching c:
  `key.matches('c', .{})`
	`key.matches('c', .{ .shift = true })`

Tested:
  Before the change: 'c' copies path and 'C' copies path
  After the change: 'c' copies the name and 'C' copies the path
2024-11-09 10:10:29 +01:00
Anmol Wadhwani
70d850f8e4 make selection a const 2024-10-27 21:40:25 +05:30
Anmol Wadhwani
9190dd3ad7 Add an out of bounds check for mouse-selected themes in +list-themes 2024-10-27 20:51:21 +05:30
Mitchell Hashimoto
c90ed29341 cli: skip argv0 and actions when parsing CLI flags
This fixes a regression from #2454. In that PR, we added an error when
positional arguments are detected. I believe that's correct, but we
were silently relying on the previous behavior in the CLI commands.

This commit changes the CLI commands to use a new argsIterator function
that creates an iterator that skips the first argument (argv0). This is
the same behavior that the config parsing does and now uses this shared
logic.

This also makes it so the argsIterator ignores actions (`+things`)
and we document that we expect those to be handled earlier.
2024-10-18 12:59:16 -07:00
Mitchell Hashimoto
a4e14631ef config: richer diagnostics for errors
Rather than storing a list of errors we now store a list of
"diagnostics." Each diagnostic has a richer set of structured
information, including a message, a key, the location where it occurred.

This lets us show more detailed messages, more human friendly messages, and
also let's us filter by key or location. We don't take advantage of
all of this capability in this initial commit, but we do use every field
for something.
2024-10-18 08:11:11 -07:00
Paul Berg
aa10e5160b cli: handle mouse scroll before setting window 2024-09-30 11:02:32 +02:00
Jeffrey C. Ollie
9f543ceac2 cli: fix integer overflow in +list-themes if window is too narrow
Reproduction is to resize the window to it's minimum width and then
run `ghostty +list-themes`. Ghostty will crash because Zig for loops
don't like having a range where the end is smaller than the start.
2024-09-28 12:12:00 -05:00
Jeffrey C. Ollie
a969364f93 cli/list-themes: add ability to search theme names 2024-09-27 10:53:58 -07:00
Jeffrey C. Ollie
e313352c1f cli: update +list-themes --help text 2024-09-27 10:53:58 -07:00
Jeffrey C. Ollie
a6a4f9ff8e cli: list-themes should list symlinks
Symbolic links should be listed in addition to normal files. Useful
for system like home-manager that link config files to location in the
Nix store.
2024-09-27 10:53:58 -07:00
Jeffrey C. Ollie
743e547235 cli: "fancy" theme preview
This adds a "fancy" theme preview to the `+list-themes` CLI action.
By default, if the command is connected to a TTY, it will display the
fancy preview. If it is not connected to a TTY, or the user specifies
`--plain` on the command line, a simple list of themes will be printed
to stdout.

While in the preview `F1` or `?` will show a help screen.
2024-09-27 10:53:58 -07:00
Jeffrey C. Ollie
7de692c955 themes: don't use arena directly and cleanup debug code 2024-08-18 19:20:42 -07:00
Jeffrey C. Ollie
8c4cfc3bbb themes: finish refactor 2024-08-18 19:20:42 -07:00
Jeffrey C. Ollie
87791ed562 themes: add a switch that shows a small preview of each theme 2024-08-18 19:20:42 -07:00
Jeffrey C. Ollie
7a11b22c5f themes: allow loading from absolute paths and from user config dir 2024-08-18 19:20:42 -07:00
Mitchell Hashimoto
b65a804bb2 almost yeeted it all! 2024-08-16 14:42:32 -07:00
Jeffrey C. Ollie
510f270c54 markdown-ify help strings 2024-01-21 15:07:37 -06:00
Mitchell Hashimoto
b438998fb8 cli: support --help and -h for actions 2024-01-20 09:29:26 -08:00
Gregory Anders
8751502878 core: look for resources in "ghostty" subdirectory for "share" paths
Installing resources directly under ${prefix}/share causes conflicts
with other packages. This will become more problematic whenever Ghostty
is opened and becomes packaged in distributions.

Instead, install all resources under a "ghostty" subdirectory (i.e.
${prefix}/share/ghostty). This includes themes, shell integration, and
terminfo files.

Only "/usr/share" style paths use the "ghostty" subdirectory. On macOS,
Ghostty is already isolated within its app bundle, and if
$GHOSTTY_RESOURCES_DIR is set then we assume that points to the actual
resources dir (without needing to append "ghostty" to it).
2023-12-21 17:56:17 -08:00
Krzysztof Wolicki
073868888c Fix forgotten openIterableDir 2023-11-30 22:04:34 +01:00
Mitchell Hashimoto
f25a136ea5 cli: +list-themes 2023-11-22 21:50:16 -08:00