-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Labels
guiGUI or app issue regardless of platform (i.e. Swift, GTK)GUI or app issue regardless of platform (i.e. Swift, GTK)os/macos
Milestone
Description
Discussed in #9442
Originally posted by danielwe November 1, 2025
Issue Description
On macOS, adding or removing splits sometimes causes the scrollbar to disappear. The reason is that the SurfaceScrollView instance is not persistent, it's replaced every time the split tree is rebuilt, so the scroll view state is lost (unless the split reconfiguration caused a resize that triggered a scrollbar update from the core).
I took a brief look at making the SurfaceScrollView the persistent, observed view instead of the SurfaceView, but I concluded this is better left to someone who knows SwiftUI better than me.
Screen.Recording.2025-11-01.at.11.15.24.mov
Expected Behavior
Keep the scrollbar.
Actual Behavior
Lose the scrollbar.
Reproduction Steps
- Open System Settings and set Appearance -> Show scroll bars -> Always (not strictly necessary, but makes the issue easier to observe)
- Open Ghostty
- Create a split
- Fill one of the surfaces with enough content to create a scrollbar
- Move to the other surface, and create another split within it
- The point here is to change the split tree in a way that does not resize the surface with the scrollbar
Ghostty Logs
Timestamp Thread Type Activity PID TTL
2025-11-01 11:21:05.506932-0700 0x56258df Info 0x0 3504 0 ghostty: [com.mitchellh.ghostty:ghostty] known but unimplemented action action=38
2025-11-01 11:21:05.508825-0700 0x56258df Info 0x0 3504 0 ghostty: [com.mitchellh.ghostty:io_exec] found Ghostty resources dir: /Applications/Ghostty.app/Contents/Resources/ghostty
2025-11-01 11:21:05.508897-0700 0x56258df Info 0x0 3504 0 ghostty: [com.mitchellh.ghostty:io_exec] shell integration automatically injected shell=.zsh
2025-11-01 11:21:05.509089-0700 0x56258df Info 0x0 3504 0 ghostty: [com.mitchellh.ghostty:ghostty] known but unimplemented action action=20
2025-11-01 11:21:05.515243-0700 0x5626646 Info 0x0 3504 0 ghostty: [com.mitchellh.ghostty:io_exec] started subcommand path=/usr/bin/login pid=3713
Ghostty Version
Ghostty 1.3.0-main+765ee6842
Version
- version: 1.3.0-main+765ee6842
- channel: tip
Build Config
- Zig version : 0.15.2
- build mode : .ReleaseFast
- app runtime : .none
- font engine : .coretext
- renderer : renderer.generic.Renderer(renderer.Metal)
- libxev : kqueue
OS Version Information
macOS 26.0.1 (Tahoe)
(Linux only) Display Server
None
(Linux only) Desktop Environment/Window Manager
No response
Minimal Ghostty Configuration
# no config neededAdditional Relevant Configuration
No response
I acknowledge that:
- I have reviewed the FAQ and confirm that my issue is NOT among them.
- I have searched the Ghostty repository (both open and closed Discussions and Issues) and confirm this is not a duplicate of an existing issue or discussion.
- I have checked the "Preview" tab on all text fields to ensure that everything looks right, and have wrapped all configuration and code in code blocks with a group of three backticks (
```) on separate lines.
Metadata
Metadata
Assignees
Labels
guiGUI or app issue regardless of platform (i.e. Swift, GTK)GUI or app issue regardless of platform (i.e. Swift, GTK)os/macos