Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions app/lib/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"@pen": {
"description": "Pen tool"
},
"invertedPen": "Inverted Pen",
"invertedPen": "Inverted Stylus",
"eraser": "Eraser",
"@eraser": {
"description": "Eraser tool"
Expand Down Expand Up @@ -702,19 +702,20 @@
},
"folderSynced": "Folder synced",
"syncRootDirectory": "Sync root directory",
"penOnlyInput": "Pen only input",
"stylus": "Stylus",
"penOnlyInput": "Stylus only input",
"@penOnlyInput": {
"description": "Setting to enable pen only input mode"
"description": "Setting to enable stylus only input mode"
},
"penOnlyInputAutoDescription": "Automatically enables pen-only mode when a stylus is detected. This setting only lasts for the current session.",
"penOnlyInputAutoDescription": "Automatically enables stylus-only mode when a stylus is detected. This setting only lasts for the current session.",
"penOnlyInputOnDescription": "Always reject touch and mouse input, only accept stylus input.",
"penOnlyInputOffDescription": "Accept all input types including touch, mouse, and stylus.",
"automatic": "Automatic",
"alwaysOn": "Always on",
"alwaysOff": "Always off",
"showPenOnlyToggle": "Show pen only toggle",
"showPenOnlyToggle": "Show stylus only toggle",
"@showPenOnlyToggle": {
"description": "Setting to show pen only toggle button when pen is detected"
"description": "Setting to show stylus only toggle button when stylus is detected"
},
"inputGestures": "Input gestures",
"inputGesturesDescription": "Lets you move and zoom the canvas with touch gestures, even while a drawing tool is selected.",
Expand Down Expand Up @@ -1441,9 +1442,9 @@
"@ignorePressure": {
"description": "Choose how stylus pressure is handled"
},
"ignoreFirstPressureDescription": "Ignores the first pressure reading, which can be inaccurate on some pens.",
"ignorePressureNeverDescription": "Uses every pressure reading from the pen.",
"ignorePressureAlwaysDescription": "Ignores pressure and treats the pen as fully pressed.",
"ignoreFirstPressureDescription": "Ignores the first pressure reading, which can be inaccurate on some styluses.",
"ignorePressureNeverDescription": "Uses every pressure reading from the stylus.",
"ignorePressureAlwaysDescription": "Ignores pressure and treats the stylus as fully pressed.",
"temporary": "Temporary",
"simpleToolbarVisibility": "Simple toolbar visibility",
"@simpleToolbarVisibility": {
Expand Down Expand Up @@ -1579,9 +1580,9 @@
"navigationRailDescription": "Shows a permanent navigation bar on wide screens for quicker access to app sections.",
"optionsPanelPositionDescription": "Chooses whether tool options appear above or below the canvas.",
"simpleToolbarVisibilityDescription": "Controls when the smaller, simplified toolbar appears while editing a note.",
"penOnlyInputDescription": "Prevents accidental marks from your hand or mouse by choosing when only pen input can draw.",
"showPenOnlyToggleDescription": "Shows a quick pen-only switch in the editor after Butterfly detects a pen.",
"ignorePressureDescription": "Controls whether pen pressure changes the stroke and works around inaccurate pressure readings from some pens.",
"penOnlyInputDescription": "Prevents accidental marks from your hand or mouse by choosing when only stylus input can draw.",
"showPenOnlyToggleDescription": "Shows a quick stylus-only switch in the editor after Butterfly detects a stylus.",
"ignorePressureDescription": "Controls whether stylus pressure changes the stroke and works around inaccurate pressure readings from some styluses.",
"moveOnGestureDescription": "Lets multi-touch gestures move the canvas instead of interacting with note content.",
"spreadPagesDescription": "Splits multi-page imports across separate note pages instead of placing everything on one page.",
"shear": "Shear"
Expand Down
18 changes: 9 additions & 9 deletions app/lib/settings/pages/inputs.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ final _inputsSettingsPage = SettingsLeapPage<ButterflySettings>(
'mouse': _mouseSettingsPage,
'touch': _touchSettingsPage,
'keyboard': _keyboardSettingsPage,
'pen': _penSettingsPage,
'stylus': _stylusSettingsPage,
},
sections: {
'devices': SettingsLeapSection(
Expand All @@ -44,9 +44,9 @@ final _inputsSettingsPage = SettingsLeapPage<ButterflySettings>(
onTap: (context) => context.push('/settings/inputs/keyboard'),
),
SettingsLeapActionSetting(
displayName: (context) => AppLocalizations.of(context).pen,
displayName: (context) => AppLocalizations.of(context).stylus,
icon: PhosphorIconsLight.pen,
onTap: (context) => context.push('/settings/inputs/pen'),
onTap: (context) => context.push('/settings/inputs/stylus'),
),
],
),
Expand Down Expand Up @@ -449,8 +449,8 @@ final _keyboardSettingsPage = SettingsLeapPage<ButterflySettings>(
},
);

final _penSettingsPage = SettingsLeapPage<ButterflySettings>(
displayName: (context) => AppLocalizations.of(context).pen,
final _stylusSettingsPage = SettingsLeapPage<ButterflySettings>(
displayName: (context) => AppLocalizations.of(context).stylus,
icon: PhosphorIconsLight.pen,
appBarBuilder: _butterflyAppBar,
onReset: (context, state) => _resetSettingsPage(
Expand Down Expand Up @@ -566,23 +566,23 @@ final _penSettingsPage = SettingsLeapPage<ButterflySettings>(
settings: [
_inputMappingSetting(
id: 'pen',
displayName: (context) => AppLocalizations.of(context).pen,
displayName: (context) => AppLocalizations.of(context).stylus,
icon: PhosphorIconsLight.pen,
read: (config) => config.pen,
write: (config, value) => config.copyWith(pen: value),
),
_inputShortcutSetting(
id: 'doublePenShortcut',
displayName: (context) =>
_getDoubleName(context, AppLocalizations.of(context).pen),
_getDoubleName(context, AppLocalizations.of(context).stylus),
icon: PhosphorIconsLight.pen,
read: (config) => config.doublePenShortcut,
write: (config, value) => config.copyWith(doublePenShortcut: value),
),
_inputShortcutSetting(
id: 'triplePenShortcut',
displayName: (context) =>
_getTripleName(AppLocalizations.of(context).pen),
_getTripleName(AppLocalizations.of(context).stylus),
icon: PhosphorIconsLight.pen,
read: (config) => config.triplePenShortcut,
write: (config, value) => config.copyWith(triplePenShortcut: value),
Expand Down Expand Up @@ -1172,7 +1172,7 @@ class __PointerTestState extends State<_PointerTest> {
subtitle: Text(switch (_kind) {
PointerDeviceKind.touch => AppLocalizations.of(context).touch,
PointerDeviceKind.mouse => AppLocalizations.of(context).mouse,
PointerDeviceKind.stylus => AppLocalizations.of(context).pen,
PointerDeviceKind.stylus => AppLocalizations.of(context).stylus,
PointerDeviceKind.invertedStylus => AppLocalizations.of(
context,
).invert,
Expand Down
42 changes: 21 additions & 21 deletions docs/src/content/docs/docs/v2/shortcuts.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ title: Shortcuts
Shortcuts are a way to map specific inputs to an action that influences the editor.

To begin, go to `Settings` → `Inputs` and then select the input method you want to configure, such
as `Mouse`, `Touch`, `Keyboard` or `Pen`. You will be presented with a list of configurable inputs
as `Mouse`, `Touch`, `Keyboard` or `Stylus`. You will be presented with a list of configurable inputs
and the actions they are currently mapped to.

These actions are divided into [tool activators](#tool-activators)
Expand Down Expand Up @@ -164,34 +164,34 @@ to **tool activators**.*
* `Ctrl` + `V`: Pastes the clipboard
* `Ctrl` + (`1` - `0`): Switch to tool

## Pen
## Stylus

### Pen configurations
### Stylus configurations

| Property | Values | Description |
|---------------------:|:--------------------------------:|:-----------------------------------------------------------------------------------------------------------------|
| Pen only input | Automatic, Always on, Always off | Prevents accidental marks from your hand or mouse when only pen input can draw. |
| Show pen only toggle | true, false | Shows a quick pen-only switch in the editor after Butterfly detects a pen. |
| Ignore pressure | Never, First, Always | Controls whether a pen pressure changes the stroke and works around inaccurate pressure readings from some pens. |
| Property | Values | Description |
|------------------------:|:--------------------------------:|:------------------------------------------------------------------------------------------------------------------------|
| Stylus only input | Automatic, Always on, Always off | Prevents accidental marks from your hand or mouse when only stylus input can draw. |
| Show stylus only toggle | true, false | Shows a quick stylus-only switch in the editor after Butterfly detects a stylus. |
| Ignore pressure | Never, First, Always | Controls whether a stylus pressure changes the stroke and works around inaccurate pressure readings from some styluses. |

### Pen shortcuts
### Stylus shortcuts

By default, the pen is configured to function with the
By default, the stylus is configured to function with the
following **tool activators**:

* `Pen`: Using the pen normally. Defaults to `Active Tool`
* `Inverted Pen`: Using the pen in inverted mode. Defaults to `Toolbar Position 4`
* `Stylus`: Using the stylus normally. Defaults to `Active Tool`
* `Inverted Stylus`: Using the stylus in inverted mode. Defaults to `Toolbar Position 4`
* `First`: While holding its primary button, if supported. Defaults to `Toolbar Position 3` (often
path-eraser)
* `Second`: While holding its secondary button, if supported. Defaults to `Toolbar Position 2`

*By default, the pen **document actions** are all set to `None`.*
*By default, the stylus **document actions** are all set to `None`.*

* `Double Pen`: Double-tapping using a pen
* `Triple Pen`: Triple-tapping using a pen
* `Double Inverted Pen`: Double-tapping using a pen in inverted mode
* `Triple Inverted Pen`: Triple-tapping using a pen in inverted mode
* `Double First`: Double-tapping using a pen while holding its primary button
* `Triple First`: Triple-tapping using a pen while holding its primary button
* `Double Second`: Double-tapping using a pen while holding its secondary button
* `Triple Second`: Triple-tapping using a pen while holding its secondary button
* `Double Stylus`: Double-tapping using a stylus
* `Triple Stylus`: Triple-tapping using a stylus
* `Double Inverted Stylus`: Double-tapping using a stylus in inverted mode
* `Triple Inverted Stylus`: Triple-tapping using a stylus in inverted mode
* `Double First`: Double-tapping using a stylus while holding its primary button
* `Triple First`: Triple-tapping using a stylus while holding its primary button
* `Double Second`: Double-tapping using a stylus while holding its secondary button
* `Triple Second`: Triple-tapping using a stylus while holding its secondary button
12 changes: 6 additions & 6 deletions docs/src/content/docs/docs/v2/stylus-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Stylus support
---

This page collects the current stylus and pen-input behavior in Butterfly.
This page collects the current stylus-input behavior in Butterfly.

## Supported platforms

Expand All @@ -12,16 +12,16 @@ This page collects the current stylus and pen-input behavior in Butterfly.

## Stylus-related settings

You can find stylus-related options in **Settings → Input → Pen**:
You can find stylus-related options in **Settings → Input → Stylus**:

- **Pen-only input** (changed in 2.5): helps avoid accidental finger/touch drawing when using a stylus.
- **Pen-only toggle on stylus detection:** when a stylus is detected, a quick Pen-only toggle is activated; you can still disable it in **Settings → Input → Pen**.
- **Stylus-only input** (changed in 2.5): helps avoid accidental finger/touch drawing when using a stylus.
- **Stylus-only toggle on stylus detection:** when a stylus is detected, a quick Stylus-only toggle is activated; you can still disable it in **Settings → Input → Stylus**.
- **Ignore pressure:** useful when pressure data is unreliable. This is set to help with cases where Firefox reports incorrect pressure on first input.
- **Input test:** lets you verify what pointer/stylus events your device is currently reporting.

## Pen shortcuts and pointer test
## Stylus shortcuts and pointer test

Butterfly supports pen/stylus shortcuts (button mappings can vary by device/OS). If shortcuts do not behave as expected, open **Input test** first and check button values:
Butterfly supports stylus shortcuts (button mappings can vary by device/OS). If shortcuts do not behave as expected, open **Input test** first and check button values:

- **Primary button** commonly appears as `10` (`2`)
- **Secondary button** commonly appears as `100` (`4`) or `100000` (`32`)
Expand Down
Loading