Thanks for your interest in improving wayscriber. This guide covers development setup, useful scripts, and the current project structure.
Wayscriber is shared as a gift exchange, not a contract. Requests are welcome, but there is no guaranteed timeline or support obligation. For the full principles, see https://wayscriber.com/docs/ethos/gift-exchange.html
Priority areas for contributions:
- Compositor compatibility testing
- Click-through option while the overlay is active
- Multi-monitor support
- New drawing tools
Run the overlay locally:
cargo run -- --activeRun the GUI configurator:
cargo run -p wayscriber-configuratorUse one of the local CI scripts (they run the same checks):
./tools/lint-and-test.shIf you are working offline, prefetch dependencies first:
./tools/fetch-all-deps.shCargo.toml- Workspace metadata, crate info, features, and dependencies.Cargo.lock- Locked dependency versions for reproducible builds.README.md- User-facing overview, install, usage, and troubleshooting.LICENSE- MIT license text.build.rs- Build-time config for feature aliases viacfg_aliases.clean.sh- Local cleanup helper.config.example.toml- Annotated configuration template shipped to users.
tray_icon.png- Tray icon for daemon mode.
configurator/ (separate GUI configurator crate)
Cargo.toml- Configurator crate manifest.Cargo.lock- Configurator lockfile.README.md- Configurator-specific readme.src/main.rs- Configurator entry point.src/messages.rs- UI message types and dispatch.src/app/- App state, update logic, and views (Iced UI).entry.rs- App entry wiring.io.rs- File IO helpers for config read/write.mod.rs- Module glue.state.rs- Top-level app state.update/- Update handlers for user actions.config.rs- Update logic for config-wide changes.fields.rs- Update logic for field edits.presets.rs- Update logic for preset slots.tabs.rs- Tab switching logic.mod.rs- Update module wiring.
view/- UI view components grouped by config section.arrow.rs- Arrow tool UI.board.rs- Board and page UI.capture.rs- Screenshot capture UI.drawing/- Drawing tool UI.color.rs- Drawing color UI.font.rs- Drawing font UI.mod.rs- Drawing view wiring.
history.rs- Undo/redo history UI.keybindings.rs- Keybinding UI.performance.rs- Performance tuning UI.presets/- Preset editor UI.mod.rs- Preset view wiring.slot/- Preset slot controls.color.rs- Preset color entry.header.rs- Slot header UI.rows.rs- Slot row layout.mod.rs- Slot module wiring.
session.rs- Session persistence UI.tablet.rs- Tablet input UI.ui/- UI/UX settings views.click_highlight.rs- Click highlight settings.help_overlay.rs- Help overlay settings.status_bar.rs- Status bar settings.toolbar.rs- Toolbar settings.mod.rs- UI section wiring.
widgets/- Reusable UI widgets.colors.rs- Color picker widgets.constants.rs- UI constants and shared styles.inputs.rs- Text input widgets.labels.rs- Label styles.validation.rs- Validation indicators.mod.rs- Widget module wiring.
mod.rs- View wiring.
src/models/- Configurator models and mapping to/from core config.color/- Color model helpers.input.rs- Color input parsing.named.rs- Named color mapping.quad.rs- Quad color models.triplet.rs- RGB triplet helpers.tests.rs- Color model tests.mod.rs- Color module wiring.
config/- Draft config model and conversion routines.draft.rs- Draft config structure.parse.rs- TOML parsing into draft.presets.rs- Preset defaults and conversions.setters.rs- Draft setters.tests.rs- Config draft tests.toolbar_overrides.rs- Toolbar override mapping.to_config/- Convert draft into core config.board.rs- Board config conversion.capture.rs- Capture config conversion.drawing.rs- Drawing config conversion.history.rs- History config conversion.keybindings.rs- Keybinding config conversion.performance.rs- Performance config conversion.presets.rs- Preset conversion.session.rs- Session conversion.tablet.rs- Tablet conversion.ui.rs- UI conversion.mod.rs- Conversion wiring.
mod.rs- Config module wiring.
error.rs- Model error types.fields/- Field types and validation helpers.board.rs- Board fields.eraser.rs- Eraser fields.font.rs- Font fields.session.rs- Session fields.status.rs- Status bar fields.toggles.rs- Toggle fields.tool.rs- Tool fields.toolbar.rs- Toolbar fields.tests.rs- Field tests.mod.rs- Field module wiring.
keybindings/- Configurator keybinding models.draft.rs- Draft keybinding model.parse.rs- Parsing helpers.tests.rs- Keybinding model tests.field/- Field-level keybinding helpers.config.rs- Field config mapping.labels.rs- Human-readable labels.list.rs- Key list helpers.tab.rs- Tab grouping.mod.rs- Field module wiring.
mod.rs- Keybinding module wiring.
tab.rs- Tab definitions.util.rs- Shared model helpers.mod.rs- Model module wiring.
CONFIG.md- User configuration guide.SETUP.md- Installation and setup notes.codebase-overview.md- High-level architecture notes.
PKGBUILD- Arch packaging recipe.package.configurator.yaml- Packaging manifest for configurator.package.wayscriber.yaml- Packaging manifest for wayscriber.wayscriber.desktop- Desktop entry for the overlay.wayscriber-configurator.desktop- Desktop entry for configurator.wayscriber.service- Systemd user service unit.icons/- PNG app icons.wayscriber-24.png- 24px icon.wayscriber-64.png- 64px icon.wayscriber-128.png- 128px icon.
wayscriber-configurator-24.png- 24px configurator icon.wayscriber-configurator-64.png- 64px configurator icon.wayscriber-configurator-128.png- 128px configurator icon.
cli.rs- CLI integration tests.ui.rs- UI smoke/integration tests.
README.md- Tooling overview.build.sh- Build helper.build-package-repos.sh- Build package repositories.bump-version.sh- Version bump helper.create-release-tag.sh- Create release tags.fetch-all-deps.sh- Prefetch dependencies for offline builds.install-configurator.sh- Install the configurator.install.sh- Install wayscriber.lint-and-test.sh- Local lint + test runner.package.sh- Build packages.publish-release-tag.sh- Publish release tags.reload-daemon.sh- Reload the daemon systemd unit.test.sh- Test wrapper.update-aur-from-manifest.sh- Update AUR metadata from manifests.update-aur.sh- AUR update helper.
src/main.rs- CLI entry point; selects daemon/overlay execution.src/lib.rs- Library root for shared modules and tests.src/cli.rs- CLI definitions and argument parsing (clap).src/notification.rs- Desktop notification helpers.src/session_override.rs- CLI overrides for session persistence behavior.src/time_utils.rs- Time formatting helpers.src/ui.rs- UI module wiring (status, help overlay, context menu, toasts).
src/about_window/mod.rs- About window module wiring.src/about_window/state.rs- About window state.src/about_window/clipboard.rs- Clipboard support for the about dialog.src/about_window/handlers/- Wayland handlers for about window.src/about_window/handlers/mod.rs- Handler wiring.src/about_window/handlers/compositor.rs- Compositor callbacks.src/about_window/handlers/dispatch.rs- Event dispatch integration.src/about_window/handlers/keyboard.rs- Keyboard input handling.src/about_window/handlers/output.rs- Output enter/leave handling.src/about_window/handlers/pointer.rs- Pointer input handling.src/about_window/handlers/registry.rs- Wayland registry wiring.src/about_window/handlers/seat.rs- Seat and input device setup.src/about_window/handlers/shm.rs- Shared memory setup.src/about_window/handlers/window.rs- Window/layer handling.
src/about_window/render/- Rendering helpers for the about dialog.src/about_window/render/mod.rs- Render module wiring.src/about_window/render/draw.rs- Draw helpers.src/about_window/render/text.rs- Text rendering helpers.src/about_window/render/widgets.rs- Small UI widgets.
src/app/mod.rs- App module wiring.src/app/env.rs- Environment helpers.src/app/session.rs- Session CLI helpers.src/app/usage.rs- Usage output formatting.
src/backend/mod.rs- Backend abstraction module.src/backend/wayland/- Wayland backend implementation.src/backend/wayland/mod.rs- Wayland backend entry.src/backend/wayland/capture.rs- Capture integration hooks.src/backend/wayland/frozen_geometry.rs- Geometry helpers for frozen/zoom.src/backend/wayland/overlay_passthrough.rs- Overlay passthrough mode.src/backend/wayland/session.rs- Session integration helpers.src/backend/wayland/state.rs- Shared state wiring.src/backend/wayland/surface.rs- Surface management.src/backend/wayland/toolbar_intent.rs- Toolbar intent/state helpers.src/backend/wayland/backend/- Event loop core and initialization.src/backend/wayland/backend/mod.rs- Backend core wiring.src/backend/wayland/backend/helpers.rs- Shared backend helpers.src/backend/wayland/backend/run.rs- Main run loop entry.src/backend/wayland/backend/setup.rs- Wayland setup routines.src/backend/wayland/backend/signals.rs- Signal handling.src/backend/wayland/backend/surface.rs- Surface init/configuration.src/backend/wayland/backend/tray.rs- Tray wiring for daemon mode.src/backend/wayland/backend/event_loop/- Event loop phases.capture.rs- Capture pipeline integration.dispatch.rs- Calloop dispatch integration.render.rs- Render pass orchestration.session_save.rs- Session persistence on exit.mod.rs- Event loop wiring.
src/backend/wayland/backend/state_init/- Initial state setup.config.rs- Config-based initialization.input_state.rs- Input state initialization.output.rs- Output and monitor setup.session.rs- Session load setup.tablet.rs- Tablet init.mod.rs- Init module wiring.
src/backend/wayland/frozen/- Frozen screen snapshot pipeline.capture.rs- Screencopy capture setup.image.rs- Frozen image handling.portal.rs- Portal-based capture fallback.state.rs- Frozen state machine.mod.rs- Module wiring.
src/backend/wayland/handlers/- Wayland protocol handlers.activation.rs- XDG activation.buffer.rs- Buffer management.compositor.rs- Compositor callbacks.layer.rs- Layer-shell handling.output.rs- Output enter/leave handling.pointer_constraints.rs- Pointer constraint setup.registry.rs- Registry discovery.relative_pointer.rs- Relative pointer handling.seat.rs- Seat setup.shm.rs- Shared memory setup.screencopy.rs- Screencopy protocol.xdg.rs- XDG surface handling.keyboard/- Keyboard handling.mod.rs- Keyboard handler implementation.translate.rs- Keysym to internal key mapping.
pointer/- Pointer event handling.axis.rs- Scroll/axis events.cursor.rs- Cursor management.enter_leave.rs- Pointer enter/leave events.motion.rs- Pointer motion events.press.rs- Button press events.release.rs- Button release events.mod.rs- Pointer handler wiring.
tablet/- Tablet and stylus handling.device.rs- Tablet device handling.manager.rs- Tablet manager setup.pad.rs- Tablet pad input.pad_group.rs- Pad group wiring.pad_ring.rs- Pad ring input.pad_strip.rs- Pad strip input.seat.rs- Tablet seat integration.tool.rs- Stylus tool handling.mod.rs- Tablet handler wiring.
src/backend/wayland/state/- Wayland runtime state and rendering.activation.rs- Activation state.capture.rs- Capture state.data.rs- Core state data structures.helpers.rs- State helpers.tests.rs- State tests.toolbar.rs- Toolbar state plumbing.zoom.rs- Zoom state plumbing.core/- Core state accessors and init.accessors.rs- Shared accessors.init.rs- State init glue.output.rs- Output identity helpers.overlay.rs- Overlay state helpers.mod.rs- Module wiring.
render/- Overlay render pipeline.mod.rs- Render wiring.ui.rs- UI render passes.tool_preview.rs- Tool preview rendering.canvas/- Canvas rendering.background.rs- Background painting.overlays.rs- Overlay render layers.text.rs- Text rendering.mod.rs- Canvas render wiring.
toolbar/- Toolbar runtime state and layout helpers.events.rs- Toolbar event definitions.geometry.rs- Toolbar geometry calculations.drag/- Drag handlers for toolbar.base.rs- Common drag state.clamp.rs- Bounds clamps.move_drag.rs- Move drag logic.relative.rs- Relative drag logic.mod.rs- Drag wiring.
inline/- Inline toolbar state.drag.rs- Inline drag handling.focus.rs- Inline focus handling.input.rs- Inline input routing.render.rs- Inline rendering.mod.rs- Inline wiring.
visibility/- Toolbar visibility state.access.rs- Visibility accessors.pointer.rs- Pointer-driven visibility.sync.rs- Visibility sync helpers.tests.rs- Visibility tests.mod.rs- Visibility wiring.
src/backend/wayland/toolbar/- Toolbar layout, rendering, and surfaces.events.rs- Toolbar event types.hit.rs- Hit-testing for toolbar regions.render.rs- Toolbar render entry.mod.rs- Toolbar module wiring.layout/- Toolbar layout definitions.mod.rs- Layout wiring.side/- Side palette layout.actions.rs- Action rows layout.colors.rs- Color rows layout.delay.rs- Delay slider layout.header.rs- Header layout.pages.rs- Pages layout.presets.rs- Presets layout.settings.rs- Settings layout.sliders.rs- Slider layout.mod.rs- Side layout wiring.
spec/- Layout constants and specs.top.rs- Top strip spec.side/- Side palette specs.constants.rs- Layout constants.sizes.rs- Size tables.mod.rs- Spec wiring.
mod.rs- Spec wiring.
top/- Top strip layout.icons.rs- Icon layout.text.rs- Text layout.mod.rs- Top layout wiring.
tests/- Layout tests.mod.rs- Test module.
main/- Toolbar main state and update logic.input.rs- Input handling.lifecycle.rs- Lifecycle helpers.render.rs- Rendering hooks.state.rs- Toolbar state.structs.rs- Toolbar structs and data types.mod.rs- Main module wiring.
render/- Toolbar render pieces.side_palette/- Side palette renderers.actions.rs- Action rows.colors.rs- Color rows.header.rs- Header render.marker.rs- Marker rows.pages.rs- Page controls.settings.rs- Settings rows.text.rs- Text rows.thickness.rs- Thickness rows.mod.rs- Side palette wiring.presets/- Preset renderer.format.rs- Preset format helpers.header.rs- Preset header render.widgets.rs- Preset widgets.mod.rs- Preset wiring.slot/- Preset slot rendering.actions.rs- Slot actions.content.rs- Slot content.feedback.rs- Slot feedback.mod.rs- Slot wiring.
step/- Custom step UI.custom_rows.rs- Custom step rows.delay_sliders.rs- Delay slider rows.mod.rs- Step wiring.
top_strip/- Top strip renderers.text.rs- Top strip text.mod.rs- Top strip wiring.icons/- Top strip icons.shape_picker.rs- Shape picker icons.tool_row.rs- Tool row icons.utility_row.rs- Utility icons.mod.rs- Icon wiring.
widgets/- Reusable toolbar widgets.background.rs- Backgrounds.buttons.rs- Button widgets.checkbox.rs- Checkbox widgets.color.rs- Color swatches.icons.rs- Icon helpers.labels.rs- Label text.primitives.rs- Primitive shapes.tooltip.rs- Tooltip rendering.mod.rs- Widget wiring.
surfaces/- Toolbar surfaces and buffers.hit.rs- Hit test wiring.lifecycle.rs- Surface lifecycle.render.rs- Surface rendering.state.rs- Surface state.structs.rs- Surface structs.mod.rs- Surface wiring.
src/backend/wayland/zoom/- Zoom feature pipeline.capture.rs- Zoom capture.portal.rs- Portal fallback.state.rs- Zoom state machine.view.rs- Zoom view transform.mod.rs- Module wiring.
src/bin/dump_config_schema.rs- CLI for config JSON schema export.
src/capture/mod.rs- Capture module wiring.src/capture/clipboard.rs- Clipboard output handling.src/capture/dependencies.rs- Runtime dependency checks.src/capture/file.rs- File output handling.src/capture/manager.rs- Capture orchestration.src/capture/pipeline.rs- Capture pipeline steps.src/capture/portal.rs- Portal capture integration.src/capture/types.rs- Capture data types.src/capture/sources/- Capture source backends.frozen.rs- Frozen screenshot source.hyprland.rs- Hyprland capture source.portal.rs- Portal capture source.reader.rs- Shared capture reader.mod.rs- Source wiring.
src/capture/tests/- Capture tests and fixtures.fixtures.rs- Test fixtures.manager.rs- Manager tests.perform_capture.rs- End-to-end capture tests.placeholder.rs- Placeholder tests.mod.rs- Test wiring.
src/config/mod.rs- Config module wiring.src/config/core.rs- Core config structure.src/config/enums.rs- Config enums.src/config/io.rs- Read/write helpers.src/config/keybindings.rs- Keybinding loader/adapter glue.src/config/paths.rs- Config file path helpers.src/config/schema.rs- JSON schema export.src/config/test_helpers.rs- Test fixtures for config.src/config/keybindings/- Keybinding types, defaults, and maps.actions.rs- Action enums.binding.rs- Key binding parsing and display.tests.rs- Keybinding tests.config/- Map/build logic.map/- Action map builders.board.rs- Board bindings map.capture.rs- Capture bindings map.colors.rs- Color bindings map.core.rs- Core bindings map.presets.rs- Preset bindings map.selection.rs- Selection bindings map.tools.rs- Tool bindings map.ui.rs- UI bindings map.zoom.rs- Zoom bindings map.mod.rs- Map wiring.
types/- Keybinding config structs.bindings/- Per-domain binding lists.board.rs- Board binding config.capture.rs- Capture binding config.colors.rs- Color binding config.core.rs- Core binding config.presets.rs- Preset binding config.selection.rs- Selection binding config.tools.rs- Tool binding config.ui.rs- UI binding config.zoom.rs- Zoom binding config.mod.rs- Binding wiring.
mod.rs- Type wiring.
mod.rs- Keybinding config wiring.
defaults/- Default keybinding lists.board.rs- Board defaults.capture.rs- Capture defaults.colors.rs- Color defaults.core.rs- Core defaults.presets.rs- Preset defaults.selection.rs- Selection defaults.tools.rs- Tool defaults.ui.rs- UI defaults.zoom.rs- Zoom defaults.mod.rs- Defaults wiring.
src/config/tests/- Config tests.file_io.rs- IO tests.load.rs- Load tests.schema.rs- Schema tests.validate.rs- Validation tests.mod.rs- Test wiring.
src/config/types/- Config type definitions.arrow.rs- Arrow settings types.board.rs- Board settings types.capture.rs- Capture settings types.click_highlight.rs- Click highlight settings types.context_menu.rs- Context menu settings types.drawing.rs- Drawing settings types.help_overlay.rs- Help overlay settings types.history.rs- History settings types.performance.rs- Performance settings types.presets.rs- Preset settings types.session.rs- Session settings types.status_bar.rs- Status bar settings types.tablet.rs- Tablet settings types.ui.rs- UI settings types.toolbar/- Toolbar settings types.config.rs- Toolbar config.mode.rs- Toolbar mode types.overrides.rs- Toolbar overrides.mod.rs- Toolbar types wiring.
mod.rs- Type wiring.
src/config/validate/- Config validation.arrow.rs- Arrow validation.board.rs- Board validation.drawing.rs- Drawing validation.fonts.rs- Font validation.history.rs- History validation.keybindings.rs- Keybinding validation.performance.rs- Performance validation.presets.rs- Preset validation.session.rs- Session validation.tablet.rs- Tablet validation.ui.rs- UI validation.mod.rs- Validation wiring.
src/daemon/mod.rs- Daemon module wiring.src/daemon/core.rs- Daemon core state and logic.src/daemon/icons.rs- Tray icon helpers.src/daemon/tests.rs- Daemon tests.src/daemon/types.rs- Daemon data types.src/daemon/overlay/- Overlay process control.mod.rs- Overlay module wiring.process.rs- Process management.spawn.rs- Spawn helpers.
src/daemon/tray/- System tray integration.helpers.rs- Tray helper functions.ksni.rs- KSNI trait implementation.runtime.rs- Tray runtime state.mod.rs- Tray wiring.
src/draw/mod.rs- Drawing module wiring.src/draw/color.rs- Color utilities.src/draw/dirty.rs- Dirty tracking helpers.src/draw/font.rs- Font helpers.src/draw/canvas_set/- Canvas set management.pages.rs- Multi-page canvas state.set.rs- Canvas set logic.tests.rs- Canvas set tests.mod.rs- Canvas set wiring.
src/draw/frame/- Frame and history logic.core.rs- Frame core.frame_storage.rs- Frame storage helpers.serde.rs- Frame serialization.types.rs- Frame data types.history/- Undo/redo history.undo_action.rs- Undo action types.frame/- Frame history helpers.apply.rs- Apply history.primary.rs- Primary history ops.prune.rs- History pruning.mod.rs- History frame wiring.
mod.rs- History wiring.
tests/- Frame tests.serialization.rs- Serialization tests.history/- History tests.basics.rs- History basics.limits.rs- History limits.prune.rs- Pruning tests.validate.rs- History validation tests.mod.rs- History test wiring.
mod.rs- Frame test wiring.
mod.rs- Frame wiring.
src/draw/render/- Cairo/Pango rendering helpers.background.rs- Background render.highlight.rs- Highlight render.primitives.rs- Render primitives.selection.rs- Selection render.shapes.rs- Shape renderers.strokes.rs- Stroke render.text.rs- Text render.types.rs- Render types.mod.rs- Render wiring.
src/draw/shape/- Shape definitions.bounds.rs- Shape bounds helpers.text.rs- Text shape helpers.types.rs- Shape types and enums.tests.rs- Shape tests.mod.rs- Shape wiring.
src/input/mod.rs- Input module wiring.src/input/board_mode.rs- Board mode enums and helpers.src/input/events.rs- Input event types (keys/buttons).src/input/modifiers.rs- Modifier state tracking.src/input/tool.rs- Tool enum and defaults.src/input/hit_test/- Hit testing helpers.geometry.rs- Geometry math.shapes.rs- Shape hit testing.tests.rs- Hit test tests.mod.rs- Hit test wiring.
src/input/tablet/- Tablet input glue.mod.rs- Tablet module wiring.
src/input/state/- Input state machine.mod.rs- State wiring.render.rs- Input-driven render helpers.actions/- Key action handling.action_board_pages.rs- Page actions.action_capture_zoom.rs- Capture/zoom actions.action_colors.rs- Color actions.action_core.rs- Core actions.action_dispatch.rs- Action dispatch.action_history.rs- History actions.action_presets.rs- Preset actions.action_selection.rs- Selection actions.action_tools.rs- Tool actions.action_ui.rs- UI actions.help_overlay.rs- Help overlay actions.key_release.rs- Key release handling.key_press/- Key press handling.bindings.rs- Binding resolution.panels.rs- Panel key handling.text_input.rs- Text input key handling.mod.rs- Key press wiring.
mod.rs- Actions wiring.
core/- Core input state logic.base/- Base state structs and helpers.state/- Base state internals.init.rs- State initialization.modifiers.rs- Modifier synchronization.structs.rs- State structs.mod.rs- State wiring.
types.rs- Base types.mod.rs- Base wiring.
board.rs- Board-level state.dirty.rs- Dirty region tracking.highlight_controls.rs- Highlight tool control.history.rs- History control.index.rs- State index helpers.selection.rs- Selection state.utility/- Utility helpers and dispatch.actions.rs- Utility actions.font.rs- Font helpers.frozen_zoom.rs- Freeze/zoom helpers.help_overlay.rs- Help overlay helpers.interaction.rs- Interaction helpers.launcher.rs- Launcher helpers.pending.rs- Pending action helpers.toasts.rs- Toast helpers.mod.rs- Utility wiring.
menus/- Context menu handling.commands.rs- Menu command handling.focus.rs- Menu focus handling.hover.rs- Menu hover handling.layout.rs- Menu layout.lifecycle.rs- Menu lifecycle.types.rs- Menu types.entries/- Menu entries per context.canvas.rs- Canvas menu entries.pages.rs- Pages menu entries.shape.rs- Shape menu entries.mod.rs- Entry wiring.
mod.rs- Menu wiring.
properties/- Selection properties panel.apply.rs- Property apply logic.entries.rs- Property entries.panel.rs- Panel state.summary.rs- Summary rendering helpers.types.rs- Property types.utils.rs- Panel utilities.panel_layout/- Panel layout helpers.focus.rs- Panel focus.interaction.rs- Panel interaction.layout.rs- Layout calc.mod.rs- Layout wiring.
apply_selection/- Apply selection helpers.constants.rs- Apply constants.helpers.rs- Apply helpers.actions/- Property-specific actions.arrow.rs- Arrow property apply.color.rs- Color property apply.fill.rs- Fill apply.stroke.rs- Stroke apply.text.rs- Text apply.mod.rs- Action wiring.
mod.rs- Apply selection wiring.
mod.rs- Properties wiring.
selection_actions/- Selection operations.clipboard.rs- Copy/paste.delete.rs- Delete helpers.delete/- Delete helpers split by concern.tests.rs- Delete tests.
geometry.rs- Selection geometry.reorder.rs- Z-order changes.state.rs- Selection state ops.translation/- Move/resize translation.bounds.rs- Translation bounds.transform.rs- Transform helpers.undo.rs- Undo helpers.mod.rs- Translation wiring.
text/- Text selection editing.edit.rs- Edit handling.handles.rs- Handle geometry.wrap.rs- Wrap logic.mod.rs- Text wiring.
mod.rs- Selection actions wiring.
tool_controls/- Tool and preset controls.presets.rs- Preset controls.settings.rs- Settings controls.toolbar.rs- Toolbar controls.mod.rs- Tool controls wiring.
mod.rs- Core wiring.
highlight/- Highlight tool state.settings.rs- Highlight settings.state/- Highlight runtime state.mod.rs- State wiring.tests.rs- Highlight tests.
mod.rs- Highlight wiring.
mouse/- Mouse input handling.motion.rs- Mouse motion.press.rs- Press handling.release/- Release handling.drawing.rs- Drawing on release.panels.rs- Panel release handling.selection.rs- Selection release handling.text.rs- Text release handling.mod.rs- Release wiring.
mod.rs- Mouse wiring.
tests/- Input state tests.basics.rs- Basics.drawing.rs- Drawing tests.erase.rs- Eraser tests.helpers.rs- Test helpers.transform.rs- Transform tests.menus/- Menu tests.context_menu.rs- Context menu tests.history.rs- History menu tests.locks.rs- Lock menu tests.mod.rs- Menu test wiring.
selection/- Selection tests.actions.rs- Selection action tests.deletion.rs- Selection deletion tests.duplicate.rs- Selection duplication tests.mod.rs- Selection test wiring.
text_edit/- Text edit tests.commit_cancel.rs- Commit/cancel tests.resize.rs- Resize tests.triggers.rs- Trigger tests.mod.rs- Text edit test wiring.
text_input/- Text input tests.actions.rs- Text input action tests.board.rs- Board mode text input tests.escape.rs- Escape handling tests.idle.rs- Idle handling tests.text_mode.rs- Text mode tests.mod.rs- Text input test wiring.
mod.rs- Test wiring.
src/paths/mod.rs- XDG path resolution helpers.src/paths/tests.rs- Path tests.
src/session/mod.rs- Session module wiring.src/session/lock.rs- Lockfile helpers.src/session/options/- Session options.config.rs- Config to options mapping.identifiers.rs- Display/output identity helpers.types.rs- Options types.tests.rs- Options tests.mod.rs- Options wiring.
src/session/snapshot/- Snapshot capture/load/save.apply.rs- Apply snapshot to input state.capture.rs- Capture snapshot from input state.compression.rs- Compression helpers.history.rs- History policies.load.rs- Load snapshot.save.rs- Save snapshot.types.rs- Snapshot types.tests.rs- Snapshot tests.mod.rs- Snapshot wiring.
src/session/storage/- Storage helpers.clear.rs- Clear stored session data.inspect.rs- Inspect stored session state.types.rs- Storage types.tests.rs- Storage tests.mod.rs- Storage wiring.
src/session/tests/- Session tests.helpers.rs- Test helpers.history.rs- History tests.limits.rs- Size/limit tests.options.rs- Options tests.roundtrip.rs- Roundtrip tests.snapshot.rs- Snapshot tests.mod.rs- Test wiring.
src/toolbar_icons/mod.rs- Icon module wiring.src/toolbar_icons/actions.rs- Action icons.src/toolbar_icons/controls.rs- Control icons.src/toolbar_icons/security.rs- Security icons.src/toolbar_icons/tools.rs- Tool icons.src/toolbar_icons/zoom.rs- Zoom icons.src/toolbar_icons/history/- History icons.arrows.rs- Arrow history icons.clock.rs- Clock history icons.steps.rs- Step history icons.mod.rs- History icon wiring.
src/ui/context_menu.rs- Context menu render.src/ui/primitives.rs- UI primitives.src/ui/properties_panel.rs- Properties panel render.src/ui/toasts.rs- Toast render.src/ui/help_overlay/- Help overlay UI.fonts.rs- Help overlay fonts.grid.rs- Help overlay grid layout.keycaps.rs- Keycap rendering.layout.rs- Layout helpers.search.rs- Search/filter handling.sections.rs- Section definitions.types.rs- Overlay types.nav/- Overlay navigation.render.rs- Nav rendering.state.rs- Nav state.mod.rs- Nav wiring.
render/- Overlay render pipeline.frame.rs- Frame render.metrics.rs- Layout metrics.palette.rs- Colors and palette.state.rs- Render state.mod.rs- Render wiring.
mod.rs- Help overlay wiring.
src/ui/status/- Status bar UI.badges.rs- Badge render.bar.rs- Status bar render.mod.rs- Status bar wiring.
src/ui/toolbar/- Toolbar UI wiring (input side).bindings.rs- Toolbar keybinding mapping.events.rs- Toolbar events.snapshot.rs- Toolbar snapshot helper.apply/- Apply toolbar state to input.actions.rs- Toolbar actions.delays.rs- Delay adjustments.layout.rs- Layout helpers.pages.rs- Page controls.tools.rs- Tool selection.mod.rs- Apply wiring.
mod.rs- Toolbar wiring.
src/util/mod.rs- Utility module wiring.src/util/arrow.rs- Arrow math helpers.src/util/colors.rs- Color helpers.src/util/geometry.rs- Geometry helpers.src/util/tests.rs- Utility tests.