• 0 Posts
  • 103 Comments
Joined 1 year ago
cake
Cake day: June 16th, 2023

help-circle
  • 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.


  • 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.