Repository navigation
Code Appearance
These settings are in Settings, Editor. They apply to editors, diffs and the merge tool alike, and open editors change at once. The default font is JetBrains Mono at 13 px and Regular weight when it is installed, else Menlo.
[TODO:editor-font-weight.png]
Editor font weight set to Light, with the font preview above it.
Editor font weight sets how thick code is drawn. Drag the slider from Thin (100) to Black (900), in steps of 100. The default is Regular (400). Double-click the slider to go back to it. The preview above the slider shows the result before you close Settings.
For a soft, calm look on a dark theme, try Light (300) with JetBrains Mono. Bold text in code, such as Markdown headings, stays a little heavier than the weight you pick.
The weight needs a font that has it. JetBrains Mono, SF Mono and most variable fonts have every weight. A font with only Regular and Bold, such as Menlo, uses the closest one it has.
Line spacing sets the space between lines of code, as a multiple of the font size. Drag the slider from 1.00 (tight) to 2.50 (airy), in steps of 0.05. The default is 1.25. Double-click the slider to go back to it.
Syntax highlighting colors code by its language: keywords, strings, comments and so on. It is on by default and works in editors, diffs, the merge tool and the code blocks of the Markdown preview.
Turn it off to see every file as plain text and save memory. Off, Nibtree loads no language grammar and keeps no syntax tree (the structure of the code it builds to color it), which saves about 35 MB. Turned off while the app runs, the trees go at once and the rest after a restart. Some features need that structure and stop while it is off: fold arrows and bracket pair colors. Sticky scroll then follows the indentation, and Toggle Comment (Cmd+/) still works. Open editors change at once.

Render whitespace set to All: a dot for each space and an arrow for each tab.
Render whitespace draws spaces as dots and tabs as arrows. Pick one:
- None: nothing is drawn.
- Boundary: all spaces and tabs except single spaces between words.
- Selection (the default): only inside the text you select.
- Trailing: only the spaces and tabs at the end of lines.
- All: every space and tab.
The cursor settings work, plus the cursor's extra height:
- Cursor style: Line (the default), Line thin, Block, Block outline, Underline or Underline thin. A block is see-through.
- Cursor width: how thick the Line cursor is, 1 to 6 pixels (2 by default).
- Cursor blinking: Blink, Smooth (fades), Phase (fades slowly), Expand (shrinks and grows back) or Solid. The cursor stays visible while you type.
- Smooth caret animation: the cursor glides instead of jumping.
- Caret extra top and Caret extra bottom: make the cursor up to 10 pixels taller above and below. Double-click a slider to set it back to 0.
The line with the cursor has a soft background. While you select text, the highlight steps aside, so a selection inside one line is always easy to see.
Word wrap breaks long lines at the edge of the editor. Turn it on or off with View > Word Wrap or Option+Z, or in Settings. The top line stays where it is. Diffs and the merge tool never wrap, so their sides stay lined up.
Each file keeps the indentation it already has. With Detect indentation on (the default), the editor reads the file when it opens: tabs or spaces, and how many spaces make one level. A file indented with 2 spaces gets 2 when you press Tab or Enter, even when Tab size is 4. The status bar shows what it found, such as Spaces: 2 or Tab Size: 4.
Tab size is used for files with no indentation to follow, such as a new empty file, and sets how wide a tab looks. Turn detection off with View > Detect Indentation or in Settings > Editor, and every file uses Tab size. Open files follow both settings at once.
View > Zoom In (Cmd+=) and Zoom Out (Cmd+-) make the code font one pixel bigger or smaller everywhere. Reset Zoom (Cmd+0) goes back to the default size.
With Change font size with Ctrl + mouse wheel on in Settings, hold Control (or Command) and scroll over an editor, diff or merge pane to resize the code. A trackpad pinch works too.
These pages are generated from docs/wiki. To correct something, open a pull request against the source file; edits made here are overwritten.
Using Nibtree
- Getting Started
- Welcome Screen
- Workspaces
- Files Panel
- File Operations
- File Icons
- Rounded Panels
- Editor and Tabs
- Pin Reorder and Wrap Tabs
- Single Tab Title
- Split Editor
- New File and Unsaved Changes
- Unload Hidden Tabs
- Editing Code
- Code Appearance
- Markdown Editor
- Image and PDF Preview
- Search Everywhere
- Recent Files
- Navigation Bar
- Find and Replace
- Changes and Commits
- Sign In Prompts
- Commit Box Layout
- Repository Actions
- Commit Options
- Ignoring Files
- Diffs
- Inline Diffs
- Staging View
- Revert a Change
- Resolving Conflicts
- Merge Tool
- Blame
- History and Log
- Merge Commits
- Branches and Tags
- Branches Popup
- Remotes
- Stashes
- Shelf
- Git Menu
- Git Dialogs
- Interactive Rebase
- Worktrees
- AI Agents
- AI Tasks
- AI Usage
- Keep Computer Awake
- Submodules
- Git LFS
- GitHub
- Git Console
- Terminal
- Terminal Features
- Scripts
- Navigation
- Menus
- Settings
- Settings Search
- Color Themes
- Settings Terminal and Automation
- Settings Files
- Updates
- Status Bar and Help
- Notifications
- Memory Use
- Clear Cache
- MCP and CLI
- Git Mergetool
- Keyboard Shortcuts
- Keyboard Shortcuts Editor
- Troubleshooting
- Troubleshooting Git
Developers
- Developer Guide
- Architecture
- Project Layout
- Backend
- How Folder Watching Works
- Folder Watching Bugs We Fixed
- How Workspace Files Work
- How the Preview Scheme Works
- Backend Services
- How Terminal Features Work
- Terminal Bugs We Fixed
- Frontend
- How the Rich Markdown Editor Works
- Rich Markdown Bugs We Fixed
- Git Menu Links
- Menu Keys and Routing
- Frontend Modules
- Blame Bugs We Fixed
- Project Color And Title Bar
- One Diff View
- Diff Bugs We Fixed
- Merge Tool Layouts
- Merge Tool Bugs We Fixed
- Color Theme Bugs We Fixed
- How the Connected Diff Works
- Rounded Panels Bugs We Fixed
- Update Bugs We Fixed
- Status Bar Bugs We Fixed
- MCP and CLI Bugs We Fixed
- Repository Actions Bugs We Fixed
- How the Changes Tab Works
- CodeMirror Patterns
- How the Cursor Works
- How Editor Features Work
- How the Path Bar Works
- Commands and Events
- Settings Reference
- Commands Workspace and Changes
- Commands Branches and Remotes
- Commands History and Extras
- Commands App and Tools
- Testing
- Test Suites
- Debugging
- Debugging with MCP
- Measuring Setting Memory
- How Terminal Memory Is Measured
- How Markdown Diagrams Work
- Releases and CI
- Publishing the Wiki
- Versioning and Changelog
- Browser Version Packages
- Browser Release Checks
- Docker Image
- Platforms and Signing
- Windows Support
- Windows Bugs We Fixed
- Windows MCP and CLI
- Docs and Screenshots
- UI Library
- UI Library MCP
- UI Library Bugs
- UI Library Migration
- Contributing
How features work
- Welcome screen
- Workspaces and folders
- Files panel
- File operations
- File icons
- Editor and tabs
- Pin, reorder and wrap tabs
- Single tab title
- Split editor
- New File and unsaved changes
- Unload hidden tabs
- Editing code
- Code appearance
- Markdown editor
- Image and PDF preview
- Search Everywhere
- Recent Files
- Navigation Bar
- Find and replace
- Changes and commits
- Sign-in prompts
- Commit box layout
- Repository actions
- Commit options
- Ignoring files
- Diffs
- Inline diffs
- Staging view
- Revert a change
- Resolving conflicts
- Merge tool
- Blame
- History and log
- Merge commits
- Commit tabs
- Branches and tags
- Branches popup
- Remotes
- Stashes
- Shelf
- Git menu
- Git dialogs
- Interactive rebase
- Worktrees
- AI agents
- AI usage
- Keep computer awake
- AI tasks
- Submodules
- Git LFS
- GitHub account
- Git Console
- Back and Forward
- Integrated terminal
- Scripts tool window
- Menu bar
- Settings
- Search in Settings
- Color themes
- Rounded panels
- Updates and release channels
- Status bar and help links
- Notifications
- Memory readout and memory log
- Clear Cache
- MCP server and command line tool
- git mergetool mode