Mitchell Hashimoto
a848a53d26
termio: remove a ton of state
2024-07-14 15:10:05 -07:00
Mitchell Hashimoto
af7adedb50
termio: writer abstraction
2024-07-14 14:48:48 -07:00
Mitchell Hashimoto
31144da845
termio: Thread doesn't need to hold termio pointer
2024-07-14 10:27:58 -07:00
Mitchell Hashimoto
f50c15c350
termio: ReadData doesn't need a loop
2024-07-14 09:40:53 -07:00
Mitchell Hashimoto
eec33f10e2
termio: remove more unused things
2024-07-13 19:27:17 -07:00
Mitchell Hashimoto
e30e635bed
termio: move all subprocess logic to termio.Exec
2024-07-13 19:24:10 -07:00
Mitchell Hashimoto
7c23d61379
termio: rename
2024-07-13 18:50:37 -07:00
Mitchell Hashimoto
faef40b769
termio: fix up rebase
2024-07-13 15:21:50 -07:00
Mitchell Hashimoto
16f5890724
termio: delete old impl
2024-07-13 15:20:39 -07:00
Mitchell Hashimoto
b3c2479f87
termio: move subprocess out to its own file
2024-07-13 15:20:38 -07:00
Mitchell Hashimoto
2e62e3354b
termio: cleanup more state
2024-07-13 15:19:39 -07:00
Mitchell Hashimoto
bfbbe1485e
termio: queueWrite no longer uses EventData
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
ffaf020576
termio: move stream handler to dedicated file, remove dep on EventData
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
e51180e4a9
termio: changeConfig on reader data
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
4e6e0f90c7
termio: remove data field
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
c4484938c5
termio: wip but it builds
2024-07-13 15:19:38 -07:00
Mitchell Hashimoto
49c92fd0e6
termio: rename Exec to Termio throughout
2024-07-13 15:19:37 -07:00
Mitchell Hashimoto
ef5491ed50
Merge pull request #1946 from ghostty-org/tmuxcc
...
Tmux Control Mode Parser (ONLY the parser)
2024-07-12 14:50:09 -07:00
Mitchell Hashimoto
9e5e7e6480
Merge pull request #1937 from rockorager/gtk-split-opacity
...
gtk: implement unfocused-split opacity and fill
2024-07-12 14:14:10 -07:00
Mitchell Hashimoto
df088c67f4
terminal/tmux: block output notifications
2024-07-12 14:04:56 -07:00
Mitchell Hashimoto
057dc32c71
terminal/tmux: many more notifications
2024-07-12 11:57:37 -07:00
Mitchell Hashimoto
bc7bc15120
terminal/tmux: parse session-changed notification
2024-07-12 10:22:59 -07:00
Mitchell Hashimoto
8c3559ecff
terminal: move tmux control mode parsing out to dedicated file
2024-07-12 09:49:59 -07:00
Mitchell Hashimoto
1ea25c5c64
terminal: tmux parsing handles begin/end blocks
2024-07-11 20:53:50 -07:00
Mitchell Hashimoto
f4db5009d6
terminal: dcs state cleanup in deinit
2024-07-11 19:09:55 -07:00
Mitchell Hashimoto
88d055452b
terminal: tmux enter/exit
2024-07-11 19:02:33 -07:00
Mitchell Hashimoto
ff43609097
terminal: boilerplate for tmux control mode parsing
2024-07-11 18:58:25 -07:00
Mitchell Hashimoto
f375bf009c
terminal: all DCS events can produce a command
2024-07-11 18:53:42 -07:00
Mitchell Hashimoto
01e1538ad3
terminal: dcs put can return a command
2024-07-11 18:42:22 -07:00
Mitchell Hashimoto
38d33a761b
terminal: test DCS to make sure we don't regress
2024-07-11 18:34:05 -07:00
Mitchell Hashimoto
c28470e98a
terminal: DCS parses params correctly
2024-07-11 18:29:14 -07:00
Alexey Shekhirin
447c324c4d
docs(surface): keyCallback
return value is self-descriptive
2024-07-11 20:24:09 +01:00
Tim Culverhouse
76df732169
gtk: add unfocused_widget when split created from menu
...
When a split is created from a menu action, the focus is lost before the
split is made which prevents the surface from having the
unfocused_widget. Move the logic to add the unfocused_widget to the
overlay to an exported function which is called when the split is
created.
2024-07-11 10:29:40 -05:00
Tim Culverhouse
fc3d885022
gtk: remove unused css class on GtkNotebook
2024-07-11 08:34:51 -05:00
Tim Culverhouse
11c2ae1007
gtk: use GtkDrawingArea to dim unfocused split
...
Refactor the GTK unfocused split code to use a GtkDrawingArea widget to
dim the unfocused split. The GtkDrawingArea is added to the overlay and
a CSS style is used to give it a background color and opacity. This
aligns with the macOS design of drawing on top of the surface. In GTK,
we don't need to actually draw a rectangle because we can apply CSS
directly to the widget.
2024-07-11 08:28:47 -05:00
Tim Culverhouse
f04fe01ac6
gtk: improve readability of runtime css fmt
2024-07-10 14:17:58 -05:00
Tim Culverhouse
d1d3de758c
gtk: prevent CSS collision on notebook stack
...
Add a class to the GtkNotebook which holds our tabs so we can more
precisely set the background color of just this `stack`. A collision was
occurring with the menu widgets, which are also a `stack`.
2024-07-10 13:56:03 -05:00
Tim Culverhouse
6c40cd963d
gtk: implement unfocused-split opacity and fill
...
For a long time, us GTK users have been subject to lesser UX by not
knowing which split was focused. Improve the GTK UX by implementing both
unfocused-split-opacity and unfocused-split-fill. This is implemented by
setting the background-color of the notebook stack, and conditionally
applying a new css class "unfocused-split" to the unfocused split.
2024-07-10 12:56:09 -05:00
Mitchell Hashimoto
53fbed492b
apprt/gtk: ellipsize URLs in middle to show end
2024-07-09 09:26:07 -07:00
Mitchell Hashimoto
205bbc35f0
Merge pull request #1929 from qwerasd205/reflow-fix
...
Reflow rework, various fixes
2024-07-09 09:08:45 -07:00
Mitchell Hashimoto
54034468b7
terminal: remove errdefer deleted call for refcountedset
2024-07-09 09:07:28 -07:00
Mitchell Hashimoto
0acdea646b
Merge pull request #1923 from antonk52/docs/window-decoration
...
docs: warn about `window-decoration` disables tabs functionality
2024-07-09 08:34:34 -07:00
Jon Parise
91b56e2494
config: document true/false for shell-integration-features
2024-07-09 10:52:20 -04:00
Jon Parise
9de940cbbf
cli: boolean value support for packed structs
...
Allow standalone boolean values like "true" and "false" to turn on or
off all of the struct's fields.
2024-07-09 09:08:27 -04:00
Anton Kastritskii
d97910a4e8
docs: fix typo
2024-07-09 10:51:51 +01:00
Qwerasd
8589f2c0fb
terminal/PageList: rework reflow logic to fix issues
...
Reflow logic now lives inside of ReflowCursor. This fixes multiple
issues with the previous implementation, and is more straightforward
in how it works. The old impl resulted in fragmentation of pages,
leading to unbounded memory growth when resizing repeatedly.
Also improves the preserved_cursor logic in `resizeCols`.
2024-07-08 22:35:15 -04:00
Qwerasd
10dbca9464
terminal/PageList: fix some incorrect test expectations
2024-07-08 22:29:55 -04:00
Qwerasd
be99e50c50
terminal/PageList: add method for logging debug diagrams
2024-07-08 22:28:16 -04:00
Qwerasd
6f1a2d1e8e
terminal/Screen: fix trailing blank cell handling for wrapped rows in dumpString
2024-07-08 22:26:36 -04:00
Qwerasd
730185b212
terminal: spacer heads and tails should be codepoint 0, not ' '
2024-07-08 22:25:39 -04:00