Skip to content

[BUG] macOS setup friction + stale runtime_deps_check code in main.py prevents clean launch #45

@edwardexe

Description

@edwardexe

Hi @sgeraldes,

Thanks for creating HiDock Next — it's a fantastic open-source tool!
I finally got the desktop app running on macOS, but the initial setup was quite painful and required several workarounds. Here's a summary of what I encountered so other macOS users (and future contributors) can have a smoother experience.

Issues found:

run-desktop.sh and setup-unix.sh fail on macOS
→ Error: Failed to resolve/ensure virtual environment. Run: python scripts/env/select_venv.py --ensure --print
(The select_venv.py helper seems missing or incompatible with current structure.)
Stale code in apps/desktop/main.py (this was the blocker)
Line 39: from scripts.runtime_deps_check import check_and_handle_runtime_deps
The file scripts/runtime_deps_check.py no longer exists in the repo.
This causes a ModuleNotFoundError, and after commenting the import, a NameError on the function call.
I had to manually comment out both the import and the call in def main() to get the GUI to start.

PYTHONPATH / editable install problems
Root-level scripts/ folder is not automatically importable after pip install -e ".[dev]".
Other minor macOS notes
Must use Python 3.12 (3.13 breaks Tkinter with toast notifications).
brew install libusb + Privacy & Security permission prompt required.

What ultimately worked:

Manual creation of apps/desktop/.venv.mac with Python 3.12
pip install -e ".[dev]" --no-deps
Adding repo root to PYTHONPATH
Commenting out the broken runtime check
Simple alias + launcher script for easy future starts

Once past setup, the app launches cleanly and detects the HiDock device after granting USB permissions.
Suggested fixes:

Clean up / remove the obsolete runtime_deps_check references in main.py
Make ./run-desktop.sh more robust with better fallback for existing venvs
Clearly document Python 3.12 requirement + macOS setup steps
(Optional) Add a simple launch-macos.sh for users who prefer manual control

I'm happy to provide the exact diffs I used, test any PRs, or help further.

-dave

GitHub: @edwardexe

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions