Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to use native tabs on macOS #2946

Closed
agnoster opened this issue Aug 31, 2020 · 8 comments
Closed

Ability to use native tabs on macOS #2946

agnoster opened this issue Aug 31, 2020 · 8 comments

Comments

@agnoster
Copy link

Is your feature request related to a problem? Please describe.
This is perhaps purely a visual preference, but I prefer the "chrome" of my terminal to be visually distinct from the "content" of the terminal, and have a strong preference for native-style tabs over the rendered-in-terminal tabs that are the kitty standard.

Describe the solution you'd like
Any solution - even if it requires some workarounds - would be helpful to me. For example:

  • a config switch to change modes so that all tabs are native tabs
  • the ability to bind a key to new_os_tab (as a counterpart to new_window/new_os_window)
  • a command to just "behave like fullscreen even when not fullscreen for the purpose of new window creation"
  • note that I don't particularly care if the "native tab" maps to a window or tab in kitty parlance, only that I am able to use native tabs as the primary way to create different sessions and move between them. Under the hood they can be windows or tabs or neither, as far as I'm concerned as a user.

Describe alternatives you've considered
I already often use kitty in fullscreen mode just to get this behavior - when you open a new window in fullscreen, kitty creates an os-native tab instead. I love this, and so I already sometimes just fullscreen+new window+un-fullscreen, but I think we can all agree that's cumbersome (I often create and destroy tabs dozens of times in a day). The fact that kitty already supports this tab style makes me hopeful that it could in theory be supported. These native tabs seem to support a lot of functionality - you can even drag and drop native tabs to reorder or even between windows! So they already exist and work great - why can't I find a keybinding to create them out of fullscreen mode?

Additional context
Add any other context or screenshots about the feature request here.

Example of the current normal "terminal tabs":
terminal tabs

Example of creating new windows in fullscreen and switching back to get "native tabs":
native tabs

@kovidgoyal
Copy link
Owner

I'm afraid I have no interest in implementing OS native tabs. Note that
the full screen tabs you get are not created by kitty, they are done by
the OS.

@agnoster
Copy link
Author

agnoster commented Sep 1, 2020

Hi, totally understand not wanting to implement native tabs (as kitty is cross-platform I imagine you want to keep any platform-specific code to a minimum). What I'm really saying is that it seems the behavior I want is already there - i.e. whatever macOS is doing when you make a new window in fullscreen, I just want that. No special other behavior is needed! I'm just looking for a way to get the thing that's already happening, but not only in fullscreen :-)

Note that most macOS apps do not have this behavior (creating a new window in fullscreen mode creates a new fullscreen window in a different space, not a native tab), so there's something kitty is already doing to make new windows in fullscreen create tabs rather than a new window. Not being a mac programmer I'm not really sure what it is, but I could try to investigate that if it would help (and if you'd in principle be open to it?) I can't tell if you are just saying "this seems like not a good use of my time" or "I'm philosophically opposed to it being in kitty".

Also thank you so much for making kitty, it's really fantastic.

@kovidgoyal
Copy link
Owner

No, I'm afraid there really isnt anything kitty is doing, other than
using (configurably) one of two fullscreen modes. Check for yourself,
all macos specific code is in kitty/cocoa_window.m

@ujwal-setlur
Copy link

I just ran across this thread looking for exactly the same thing...too bad it won't be implemented. That is a feature I use heavily in iTerm.

@jianhuiz
Copy link

jianhuiz commented Jul 31, 2021

I'm pretty happy with configuring hide_window_decorations titlebar-only and put kitty tabs at top, the only thing bothers me is moving the terminal window is kinda tricky.
I wonder is it too complicate to add dragging blank area of the tab bar (the very dark gray part) to move window?

Screen Shot 2021-07-30 at 11 28 48 PM

@kovidgoyal
Copy link
Owner

@jianhuiz see #3744

@t-fritsch
Copy link

@agnoster I've just tried what you suggested

when you open a new window in fullscreen, kitty creates an os-native tab instead

But when I do so, the newly opened window doesn't open in a native tab but in a new window in it's own space. When I leave fullscreen in the newly created window, the old one stays in its own space, still in fullscreen and then I have 2 distinct windows.

I know the workaround you gave is almost 3 years old so maybe it simply doesn't work anymore, but any help would be appreciated.

@lougreenwood
Copy link

I also wish we had native Mac OS tabs 😞.

Personally, my preference is for a great terminal that feels both fast and native, I can compromise on the native part for the fast part. But I'm more inclined to jump ship when a new term appears that matches kitty performance and is also native.

Some food for thought in terms of how the project fits into the ecosystem...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants