4478 Commits

Author SHA1 Message Date
Eleanor Bartle
bb4b6b5782 Remove Erroneous Config Note 2024-08-06 11:48:30 +10:00
Mitchell Hashimoto
1e7672deba Merge pull request #2034 from jcollie/asymmetric-window-padding
Implement asymmetric window padding.
2024-08-05 15:56:15 -07:00
Mitchell Hashimoto
c2778ab3a6 config: window-padding-x/y take two values for uneven padding 2024-08-05 15:51:42 -07:00
Mitchell Hashimoto
c5d2f352d3 Merge pull request #2045 from nihaals/font-family-all
Document not every font-family needs to be set
2024-08-05 10:28:52 -07:00
Mitchell Hashimoto
978110ec24 config: update docs 2024-08-05 10:28:38 -07:00
Nihaal Sangha
538f6033ea Document not every font-family needs to be set 2024-08-05 17:26:33 +01:00
Łukasz Niemier
f9be02a20f chore: clean up typos 2024-08-05 13:56:57 +02:00
Mitchell Hashimoto
656c720866 apprt/gtk: can manually expire our quit timer instead of 0 second timer 2024-08-04 19:06:17 -07:00
Jeffrey C. Ollie
4657f30f7f Fix quit-after-last-window-closed=true, quit-after-last-window-closed-delay=null
The case when `quit-after-last-window-closed=true` and
`quit-after-last-window-closed-delay=null` was broken because control
gets stuck inside `g_main_context_iteration` and never returns to our
code. In that case add a 0ms timer that will return control flow from
GLib back to our code so that we can quit.

Fixes #2039
2024-08-04 14:47:58 -05:00
Mitchell Hashimoto
5f0371c189 change window padding color to background by default
While we work out the bugs…
2024-08-03 22:27:19 -07:00
Mitchell Hashimoto
f09a45704a config: typo in window-padding-color docs 2024-08-03 22:04:35 -07:00
Mitchell Hashimoto
ea551990eb renderer: disable window-padding-color=extend in certain scenarios
There are scenarios where this configuration looks bad. This commit
introduces some heuristics to prevent it. Here are the heuristics:

  * Extension is always enabled on alt screen.
  * Extension is disabled if a row contains any default bg color. The
    thinking is that in this scenario, using the default bg color looks
    just fine.
  * Extension is disabled if a row is marked as a prompt (using semantic
    prompt sequences). The thinking here is that prompts often contain
    perfect fit glyphs such as Powerline glyphs and those look bad when
    extended.

This introduces some CPU cost to the extension feature but it should be
minimal and respects dirty tracking. This is unfortunate but the feature
makes many terminal scenarios look much better and the performance cost
is minimal so I believe it is worth it.

Further heuristics are likely warranted but this should be a good
starting set.
2024-08-03 21:56:19 -07:00
Mitchell Hashimoto
1cc5a69c43 Revert "renderer/metal: can access grid metrics directly on font grid"
This reverts commit 172179bbff7d3f0df73ba1c29c6906b69ead2619.
2024-08-03 18:37:42 -07:00
Mitchell Hashimoto
172179bbff renderer/metal: can access grid metrics directly on font grid
Its never recalculated so we don't need a lock.
2024-08-03 18:37:15 -07:00
Mitchell Hashimoto
56b3aa0b5e renderer/metal: font grid change should run all screen size logic 2024-08-03 18:33:53 -07:00
Mitchell Hashimoto
ed1c163c7b renderer/opengl: support window-padding-color=extend 2024-08-03 16:29:17 -07:00
Mitchell Hashimoto
55e8c421b5 config: add window-padding-color 2024-08-03 16:14:14 -07:00
Mitchell Hashimoto
9214db3c5f renderer/metal: handle top/left 2024-08-03 16:03:42 -07:00
Mitchell Hashimoto
5309f4d080 renderer/metal: extend background color of grid border into padding 2024-08-03 15:39:02 -07:00
Mitchell Hashimoto
c554b607b7 terminal: eraseDisplay should allow kitty erase through
Fixes #1994
2024-08-03 14:05:28 -07:00
Jeffrey C. Ollie
0f27fc2a0d Implement asymmetric window padding.
Add `window-padding-top`, `window-padding-bottom`,
`window-padding-left`, and `window-padding-right` options. The
`window-padding-x` and `window-padding-y` options will override the
individual options.
2024-08-03 14:42:28 -05:00
Mitchell Hashimoto
288a1fe549 Merge pull request #2021 from jcollie/background
gtk: allow running in the background
2024-08-03 10:08:45 -07:00
Mitchell Hashimoto
224f2d0491 apprt/gtk: use tagged union for quit timer 2024-08-03 10:05:31 -07:00
Mitchell Hashimoto
c5e2889369 config: clarify comment 2024-08-03 09:50:39 -07:00
Mitchell Hashimoto
e62bdbf8b7 config: duration prevents overflow, added tests 2024-08-03 09:48:40 -07:00
Jeffrey C. Ollie
b87667c950 document behavior when no initial window is created and a quit delay is set 2024-08-02 16:17:10 -05:00
Jeffrey C. Ollie
0e533af21a add a warning if quit delay too short 2024-08-02 15:43:40 -05:00
Jeffrey C. Ollie
d243ad6616 add a standard zig formatter to Duration and more testing 2024-08-02 15:43:37 -05:00
Jeffrey C. Ollie
cf515c80d0 fix off-by-one error 2024-08-02 15:43:31 -05:00
Jeffrey C. Ollie
3aa1989620 make Duration units a struct field to reduce duplication and enable table-driven unit tests 2024-08-02 10:47:47 -05:00
Jeffrey C. Ollie
3a4b236e6d re-use code to cancel old timer 2024-08-02 10:24:17 -05:00
Mitchell Hashimoto
2f373bb443 Merge pull request #2030 from jcollie/list-actions
Add +list-actions CLI action to list keybind actions.
2024-08-01 20:12:43 -07:00
Mitchell Hashimoto
c5d03bbbd6 comment 2024-08-01 20:12:22 -07:00
Jeffrey C. Ollie
38e9847bd2 fix typo 2024-08-01 19:48:00 -05:00
Jeffrey C. Ollie
c5e9913def Add +list-actions CLI action to list keybind actions. 2024-08-01 18:57:37 -05:00
Mitchell Hashimoto
9528978488 Merge pull request #2014 from jcollie/gtk-context-menu-additions
Additions to GTK context menu
2024-08-01 14:54:49 -07:00
Mitchell Hashimoto
99b1b6305f reset only 2024-08-01 14:54:39 -07:00
Jeffrey C. Ollie
ec0f90d1b6 Improve quit timers.
Instead of "polling" to see if a quit timer has expired, start a single
timer that expires after the confiugred delay when no more surfaces are
open. That timer can be cancelled if necessary.
2024-08-01 14:49:02 -05:00
Mitchell Hashimoto
918a32dcf7 core: surface needs to free link regex on config reload 2024-08-01 09:41:48 -07:00
Jeffrey C. Ollie
3d6ca14dc6 make quit-after-last-window-closed-delay an optional 2024-08-01 10:51:08 -05:00
Mitchell Hashimoto
e25997ad58 apprt/gtk: ignore mouse movement if no actual movement occurs
Fixes #2022

See comment
2024-08-01 06:25:10 -07:00
Jeffrey C. Ollie
143e503d43 gtk: allow running in the background
This patch fixes #2010 by implementing `quit-after-last-window-closed`
for the GTK apprt. It also adds the ability for the GTK apprt to exit
after a delay once all surfaces have been closed and adds the ability to
start Ghostty without opening an initial window.
2024-08-01 01:25:17 -05:00
Mitchell Hashimoto
ad6a5e7aef core: avoid mouse report when mods change without mouse event
Fixes #2018

We should avoid mouse reports when we have a key event without an
associated mouse event (button or move). This is how xterm behaves and
we should match it.

Our approach to doing this is very hacky so I commented why and we can
hopefully clean all this up in the future.
2024-07-31 21:30:02 -07:00
Mitchell Hashimoto
8ceff43a31 config: introduce config-default-files to skip loading default files
This is a CLI-only config. This is the first such config. I am only
pointing this out since it is a new pattern for Ghostty.

By specifying `--config-default-files=false`, Ghostty will discard any
configuration set in the default files it loads. This makes running
Ghostty from the CLI easier if you want to "reset" the configuration to
the "factory defaults."
2024-07-31 21:01:33 -07:00
Mitchell Hashimoto
62cc279fc0 Merge pull request #1989 from gpanders/cursor-invert-fg-bg
config: add cursor-invert-fg-bg option
2024-07-31 19:39:27 -07:00
Mitchell Hashimoto
fa42cf5f2b Merge pull request #2009 from injust/use-has-selection
Use `Surface.hasSelection()`
2024-07-31 19:30:46 -07:00
Mitchell Hashimoto
d37c529308 update comments 2024-07-31 19:30:27 -07:00
Mitchell Hashimoto
68c7041f83 Merge pull request #2016 from b-/docs/its-to-it's
its → it's
2024-07-31 09:58:20 -07:00
Mitchell Hashimoto
09e367fe09 Merge pull request #2015 from ghostty-org/kitty-unicode
Kitty Graphics Unicode Placeholders
2024-07-31 09:56:12 -07:00
Mitchell Hashimoto
d40101fea0 terminal: more tests 2024-07-31 09:51:32 -07:00