feat(widget): dockear al monitor principal por defecto y avisar si el widget queda en otro display
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust, typescript
Research direction
Start where the frontend resolves the dock geometry when dockMonitor is null and find the currentMonitor() call that should become primaryMonitor(). The Rust geometry code the issue mentions is the second place to check. Done means a null dockMonitor docks to the primary display, and a notice or re-dock happens when the strip shows on a non-primary display. The issue asks for product review before implementation, so confirm the behavior with the maintainer first.
Written by the indexing model from the issue text.
Description
Pre-flight checks
- Busqué issues existentes y no encontré duplicados.
- Entiendo que esta propuesta requiere revisión de producto antes de implementarse.
Problem to solve
Descubierto durante el port a macOS (#69, verificación M3): con dockMonitor: null, el frontend resuelve la posición del widget con currentMonitor() (el monitor "actual", que depende de dónde esté el cursor/foco) en vez del monitor principal. En un setup multi-display el widget puede dockearse al borde de un monitor externo — incluso uno ubicado fuera de la vista natural del usuario (arriba del principal) — y como la tira en modo peek es una franja fina (~210 px), el widget parece "desaparecido".
Reproducción real: macOS multi-display (Retina principal + externos, uno de 3008×1692 arriba del principal), dockEdge: "top", dockOffset: 0.53, dockMonitor: null → la ventana del widget quedó en y = -1692 (borde superior del externo). En Windows no se nota porque la taskbar vive en el display principal; el dockeo actual nunca tuvo este caso a la vista.
Proposed solution
Dos cambios de comportamiento (ambos acotados al frontend/Rust de geometría ya existente):
- Con
dockMonitor: null, resolver la geometría contra el monitor principal (primaryMonitor()) por defecto, no contracurrentMonitor(). El "actual" queda solo cuando el usuario fijó explícitamente un monitor en Ajustes. - Al mostrar la tira en un display no principal, emitir una notificación/aviso breve ("Quorb está en el monitor X") o re-dockear al principal si el elegido no está visible.
Affected area
Application behavior
Scope and non-goals
Incluye: default de monitor para el dockeo, aviso/redock de seguridad. No incluye: soporte de widget simultáneo en varios displays, gestión de perfiles por display, cambios de estilo del widget, ni la validación del port macOS (eso sigue en #69 / PR #112).
Alternatives considered
- Dejar el comportamiento actual y solo documentarlo: descartado, el "widget invisible" es una mala primera experiencia en multi-display.
- Recordar el último monitor por coordenadas de ventana en vez de por nombre: frágil si cambia la disposición de displays; el nombre + fallback a principal es más estable.
- Dominant language
- TypeScript
- Stars
- 10
- Forks
- 2
- Avg merge
- 2h 20m
- Merged PRs (30d)
- 64
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from egdev6/quorb
-
feat(macos): preparar distribución versionada e instalación verificablePossibly taken @egdev6 claimed this 1 day ago. Openstatus:approved type:feature
egdev6/quorb#118 · 4 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
ci(macos): validar tests y bundle Apple Silicon en CI nativaPossibly taken @egdev6 claimed this 1 day ago. Openstatus:approved type:feature
egdev6/quorb#117 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
odd type:feature
Difficulty 5/5 Over a week Newbie friendliness 15/100
egdev6/quorb#108 · 1 comment ·
Maintainers usually reply within 1 day
-
odd type:feature
Difficulty 4/5 3-5 days Newbie friendliness 15/100
egdev6/quorb#107 · 1 comment ·
Maintainers usually reply within 1 day
-
odd type:feature
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Maintainers usually reply within 1 day
Similar issues
-
backend priority:P3 privacy-fix
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug desktop v3 windows
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
esengine/DeepSeek-Reasonix#13697 · 1 comment ·
Maintainers usually reply within 1 day
-
area:security documentation effort:S priority:P2
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
app:web meta:ops
Difficulty 2/5 Half a day Newbie friendliness 78/100
osu-tournament-rating/otr#1113 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100