Mitchell Hashimoto
de66d4925a
terminal: rename scroll "delta/delta_no_grow" to screen/viewport
2023-07-08 13:47:16 -07:00
Mitchell Hashimoto
1a94f6ba7d
terminal: do not scroll viewport if new lines are added while scrolled
2023-07-08 13:42:00 -07:00
Mitchell Hashimoto
13315471d7
renderer: double line widths for sprite fonts when font-thicken is true
...
Fixes #193
2023-07-07 09:08:46 -07:00
Mitchell Hashimoto
3f079e89b9
Merge pull request #191 from mitchellh/shell-integration
...
Automatic Shell Integration Script Injection
2023-07-06 18:29:15 -07:00
Mitchell Hashimoto
7e42d163ad
update README
2023-07-06 18:27:21 -07:00
Mitchell Hashimoto
247638c2da
config: support enum cloning
2023-07-06 18:13:26 -07:00
Mitchell Hashimoto
02d0619f87
change "auto" to "detect" for shell integration
2023-07-06 18:05:01 -07:00
Mitchell Hashimoto
8239f09d9d
allow configuring shell integration injection
2023-07-06 18:04:12 -07:00
Mitchell Hashimoto
18e43ddb3f
config: support parsing enums
2023-07-06 17:56:19 -07:00
Mitchell Hashimoto
80e2cd4e78
zsh integration
2023-07-06 17:46:54 -07:00
Mitchell Hashimoto
4cdad44119
zsh files starting
2023-07-06 16:42:01 -07:00
Mitchell Hashimoto
efd7cb35b8
fish: pwd reporting
2023-07-06 16:15:30 -07:00
Mitchell Hashimoto
ad62e3ac1b
fish shell integration
2023-07-06 16:10:30 -07:00
Mitchell Hashimoto
ae206b2f89
termio: fish shell integration injection
2023-07-06 14:14:55 -07:00
Mitchell Hashimoto
59fb3a55e3
termio/exec: refactor resources dir lookup to prep for shell integ
2023-07-06 13:42:06 -07:00
Mitchell Hashimoto
848943770a
start shell-integration folder, copy into zig-out
2023-07-06 13:26:28 -07:00
Mitchell Hashimoto
bf1e5f6331
Merge pull request #188 from mitchellh/prompt-jump
...
Scroll to prompt keybinding
2023-07-06 10:52:46 -07:00
Mitchell Hashimoto
b3b19997ea
terminal: scroll to row always tries to get it to the top
2023-07-06 10:31:47 -07:00
Mitchell Hashimoto
9f86c48fd8
keybinding jump_to_prompt for semantic prompts
2023-07-06 10:30:29 -07:00
Mitchell Hashimoto
b542f7e3c4
terminal: jump to prompt core methods
2023-07-06 10:16:07 -07:00
Mitchell Hashimoto
c4a44c3dd4
Merge pull request #187 from mitchellh/clear-at-prompt
...
clear_screen uses FF (0x0C) if cursor is at prompt
2023-07-05 14:21:27 -07:00
Mitchell Hashimoto
2f935d2c5c
clear_screen uses FF (0x0C) if cursor is at prompt
2023-07-05 14:16:34 -07:00
Mitchell Hashimoto
2ac9fec908
Merge pull request #186 from mitchellh/clear-screen
...
clear_screen keybinding works even when not at shell prompt
2023-07-05 14:11:12 -07:00
Mitchell Hashimoto
9d008bb828
Merge pull request #185 from mitchellh/font-features
...
font-feature config to enable/disable OpenType Font Features
2023-07-05 14:01:57 -07:00
Mitchell Hashimoto
738c4dff4c
clear_screen keybinding works even when not at shell prompt
...
Instead of sending formfeed (0x0C), clear_screen actually does a
terminal emulator level clear instead. This MOSTLY matches the behavior
of iTerm and Terminal.app, with some differences:
1. I do not clear _below_ the cursor. I feel like the use case for
this feature is primarily to clear above the cursor. Happy to be
wrong here but I want it proven to me!
2. I do not clear in alternate screen mode. Clearing alt screens
breaks rendering in Vim, less, etc. and it feels like the wrong
behavior.
2023-07-05 14:01:01 -07:00
Mitchell Hashimoto
45ac9b5d4c
font-feature config to enable/disable OpenType Font Features
2023-07-05 13:12:30 -07:00
Mitchell Hashimoto
853f15ef19
bar cursor was short by a couple pixels
2023-07-04 13:12:21 -07:00
Mitchell Hashimoto
0b5ff8f311
update zig
2023-07-04 13:07:17 -07:00
Mitchell Hashimoto
a2c8690c23
Merge pull request #180 from mitchellh/transparent
...
Background Transparency and Blurring (1337 h4x0r mode 🤪 )
2023-07-03 21:05:12 -07:00
Mitchell Hashimoto
9a079bb5b9
background-blur-radius for macOS
2023-07-03 20:43:53 -07:00
Mitchell Hashimoto
d25568ffdb
apprt/gtk: honor background opacity
2023-07-03 20:21:16 -07:00
Mitchell Hashimoto
55313fcbd5
opengl: support background opacity
2023-07-03 19:51:11 -07:00
Mitchell Hashimoto
7896f99f2f
config: clarify reload
2023-07-03 19:45:36 -07:00
Mitchell Hashimoto
338f89679d
apprt: add C API for detecting background transparency per surface
2023-07-03 19:44:06 -07:00
Mitchell Hashimoto
329385e353
metal: apply background opacity
2023-07-03 19:38:33 -07:00
Mitchell Hashimoto
017da411f8
metal: start setting up background transparency
2023-07-03 17:59:50 -07:00
Mitchell Hashimoto
8756090266
config: add background-opacity and float parsing for config
2023-07-03 17:50:45 -07:00
Mitchell Hashimoto
68b57f1001
nix: update to python3
2023-07-03 17:15:16 -07:00
Mitchell Hashimoto
12b1582c55
Merge pull request #179 from mitchellh/autoitalic
...
Auto-italicize regular font if no italic font is found (CoreText only)
2023-07-03 16:08:18 -07:00
Mitchell Hashimoto
8113ad1393
font: share skew matrix for core text
2023-07-03 15:58:52 -07:00
Mitchell Hashimoto
c90a52ee50
font: don't fallback styles when searching for a codepoint
...
see comment
2023-07-03 15:55:01 -07:00
Mitchell Hashimoto
4bf8a0d149
font: support skew transform for auto-italics
2023-07-03 15:54:50 -07:00
Mitchell Hashimoto
c9f486be9b
Revert "update nix to 23.05"
...
This reverts commit fe657648325df2c7645aca762279fdcc30296948.
2023-07-03 14:51:08 -07:00
Mitchell Hashimoto
fe65764832
update nix to 23.05
2023-07-03 14:36:46 -07:00
Mitchell Hashimoto
369a7dda4c
coretext: use alternate approach to calcaulate cell height and ascent
...
Fixes #174
2023-07-03 14:26:06 -07:00
Mitchell Hashimoto
0e802b6118
coretext: switch up positive/negative y axis values
...
No functional change, just swapping the math around to match freetype.
2023-07-03 14:04:35 -07:00
Mitchell Hashimoto
17d1626e57
Merge pull request #178 from mitchellh/font-integer
...
Change font metrics to all be integers, not floats.
2023-07-03 11:33:09 -07:00
Mitchell Hashimoto
0faf6097d0
Change font metrics to all be integers, not floats.
...
Font metrics realistically should be integral. Cell widths, cell
heights, etc. do not make sense to be floats, since our grid is
integral. There is no such thing as a "half cell" (or any point).
The reason we historically had these all as f32 is simplicity mixed
with history. OpenGL APIs and shaders all use f32 for their values, we
originally only supported OpenGL, and all the font rendering used to be
directly in the renderer code (like... a year+ ago).
When we refactored the font metrics calculation to its own system and
also added additional renderers like Metal (which use f64, not f32), we
never updated anything. We just kept metrics as f32 and casted
everywhere.
With CoreText and #177 this finally reared its ugly head. By forgetting
a simple rounding on cell metric calculation, our integral renderers
(sprite fonts) were off by 1 pixel compared to the GPU renderers.
Insidious.
Let's represent font metrics with the types that actually make sense: a
cell width/height, etc. is _integral_. When we get to the GPU, we now
cast to floats. We also cast to floats whenever we're doing more precise
math (i.e. mouse offset calculation). In this case, we're only
converting to floats from a integral type which is going to be much
safer and less prone to uncertain rounding than converting to an int
from a float type.
Fixes #177
2023-07-03 11:23:20 -07:00
Mitchell Hashimoto
5e1b4aa40f
fix old zig fmt in blocks.zig
2023-07-03 08:39:35 -07:00
Mitchell Hashimoto
57e109f8b4
Merge pull request #176 from mitchellh/mrn/gtk-fullscreen
...
gtk: handle ctrl+return to toggle fullscreen
2023-07-02 21:54:45 -07:00