# Plan: Allow hiding the drawer toggle in toolbar key edit view

## Context

The drawer toggle button in the keyboard toolbar has a "guarantee" that forces it to always be visible in the main row whenever there's drawer content. When a user hides it via the toolbar key settings, the hide action runs (adding it to `hiddenKeys`), but `effectiveMainRowSlots()` force-inserts it back into the visible main row. The user wants hiding the drawer toggle to actually take effect.

## Changes

### `ghostty-ios/Core/Managers/KeyboardToolbarManager.swift`

**`effectiveMainRowSlots()` (line 182-191)**: Modify the drawer toggle guarantee to respect the user's explicit hide. Change the condition from:

```swift
if !drawer.isEmpty && !visible.contains(.builtIn(.drawerToggle)) {
```

to:

```swift
if !drawer.isEmpty && !visible.contains(.builtIn(.drawerToggle)) && !config.hiddenKeys.contains(.drawerToggle) {
```

This preserves the guarantee for overflow scenarios (drawer toggle pushed out of main row due to capacity) but respects the user's explicit choice to hide it.

No other files need changes — `effectiveDrawerSlots()` already handles overflow removal correctly, and the settings view already allows the hide action on the drawer toggle.

## Verification

1. Build for iOS Simulator: `xcodebuild -project rootshell.xcodeproj -scheme rootshell-AppStore -configuration DebugAppStore -sdk iphonesimulator -arch arm64 build`
2. In the toolbar settings, hide the drawer toggle — it should disappear from the main row and appear in the Hidden Keys section
3. Drawer should no longer be accessible (no toggle button)
4. Unhide the drawer toggle — it should reappear and drawer should work again
5. Verify that if the drawer toggle is in the main row but overflows due to capacity, the guarantee still kicks in (it gets force-inserted displacing the last key)
