provide-module url-open %∴ declare-option -docstring %{ Command for opening URLs. } str url_open_cmd 'xdg-open %s' define-command -docstring %{ Open the URL the cursor is on with url_open_cmd. } url-open %{ evaluate-commands -save-regs 'ab' %{ set-register b 'https?://(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)' try %{ try %{ execute-keys -draft 'sb"ay' } catch %{ fail 'No URL found!' } evaluate-commands %sh{ # strip trailing punctuation clean_url="$(echo "$kak_reg_a" | sed 's/[][(){}.,;!?]*$//')" if eval "$(printf "$kak_opt_url_open_cmd" "$clean_url")" >/dev/null 2>&1; then echo "info -title 'URL Opened' '$clean_url'" else echo "fail 'url_open_cmd failed!'" fi } } catch %{ info -title 'URL Open' "Couldn't open URL: %val{error}" } } } ∴