Linux keyboard habits on a Mac
On a Mac, ⌘ Command does what Ctrl does in Linux desktop apps (copy, paste, save, new tab), while ⌃ Control keeps its terminal meaning: ⌃C still interrupts, ⌃R still searches history. That split is the good news for Linux users. The awkward parts are the missing Super key for your window manager, and Home and End.
Command, Control and Option
| Linux | Mac | What it's for |
|---|---|---|
| Ctrl in GUI apps | ⌘ Command | Copy, paste, save, find, new tab, close tab |
| Ctrl in a terminal | ⌃ Control | Interrupt, EOF, readline, tmux prefix |
| Alt | ⌥ Option | Special characters when typing; Meta in terminals if you turn it on |
| Super | Nothing fixed | Free for your window manager (see below) |
This is why terminal copy and paste are easy on a Mac: ⌘C and ⌘V work in the terminal, and ⌃C still sends SIGINT. No CtrlShiftC needed.
Option as Meta in the terminal
By default ⌥ types special characters (⌥3 is # on a UK layout, for example), so AltB and AltF for word movement don't work. Every Mac terminal can send Option as Meta:
- Terminal.app: Settings → Profiles → Keyboard → Use Option as Meta key.
- iTerm2: Settings → Profiles → Keys → set Left Option key to Esc+.
- Ghostty and kitty: a config option (
macos-option-as-altin Ghostty,macos_option_as_altin kitty). WezTerm has its own setting for the left and right Option keys.
Emacs keys work everywhere
macOS text fields support the readline-style Emacs bindings out of the box, in nearly every app: ⌃A and ⌃E for start and end of line, ⌃K to kill to end of line, ⌃Y to yank it back, ⌃F/B/N/P to move. Many Linux users find this the nicest surprise of the switch.
Home, End and friends
Mac laptops have no Home or End keys, and on external keyboards they scroll the document instead of moving the cursor in many apps. The Mac equivalents:
| Linux | Mac |
|---|---|
| Home / End | ⌘← / ⌘→, or ⌃A / ⌃E |
| Ctrl← / → | ⌥← / ⌥→ |
| CtrlBackspace | ⌥Delete |
| CtrlHome / End | ⌘↑ / ⌘↓ |
If you'd rather make Home and End behave like Linux, Karabiner-Elements has ready-made rules for it.
Your Super key and window manager
On Linux, Super usually belongs to the window manager: SuperEnter for a terminal, SuperH/L to move focus, Super plus a number for workspaces. On a Mac, ⌘ sits where Super sits, but it's taken by every app, so a window manager needs a different modifier.
Common choices:
- ⌃⌥ together. Rarely used by apps. Ribbon uses it for every shortcut: ⌃⌥H/J/K/L to focus, ⌃⌥⇧ plus the same keys to move, ⌃⌥1–9 to jump.
- ⌥ alone. AeroSpace's defaults use it. It clashes with typing special characters on many non-US layouts.
- A Hyper key. Caps Lock remapped to all four modifiers. See how to set up a Hyper key.
If you came from niri, PaperWM or a sway setup with a scrolling layout, Ribbon gives you the same strip on macOS; niri keybindings on a Mac maps each bind. From i3, see i3 for Mac. You can try Ribbon's keys in the live demo, and pricing is $9.99 once.
Launchers
⌘Space opens Spotlight, the dmenu/rofi stand-in. Many Linux switchers prefer Raycast (free for personal use), which is closer to rofi with scripts and extensions. The Linux to Mac app replacements guide covers the rest of the toolkit.
FAQ
What is the Super key on a Mac?
There isn't one in the Linux sense. ⌘ sits where Super does, but apps use it for their shortcuts, so window managers on macOS use ⌃⌥, ⌥ or a Hyper key instead.
Does Ctrl-C work in the Mac terminal?
Yes. ⌃C interrupts as on Linux. Copy is ⌘C, so the two never clash.
Should I swap Command and Control?
Most Linux users don't need to, because Control keeps its terminal role. A system-wide swap moves the terminal's Control keys to the Command key too; Karabiner-Elements can swap them only in the apps you choose.