is there a way to prevent all the other apps on the system from opening up new tabs/windows in firefox?

  • wildbus8979@sh.itjust.works
    link
    fedilink
    arrow-up
    5
    ·
    2 months ago

    Other apps than what?

    You can start Firefox without the --no-remote flag. And it would allow external processes to open links.

  • Sonotsugipaa@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    10
    ·
    2 months ago

    You can set some browser-unrelated program or script as your desktop environment’s default browser, for example I wrote a Zsh script that creates a KDE dialog and asks me to copy the URL to the clipboard.

    I’m not currently at my PC, but if you want it I can paste it in a comment here when I get to it - it shouldn’t be too hard to translate it to Bash, either.

    Other than that? /usr/bin/true is a pretty nice default browser for applications to start without your consent, very minimal and lightweight.

      • Sonotsugipaa@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        2 months ago

        Here it is:

        #!/usr/bin/zsh
        
        nl=$'\n'
        dnl=$'\n\n'
        
        url=$1
        msgcontent=$url; shift
        argi=1
        for arg ($@); do
            argi=$(($argi + 1))
            msgcontent=${msgcontent}${nl}Argument\ ${argi}': '${arg}
        done
        
        title="${0:A}"
        msg="An application attempted to open a web page:${dnl}\"${msgcontent}\"${dnl}Copy the URL to clipboard?"
        
        kdialog --title $title --yesno $msg
        answer=$?
        
        if [[ $answer = 0 ]]; then wl-copy $url; fi
        

        If you want to translate it to Bash, keep in mind that arrays behave differently between the two shells, and syntax like for arg ($@); do would likely misbehave or not work at all.

        Also, there’s an issue where some applications do something weird, and the URL seems to be a zero-length argument. I have absolutely no idea what’s up with that.