Thorsten Ball
4b48d42a07
locale: set LANG to the fallback value if we have invalid locale
...
See #201 for more information.
Problem is that while we fall back to a default value to pass to
`setlocale`, we don't set a `LANG` and instead reset it to `""`.
What this does here is it changes the resetting to `""` and instead sets
it to the default value.
2023-07-19 06:44:35 +02:00
Mitchell Hashimoto
4137c6cf69
font/shaper: do not break on merged emoji if cursor is directly on it
2023-07-18 16:38:02 -07:00
Mitchell Hashimoto
4b062dc45c
font/shaper: text runs should split around block cursors
...
Fixes #206
2023-07-18 16:20:30 -07:00
Mitchell Hashimoto
6ae3c4b20e
Merge pull request #205 from mitchellh/locale2
...
reset LANG env var if we set it and it is invalid
2023-07-18 10:55:06 -07:00
Mitchell Hashimoto
4176c6bdbf
reset LANG env var if we set it and it is invalid
...
This was breaking downstream programs, see #201
2023-07-18 10:49:43 -07:00
Mitchell Hashimoto
3d48432daf
renderer: change padding to integers
...
Screen size is always an integer, it makes sense for padding to also be
rounded to some integer.
2023-07-18 10:44:33 -07:00
Thorsten Ball
ead997b5ec
Fix blurry fonts by flooring padding of surface
...
This fixes #99 for me.
Without this fix I end up with paddings of `3.333333` because my DPI is
`125.0` on Linux. If I set it to `144.0` manually so that the `/ 72`
gives me a clean `2.0`, the blurry fonts are gone.
I do think the calculation here is correct (even though I'm not sure
whether we should use 72? Why not 96? Or another system value?), so
let's use `std.math.floor` to get us to a "clean" padding of `3.0`.
That also solves blurry fonts for me.
2023-07-18 07:02:33 +02:00
Thorsten Ball
de5780a771
gtk: change default window size to 1000x600
...
The previous 200x200 looks ... weird :) But it was also quite unhandy
because I constantly have to resize new builds when I want to check
something.
2023-07-17 06:54:47 +02:00
Mitchell Hashimoto
0849aa8f20
validate locale prior to setting, fallback to en_US.UTF-8
...
Fixes #201
I don't fully understand locales, but it appears that the locale
returned from NSLocale can be "valid" in general but invalid according
to libc's locale API. If you attempt to `setlocale` with this bad
locale, it defaults everything to "C", which ends up breaking a lot of
things.
This commit validates the locale, and if it is invalid, we default to
"en_US.UTF-8" so things tend to work. This behavior can be overridden
using standard environment variables (LANG, LC_ALL, etc.).
This also doesn't touch env vars so further subprocesses from the shell
see original locale env vars.
2023-07-11 11:50:12 -07:00
Mitchell Hashimoto
bf25bf0a6a
move a bunch of files to src/os
2023-07-10 16:48:22 -07:00
Mitchell Hashimoto
9300404603
font: block cursor was not taking full cell width
2023-07-10 11:45:35 -07:00
Mitchell Hashimoto
ea268bae5e
renderer: do not blink explicit steady cursor styles
2023-07-10 11:27:37 -07:00
Mitchell Hashimoto
1028d517e4
do not write scrollback file for alternate screens
2023-07-09 13:03:29 -07:00
Mitchell Hashimoto
5faafbbfa5
write_scrollback_file binding
2023-07-09 12:28:48 -07:00
Mitchell Hashimoto
9a0d131b5b
move TempDir to src/os and use the real tmpDir
2023-07-09 12:14:05 -07:00
Mitchell Hashimoto
26e17de777
add os.tmpDir to get the recommended temp dir base path
2023-07-09 11:58:04 -07:00
Mitchell Hashimoto
791e1a84af
terminal: don't export plainString, its only for testing
2023-07-09 11:56:19 -07:00
Mitchell Hashimoto
a890cc3a5b
terminal: add screen.dumpString
2023-07-09 11:52:37 -07:00
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
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
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
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
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
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
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