I use KDE on arch and would like to achieve the following behavior:

Whatever way I launch Konsole, I want it to check whether there already is a Konsole instance. If one exists, it should be brought into focus, and if no instance exists, one should be launched.

I am unable to find such an option in the Konsole settings, even though I found a roughly 1 year old forum entry mentioning such a setting. Was it removed or am I just blind? Or do I need some optional dependency?

Alternatively, it would be fine if this could simply kick in when I use my Super+K shortcut, which I’ve set up. Maybe there’s a way to call Konsole from the terminal like that? I tried using konsole --force-reuse but it didn’t seem to do the trick, and konsole --new-tab does not bring Konsole into the foreground.

Edit: Here’s a script that does this, by @[email protected]

#!/bin/bash
WIN="$(kdotool search --class org.kde.konsole | head -1)"
if [[ "$WIN" != "" ]]; then 
    kdotool windowactivate "$WIN"
else 
    konsole
fi

kdotool is available in AUR as kdotool-git

  • silly goose meekahOP
    link
    English
    47 months ago

    Thanks for your reply :) I might look into it if I don’t find anything easier

    • @Audalin
      link
      English
      8
      edit-2
      7 months ago

      Here’s a KDE-specific script with kdotool (Wayland always needs custom solutions for simple things):

      #!/bin/bash
      WIN="$(kdotool search --class org.kde.konsole | head -1)"
      if [[ "$WIN" != "" ]]; then 
          kdotool windowactivate "$WIN"
      else 
          konsole
      fi
      
        • @Audalin
          link
          English
          37 months ago

          Well, that’s exactly what I did. My point was rather that there’s no single consistent way to do this across different DEs with different Wayland implementations - and that’s supposedly considered a feature from Wayland design’s perspective.

        • silly goose meekahOP
          link
          English
          17 months ago

          How have you read the part you quoted without reading the package name right in front of it?