mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-08-24 10:13:41 -05:00
Some terminals provide a modifier key that bypasses mouse capture so that text can be selected with the mouse and copied to the clipboard (option in iTerm, shift in Ghostty), but others don't (e.g. the terminals built into VS Code and Zed). In those, selecting text requires setting gui.mouseEvents to false in the config file and back again afterwards, which is inconvenient. Add a global keybinding (% by default) that toggles mouse capture on the fly. Like the whitespace toggle, it flips the in-memory config value, so the toggled state lasts until the config file is changed and reloaded. The key needs to be free in every panel, and % is; as a plain rune it also arrives reliably in every terminal on all platforms, and it can't fire while typing in a text prompt, since editors consume plain runes. An alt-based binding would have been more mnemonic, but doesn't reach lazygit in the built-in terminals of VS Code and Zed on macOS (the very terminals that need this feature) unless the option key is configured to act as meta; and a ctrl-based binding would burn one of the few remaining free ctrl keys, which are better saved for future features that get used more frequently. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>