Justice Vellacott2k downloadsMobile-optimized UX enhancements with floating action button, context-aware toolbars, and gestures.
A mobile-optimized UX enhancement plugin for Obsidian that provides a floating action button (FAB) and context-aware toolbars.
Ask me for mobile friendly features
Gestures are the heart of this plugin. You can create completely custom gestures to trigger any command in Obsidian.
Gestures are matched based on the shape, so you can draw them at any size or speed.
![]() |
![]() |
![]() |
![]() |
|---|
Dynamic toolbars that adapt based on your cursor position and selection:
| Context | Description |
|---|---|
| Selection | Text is selected |
| List | Cursor in bullet/ordered list |
| Task | Cursor in task list item |
| Heading | Cursor in heading |
| Code Block | Cursor in code block |
| Table | Cursor in table |
| Blockquote | Cursor in blockquote |
| Link | Cursor on a link |
| Default | Fallback when no other context matches |
A dedicated search view optimized for mobile devices:
files-menu event for multiple files and file-menu for single file, allowing plugins to add custom actionsA dedicated view to manage your open tabs:
Enhance your tab management in the mobile tab switcher:
BRAT: Add a beta plugin for testing.https://github.com/TheJusticeMan/obsidian-mobile-plugin.| Setting | Description |
|---|---|
| Show toolbars | Show context-aware toolbars at the bottom of the screen |
| Show built-in toolbar | Show Obsidian's built-in mobile toolbar at the bottom of the screen |
| Show FAB | Show the FAB button at the bottom right of the screen |
| Show tabs in search | Display open tabs when using the mobile search view |
| Tab reordering | Enable drag and drop to reorder tabs in the tab bar |
| Command confirmation | Show confirmation before selecting a new command for a gesture |
| Use Icons | Toggle between icon and text display in toolbars |
| FAB long press | Select command to execute when the FAB is long-pressed |
| FAB press | Select command to execute when the FAB is pressed |
| FAB record start | Select command to execute when FAB is held in recording mode |
| FAB record stop | Select command to execute when FAB is released in recording mode |
| Enable haptic feedback | Vibrate on FAB and toolbar button interactions |
| Gesture Commands | Manage your created gestures (rename, reassign, delete) |
| Reset to default | Restore all settings to their original defaults |
Create reusable toolbars with custom command sets:
editor:toggle-bold).Bind toolbars to editing contexts:
| Command | Description |
|---|---|
Toggle wake lock |
Keeps the screen awake while editing |
Toggle Keep in tablet mode |
Force tablet UI on phones |
Plus press |
Executes the command configured for FAB press |
Plus long press |
Executes the command configured for FAB long press |
Open mobile plugin settings |
Opens the settings modal for this plugin |
Open settings editor view |
Opens the settings as a dedicated editor view |
Open Mobile Search |
Opens the mobile-optimized search view |
Precise cursor movement commands for mobile editing:
| Command | Icon | Description |
|---|---|---|
Up |
arrow-up | Move cursor up one line |
Down |
arrow-down | Move cursor down one line |
Left |
arrow-left | Move cursor left one character with line wrapping |
Right |
arrow-right | Move cursor right one character with line wrapping |
Expand your selection to word boundaries:
| Command | Icon | Description |
|---|---|---|
Expand down |
chevrons-down | Extend selection to next word boundary or line end |
Expand up |
chevrons-up | Extend selection backward to previous word boundary |
Shrink your selection:
| Command | Icon | Description |
|---|---|---|
Shrink down |
chevron-down | Deselect text from the end |
Shrink up |
chevron-up | Deselect text from the start |
Intelligent text selection commands:
| Command | Icon | Description |
|---|---|---|
Select word |
text-cursor | Select word at cursor (finds next word if on whitespace) |
Select sentence |
type | Select sentence at cursor (bounded by .!?) |
Select line |
minus | Select entire line including newline |
Select all |
file-text | Select entire document |
Single command for incremental selection expansion:
| Command | Icon | Description |
|---|---|---|
Select more |
maximize-2 | Progressively expands selection: nothing → word → sentence → line → all |
# Clone the repository
git clone https://github.com/TheJusticeMan/obsidian-mobile-plugin.git
# Install dependencies
npm install
# Build for development (watch mode)
npm run dev
# Build for production
npm run build
src/
├── main.ts # Plugin entry point
├── settings.ts # Settings tab and interfaces
├── components/
│ └── SortableList.ts # Reusable drag-and-drop list component
├── features/
│ ├── cursor-commands.ts # Cursor & selection commands
│ ├── fab.ts # Floating Action Button manager (moved)
│ ├── sidebar-swipe.ts # Swipe Past Side Split / sidebar navigation
│ ├── tab-gestures.ts # Tab gestures and tab switcher logic
│ ├── tablet-mode.ts # Keep-in-tablet-mode helpers
│ └── toolbar.ts # Context-aware toolbar logic
├── utils/
│ ├── gesture-handler.ts # Gesture recognition and handling
│ └── InsertMultipleAttachments.ts # Bulk-attachment helper
└── views/
├── SearchLeaf.ts # Mobile search view
└── TabsLeaf.ts # Tabs view and tab management
If you encounter any issues or have feature requests, please open an issue on GitHub.