aboutsummaryrefslogtreecommitdiff
path: root/modules/mousetrap-mode.el
Commit message (Collapse)AuthorAgeFilesLines
* fix(mousetrap): Fix dashboard click/scroll blocking issueCraig Jennings2025-11-151-8/+3
| | | | | | | | | | | | - Change dashboard profile from primary-click to scroll+primary (allows both scrolling and left-clicking in dashboard) - Remove incorrect manual manipulation of minor-mode-map-alist (define-minor-mode handles this automatically via mouse-trap-mode-map) - Simplify disable logic to just clear the buffer-local keymap The bug was that manually prepending to minor-mode-map-alist interfered with Emacs' automatic buffer-local keymap lookup. Now each buffer gets its own keymap based on major mode, and Emacs handles the lookup correctly.
* feat(mousetrap): Add profile-based architecture and clickable lighterCraig Jennings2025-11-141-43/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement comprehensive profile-based system for selective mouse event control with dynamic lighter and interactive toggling. Features: - Profile-based architecture (7 profiles: disabled, scroll-only, primary-click, scroll+primary, read-only, interactive, full) - Mode-specific configuration (dashboard, pdf-view, nov) - Dynamic keymap building based on current major mode - Clickable modeline lighter (🐭 when off, 🪤 when on) - Dynamic reconfiguration without Emacs reload - Mode inheritance support via derived-mode-p Profiles define which event categories are allowed: - primary-click: Left mouse button only - secondary-click: Middle and right buttons - drags: Drag selections - multi-clicks: Double and triple clicks - scroll: Mouse wheel/trackpad scrolling Default configuration: - dashboard-mode: primary-click (left-click only) - pdf-view-mode: full (all events) - nov-mode: full (all events) - Other modes: disabled (all events blocked) Tests: - 66 comprehensive tests across 5 test files - Unit tests for profile lookup and keymap building - Integration tests for mode switching and dynamic config - Lighter functionality and click interaction tests - All tests passing Known issue: - Dashboard-mode clicks blocked despite primary-click profile - Documented in todo.org for investigation
* feat(mousetrap): Add configurable mouse wheel scrollingCraig Jennings2025-11-131-8/+17
| | | | | | | | | | | | Added `mouse-trap-enable-scrolling` variable to allow mouse wheel scrolling while still blocking clicks and drags. Defaults to enabled for better usability - users can still scroll with mouse/trackpad but accidental clicks are prevented. - Added defvar mouse-trap-enable-scrolling (default: t) - Conditionally bind wheel events based on variable - Updated docstrings to reflect new behavior - Works for both mouse wheel and trackpad two-finger scrolling
* feat:which-key: Add descriptive labels for custom keymapsCraig Jennings2025-10-271-0/+3
| | | | | | | | | | | | Enhance which-key integration by providing detailed descriptions for new key bindings across multiple modules. This improves the usability of custom keymaps by clarifying the purpose of each keybinding, making it easier for users to navigate and understand different menus and options available within the configuration. This update ensures that all custom keymaps now display a descriptive label in the which-key popup to explain their functionality, aiding users in identifying keymap purposes promptly.
* feat:mouse-trap-mode: add buffer-local activation and excluded modesCraig Jennings2025-10-201-7/+20
| | | | | | | Modify `mouse-trap-mode` to activate buffer-locally and add an exclusion list of major modes where the mode should not be enabled. Update description and bindings for improved text and prog mode integration.
* feat: mousetrap-mode: move mousetrap-mode from wip into moduleCraig Jennings2025-10-121-0/+53