Zedtho / Smack

Smack is a smart, digital accountability partner that automatically blocks unproductive activities.
1 stars 0 forks source link

Add support for Windows/Mac #3

Open Zedtho opened 1 week ago

Zedtho commented 1 week ago

Why? Because almost everybody uses Windows/Mac.

A couple things would need to be made platform-agnostic: 1) Input/Output 2) GUI 3) Release

Input/Output

I suggest adding the following file structure for this ├── inputoutput/ │ ├── __init_\.py │ ├── windows_io.py │ ├── linux_io.py │ ├── mac_io.py

and then using conditional imports in __init__.py, finally giving a platform-agnostic API for smack.py

windows/mac_io.py can use PyGetWindow, which actually works more consistently than the kind of messy xdotool Linux implementation.

2 contains some requirements for this, so if we're lucky we could just use a platform-independent library from the get-go.

Currently I'm using PyInstaller, but that's platform-specific. Presumably github actions is great for this. Some prep for this can be found in #1

Zedtho commented 6 days ago

Resolved Input/Output part in b6d2a84e49f7114d50237f024df11f319d496ec9

Zedtho commented 6 days ago

Resolved Release part in 0d0ade265e7b202003fbcd03dfa89881d65e5002 using github actions and PyInstaller (with icons). Not tested on Windows/Mac yet, though.

Edit: This did not in fact work as far as I can tell

Zedtho commented 2 days ago

Resolved GUI part (#2 ) as Qt Quick works everywhere. That said, pyinstaller is still struggling on MacOS and Windows, nor have I tested it there yet.