Skip to content

test: linux compatibility adjustments#44

Open
Surajkumar5050 wants to merge 1 commit intomainfrom
feature/linux_test_pr_1
Open

test: linux compatibility adjustments#44
Surajkumar5050 wants to merge 1 commit intomainfrom
feature/linux_test_pr_1

Conversation

@Surajkumar5050
Copy link
Owner

Description

This PR introduces full Linux compatibility for the zyron_linux module. Windows-specific dependencies, file paths, and system commands have been refactored into cross-platform implementations using platform.system() for runtime detection. Windows behavior remains fully intact and continues to use optimized Windows APIs where available.

The objective of this refactor is to enable native Linux execution without breaking or degrading existing Windows functionality.

Changes Made

Platform-Aware Core
Refactored system.py to use Linux-native commands such as xdg-open, pkill, and gio trash, while preserving the original Windows logic.

Browser Native Messaging Support
Updated register_native_host.py to support Linux Firefox manifest paths (~/.mozilla/native-messaging-hosts/) and generate .sh launcher scripts for host execution.

Cross-Platform Activity Tracking
Added Linux-specific default paths for Chrome, Brave, and Edge history databases.

Dependency Isolation
Made win32gui and win32process imports conditional in tracker.py, allowing the tracker to run on Linux using a psutil fallback where required.

Path Normalization
Replaced environment-based temporary paths with tempfile.gettempdir() and ensured proper handling of Linux and Windows path separators across the project.

Import Corrections
Fixed incorrect imports where zyron was referenced instead of zyron_linux, preventing ModuleNotFoundError on Linux systems.

Metadata Update
Updated pyproject.toml to include Linux OS classifiers and corrected a package naming issue in build targets.

Validation Checklist

  • Updated pyproject.toml metadata and corrected packaging configuration.
  • Verified setup flow for structural integrity.
  • Ensured start_zyron.bat maintains compatibility and protected imports prevent module errors.
  • Updated README to reflect expanded platform support.
  • No UI changes were introduced. All updates are internal compatibility improvements.

@Surajkumar5050
Copy link
Owner Author

@Sagetrash can you check it in your Linux machine?
we have to fix the currently present errors then we will move further with new features :)

@Sagetrash
Copy link
Contributor

@Surajkumar5050
on it

@Sagetrash
Copy link
Contributor

when trying to install the app, i got this error

.venv ❯ uv pip install -e .
  × No solution found when resolving dependencies:
  ╰─▶ Because only the following versions of pywin32 are available:
          pywin32==222
          pywin32==223
          pywin32==224
          pywin32==225
          pywin32==226
          pywin32==227
          pywin32==228
          pywin32==300
          pywin32==301
          pywin32==302
          pywin32==303
          pywin32==304
          pywin32==305
          pywin32==306
          pywin32==307
          pywin32==308
          pywin32==309
          pywin32==310
          pywin32==311
      and pywin32<=306 has no wheels with a matching Python ABI tag (e.g., `cp313`), we can conclude that pywin32<=306 cannot be used.
      And because pywin32>=307 has no wheels with a matching platform tag (e.g., `manylinux_2_42_x86_64`) and zyron-assistant==1.5.1 depends on pywin32, we can conclude that
      zyron-assistant==1.5.1 cannot be used.
      And because only zyron-assistant==1.5.1 is available and you require zyron-assistant, we can conclude that your requirements are unsatisfiable.

      hint: You require CPython 3.13 (`cp313`), but we only found wheels for `pywin32` (v306) with the following Python ABI tags: `cp37m`, `cp38`, `cp39`, `cp310`, `cp311`, `cp312`

      hint: Wheels are available for `pywin32` (v311) on the following platforms: `win32`, `win_amd64`, `win_arm64`

This is easily fixed by commenting out the forementioned dependency in pyproject.toml, but it would be helpful if we can somehow make it so that pip only tries to install pywin32 if its a windows platform.

/locations works.
/activities does provide system health stats but not the active applications or browsers. (atleast on my device)
/storage works.

@Surajkumar5050
Copy link
Owner Author

Okay I'll update this in 2 days , as I've something else to do tomorrow. Thank you :)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants