Skip to content

Commit 1367521

Browse files
committed
Update Settings documentation in the User Guide.
1 parent bd163fb commit 1367521

File tree

2 files changed

+75
-14
lines changed

2 files changed

+75
-14
lines changed

docs/guide/settings.md

Lines changed: 74 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,94 @@
11
# Settings
22

3-
## UI
3+
## Settings UI
44

55
![settings](../img/settings.png "Settings"){ width="800" }
66

7-
Binary Ninja provides various settings which are available via the `[CMD/CTRL] ,` hotkey for *User* settings and the `[CMD/CTRL] .` hotkey for *Resource* settings which apply to the current BinaryView. These settings allow a wide variety of customization of the user interface and functional aspects of the analysis environment.
7+
Binary Ninja's settings are accessible via `[CMD/CTRL] ,` or `[CMD/CTRL] .` (which auto-selects the current BinaryView's scope). These settings provide extensive customization options for both the user interface and analysis functionality.
88

9-
Several search keywords are available in the settings UI. Those include:
10-
11-
- `@default` - Shows settings that are in the default scope
12-
- `@user` - Shows only settings that the user has changed
13-
- `@project` - Shows settings scoped to the current project
14-
- `@resource` - Shows settings scoped to the current resource (for example if you used open-with-options and changed settings)
15-
- `@modified` - Shows settings that are changed from their default values
9+
## Settings Scopes
1610

1711
There are several scopes available for settings:
1812

1913
* **User Settings** - Settings that apply globally and override the defaults. These settings are stored in `settings.json` within the [User Folder](./index.md#user-folder).
2014
* **Project Settings** - Settings which only apply if a project is opened. These settings are stored in `.binaryninja/settings.json` within a Project Folder. Project Folders can exist anywhere except within the User Folder. These settings apply to all files contained in the Project Folder and override the default and user settings. In order to activate this feature, select the Project Settings tab and a clickable "Open Project" link will appear at the top right of the view. Clicking this will create `.binaryninja/settings.json` in the folder of the currently selected binary view. If it already exists, this link will be replaced with the path of the project folder.
21-
* **Resource Settings** - Settings which only apply to a specific BinaryView object within a file. These settings persist in a Binary Ninja Database (.bndb) database or ephemerally in a BinaryView object if a database does not yet exist for a file.
15+
* **Resource Settings** - Settings which only apply to a specific resource (BinaryView or Function) within a file. These settings persist in a Binary Ninja Database (.bndb) database or ephemerally in a BinaryView/Function object if a database does not yet exist for a file.
2216

2317
???+ Info "Tip"
24-
Both the _Project_ and _Resource_ tabs have a drop down indicator (▾) that can be clicked to select the project or resource whose settings you want to adjust.
18+
Both the _Project_ and _Resource_ tabs have a drop down indicator (▾) for selecting which project or resource settings to modify.
19+
20+
### Filter Keywords
21+
22+
The settings UI supports several filter tags to help find specific settings:
23+
24+
- `@default` - Shows settings that are in the default scope
25+
- `@user` - Shows settings changed by the user
26+
- `@project` - Shows project-scoped settings
27+
- `@resource` - Shows resource-scoped settings (BinaryView or Function-specific)
28+
- `@modified` - Shows settings changed from their default values
2529

2630
All settings are uniquely identified with an identifier string. Identifiers are available in the settings UI via the context menu and are useful for finding settings using the search box and for [programmatically](https://api.binary.ninja/binaryninja.settings-module.html) interacting with settings.
2731

28-
**Note**: In order to facilitate reproducible analysis results, when opening a file for the first time, all of the analysis settings are automatically serialized into the _Resource Setting_ scope. This prevents subsequent _User_ and _Project_ setting modifications from unintentionally changing existing analysis results.
32+
## Resource Settings (BinaryView)
33+
34+
To facilitate reproducible analysis results, when opening a file for the first time, all analysis settings are automatically serialized into the BinaryView's Resource Setting scope. This prevents subsequent User and Project setting modifications from unintentionally changing existing settings which may influence analysis results.
35+
36+
### Accessing BinaryView Resource Settings
37+
38+
BinaryView Resource settings can be accessed through:
39+
40+
* **Settings UI**: Use `[CMD/CTRL] .` to open Resource Settings (automatically selects the current BinaryView)
41+
* **Programmatically**: Use the [Settings API](https://api.binary.ninja/binaryninja.settings-module.html) with a BinaryView object as the resource parameter
42+
43+
## Resource Settings (Function)
44+
45+
Binary Ninja supports function-level settings for fine-grained control over analysis parameters. Unlike BinaryView Resource settings which store a complete copy of all analysis settings, Function Resource settings use an inheritance-based storage model. Each function inherits settings from its BinaryView by default, and only stores settings in its own cache when customization is needed for that specific function.
46+
47+
### Accessing Function Resource Settings
48+
49+
Function Resource settings can be accessed through:
50+
51+
* **Context Menu**: Right-click in any analysis view and select "Function Settings" to access a customizable submenu of boolean settings controlled by the Quick Settings system
52+
* **Programmatically**: Use the [Settings API](https://api.binary.ninja/binaryninja.settings-module.html) with a Function object as the resource parameter
53+
54+
!!! note
55+
Function-specific Resource settings are not currently accessible in the Settings UI Resource dropdown tab.
56+
57+
## Quick Settings
58+
59+
Quick Settings provide streamlined access to frequently used boolean analysis settings directly from the context menu within analysis views. This mechanism is designed for efficient per-function customization without requiring the full Settings UI.
60+
61+
By default, no settings are included in the context menus. Individual settings must be explicitly marked for inclusion.
62+
63+
### Using Quick Settings in Context Menus
64+
65+
1. Right-click within any analysis view (Graph, Linear, etc.).
66+
2. Two submenus may appear:
67+
- **Function Analysis** – Contains settings auto-generated by the Workflow system, used to control activity eligibility.
68+
- **Function Settings** – Contains manually added analysis settings for quick toggling in the Function Resource scope.
69+
3. Toggle settings as needed. These changes apply only to the current function’s settings scope.
70+
4. Select "Reset Settings" to clear the function settings and revert to inherited settings from the BinaryView.
71+
72+
### Adding Quick Settings
73+
74+
1. Open the Settings UI
75+
2. Right-click any boolean setting
76+
3. Select “Add to Quick Settings” to add it to the quick access menu
77+
78+
The setting will appear under the `Function Analysis` or the `Function Settings` submenu in applicable context menus.
79+
80+
### Removing Quick Settings
81+
82+
1. Open the Settings UI
83+
2. Right-click on any boolean setting
84+
3. Uncheck “Add to Quick Settings” to remove it from the quick access menu
85+
86+
### Reset Quick Settings
87+
88+
* Right-click within the Settings dialog.
89+
* Select “Reset All Quick Settings”
2990

30-
## All Settings
91+
## Settings Reference
3192

3293
|Category|Setting|Description|Type|Default|Scope|Key|
3394
|---|---|---|---|---|---|---|

mkdocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ nav:
8888
- User Guide:
8989
- 'guide/index.md'
9090
- Using Plugins: 'guide/plugins.md'
91-
- All Settings: 'guide/settings.md'
91+
- Settings: 'guide/settings.md'
9292
- Projects: 'guide/projects.md'
9393
- Enterprise: 'guide/enterprise/index.md'
9494
- Troubleshooting: 'guide/troubleshooting.md'

0 commit comments

Comments
 (0)