nnouse is a lightweight macOS menu bar app that lets you control mouse targeting from the keyboard.
It overlays a labeled grid on every screen, lets you jump to a region by typing a short key sequence, and then performs a click either at the center of the selected cell or at a more precise sub-cell location.
- Global activation shortcut to show or hide the grid overlay
- Two-step keyboard targeting for fast mouse clicks
- Precision sub-grid for fine-grained targeting after selecting a main cell
- Continuous cursor movement with
Command+ arrow keys - Menu bar UI with a built-in settings window
- Configurable grid size, opacity, shortcut, cursor movement speed, and label ordering
- Multi-monitor support
- Launch the app.
- Press the activation shortcut to display the grid. By default, this is
Option+Space. - Type two characters to select a main grid cell.
- After the main cell is selected, press
Spaceto click the center of that cell, or type one more character to select a position inside the precision sub-grid and click there. - Press
Escto dismiss the overlay without clicking.
While the app is running, you can also hold Command + arrow keys to move the cursor continuously.
The menu bar icon opens a settings window where you can adjust:
- Number of columns
- Number of rows
- Grid opacity
- Highlight opacity
- Cursor movement FPS
- Activation shortcut
- Cell label ordering mode
The app stores these settings with UserDefaults.
nnouse needs macOS Accessibility permission to listen for global keyboard input and to move/click the mouse.
If permission is missing, add the built app to:
System Settings > Privacy & Security > Accessibility
- Open
nnouse.xcodeproj. - Select the
nnousetarget. - Build and run the app from Xcode.
- Grant Accessibility permission when prompted or add it manually in System Settings.
The project has no external dependencies.
nnouse/main.swift: app entry pointnnouse/Core: app lifecycle, configuration, and persisted settingsnnouse/Grid: overlay windows, grid rendering, and hit geometrynnouse/Mouse: cursor movement and synthetic click handlingnnouse/UI: status bar and settings window UI
This project is currently source-first: open it in Xcode and run it locally to use it.