IceDBorn / pipewire-screenaudio

Extension to passthrough pipewire audio to WebRTC Screenshare
https://addons.mozilla.org/firefox/addon/pipewire-screenaudio/
GNU General Public License v3.0
167 stars 5 forks source link

NixOS build still broken #76

Closed MayRedwood closed 1 year ago

MayRedwood commented 1 year ago

Even after #65 was solved, the NixOS installation still does not work on my system. Given that everything else is the same as a working Arch Linux installation, the most likely explanation is that the native-messaging-modules linking is somehow broken. There is a lib/mozilla/native-messaging-hosts/com.icedborn.pipewirescreenaudioconnector.json under my Firefox folder in the Nix store, but that doesn't seem to do anything; meanwhile there isn't a ~/.mozilla/mozilla/native-messaging-hosts/com.icedborn.pipewirescreenaudioconnector.json but putting it there manually also doesn't seem to do anything.

IceDBorn commented 1 year ago

Are you installing it like this?

environment.systemPackages = with pkgs; [
    (firefox.override { extraNativeMessagingHosts = [ inputs.pipewire-screenaudio.packages.${pkgs.system}.default ]; })
    # ...
];
MayRedwood commented 1 year ago

Using that gives the following error message:

trace: warning: The extraNativeMessagingHosts argument for the Firefox wrapper is deprecated, please use nativeMessagingHosts

But, whether I'm using extraNativeMessagingHosts or nativeMessagingHosts, it doesn't work I've tested the passff-host application for the passff extension and that one does work, so it's not something with all native messaging hosts being broken on NixOS

jim3692 commented 1 year ago
  1. Are you able to see the popup when you click on the extension inside Firefox?

  2. If you select an application and click "Share", can you a see a node called "pipewire-screenaudio" inside helvum? You can install it via nix-shell -p helvum and run helvum.

IceDBorn commented 1 year ago

The issue is most likely related to nix. It stopped working for me too, after updating yesterday. I'll take a look into it when I have the time.

MayRedwood commented 1 year ago
  1. Are you able to see the popup when you click on the extension inside Firefox?

  2. If you select an application and click "Share", can you a see a node called "pipewire-screenaudio" inside helvum? You can install it via nix-shell -p helvum and run helvum.

This is what I get when I open up the popup: image

Nothing on Helvum, either

IceDBorn commented 1 year ago

It is fixed for me as of today. Can you update and re-test it? @MayRedwood

MayRedwood commented 1 year ago

Not for me, no - though, unlike your case, it wasn't working for me even before whatever broke your config

IceDBorn commented 1 year ago

If you're interested in providing more info, you can download the repo and use the extension by selecting manifest.json under about:debugging#/runtime/this-firefox. After that, you'll be able to inspect the behavior of the extension. Try using it and see if any logs appear.

One more thing to try is installing jq as a system package.

MayRedwood commented 1 year ago

I didn't have jq installed in my system, making sure I had all the build requirements specified in flake.nix explicitly installed in my configuration made everything work! Closing the issue, but maybe updating the NixOS installation instructions in the readme would be a good idea?

IceDBorn commented 1 year ago

@MayRedwood It's weird because a friend of mine had this issue before. It seems adding jq as a dep for the flake is not enough for some reason. I'll do a research first, and then I'll update the instructions.

IceDBorn commented 1 year ago

@MayRedwood Try removing any of the dependencies you don't need from system packages. It should work now.

MayRedwood commented 1 year ago

Works perfectly, thank you!