psieg / Lightpack

Lightpack and Prismatik open repository
GNU General Public License v3.0
1.59k stars 190 forks source link

Apple Silicon. #406

Open PatricioooAG opened 4 years ago

PatricioooAG commented 4 years ago

Hello, Im Patricio and Im using this app in MacOS, its perfect. And ¿ Is in the way a Silicon update ? Thanks so much.

iswitch commented 3 years ago

expected until qt 6.2 is out https://wiki.qt.io/Qt_6.2_Release

Released! https://www.qt.io/blog/qt-6.2-lts-released

zomfg commented 3 years ago

almost there yes https://formulae.brew.sh/formula/qt they seem to struggle

zomfg commented 3 years ago

you can try the #498 build when it's done

psieg commented 3 years ago

@Patriciooo @melgu It would be great to have this tested by someone with M1 before making it an official release. When you have some time, please give it a try and confirm it works as expected. Thanks! @zomfg it's only 2M larger than the previous package, shouldn't it be more?

melgu commented 3 years ago

@psieg The app starts as expected. Screen grabbing doesn't work though. It repeatably asks for microphone and accessibility access, even though both have already been granted.

I should probably add that I'm on the Monterey Beta. Screen Grabbing in the previous version of Prismatik stopped working as well, as I just noticed. So it seems to be connected to the macOS beta.

franz67fw commented 3 years ago

Hello guys ! I changed my previous MBAir 2013 for the last one with M1 , So I’ll try the last versions asap afterwork :) By the way , has someone any idea about which serial port number I need to write in the specifics while I’ll launch the app. ? thanks in advance

PatricioooAG commented 3 years ago

Hello guys ! I changed my previous MBAir 2013 for the last one with M1 , So I’ll try the last versions asap afterwork :) By the way , has someone any idea about which serial port number I need to write in the specifics while I’ll launch the app. ? thanks in advance

ls /dev/tty.usb* in terminal

PatricioooAG commented 3 years ago

@psieg The app starts as expected. Screen grabbing doesn't work though. It repeatably asks for microphone and accessibility access, even though both have already been granted.

I should probably add that I'm on the Monterey Beta. Screen Grabbing in the previous version of Prismatik stopped working as well, as I just noticed. So it seems to be connected to the macOS beta.

The same here. I'm in Monterey and don't work. For get working again I need to restore from local snapshot.

zomfg commented 3 years ago

@zomfg it's only 2M larger than the previous package, shouldn't it be more?

master artifact

% find . -type f -exec file {} \; | grep archi
./Frameworks/QtCore.framework/Versions/A/QtCore: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64]
./Frameworks/QtCore.framework/Versions/A/QtCore (for architecture x86_64):  Mach-O 64-bit dynamically linked shared library x86_64
./Frameworks/QtCore.framework/Versions/A/QtCore (for architecture arm64):   Mach-O 64-bit dynamically linked shared library arm64
./Frameworks/QtDBus.framework/Versions/A/QtDBus: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64:Mach-O 64-bit dynamically linked shared library arm64]
./Frameworks/QtDBus.framework/Versions/A/QtDBus (for architecture x86_64):  Mach-O 64-bit dynamically linked shared library x86_64
./Frameworks/QtDBus.framework/Versions/A/QtDBus (for architecture arm64):   Mach-O 64-bit dynamically linked shared library arm64
./Frameworks/QtGui.framework/Versions/A/QtGui: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64]
./Frameworks/QtGui.framework/Versions/A/QtGui (for architecture x86_64):    Mach-O 64-bit dynamically linked shared library x86_64
./Frameworks/QtGui.framework/Versions/A/QtGui (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64
./Frameworks/QtNetwork.framework/Versions/A/QtNetwork: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64]
./Frameworks/QtNetwork.framework/Versions/A/QtNetwork (for architecture x86_64):    Mach-O 64-bit dynamically linked shared library x86_64
./Frameworks/QtNetwork.framework/Versions/A/QtNetwork (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64
./Frameworks/QtSerialPort.framework/Versions/A/QtSerialPort: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64:Mach-O 64-bit dynamically linked shared library arm64]
./Frameworks/QtSerialPort.framework/Versions/A/QtSerialPort (for architecture x86_64):  Mach-O 64-bit dynamically linked shared library x86_64
./Frameworks/QtSerialPort.framework/Versions/A/QtSerialPort (for architecture arm64):   Mach-O 64-bit dynamically linked shared library arm64
./Frameworks/QtSvg.framework/Versions/A/QtSvg: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64:Mach-O 64-bit dynamically linked shared library arm64]
./Frameworks/QtSvg.framework/Versions/A/QtSvg (for architecture x86_64):    Mach-O 64-bit dynamically linked shared library x86_64
./Frameworks/QtSvg.framework/Versions/A/QtSvg (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64
./Frameworks/QtWidgets.framework/Versions/A/QtWidgets: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64]
./Frameworks/QtWidgets.framework/Versions/A/QtWidgets (for architecture x86_64):    Mach-O 64-bit dynamically linked shared library x86_64
./Frameworks/QtWidgets.framework/Versions/A/QtWidgets (for architecture arm64): Mach-O 64-bit dynamically linked shared library arm64
./MacOS/Prismatik: Mach-O universal binary with 3 architectures: [x86_64:Mach-O 64-bit executable x86_64] [x86_64h] [arm64]
./MacOS/Prismatik (for architecture x86_64):    Mach-O 64-bit executable x86_64
./MacOS/Prismatik (for architecture x86_64h):   Mach-O 64-bit executable x86_64h
./MacOS/Prismatik (for architecture arm64): Mach-O 64-bit executable arm64
./PlugIns/iconengines/libqsvgicon.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64]
./PlugIns/iconengines/libqsvgicon.dylib (for architecture x86_64):  Mach-O 64-bit bundle x86_64
./PlugIns/iconengines/libqsvgicon.dylib (for architecture arm64):   Mach-O 64-bit bundle arm64
./PlugIns/imageformats/libqgif.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64]
./PlugIns/imageformats/libqgif.dylib (for architecture x86_64): Mach-O 64-bit bundle x86_64
./PlugIns/imageformats/libqgif.dylib (for architecture arm64):  Mach-O 64-bit bundle arm64
./PlugIns/imageformats/libqico.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64]
./PlugIns/imageformats/libqico.dylib (for architecture x86_64): Mach-O 64-bit bundle x86_64
./PlugIns/imageformats/libqico.dylib (for architecture arm64):  Mach-O 64-bit bundle arm64
./PlugIns/imageformats/libqjpeg.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64]
./PlugIns/imageformats/libqjpeg.dylib (for architecture x86_64):    Mach-O 64-bit bundle x86_64
./PlugIns/imageformats/libqjpeg.dylib (for architecture arm64): Mach-O 64-bit bundle arm64
./PlugIns/platforms/libqcocoa.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64]
./PlugIns/platforms/libqcocoa.dylib (for architecture x86_64):  Mach-O 64-bit bundle x86_64
./PlugIns/platforms/libqcocoa.dylib (for architecture arm64):   Mach-O 64-bit bundle arm64
./PlugIns/styles/libqmacstyle.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64]
./PlugIns/styles/libqmacstyle.dylib (for architecture x86_64):  Mach-O 64-bit bundle x86_64
./PlugIns/styles/libqmacstyle.dylib (for architecture arm64):   Mach-O 64-bit bundle arm64
./PlugIns/tls/libqcertonlybackend.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64]
./PlugIns/tls/libqcertonlybackend.dylib (for architecture x86_64):  Mach-O 64-bit bundle x86_64
./PlugIns/tls/libqcertonlybackend.dylib (for architecture arm64):   Mach-O 64-bit bundle arm64
./PlugIns/tls/libqsecuretransportbackend.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64]
./PlugIns/tls/libqsecuretransportbackend.dylib (for architecture x86_64):   Mach-O 64-bit bundle x86_64
./PlugIns/tls/libqsecuretransportbackend.dylib (for architecture arm64):    Mach-O 64-bit bundle arm64

seems good

@psieg The app starts as expected. Screen grabbing doesn't work though. It repeatably asks for microphone and accessibility access, even though both have already been granted.

I should probably add that I'm on the Monterey Beta. Screen Grabbing in the previous version of Prismatik stopped working as well, as I just noticed. So it seems to be connected to the macOS beta.

Try removing all Prismatik permissions (esp screen recording one) and redoing them from scratch, this is probably a side effect of unsigned builds

melgu commented 3 years ago

Try removing all Prismatik permissions (esp screen recording one) and redoing them from scratch

Doesn't help. I tried all kinds of combinations. Removing the app and all its permissions, granting them beforehand, granting them in the dialog, disallowing them in the dialog. No matter what, at each start of the app, I get asked for the same two permissions (microphone & screen recording).

zomfg commented 3 years ago

hmmm on 12.0.1 / intel

melgu commented 3 years ago

Did it exactly like you. Still no difference. Asks at every start and screen recording doesn't work. 12.0.1 / M1, Build is the one from 10 days ago in this thread.

melgu commented 3 years ago

Starting it from the command line gives the following output, with the last two being repeated indefinitely.

>>> /Applications/Prismatik.app/Contents/MacOS/Prismatik
/Applications/Prismatik.app/Contents/MacOS/main.conf
Unportable version
Configuration directory: /Users/melvin/.Prismatik
22:37:41:829 Debug: Prismatik: 5.11.2.30 rev. 0d90f68
22:37:41:829 Debug: Build with Qt verison: 6.2.0
22:37:41:829 Debug: Qt version currently in use: 6.2.0
22:37:41:829 Debug: Running on: "macOS 12.0"
22:37:41:928 Warning: Fail load translation for locale "de_DE" pathToLocale ":/translations/de_DE"
22:37:42:168 Debug: Start main event loop: lightpackApp.exec();
22:37:42:197 Warning: -[MacOSNativeAVCapture captureSessionNotification:]_block_invoke session runtime error:  Der Vorgang konnte nicht abgeschlossen werden
22:37:42:237 Critical: virtual GrabResult MacOSAVGrabber::grabDisplay(const CGDirectDisplayID, GrabbedScreen &) [capture getLastPixelBuffer:] returned error:  Der Vorgang konnte nicht abgeschlossen werden
22:37:42:237 Critical: virtual GrabResult MacOSGrabberBase::grabScreens() grabDisplay failed
PrzemyslawSarnacki commented 2 years ago

How this issue looks for now? Can Prismatik be run on M1? I tried with every build in this topic as well as official builds and unfortunatelly leds are not lighting up (while using custom FastLED program they light up just fine).

zomfg commented 2 years ago

is moodlamp mode working for you?

PrzemyslawSarnacki commented 2 years ago

No unfortunatelly it's not working at all (leds are not lighting up)

zomfg commented 2 years ago

look in the logs (~/.Prismatik) for serial errors maybe

PrzemyslawSarnacki commented 2 years ago

I managed to connect it wirelessly via WLED and Expert mode and it works but it looks like only background image is captured (changes to windows are not reflected in actions of the Ambilight system; only switching between virtual desktops results in some "movement")

zomfg commented 2 years ago

what did you do in Expert mode?

PrzemyslawSarnacki commented 2 years ago

I'm sorry I didn't mean Expert mode. I meant wizard with network settings. I'm not sure how that happened but after running Prismatik from terminal (just like @meigu) screen grabbing works as expected.

cyb3rw0lf commented 2 years ago

I have similar issue, on macOS Monterey 12.0.1 Apple Silicon M1 max, even after I granted rights for screen recording it still fail. It works fine in Mood Lamp mode

~ /Applications/Prismatik.app/Contents/MacOS/Prismatik
/Applications/Prismatik.app/Contents/MacOS/main.conf
Unportable version
Configuration directory: /Users/w0lf/.Prismatik
19:40:49:227 Debug: Prismatik: 5.11.2.30 rev. 0d90f68
19:40:49:227 Debug: Build with Qt verison: 6.2.0
19:40:49:227 Debug: Qt version currently in use: 6.2.0
19:40:49:227 Debug: Running on: "macOS 12.0"
19:40:51:009 Debug: Start main event loop: lightpackApp.exec();
19:40:51:052 Warning: -[MacOSNativeAVCapture captureSessionNotification:]_block_invoke session runtime error:  The operation could not be completed
19:40:51:087 Critical: virtual GrabResult MacOSAVGrabber::grabDisplay(const CGDirectDisplayID, GrabbedScreen &) [capture getLastPixelBuffer:] returned error:  The operation could not be completed
19:40:51:087 Critical: virtual GrabResult MacOSGrabberBase::grabScreens() grabDisplay failed
19:40:51:138 Critical: virtual GrabResult MacOSAVGrabber::grabDisplay(const CGDirectDisplayID, GrabbedScreen &) [capture getLastPixelBuffer:] returned error:  The operation could not be completed
zomfg commented 2 years ago

does this capture on M1?

cyb3rw0lf commented 2 years ago

does this capture on M1?

Yes this works

Kaitoukid93 commented 2 years ago

I have similar issue, on macOS Monterey 12.0.1 Apple Silicon M1 max, even after I granted rights for screen recording it still fail. It works fine in Mood Lamp mode

~ /Applications/Prismatik.app/Contents/MacOS/Prismatik
/Applications/Prismatik.app/Contents/MacOS/main.conf
Unportable version
Configuration directory: /Users/w0lf/.Prismatik
19:40:49:227 Debug: Prismatik: 5.11.2.30 rev. 0d90f68
19:40:49:227 Debug: Build with Qt verison: 6.2.0
19:40:49:227 Debug: Qt version currently in use: 6.2.0
19:40:49:227 Debug: Running on: "macOS 12.0"
19:40:51:009 Debug: Start main event loop: lightpackApp.exec();
19:40:51:052 Warning: -[MacOSNativeAVCapture captureSessionNotification:]_block_invoke session runtime error:  The operation could not be completed
19:40:51:087 Critical: virtual GrabResult MacOSAVGrabber::grabDisplay(const CGDirectDisplayID, GrabbedScreen &) [capture getLastPixelBuffer:] returned error:  The operation could not be completed
19:40:51:087 Critical: virtual GrabResult MacOSGrabberBase::grabScreens() grabDisplay failed
19:40:51:138 Critical: virtual GrabResult MacOSAVGrabber::grabDisplay(const CGDirectDisplayID, GrabbedScreen &) [capture getLastPixelBuffer:] returned error:  The operation could not be completed

same here

antoncuranz commented 2 years ago

Hey guys!

Just wanted to let you know that I finally got screen capturing on M1 working: I first installed the latest artifact from the CI (link). Then I self-signed the application by creating a Code Signing certificate in Keychain Access and running the following command:

sudo codesign --deep -fs 'my-cert' Prismatik.app

I think there was some certificate problem that prevented the app from getting the necessarry permissions.

Sourcedine commented 2 years ago

Thank you, it works again now! :)

LucasLyu commented 2 years ago

@ant0ncuranz hello! How to create a Code Signing?

LucasLyu commented 2 years ago

@ant0nuranz Thank you very much. After using your method, I solved the problem.

ConLyr commented 2 years ago

@ant0ncuranz Hello! How to create a Code Signing?

antoncuranz commented 2 years ago

@ConLyr I used these instructions from the installation of yabai as a guide: https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(from-HEAD)

First, open Keychain Access.app. In its menu, navigate to Keychain Access, then Certificate Assistance, then click Create a Certificate.... This will open the Certificate Assistant. Choose these options:

  • Name: my-cert (or whatever you prefer)
  • Identity Type: Self-Signed Root
  • Certificate Type: Code Signing

Click Create, then Continue to create the certificate.

ConLyr commented 2 years ago

@ant0ncuranz Thank you very much for the time, I solve the problem with your method and now works perfect. the path for terminal is: sudo codesign --deep -fs my-cert/Applications/Prismatik.app and the name of new certificate is my-cert. thanx again.!

mesaulosoares commented 2 years ago

Full screen isn't working and non-full screen is kind of laggy (tried changing the grab frequency but doesn't make any difference). Has anyone found a solution?

jaezh commented 2 years ago

@ant0ncuranz Thank you very much for the time, I solve the problem with your method and now works perfect. the path for terminal is: sudo codesign --deep -fs my-cert/Applications/Prismatik.app and the name of new certificate is my-cert. thanx again.!

Bro could you explain again how to do so from the first step please? I tried to do that but says "error: The specified item could not be found in the keychain." in terminal.app

franz67fw commented 2 years ago

Hi, Is anybody able to simply explain how to make the lights working by screen recording step by step on Macbook Aire M1 plz ? Thx in advance

Cordialement, Mr Weinum François

Le 9 avr. 2022 à 14:30, jaezh @.***> a écrit :



@ant0ncuranzhttps://github.com/ant0ncuranz Thank you very much for the time, I solve the problem with your method and now works perfect. the path for terminal is: sudo codesign --deep -fs my-cert/Applications/Prismatik.app and the name of new certificate is my-cert. thanx again.!

Bro could you explain again how to do so from the first step please? I tried to do that but says "error: The specified item could not be found in the keychain." in terminal.app

— Reply to this email directly, view it on GitHubhttps://github.com/psieg/Lightpack/issues/406#issuecomment-1093980150, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ATAGQCUF3VOG4QOHE4SRUXLVEFZ6FANCNFSM4TSHKRFA. You are receiving this because you were mentioned.Message ID: @.***>

cyb3rw0lf commented 2 years ago

Full screen isn't working and non-full screen is kind of laggy (tried changing the grab frequency but doesn't make any difference). Has anyone found a solution?

for me full screen is working but also have lags of ~1.5 seconds

Cherryshine commented 2 years ago

I’ve installed universal build. I added the manual cert @ant0ncuranz but the message requiring me the permission to access mic and screen keeps appear.

My situation ->

  1. About a minute passes, the LED all dies, and turns on when I click the button of Prismatik and itself when few sec passes.
  2. I think Prismatik does capture the screen but not every window. -> Only Captures the “Prismatik” window itself. (Doesn’t work on else)
zomfg commented 2 years ago

@Cherryshine seems to work here https://github.com/psieg/Lightpack/issues/534#issuecomment-1207304910

Mew463 commented 1 year ago

I had the same issue on my Mac M2 air. Prismatik was only capturing my background wallpaper and nothing else. On every boot of the app it would constantly ask for screen recording permissions over and over. I tried adding the 5.11.27 version to my Code signing certificate as well as following #534 but I just could not get it to work.

I found that downgrading to Prismatik 5.11.2.dmg fixed all the screen grabbing issues for me.

YeaYean commented 1 year ago

On the Macbook air 2 , I have screen grabbing doesn't work but mood lamp can work issue. Is there any solution on latest version :( ? it's still doesn't work on 5.11.2.31 version.

Mew463 commented 1 year ago

On the Macbook air 2 , I have screen grabbing doesn't work but mood lamp can work issue. Is there any solution on latest version :( ? it's still doesn't work on 5.11.2.31 version.

I would recommend moving to hyperion and using that instead. It is a more hardware heavy implementation but it does work and will work with anything that outputs hdmi.