maomaowm/TECHNICAL_DEBT.md
copilot-swe-agent[bot] 8a7fa8dce2 Fix markdown linting errors in documentation files
Co-authored-by: squassina <8495707+squassina@users.noreply.github.com>
2026-02-19 13:35:16 +00:00

3.6 KiB

Technical Debt Tracking

This document tracks known technical debt items (TODO/FIXME comments) in the MangoWC codebase. These items represent future improvements or issues that need investigation but don't block current functionality.

Status: All items are non-critical. The code functions correctly despite these notes.


TODO Items

1. Mouse Bindings: Scroll Wheel Support

Location: src/mango.c:1803-1804

Current Code:

/* TODO: allow usage of scroll whell for mousebindings, it can be
 * implemented checking the event's orientation and the delta of the event

Description: Mouse bindings currently don't support scroll wheel events. Implementation would require checking the event's orientation and delta values.

Priority: Low
Estimated Effort: Medium (2-4 hours)
Impact: Quality of life improvement for users wanting scroll-based keybindings


2. Input Device Type Support

Location: src/mango.c:3537

Current Code:

/* TODO handle other input device types */

Description: The input device handling code may not support all input device types. Current implementation covers keyboard, pointer, touch, tablet, and switch devices, but there may be edge cases or newer device types not yet handled.

Priority: Low
Estimated Effort: Small-Medium (1-3 hours)
Impact: Better support for specialized input devices


3. Cursor Requirement Question

Location: src/mango.c:3545

Current Code:

/* TODO do we actually require a cursor? */

Description: Question about whether a cursor is always required in the compositor. This may relate to headless or server-only configurations where a cursor might not be needed.

Priority: Very Low
Estimated Effort: Research + potential refactor (variable)
Impact: Could enable headless compositor configurations


4. Cursor Initial Position Hack

Location: src/mango.c:4782-4783

Current Code:

/* TODO hack to get cursor to display in its initial location (100, 100)
 * instead of (0, 0) and then jumping. still may not be fully

Description: Current implementation uses a workaround to position the cursor at (100, 100) instead of (0, 0) to avoid a visual jump. This is marked as a hack that should be properly fixed.

Priority: Low
Estimated Effort: Medium (requires investigation + fix, 3-6 hours)
Impact: Minor cosmetic improvement during startup


FIXME Items

5. Cursor Position After Monitor Power On

Location: src/mango.c:5982-5983

Current Code:

/* FIXME: figure out why the cursor image is at 0,0 after turning all
 * the monitors on.

Description: After turning all monitors on, the cursor image appears at position (0, 0) instead of maintaining its previous position. Root cause is not yet understood.

Priority: Medium
Estimated Effort: Medium-Large (requires debugging, 4-8 hours)
Impact: User experience issue when recovering from monitor power-off state


How to Contribute

If you're interested in addressing any of these items:

  1. Research: Investigate the issue thoroughly
  2. Discuss: Open a GitHub issue to discuss your approach
  3. Implement: Create a PR with your fix
  4. Test: Ensure the fix doesn't introduce regressions
  5. Update: Remove the item from this document and the source code comment

Statistics

  • Total Items: 5
  • TODO Items: 4
  • FIXME Items: 1
  • Priority Breakdown:
    • Very Low: 1
    • Low: 3
    • Medium: 1
    • High: 0

Last Updated: 2026-02-19
Documented By: Code Review Process