I have a dumb work related chrome thing, i’d like to make it so that when a certain notification sound plays in chromium, my computer does a few things automatically for me

Does anyone know a good way to make this happen?

I imagine it’d have to be setup like:

when chrome starts playing audio && check if that audio matches soundfile.ogg && myscript.sh, but I don’t know any good cli utilities that could get something like that done, and if there are any better ideas!

edit: to avoid X/Y issues i’ve summarized the problem in full here:

  1. I have a work program, this notifies me if I get a call or email, the work program then presents an accept/decline page, and does not proceed until I either accept, decline, or it times out.
  2. I want it to do two different things depending on if it’s a call or email
  3. It provides no notification other than the sound and an “accept” button on the page
  4. I have a chrome window open that does nothing but this, and I never use chrome for anything else
  5. I want to automatically do various things when I receive either this call or email
  6. I want it to be broadly applicable rather than a script designed for the specific website giving me the notification (so not a chrome extension). This prevents me from having to update any code in the event that the backend changes dramatically, and even if the notification sound changes, i’d just record a new sound as the activation noise.
  7. The noise is always the same, and hasn’t changed for many years, and there is a distinct noise between calls and emails
  8. They never overlap, they never play multiple times at the same time, and they never make any noises other than those two. The noises are distinct.

These factors cause me to want to run a script once the noise is recognized, only if the noise is playing in a particular app. I’m using pipewire/hyprland on arch.

My current plan for isolating the noise is to do the following:

pactl load-module module-combine-sink sink_name=‘Work’ slaves=‘easyeffects_sink’

and then set chrome exclusively to play audio on work.

Then set a script to check the sink work for audio that matches what I want. That should be simpler than the other methods i’ve seen to isolate the noise.

  • @embed_me
    link
    272 months ago

    And also prone to misfires and missed detection

    • @[email protected]
      link
      fedilink
      22 months ago

      I would be interested in a solution to OP’s specific question. I have a friend who will play a particular annoying meme clip over discord. I would like something that can listen for that clip being played, and immediately disconnect him from the voice channel 😁.

      Doesn’t need to be perfect. Misfires are also acceptable.

    • CommunistOP
      link
      fedilink
      English
      -42 months ago

      Not if it’s specified to a single app

      My chrome is literally only used for this, as are my other ideas, so, as long as it’s half-decent at one specific sound per app it should work…

      in theory

      • @embed_me
        link
        42 months ago

        Sure if it doesn’t play any other sound concurrently

            • CommunistOP
              link
              fedilink
              English
              32 months ago

              There are two sounds it makes, they just never overlap

          • @[email protected]
            link
            fedilink
            English
            12 months ago

            Or at least you think so. Are you sure for example that the trigger sound can not play more than once at a time, before the first one has finished?

            And then what if the webpage updates the sound it plays?

            • CommunistOP
              link
              fedilink
              English
              1
              edit-2
              2 months ago

              I am completely sure that cannot happen, the noise plays once until I deal with it

              if it updates I’ll just make a new recording, but it has been the same for over 3 years