websearch()
{
# See <https://duckduckgo.com/bangs>.
xdg-open "https://duckduckgo.com/lite/?q=!ducky ${2+site:}$*"
}
webdebian()
{
xdg-open "https://packages.debian.org/search?searchon=names§ion=all&keywords=$*"
}
webubuntu()
{
xdg-open "https://packages.ubuntu.com/search?searchon=names§ion=all&keywords=$*"
}
webcpp()
{
websearch "https://cppreference.com/w/cpp/" "$@"
}
webc()
{
websearch "https://cppreference.com/w/c/" "$@"
}
webwin32()
{
# websearch "https://learn.microsoft.com/en-us/windows/win32/api/" "$@"
websearch "https://learn.microsoft.com/en-us/windows/" "win32/api" "$@"
}
webopengl()
{
websearch "https://registry.khronos.org/OpenGL-Refpages/" "$@"
}
webvulkan()
{
websearch "https://docs.vulkan.org/refpages/" "$@"
}
# TODO: The `man -` makes this require two ^Z presses to background.
webman()
(
# See also <https://wiki.archlinux.org/title/Man_page#Online_man_pages>.
# websearch "https://man7.org/linux/man-pages/" "$1${sect+.$sect}"
# xdg-open "https://man.archlinux.org/search?go=Go&q=$1${sect+.$sect}"
# xdg-open "https://manpages.debian.org/$1${sect+.$sect}"
# xdg-open "https://man.cx/$1${sect+($sect)}"
# xdg-open "https://man.he.net/?section=${sect-all}&topic=$1"
# See <https://man.archlinux.org/#USAGE>.
# curl -sfL "https://man.archlinux.org/man/$1.raw" | man -l -
# curl -sfL "https://man.archlinux.org/man/$1.txt" | less
# See <https://manpages.debian.org/>.
# curl -sfL "https://manpages.debian.org/$1.gz" | man -l -
[ "$2" ] && sect="$1" && shift || true
for url in \
"https://man.archlinux.org/man/$1${sect+.$sect}.raw" \
"https://manpages.debian.org/$1${sect+.$sect}.gz"
do
page="$(curl -sfL "$url")"
[ "$page" ] || continue
printf '%s\n' "$page" | man -l -
break
done
)