Git Product home page Git Product logo

Comments (8)

zwimer avatar zwimer commented on May 10, 2024 1

A tool build via piainstaller suports -c if the command following -c starts with from multiprocessing.resource_tracker import main;. For an example, see this fork: https://github.com/zwimer/darkdetect

from darkdetect.

zwimer avatar zwimer commented on May 10, 2024

Perhaps the macOS listener should subprocess.Process an osascript that does the same the presently-python subprocess does; since macOS should have osascript where as subprocessing on sys.executable with -c won't always work.

from darkdetect.

zwimer avatar zwimer commented on May 10, 2024

Putting this here in case someone else considers it: we could use the built-in python at /System/Library/Frameworks/Python or something. This would require making the required function / file work without any non-default libraries though, which means the setup.py of this would likely have to subproces.run("/usr/bin/python -m pip install pyobjc-framework-Cocoa --target=(path_to_darkdetect + "/pyobjc") which the listener subprocess could then load. Unless there is a way to create an observer which doesn't require subclassing an NSObject (which as far as I'm aware requires a native component provided via pyobjc's pip). Although that might have to be done at runtime for anything pre-built for many OS versions. So this isn't a great solution either.

from darkdetect.

zwimer avatar zwimer commented on May 10, 2024

For pyinstaller specifically: It seems pyinstaller supports -c as the second to last argument as long as the command starts with from multiprocessing.resource_tracker import main. So a hacky fix for pyinstaller might be to have our command be -c from multiprocessing.resource_tracker import main; import _mac_detect as m; m._listen_child()

from darkdetect.

AlickH avatar AlickH commented on May 10, 2024

For pyinstaller specifically: It seems pyinstaller supports -c as the second to last argument as long as the command starts with from multiprocessing.resource_tracker import main. So a hacky fix for pyinstaller might be to have our command be -c from multiprocessing.resource_tracker import main; import _mac_detect as m; m._listen_child()

Sorry but this command is used in the command line of pyinstaller or write in the python script that pyinstaller is going to pack?

from darkdetect.

AlickH avatar AlickH commented on May 10, 2024

Thanks, I'll try this.

from darkdetect.

zwimer avatar zwimer commented on May 10, 2024

Thanks, I'll try this.

It's presently on pypi as darkdetect-angr. Once this PR is merged in though the fork will likely go away in lieu of the original.

from darkdetect.

LorenEteval avatar LorenEteval commented on May 10, 2024

Thanks, I'll try this.

It's presently on pypi as darkdetect-angr. Once this PR is merged in though the fork will likely go away in lieu of the original.

Thanks for your work. For me another option is to use darkdetect.theme + timer to achieve same "listener" feature on macOS.

Also I found that darkdetect fails to behave under sudo mode. See issue #37 .

from darkdetect.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.