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 @Audalin@lemmy.world

#!/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

  • Audalin@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    2 months ago

    If you don’t find such a setting, you can try writing a script that checks if it’s running already (e.g. with pgrep), activates the window if found (no idea how to do that in Wayland properly) and launches a new instance otherwise. Then use a custom .desktop launcher for Konsole.

      • Audalin@lemmy.world
        link
        fedilink
        English
        arrow-up
        8
        ·
        edit-2
        2 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