Skip to content

[WIP] Started work on macos port - #59

Draft
ameyakakade wants to merge 10 commits into
vinnovateit:mainfrom
ameyakakade:macos-port
Draft

[WIP] Started work on macos port#59
ameyakakade wants to merge 10 commits into
vinnovateit:mainfrom
ameyakakade:macos-port

Conversation

@ameyakakade

@ameyakakade ameyakakade commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Suggestion to make a new branch for macOS port

Copied over files from the Linux platform to be modified for macOS. Default fallback is linux, MacOS is detected using isMac

Working

  • Wi-Fi detection and status (radio on/off, currently connected network)

  • Scanning for and automatically connecting to VIT Wi-Fi networks, confirmed working end to end on a real Mac

Not yet implemented for macOS (still using Linux version)

  • Secure credential storage (falls back to a generic encrypted file instead of the macOS Keychain)

  • System tray icon and menu -> GTK tray icon works as expected on macOS. ✅?

  • Opening Wi-Fi settings from within the app -> ✅

  • Launch at login / autostart

  • Turning Wi-Fi on programmatically (only reading its state works so far) -> ✅

Known limitations

  • Can't yet rank nearby VIT networks by signal strength when choosing which to connect to

  • Relies on parsing system_profiler's text output, which could break if Apple changes its format

Copied over files from linux platform to be modified for macos.

Default fallback is macos if windows/linux is not detected.

checkWifiEnabled, resolveConnectedWifi and connectToBestVitNetwork is
implemented. Program manages to find wifi networks and successfully
connect to a vit one.
@rugbedbugg
rugbedbugg requested a review from lavan8t August 26, 2026 00:45
@rugbedbugg rugbedbugg added the enhancement New feature or request label Aug 26, 2026
@rugbedbugg

Copy link
Copy Markdown
Contributor

I say keep working on the port for now. Once its finished we can merge it into main. @lavan8t will be final judge for this

@rugbedbugg

Copy link
Copy Markdown
Contributor

@ameyakakade If possible, try to get the port working by early-mid September. We are planning on releasing 1.5.0 and would like to have a stable macOS release.

Also, we are migrating the codebase to KMP to reduce duplicity of code. This might concern the current work in your branch. Make sure to resolve any merge conflicts if they arise.

So, no need to rush development, take it as a tentative deadline. Our main goal is stability as there have been recent reports of crashes in the app.

@rugbedbugg

Copy link
Copy Markdown
Contributor

@ameyakakade The KMP migration I warned you about has landed, and this branch is now conflicting.

The desktop platform layer moved in #85:

desktop/src/desktopMain/kotlin/com/vinnovateit/latch/desktop/platform/
  -> core/src/desktopMain/kotlin/com/vinnovateit/latch/desktop/platform/

All five of your macOS files, plus your DesktopPlatformServices.kt edit, are still at the old path, which no longer exists on main. GitHub now reports the PR as conflicting.

Rebase onto main and move the mac package under core/src/desktopMain/. This is a relocation, not a redesign — MacWifiPlatform, MacCredentialStore, MacAppIndicatorTray and MacSystemActions should carry over as they are.

Do it now rather than later. #92 is in review and touches DesktopPlatformServices.kt as well; if that lands first, you will resolve the same conflict twice.

Still targeting early-mid September for the 1.5.0 macOS release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants