• lemmyvore@feddit.nl
    link
    fedilink
    English
    arrow-up
    7
    arrow-down
    3
    ·
    1 month ago

    Or try using any form of desktop automation… which is a show-stopper and it doesn’t look like Wayland plans to do anything about it any time soon.

    • Metz@lemmy.world
      link
      fedilink
      English
      arrow-up
      8
      arrow-down
      1
      ·
      edit-2
      1 month ago

      I don’t see how this is a Wayland problem. X11 has no desktop automation integrated either. You had to use third party tools for that like Autokey. And admittedly, there is still no comparable replacement for Wayland as far i know (maybe KDE scripts? https://develop.kde.org/docs/plasma/kwin/api/ or https://github.com/ReimuNotMoe/ydotool ?). But that is because nobody has fully build one yet, not because some inherent absence of necessary wayland functions.

      • lemmyvore@feddit.nl
        link
        fedilink
        English
        arrow-up
        10
        arrow-down
        1
        ·
        1 month ago

        It actually is because of Wayland design. In their quest for “security” they’ve made it impossible for automation and accesibility tools to do their job.

        It’s a glaring omission in Wayland going forward, for zero gain. Most of the touted Wayland security advantages are hogwash.

        • thedeadwalking4242@lemmy.world
          link
          fedilink
          arrow-up
          5
          ·
          1 month ago

          I mean if it’s goal was to prevent scripts from using the graphics env maliciously then it seems to have made some progress if you can’t even automate it with good intentions

    • tetris11@lemmy.ml
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      1 month ago

      Yup, or even a simple notify-send. Trying to work out which environment variables are needed to get the damn thing to focus on the window in question which may or may not be an X11 window within Wayland. The magic formula I’ve learned so far:

      DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -i)/bus" \
      XDG_RUNTIME_DIR=/run/user/$(id -u) \ 
      XAUTH=$(ps aux | grep "/usr/bin/Xwayland :0 -auth" \
             | grep -v grep | sed -r 's|.*-auth ([^ ]*).*$|\1|') \
      DISPLAY=:0 \
      XAUTHORITY=$XAUTH  <finally your command here>
      

      (oh and sometimes you might need to preface that all with a sudo, oh and there’s no guarantee that the Display is at :0, even if no other display is in use). Eaaazyyy peaaaazyyy

      I will say that wtype is the one wayland automation tool that does not need any preamble. It just works out of the box, genuinely good engineering by the developers on that project.