1994 Commits

Author SHA1 Message Date
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
Thorsten Ball
567ba5a25e gtk: handle ctrl+return to toggle fullscreen
This is a follow-up to #172 and adds fullscreen handling to the GTK
apprt.

Works reliably for the current window and mimics exactly what happens
when F11 is pressed, which seems to be the standard keybinding for GTK
apps to toggle fullscreen.
2023-07-03 06:38:14 +02:00
Mitchell Hashimoto
8ca9e14d89 adjust mouse selection calculation for window-padding settings
Fixes #170
2023-07-02 12:45:06 -07:00
Mitchell Hashimoto
84550f276a macos: make close the terminal button non-destructive
So that "return" works.
2023-07-02 12:38:16 -07:00
Mitchell Hashimoto
0295feef36 Merge pull request #172 from mitchellh/mrn/toggle-fullscreen
Toggle fullscreen on super/ctrl+return, only macOS for now
2023-07-02 12:00:55 -07:00
Mitchell Hashimoto
2c2bea716f Merge pull request #173 from mitchellh/mrn/readme-colors
README: show how to set color palette in config
2023-07-02 12:00:41 -07:00
Thorsten Ball
82f7ca149d README: show how to set color palette in config
This just popped into my head. Took me a while to figure out the syntax
a few weeks back, so why not document it here? I don't think it'll
change.

I can change the colors though. What I have here is my gruvbox theme.
Maybe we should use the default colors?
2023-07-02 20:27:37 +02:00
Thorsten Ball
8e464db049 Toggle fullscreen on super/ctrl+return, only macOS for now
This fixes or at least is the first step towards #171:

- it adds `cmd/super + return` as the default keybinding to toggle
  fullscreen for currently focused window.
- it adds a keybinding handler to the embedded apprt and then changes
  the macOS app to handle the keybinding by toggling currently focused
  window.
2023-07-02 20:23:49 +02:00
Mitchell Hashimoto
ce77002198 remove metal workaround completely 2023-07-01 15:19:13 -07:00