chore: update documentation for mode indicator toaster feature
- commit
- 885eb5ef9f53f92adce02dc362e45611a343656e
- author
- brice · · 2025-12-28 06:47 UTC
- committer
- brice · · 2025-12-28 06:49 UTC
- parent
- fe2336c
- signature
- unsigned
3 files · +24 -10
M CHANGELOG.md +2 -0
| @@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file. | |||
| 5 | 5 | ## [Unreleased] | |
| 6 | 6 | ||
| 7 | 7 | ### Added | |
| 8 | + | - **Mode indicator toaster**: Visual notification showing current modal mode (PANE MODE, TAB MODE, SESSION MODE, RESIZE MODE) at bottom-left corner with mode-specific colors. Configurable via `workspace.styling.mode_indicator_toaster_enabled` (default: true). | |
| 8 | 9 | - **Config migration system**: Detects missing config keys when new settings are added in updates and provides tools to add them. | |
| 9 | 10 | - `dumber config status`: Shows config file path and number of new settings available. | |
| 10 | 11 | - `dumber config migrate`: Lists missing keys with types/defaults and adds them to config file. | |
| @@ -35,6 +36,7 @@ All notable changes to this project will be documented in this file. | |||
| 35 | 36 | - **Console logging**: Standardized console timestamps to `HH:MM:SS` across bootstrap and session logging. | |
| 36 | 37 | ||
| 37 | 38 | ### Fixed | |
| 39 | + | - **Config migration type matching**: Fixed migration incorrectly matching keys of different types (e.g., `_width` int keys with `_color` string keys) during rename detection, preventing value swapping. | |
| 38 | 40 | - **Fullscreen video tab bar**: Fixed tab bar remaining visible during fullscreen video playback. Now hides automatically when entering fullscreen and restores based on normal visibility logic when exiting. | |
| 39 | 41 | - **Progress bar stuck state**: Added 30-second timeout to progress bar to auto-hide if page load stalls and never completes. | |
| 40 | 42 | - **OAuth popup login**: Fixed parent page going blank after OAuth popup closes (e.g., Google login on claude.ai, notion.com). Related WebViews share a web process with their parent; destroying the popup was terminating the shared process, killing the parent. Now skips `TerminateWebProcess()` for popup WebViews. | |
| @@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file. | |||||
| 5 | ## [Unreleased] | 5 | ## [Unreleased] | ||
| 6 | 6 | ||||
| 7 | ### Added | 7 | ### Added | ||
| 8 | + | - **Mode indicator toaster**: Visual notification showing current modal mode (PANE MODE, TAB MODE, SESSION MODE, RESIZE MODE) at bottom-left corner with mode-specific colors. Configurable via `workspace.styling.mode_indicator_toaster_enabled` (default: true). | |||
| 8 | - **Config migration system**: Detects missing config keys when new settings are added in updates and provides tools to add them. | 9 | - **Config migration system**: Detects missing config keys when new settings are added in updates and provides tools to add them. | ||
| 9 | - `dumber config status`: Shows config file path and number of new settings available. | 10 | - `dumber config status`: Shows config file path and number of new settings available. | ||
| 10 | - `dumber config migrate`: Lists missing keys with types/defaults and adds them to config file. | 11 | - `dumber config migrate`: Lists missing keys with types/defaults and adds them to config file. | ||
| @@ -35,6 +36,7 @@ All notable changes to this project will be documented in this file. | |||||
| 35 | - **Console logging**: Standardized console timestamps to `HH:MM:SS` across bootstrap and session logging. | 36 | - **Console logging**: Standardized console timestamps to `HH:MM:SS` across bootstrap and session logging. | ||
| 36 | 37 | ||||
| 37 | ### Fixed | 38 | ### Fixed | ||
| 39 | + | - **Config migration type matching**: Fixed migration incorrectly matching keys of different types (e.g., `_width` int keys with `_color` string keys) during rename detection, preventing value swapping. | |||
| 38 | - **Fullscreen video tab bar**: Fixed tab bar remaining visible during fullscreen video playback. Now hides automatically when entering fullscreen and restores based on normal visibility logic when exiting. | 40 | - **Fullscreen video tab bar**: Fixed tab bar remaining visible during fullscreen video playback. Now hides automatically when entering fullscreen and restores based on normal visibility logic when exiting. | ||
| 39 | - **Progress bar stuck state**: Added 30-second timeout to progress bar to auto-hide if page load stalls and never completes. | 41 | - **Progress bar stuck state**: Added 30-second timeout to progress bar to auto-hide if page load stalls and never completes. | ||
| 40 | - **OAuth popup login**: Fixed parent page going blank after OAuth popup closes (e.g., Google login on claude.ai, notion.com). Related WebViews share a web process with their parent; destroying the popup was terminating the shared process, killing the parent. Now skips `TerminateWebProcess()` for popup WebViews. | 42 | - **OAuth popup login**: Fixed parent page going blank after OAuth popup closes (e.g., Google login on claude.ai, notion.com). Related WebViews share a web process with their parent; destroying the popup was terminating the shared process, killing the parent. Now skips `TerminateWebProcess()` for popup WebViews. | ||
M README.md +2 -2
| @@ -307,7 +307,7 @@ Each tab holds its own workspace. Each workspace can contain multiple panes (spl | |||
| 307 | 307 | 3. **Navigate**: Use `Ctrl+Tab` / `Ctrl+Shift+Tab` for quick tab switching, or `L`/`H` in tab mode | |
| 308 | 308 | 4. **Exit**: Press `Escape` to exit tab mode or wait for timeout | |
| 309 | 309 | ||
| 310 | - | Tab mode provides visual feedback with an orange border indicator. | |
| 310 | + | ||
| 311 | 311 | ||
| 312 | 312 | ## Pane Management | |
| 313 | 313 | ||
| @@ -335,7 +335,7 @@ Dumber automatically saves your browser session (tabs, panes, split ratios, URLs | |||
| 335 | 335 | 4. **Restore**: Select an exited session to restore it in a new browser window | |
| 336 | 336 | 5. **CLI Access**: Use `dumber sessions` for an interactive TUI, or `dumber sessions list/restore/delete` for scripting | |
| 337 | 337 | ||
| 338 | - | Session mode provides visual feedback with a purple border indicator. | |
| 338 | + | ||
| 339 | 339 | ||
| 340 | 340 | ## Configuration | |
| 341 | 341 | ||
| @@ -307,7 +307,7 @@ Each tab holds its own workspace. Each workspace can contain multiple panes (spl | |||||
| 307 | 3. **Navigate**: Use `Ctrl+Tab` / `Ctrl+Shift+Tab` for quick tab switching, or `L`/`H` in tab mode | 307 | 3. **Navigate**: Use `Ctrl+Tab` / `Ctrl+Shift+Tab` for quick tab switching, or `L`/`H` in tab mode | ||
| 308 | 4. **Exit**: Press `Escape` to exit tab mode or wait for timeout | 308 | 4. **Exit**: Press `Escape` to exit tab mode or wait for timeout | ||
| 309 | 309 | ||||
| 310 | - | Tab mode provides visual feedback with an orange border indicator. | 310 | + | |
| 311 | 311 | ||||
| 312 | ## Pane Management | 312 | ## Pane Management | ||
| 313 | 313 | ||||
| @@ -335,7 +335,7 @@ Dumber automatically saves your browser session (tabs, panes, split ratios, URLs | |||||
| 335 | 4. **Restore**: Select an exited session to restore it in a new browser window | 335 | 4. **Restore**: Select an exited session to restore it in a new browser window | ||
| 336 | 5. **CLI Access**: Use `dumber sessions` for an interactive TUI, or `dumber sessions list/restore/delete` for scripting | 336 | 5. **CLI Access**: Use `dumber sessions` for an interactive TUI, or `dumber sessions list/restore/delete` for scripting | ||
| 337 | 337 | ||||
| 338 | - | Session mode provides visual feedback with a purple border indicator. | 338 | + | |
| 339 | 339 | ||||
| 340 | ## Configuration | 340 | ## Configuration | ||
| 341 | 341 | ||||
M docs/CONFIG.md +20 -8
| @@ -333,16 +333,28 @@ Notes: | |||
| 333 | 333 | |-----|------|---------|-------------| | |
| 334 | 334 | | `workspace.styling.border_width` | int | `1` | Active pane border width (px) - overlay | | |
| 335 | 335 | | `workspace.styling.border_color` | string | `"@theme_selected_bg_color"` | Active pane border color | | |
| 336 | - | | `workspace.styling.pane_mode_border_width` | int | `4` | Pane mode border width (px) - Ctrl+P N overlay | | |
| 337 | - | | `workspace.styling.pane_mode_border_color` | string | `"#4A90E2"` | Pane mode border color (blue) | | |
| 338 | - | | `workspace.styling.tab_mode_border_width` | int | `4` | Tab mode border width (px) - Ctrl+P T overlay | | |
| 339 | - | | `workspace.styling.tab_mode_border_color` | string | `"#FFA500"` | Tab mode border color (orange) | | |
| 340 | - | | `workspace.styling.session_mode_border_width` | int | `4` | Session mode border width (px) - Ctrl+O overlay | | |
| 341 | - | | `workspace.styling.session_mode_border_color` | string | `"#9B59B6"` | Session mode border color (purple) | | |
| 342 | - | | `workspace.styling.resize_mode_border_width` | int | `4` | Resize mode border width (px) | | |
| 343 | - | | `workspace.styling.resize_mode_border_color` | string | `"#00D4AA"` | Resize mode border color (teal) | | |
| 336 | + | | `workspace.styling.mode_border_width` | int | `4` | Modal mode border width (px) - applies to all modes | | |
| 337 | + | | `workspace.styling.pane_mode_color` | string | `"#4A90E2"` | Pane mode color (blue) - used for border and toaster | | |
| 338 | + | | `workspace.styling.tab_mode_color` | string | `"#FFA500"` | Tab mode color (orange) - used for border and toaster | | |
| 339 | + | | `workspace.styling.session_mode_color` | string | `"#9B59B6"` | Session mode color (purple) - used for border and toaster | | |
| 340 | + | | `workspace.styling.resize_mode_color` | string | `"#00D4AA"` | Resize mode color (teal) - used for border and toaster | | |
| 341 | + | | `workspace.styling.mode_indicator_toaster_enabled` | bool | `true` | Show toaster notification when modal modes are active | | |
| 344 | 342 | | `workspace.styling.transition_duration` | int | `120` | Border transition duration (ms) | | |
| 345 | 343 | ||
| 344 | + | **Example:** | |
| 345 | + | ```toml | |
| 346 | + | [workspace.styling] | |
| 347 | + | border_width = 1 | |
| 348 | + | border_color = "@theme_selected_bg_color" | |
| 349 | + | mode_border_width = 4 | |
| 350 | + | pane_mode_color = "#4A90E2" # Blue for pane mode | |
| 351 | + | tab_mode_color = "#FFA500" # Orange for tab mode | |
| 352 | + | session_mode_color = "#9B59B6" # Purple for session mode | |
| 353 | + | resize_mode_color = "#00D4AA" # Teal for resize mode | |
| 354 | + | mode_indicator_toaster_enabled = true | |
| 355 | + | transition_duration = 120 | |
| 356 | + | ``` | |
| 357 | + | ||
| 346 | 358 | ## Session | |
| 347 | 359 | ||
| 348 | 360 | | Key | Type | Default | Description | | |
| @@ -333,16 +333,28 @@ Notes: | |||||
| 333 | |-----|------|---------|-------------| | 333 | |-----|------|---------|-------------| | ||
| 334 | | `workspace.styling.border_width` | int | `1` | Active pane border width (px) - overlay | | 334 | | `workspace.styling.border_width` | int | `1` | Active pane border width (px) - overlay | | ||
| 335 | | `workspace.styling.border_color` | string | `"@theme_selected_bg_color"` | Active pane border color | | 335 | | `workspace.styling.border_color` | string | `"@theme_selected_bg_color"` | Active pane border color | | ||
| 336 | - | | `workspace.styling.pane_mode_border_width` | int | `4` | Pane mode border width (px) - Ctrl+P N overlay | | 336 | + | | `workspace.styling.mode_border_width` | int | `4` | Modal mode border width (px) - applies to all modes | |
| 337 | - | | `workspace.styling.pane_mode_border_color` | string | `"#4A90E2"` | Pane mode border color (blue) | | 337 | + | | `workspace.styling.pane_mode_color` | string | `"#4A90E2"` | Pane mode color (blue) - used for border and toaster | |
| 338 | - | | `workspace.styling.tab_mode_border_width` | int | `4` | Tab mode border width (px) - Ctrl+P T overlay | | 338 | + | | `workspace.styling.tab_mode_color` | string | `"#FFA500"` | Tab mode color (orange) - used for border and toaster | |
| 339 | - | | `workspace.styling.tab_mode_border_color` | string | `"#FFA500"` | Tab mode border color (orange) | | 339 | + | | `workspace.styling.session_mode_color` | string | `"#9B59B6"` | Session mode color (purple) - used for border and toaster | |
| 340 | - | | `workspace.styling.session_mode_border_width` | int | `4` | Session mode border width (px) - Ctrl+O overlay | | 340 | + | | `workspace.styling.resize_mode_color` | string | `"#00D4AA"` | Resize mode color (teal) - used for border and toaster | |
| 341 | - | | `workspace.styling.session_mode_border_color` | string | `"#9B59B6"` | Session mode border color (purple) | | 341 | + | | `workspace.styling.mode_indicator_toaster_enabled` | bool | `true` | Show toaster notification when modal modes are active | |
| 342 | - | | `workspace.styling.resize_mode_border_width` | int | `4` | Resize mode border width (px) | | |||
| 343 | - | | `workspace.styling.resize_mode_border_color` | string | `"#00D4AA"` | Resize mode border color (teal) | | |||
| 344 | | `workspace.styling.transition_duration` | int | `120` | Border transition duration (ms) | | 342 | | `workspace.styling.transition_duration` | int | `120` | Border transition duration (ms) | | ||
| 345 | 343 | ||||
| 344 | + | **Example:** | |||
| 345 | + | ```toml | |||
| 346 | + | [workspace.styling] | |||
| 347 | + | border_width = 1 | |||
| 348 | + | border_color = "@theme_selected_bg_color" | |||
| 349 | + | mode_border_width = 4 | |||
| 350 | + | pane_mode_color = "#4A90E2" # Blue for pane mode | |||
| 351 | + | tab_mode_color = "#FFA500" # Orange for tab mode | |||
| 352 | + | session_mode_color = "#9B59B6" # Purple for session mode | |||
| 353 | + | resize_mode_color = "#00D4AA" # Teal for resize mode | |||
| 354 | + | mode_indicator_toaster_enabled = true | |||
| 355 | + | transition_duration = 120 | |||
| 356 | + | ``` | |||
| 357 | + | ||||
| 346 | ## Session | 358 | ## Session | ||
| 347 | 359 | ||||
| 348 | | Key | Type | Default | Description | | 360 | | Key | Type | Default | Description | | ||