default_browser_cmd = ["firefox"] # The rule label doesn't matter rule "Flatpak Chromium" { # Command and args, like with default browser_cmd = ["flatpak", "run", "org.chromium.Chromium"] # match evaluates an expr that should result in a MatchFunc where the signature # is MatchFunc = func(url.URL) bool # There are several functions provided that contain common rules and help construct this. # provided are: # matchHostname(...string) MatchFunc # matchHostRegexp(...string) MatchFunc # matchRegexp(...string) MatchFunc # matchAny(...MatchFunc) MatchFunc # # Note that when using regex, any escapes need to be doubled. Once to escape the string # and a second time to escape the regexp char. So a literal `.` is represented as `\\.` # # For writing custom rules using expr, you can use the following two variables: # hostname: the URL hostname # fullUrl: the full string of the URL # url: the Go url.URL struct that is being called # # When using those, you can turn them into a MatchFunc using # MatchFunc(bool) MatchFunc # # For example: # MatchFunc(hostname endsWith "example.com") # is equivalent to: # matchHostRegexp(".*\\.example\\.com$") match = "matchHostname('google.com', 'youtube.com')" } rule "Firefox Private" { browser_cmd = ["firefox", "--private-window"] # For more complex rules, rules can span multiple lines using EOF syntax match = <