<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-mousetrap-mode--get-profile-for-mode.el, branch load-graph-classify-start</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=load-graph-classify-start'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2025-11-15T19:40:18+00:00</updated>
<entry>
<title>fix(tests): Update mousetrap test to match current configuration</title>
<updated>2025-11-15T19:40:18+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-15T19:40:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=2c5d93ec6a157fb84a701c9a82b0086051bb5a58'/>
<id>urn:sha1:2c5d93ec6a157fb84a701c9a82b0086051bb5a58</id>
<content type='text'>
The test expected 'primary-click' but the actual configuration maps
dashboard-mode to 'scroll+primary' (mousetrap-mode.el line 69).

Updated test to expect 'scroll+primary' to match current config.

Before: Test expected primary-click (outdated)
After:  Test expects scroll+primary (matches config)

All 11 mousetrap profile tests now passing.
</content>
</entry>
<entry>
<title>feat(mousetrap): Add profile-based architecture and clickable lighter</title>
<updated>2025-11-14T07:22:36+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2025-11-14T07:22:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=a398d8ca21126af8f5d6dd822062f7cba1a9401f'/>
<id>urn:sha1:a398d8ca21126af8f5d6dd822062f7cba1a9401f</id>
<content type='text'>
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
</content>
</entry>
</feed>
