Repository navigation
File Icons
Nibtree can show an icon for each file's type. A PHP file gets the PHP logo, a Dockerfile gets the Docker whale, and a lock file gets a lock. Icons are off by default, because every icon set uses some memory.
[TODO:file-icons.png]
Open Settings > Appearance > File icons, or use View > File Icons in the menu bar. There are three levels:
| Level | What you see | Memory |
|---|---|---|
| No icons | One plain file icon for every file, as before. | Nothing extra is loaded. |
| Minimal | Simple shapes, colored by type: code, JSON, Markdown, images, archives, lock files and more. The colors follow your color theme. | A small icon set is loaded. |
| Material Icons | Full colored icons for over 1,000 file types, from the Material Icon Theme. | A bigger icon set is loaded. Uses the most memory. |
The level applies at once. You do not need to restart.
- The Files panel, in place of the plain file icon. Folders keep their folder icons.
- The Changes list, before each file name.
- The changed files of a commit: in the Log, a commit tab, File History and the Reflog.
Nibtree looks at the file name first, then at the end of the name (the extension):
- Some names have their own icon, such as
package.json,Dockerfile,README.mdand.gitignore. - Otherwise the longest matching extension wins:
cart.spec.tsgets the test icon before the TypeScript icon. - Case does not matter:
LOGO.PNGis an image. - A file type the set does not know gets the plain file icon.
With Material Icons, a few icons have a light version that is used with a light color theme, so they stay easy to see.
Memory matters in Nibtree, so each level loads only its own icons:
- With No icons, no icon set is loaded at all.
- With Minimal, only the Minimal set is loaded.
- With Material Icons, only the Material set is loaded, and the Minimal set is dropped.
- When you switch to another level, the icons of the level you left are released.
Material Icons loads its list of file types when you choose it. Each icon picture is loaded the first time a file of that type is on screen. A list with thousands of files of a few types still loads only those few pictures.
In our test with 2,400 changed files in the Changes list, Minimal used about 2 to 10 MB more than No icons, and Material Icons about 10 to 15 MB more than Minimal. With fewer files the cost is smaller. The web view gives memory back on its own schedule, so the number may not drop the moment you switch back. You can watch it in the status bar: see Memory Use.
The Material Icons level uses icons from Material Icon Theme, under the MIT license. The license file ships with the app.
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