Module B0_web_browser

Web browser interaction.

B0_web_browser shows URLs in the user's browsers. Up to severe platform and browser application limitations it tries to limit the creation of new tabs, reloading existing one which have the same URL or are, if requested, prefixed by the URL.

Environment variables

module Env : sig ... end

Environment variables.

Show URLs

type t

The type for specifying a browser.

val find : ?search:B0_std.Fpath.t list -> browser:B0_std.Cmd.t option -> unit -> (t option, string) Stdlib.result

find ~search ~browser tries to find a browser in a rather complex and platform dependent way.

val show : background:bool -> prefix:bool -> t option -> string -> (unit, string) Stdlib.result

show ~background ~prefix browser url shows URL using browser browser (if None an error message is returned mentioning that no browser was found. If background is true tries to keep the browser application in the background, if false brings it in user focus.

The function tries to limit the creation of new tabs using the following strategy:

  • Repeat from the frontmost browser window to the backmost one until a tab to reload is found:

    1. If the window's current tab's URL is url (or is prefixed by url when prefix is true), reload this tab.
    2. If the window has one or more tab whose URL is url (or is prefixed by url when prefix is true), pick the left most one, make it current in the window and reload it.
  • If no tab was found, get the frontmost window. If the current tab has no URI, use that tab with url otherwise create a new tab with url and make it current for the window.

Cli interaction

val browser : ?docs:string -> ?opts:string list -> unit -> B0_std.Cmd.t option Cmdliner.Term.t

browser is an option and BROWSER environment variable to use with the browser argument of find. opts are the cli options and default to ["b"; "browser"].

val prefix : ?docs:string -> default:bool -> unit -> bool Cmdliner.Term.t

prefix are options to use the with prefix argument of show. This defines these options:

  • --prefix to specify true and if default is false -p aswell.
  • --exact to specify false.

The default value of the option is default.

val background : ?docs:string -> ?opts:string list -> unit -> bool Cmdliner.Term.t

background is an option to use with the background argument of !show. opts are the cli options and default to ["g"; "background"]

val man_best_effort_reload : Cmdliner.Manpage.block list

man_best_effort_reload is a manual fragment explaining best-effort reloading.y