# macOS Option key as Alt in Skink (Ω instead of a shortcut)

> Why Option+key types characters like Ω on a Mac instead of running Skink's Alt shortcuts, how Skink translates them, how to set up your terminal, and typed commands that need no Alt.

Source: https://skink.cc/customize/macos-option-key/

Mac terminals type a character for Option+key (Option+Z gives `Ω`), which would break every Alt shortcut. Skink reads those characters back as the Alt chord whenever that chord does something, so most shortcuts just work.

For the few that cannot be read back, set your terminal to send Option as Alt. Or skip Alt entirely: every key also has a typed command.

## What Skink does by default

With the default `"macoptionisalt": "auto"`:

- Option+Z zooms and Option+P opens quick open, because those Alt chords are bound.
- Where the chord means nothing, the character is typed. You can still write `Ω` in a plain buffer.

### The macoptionisalt setting

| Value | Behaviour |
|---|---|
| `"auto"` | Translate an Option character only when the matching Alt chord is bound (default) |
| `"always"` | Translate every Option character to an Alt chord, on any platform |
| `"never"` | Type the characters as they are |

```json
{ "macoptionisalt": "always" }
```

## Dead keys need a terminal setting

Option+E, I, N, U and &#96; are dead keys. They wait for the next letter to make an accented character, so Skink never sees them.

To use those chords, and for the most reliable result overall, tell your terminal to send Option as Alt:

  **Ghostty**

    In the Ghostty config:
    ```text
    macos-option-as-alt = left
    ```
    The left Option becomes Alt; the right one still types special characters. Skink also turns on the kitty keyboard protocol in Ghostty.
  
  **iTerm2**

    **Profiles → Keys → Left Option key: Esc+**
  
  **Terminal.app**

    **Settings → Profiles → Keyboard → Use Option as Meta key**
  
  **Kitty**

    In `kitty.conf`:
    ```text
    macos_option_as_alt left
    ```
  
  **WezTerm**

    In `wezterm.lua`:
    ```lua
    send_composed_key_when_left_alt_is_pressed = false
    ```
  
  **Alacritty**

    In the Alacritty config:
    ```toml
    option_as_alt = "OnlyLeft"
    ```
  

Setting only the left Option keeps the right one for typing characters like `€` or `ü`.

## Keys that never need Alt

If you would rather not change anything, these do their jobs without Option:

| Job | Use |
|---|---|
| Command palette (every action) | F1 |
| Quick open (instead of Option+P) | `:recent` |
| Zoom (instead of Option+Z) | `:zoom` |
| Show or hide dotfiles (instead of Option+H) | `:dotfiles` |
| Debugging | F5 start / continue, F9 breakpoint, F10 step over |
| Undo | Ctrl+Z |
| Any other key | Ctrl+E, then type its command |

**Every key has a typed command:**
Press Ctrl+E, type the name (for example `comment`, `files` or `peek`) and press Enter. F1 shows each action's command beside its key. See [Every key has a typed command](https://skink.cc/editing/typed-commands/).

## Cmd keys and F-keys

Cmd shortcuts belong to your terminal (copy, paste, new window), not to Skink.

Some laptops need Fn for F-keys. Check your keyboard settings, or turn on "Use F1, F2, etc. keys as standard function keys" in macOS Keyboard settings.

## Related

- [Key bindings](https://skink.cc/customize/keybindings/): move any shortcut to a key that suits you.
- [Keyboard shortcuts](https://skink.cc/reference/shortcuts/): every default key with its typed command.
