wez / wezterm

A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
https://wezfurlong.org/wezterm/
Other
17.7k stars 790 forks source link

Allow disabling the macos notch avoiding system #5338

Open Hackder opened 6 months ago

Hackder commented 6 months ago

Is your feature request related to a problem? Please describe. When entering a non-native fullscreen on a macbook with a notch, wezterm attempts to avoid the notch. I use my tabs at the bottom, and I want wezterm to render under the notch, instead of having a black bar at the top. As far as I know there, is no way to disable the notch-avoidance system.

Describe the solution you'd like Leaving the decision to the user would be the best option in my opinion. Having options like window_padding. Let's say: window_margin get_os_recommended_padding

This would allow people to do all the possible options.

  1. Leaving it with (0, 0, 0, 0) - what I want
  2. window_margin = { top = get_os_recommended_padding().top ... - having a black bar at the top (the current)
  3. window_padding = { top = get_os_recommended_padding().top ... - terminal background overlaps notch, but the content doesn't

Describe alternatives you've considered Adding more options like disable_notch_avoidance would defeat the purpose of having a Turing complete language for configuration. Having these API's exposed to the user would also allow for workarounds for the non perfect notch avoidance (as it is currently). Providing the primitives and letting the user choose, (with sane defaults) is usually the best with these kinds of tools.

Additional context These images contain the two (my, and the current) behaviors.

NOTE: The current one is bugged and doesn't avoid the notch completely, see #3807 but this is unrelated to this feature request

image image

ryan-talus commented 4 months ago

I'm having the same issue here, and I want the same thing; in my case I use the space to the left and right of the notch for to list out my tmux windows, date, time, and host.

The really odd thing, for me, is that if I full screen (using non-native fullscreen, and I get the half-notch, but when I click to my second monitor, the terminal jumps up to meet the top of the screen (exactly like the second photo above) but doesn't stretch to add the line at the bottom.

Making wezterm active again moves the window back down to the half-notch position again.

If wezterm is on my other monitor (normal 4k monitor, no notch) the terminal also jumps up and down as I switch, but in reverse; it is always the right height but when I click away to the macbook screen the terminal jumps down so the content is below the bottom of the screen.

wryanzimmerman commented 4 months ago

I went ahead and added a PR for the simplest form of this, which is just an option to extend the window all the way to the top behind the notch:

https://github.com/wez/wezterm/pull/5759

wryanzimmerman commented 4 months ago

This is how it looks with the option from my PR enabled:

IMG_3418