how to create scripts that run on random stuff - eviltoast

so I want to create two scripts

  • first one that basically runs “systemctl suspend” when the lid is closed basically the default behavior doesn’t work for some reason and running systemctl suspend always works so yeah you get the idea

  • since I have made the headsets aka the jack output and the default speakers each their respective sink (that’s what I actually want (to have the power to put whatever I want in each sink using qpwgraph ) ) but that power comes at the cost of not switching between those respective two sinks so I just want to change I guess either the wireplumber config file or create a systemd service that runs when the jack port is plugged or unplugged

but I am lost in both questions to be honest and wireplumber is a mystery lol - sorry for being a noob if that matters

  • ccryx@discuss.tchncs.de
    link
    fedilink
    arrow-up
    16
    ·
    1 year ago
    • For your first point you’d probably want to investigate why your system doesn’t suspend or what exactly is going on. You could check logind.conf, specifically the HandleLidSwitch* keys. Otherwise, your lid switch should have a corresponding /dev/input/ event that you could maybe listen to or something.

    • I can’t offer much input on your second point. I think unplugging the audio jack should probably trigger a udev event that you could write a rule for. No idea about wireplumber though.

  • ilega_dh@feddit.nl
    link
    fedilink
    arrow-up
    18
    arrow-down
    2
    ·
    1 year ago

    I hope you find what you’re looking for, and maybe on the way some punctuation as well :’)

  • Atemu@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    “systemctl suspend” when the lid is closed basically the default behavior doesn’t work for some reason

    I’d go and figure out why that is instead. Check the journal; I’d journalctl -f before closing the lid and see what happens.

    The action of the lid is controlled by logind. Check its config.

    If logind can’t detect the lid switch, that likely means there’s some deeper cause that would affect doing the same manually aswell.
    Is your laptop docked (or does Linux think it is)?

    but that power comes at the cost of not switching between those respective two sinks

    Why? How did you set this up?

    How are the device(s?) configured?
    You might need “Pro” mode to expose separate outputs as such.

    • beh_93825561489@lemmy.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      basically I guess this bug report will explain everything: https://github.com/systemd/systemd/issues/28942 and I made this post as a followup: https://lemmy.ml/post/4441946

      • basically in my laptop I have 3 problems pressing fn+f2/3 (supposedly brightness keys) it gives the same scan code and I am lost on how to give one of them up and the other down brightness second problem fn+f12 (basically the airport mode aka stop wifi) it doesn’t even give a scancode in the first place third problem and the biggest is explained in that bug report and if you have any idea how to deal with this help I guess

      and how did I set up the different sinks to headphone and speakers basically just used hdajackretask to make it so idep_hp = yes and then rebooted my laptop and yeah that was basically it and I am in the process of writing a script to change between the two sinks on the fly