コード例 #1
0
ファイル: notifications.py プロジェクト: Kruhlmann/dotfiles
def apply(config: ConfigAPI):
    config.set("content.notifications.enabled", "ask")

    for host in allowed:
        config.set("content.notifications.enabled", True, "*://%s" % host)
        config.set("content.notifications.enabled", True, "*://*.%s" % host)

    for host in blocked:
        config.set("content.notifications.enabled", False, "*://%s" % host)
        config.set("content.notifications.enabled", False, "*://*.%s" % host)
コード例 #2
0
ファイル: content.py プロジェクト: Kruhlmann/dotfiles
def apply(config: ConfigAPI, c: ConfigContainer):
    config.set("content.images", True, "chrome-devtools://*")
    config.set("content.images", True, "devtools://*")
    config.set("content.javascript.enabled", True, "chrome-devtools://*")
    config.set("content.javascript.enabled", True, "devtools://*")
    config.set("content.javascript.enabled", True, "chrome://*/*")
    config.set("content.javascript.enabled", True, "qute://*/*")
    c.content.cookies.accept = "all"
    c.content.dns_prefetch = True
    c.content.headers.do_not_track = True
    c.content.local_content_can_access_file_urls = True
    c.content.local_content_can_access_remote_urls = False
    c.content.local_storage = True
    c.content.pdfjs = True
    c.content.proxy = "none"
    c.content.default_encoding = "utf-8"
    c.content.geolocation = "ask"
コード例 #3
0
ファイル: user_agent.py プロジェクト: Kruhlmann/dotfiles
def apply(config: ConfigAPI):
    config.set(
        "content.headers.user_agent",
        "Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}",
        "https://web.whatsapp.com/")
    config.set("content.headers.user_agent",
               "Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0",
               "https://accounts.google.com/*")
    config.set(
        "content.headers.user_agent",
        "Mozilla/5.0 ({os_info}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99 Safari/537.36",
        "https://*.slack.com/*")
    config.set("content.headers.user_agent",
               "Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0",
               "https://docs.google.com/*")
コード例 #4
0
def apply_default(config: ConfigAPI):
    config.bind('"', "mode-enter jump_mark")
    config.bind("+", "zoom-in")
    config.bind("-", "zoom-out")
    config.bind(".", "repeat-command")
    config.bind("/", "set-cmd-text /")
    config.bind(":", "set-cmd-text :")
    config.bind(";I", "hint images tab")
    config.bind(";O", "hint links fill :open -t -r {hint-url}")
    config.bind(";R", "hint --rapid links window")
    config.bind(";Y", "hint links yank-primary")
    config.bind(";b", "hint all tab-bg")
    config.bind(";d", "hint links download")
    config.bind(";f", "hint all tab-fg")
    config.bind(";h", "hint all hover")
    config.bind(";i", "hint images")
    config.bind(";o", "hint links fill :open {hint-url}")
    config.bind(";r", "hint --rapid links tab-bg")
    config.bind(";t", "hint inputs")
    config.bind(";y", "hint links yank")
    config.bind("<Alt-1>", "tab-focus 1")
    config.bind("<Alt-2>", "tab-focus 2")
    config.bind("<Alt-3>", "tab-focus 3")
    config.bind("<Alt-4>", "tab-focus 4")
    config.bind("<Alt-5>", "tab-focus 5")
    config.bind("<Alt-6>", "tab-focus 6")
    config.bind("<Alt-7>", "tab-focus 7")
    config.bind("<Alt-8>", "tab-focus 8")
    config.bind("<Alt-9>", "tab-focus -1")
    config.bind("<Alt-m>", "tab-mute")
    config.bind("<Ctrl-A>", "navigate increment")
    config.bind("<Ctrl-Alt-p>", "print")
    config.bind("<Ctrl-B>", "scroll-page 0 -1")
    config.bind("<Ctrl-D>", "scroll-page 0 0.5")
    config.bind("<Ctrl-F5>", "reload -f")
    config.bind("<Ctrl-F>", "scroll-page 0 1")
    config.bind("<Ctrl-N>", "open -w")
    config.bind("<Ctrl-PgDown>", "tab-next")
    config.bind("<Ctrl-PgUp>", "tab-prev")
    config.bind("<Ctrl-Q>", "quit")
    config.bind("<Ctrl-Return>", "selection-follow -t")
    config.bind("<Ctrl-Shift-N>", "open -p")
    config.bind("<Ctrl-Shift-T>", "undo")
    config.bind("<Ctrl-Shift-Tab>", "nop")
    config.bind("<Ctrl-Shift-W>", "close")
    config.bind("<Ctrl-T>", "open -t")
    config.bind("<Ctrl-Tab>", "tab-focus last")
    config.bind("<Ctrl-U>", "scroll-page 0 -0.5")
    config.bind("<Ctrl-V>", "mode-enter passthrough")
    config.bind("<Ctrl-W>", "tab-close")
    config.bind("<Ctrl-X>", "navigate decrement")
    config.bind("<Ctrl-^>", "tab-focus last")
    config.bind("<Ctrl-h>", "home")
    config.bind("<Ctrl-p>", "tab-pin")
    config.bind("<Ctrl-s>", "stop")
    config.bind("<Escape>", "clear-keychain ;; search ;; fullscreen --leave")
    config.bind("<F11>", "fullscreen")
    config.bind("<F5>", "reload")
    config.bind("<Return>", "selection-follow")
    config.bind("<back>", "back")
    config.bind("<forward>", "forward")
    config.bind("=", "zoom")
    config.bind("?", "set-cmd-text ?")
    config.bind("@", "macro-run")
    config.bind("B", "set-cmd-text -s :quickmark-load -t")
    config.bind("D", "tab-close -o")
    config.bind("F", "hint all tab")
    config.bind("G", "scroll-to-perc")
    config.bind("H", "back")
    config.bind("J", "tab-next")
    config.bind("K", "tab-prev")
    config.bind("L", "forward")
    config.bind("M", "bookmark-add")
    config.bind("N", "search-prev")
    config.bind("O", "set-cmd-text -s :open -t")
    config.bind("PP", "open -t -- {primary}")
    config.bind("Pp", "open -t -- {clipboard}")
    config.bind("R", "reload -f")
    config.bind("Sb", "open qute://bookmarks#bookmarks")
    config.bind("Sh", "open qute://history")
    config.bind("Sq", "open qute://bookmarks")
    config.bind("Ss", "open qute://settings")
    config.bind("T", "tab-focus")
    config.bind("ZQ", "quit")
    config.bind("ZZ", "quit --save")
    config.bind("[[", "navigate prev")
    config.bind("]]", "navigate next")
    config.bind("`", "mode-enter set_mark")
    config.bind("ad", "download-cancel")
    config.bind("b", "set-cmd-text -s :quickmark-load")
    config.bind("cd", "download-clear")
    config.bind("co", "tab-only")
    config.bind("d", "tab-close")
    config.bind("f", "hint")
    config.bind("g$", "tab-focus -1")
    config.bind("g0", "tab-focus 1")
    config.bind("gB", "set-cmd-text -s :bookmark-load -t")
    config.bind("gC", "tab-clone")
    config.bind("gD", "tab-give")
    config.bind("gO", "set-cmd-text :open -t -r {url:pretty}")
    config.bind("gU", "navigate up -t")
    config.bind("g^", "tab-focus 1")
    config.bind("ga", "open -t")
    config.bind("gb", "set-cmd-text -s :bookmark-load")
    config.bind("gd", "download")
    config.bind("gf", "view-source")
    config.bind("gg", "scroll-to-perc 0")
    config.bind("gi", "hint inputs --first")
    config.bind("gl", "tab-move -")
    config.bind("gm", "tab-move")
    config.bind("go", "set-cmd-text :open {url:pretty}")
    config.bind("gr", "tab-move +")
    config.bind("gt", "set-cmd-text -s :buffer")
    config.bind("gu", "navigate up")
    config.bind("h", "scroll left")
    config.bind("i", "mode-enter insert")
    config.bind("j", "scroll down")
    config.bind("k", "scroll up")
    config.bind("l", "scroll right")
    config.bind("m", "quickmark-save")
    config.bind("n", "search-next")
    config.bind("o", "set-cmd-text -s :open")
    config.bind("pP", "open -- {primary}")
    config.bind("pp", "open -- {clipboard}")
    config.bind("q", "macro-record")
    config.bind("r", "reload")
    config.bind("sf", "save")
    config.bind("sk", "set-cmd-text -s :bind")
    config.bind("sl", "set-cmd-text -s :set -t")
    config.bind("ss", "set-cmd-text -s :set")
    config.bind(
        "tIH",
        "config-cycle -p -u *://*.{url:host}/* content.images ;; reload")
    config.bind(
        "tIh", "config-cycle -p -u *://{url:host}/* content.images ;; reload")
    config.bind("tIu", "config-cycle -p -u {url} content.images ;; reload")
    config.bind(
        "tPH",
        "config-cycle -p -u *://*.{url:host}/* content.plugins ;; reload")
    config.bind(
        "tPh", "config-cycle -p -u *://{url:host}/* content.plugins ;; reload")
    config.bind("tPu", "config-cycle -p -u {url} content.plugins ;; reload")
    config.bind(
        "tSH",
        "config-cycle -p -u *://*.{url:host}/* content.javascript.enabled ;; reload",
    )
    config.bind(
        "tSh",
        "config-cycle -p -u *://{url:host}/* content.javascript.enabled ;; reload",
    )
    config.bind(
        "tSu", "config-cycle -p -u {url} content.javascript.enabled ;; reload")
    config.bind("th", "back -t")
    config.bind(
        "tiH",
        "config-cycle -p -t -u *://*.{url:host}/* content.images ;; reload")
    config.bind(
        "tih",
        "config-cycle -p -t -u *://{url:host}/* content.images ;; reload")
    config.bind("tiu", "config-cycle -p -t -u {url} content.images ;; reload")
    config.bind("tl", "forward -t")
    config.bind(
        "tpH",
        "config-cycle -p -t -u *://*.{url:host}/* content.plugins ;; reload")
    config.bind(
        "tph",
        "config-cycle -p -t -u *://{url:host}/* content.plugins ;; reload")
    config.bind("tpu", "config-cycle -p -t -u {url} content.plugins ;; reload")
    config.bind(
        "tsH",
        "config-cycle -p -t -u *://*.{url:host}/* content.javascript.enabled ;; reload",
    )
    config.bind(
        "tsh",
        "config-cycle -p -t -u *://{url:host}/* content.javascript.enabled ;; reload",
    )
    config.bind(
        "tsu",
        "config-cycle -p -t -u {url} content.javascript.enabled ;; reload")
    config.bind("u", "undo")
    config.bind("v", "mode-enter caret")
    config.bind("wB", "set-cmd-text -s :bookmark-load -w")
    config.bind("wO", "set-cmd-text :open -w {url:pretty}")
    config.bind("wP", "open -w -- {primary}")
    config.bind("wb", "set-cmd-text -s :quickmark-load -w")
    config.bind("wf", "hint all window")
    config.bind("wh", "back -w")
    config.bind("wi", "inspector")
    config.bind("wl", "forward -w")
    config.bind("wo", "set-cmd-text -s :open -w")
    config.bind("wp", "open -w -- {clipboard}")
    config.bind("xO", "set-cmd-text :open -b -r {url:pretty}")
    config.bind("xo", "set-cmd-text -s :open -b")
    config.bind("yD", "yank domain -s")
    config.bind("yM", "yank inline [{title}]({url}) -s")
    config.bind("yP", "yank pretty-url -s")
    config.bind("yT", "yank title -s")
    config.bind("yY", "yank -s")
    config.bind("yd", "yank domain")
    config.bind("ym", "yank inline [{title}]({url})")
    config.bind("yp", "yank pretty-url")
    config.bind("yt", "yank title")
    config.bind("yy", "yank")
    config.bind("{{", "navigate prev -t")
    config.bind("}}", "navigate next -t")

    # Bindings for caret mode
    config.bind("$", "move-to-end-of-line", mode="caret")
    config.bind("0", "move-to-start-of-line", mode="caret")
    config.bind("<Ctrl-Space>", "drop-selection", mode="caret")
    config.bind("<Escape>", "mode-enter normal", mode="caret")
    config.bind("<Return>", "yank selection", mode="caret")
    config.bind("<Space>", "toggle-selection", mode="caret")
    config.bind("G", "move-to-end-of-document", mode="caret")
    config.bind("H", "scroll left", mode="caret")
    config.bind("J", "scroll down", mode="caret")
    config.bind("K", "scroll up", mode="caret")
    config.bind("L", "scroll right", mode="caret")
    config.bind("Y", "yank selection -s", mode="caret")
    config.bind("[", "move-to-start-of-prev-block", mode="caret")
    config.bind("]", "move-to-start-of-next-block", mode="caret")
    config.bind("b", "move-to-prev-word", mode="caret")
    config.bind("c", "mode-enter normal", mode="caret")
    config.bind("e", "move-to-end-of-word", mode="caret")
    config.bind("gg", "move-to-start-of-document", mode="caret")
    config.bind("h", "move-to-prev-char", mode="caret")
    config.bind("j", "move-to-next-line", mode="caret")
    config.bind("k", "move-to-prev-line", mode="caret")
    config.bind("l", "move-to-next-char", mode="caret")
    config.bind("o", "reverse-selection", mode="caret")
    config.bind("v", "toggle-selection", mode="caret")
    config.bind("w", "move-to-next-word", mode="caret")
    config.bind("y", "yank selection", mode="caret")
    config.bind("{", "move-to-end-of-prev-block", mode="caret")
    config.bind("}", "move-to-end-of-next-block", mode="caret")

    # Bindings for command mode
    config.bind("<Alt-B>", "rl-backward-word", mode="command")
    config.bind("<Alt-Backspace>", "rl-backward-kill-word", mode="command")
    config.bind("<Alt-D>", "rl-kill-word", mode="command")
    config.bind("<Alt-F>", "rl-forward-word", mode="command")
    config.bind("<Ctrl-?>", "rl-delete-char", mode="command")
    config.bind("<Ctrl-A>", "rl-beginning-of-line", mode="command")
    config.bind("<Ctrl-B>", "rl-backward-char", mode="command")
    config.bind("<Ctrl-C>", "completion-item-yank", mode="command")
    config.bind("<Ctrl-D>", "completion-item-del", mode="command")
    config.bind("<Ctrl-E>", "rl-end-of-line", mode="command")
    config.bind("<Ctrl-F>", "rl-forward-char", mode="command")
    config.bind("<Ctrl-H>", "rl-backward-delete-char", mode="command")
    config.bind("<Ctrl-K>", "rl-kill-line", mode="command")
    config.bind("<Ctrl-N>", "command-history-next", mode="command")
    config.bind("<Ctrl-P>", "command-history-prev", mode="command")
    config.bind("<Ctrl-Return>", "command-accept --rapid", mode="command")
    config.bind("<Ctrl-Shift-C>", "completion-item-yank --sel", mode="command")
    config.bind("<Ctrl-Shift-Tab>",
                "completion-item-focus prev-category",
                mode="command")
    config.bind("<Ctrl-Tab>",
                "completion-item-focus next-category",
                mode="command")
    config.bind("<Ctrl-U>", "rl-unix-line-discard", mode="command")
    config.bind("<Ctrl-W>", "rl-unix-word-rubout", mode="command")
    config.bind("<Ctrl-Y>", "rl-yank", mode="command")
    config.bind("<Down>",
                "completion-item-focus --history next",
                mode="command")
    config.bind("<Escape>", "mode-enter normal", mode="command")
    config.bind("<Return>", "command-accept", mode="command")
    config.bind("<Shift-Delete>", "completion-item-del", mode="command")
    config.bind("<Shift-Tab>", "completion-item-focus prev", mode="command")
    config.bind("<Tab>", "completion-item-focus next", mode="command")
    config.bind("<Up>", "completion-item-focus --history prev", mode="command")

    # Bindings for hint mode
    config.bind("<Ctrl-B>", "hint all tab-bg", mode="hint")
    config.bind("<Ctrl-F>", "hint links", mode="hint")
    config.bind("<Ctrl-R>", "hint --rapid links tab-bg", mode="hint")
    config.bind("<Escape>", "mode-enter normal", mode="hint")
    config.bind("<Return>", "follow-hint", mode="hint")

    # Bindings for insert mode
    config.bind("<Ctrl-E>", "open-editor", mode="insert")
    config.bind("<Escape>", "mode-enter normal", mode="insert")
    config.bind("<Shift-Ins>", "insert-text -- {primary}", mode="insert")

    # Bindings for passthrough mode
    config.bind("<Shift-Escape>", "mode-enter normal", mode="passthrough")

    # Bindings for prompt mode
    config.bind("<Alt-B>", "rl-backward-word", mode="prompt")
    config.bind("<Alt-Backspace>", "rl-backward-kill-word", mode="prompt")
    config.bind("<Alt-D>", "rl-kill-word", mode="prompt")
    config.bind("<Alt-F>", "rl-forward-word", mode="prompt")
    config.bind("<Alt-Shift-Y>", "prompt-yank --sel", mode="prompt")
    config.bind("<Alt-Y>", "prompt-yank", mode="prompt")
    config.bind("<Ctrl-?>", "rl-delete-char", mode="prompt")
    config.bind("<Ctrl-A>", "rl-beginning-of-line", mode="prompt")
    config.bind("<Ctrl-B>", "rl-backward-char", mode="prompt")
    config.bind("<Ctrl-E>", "rl-end-of-line", mode="prompt")
    config.bind("<Ctrl-F>", "rl-forward-char", mode="prompt")
    config.bind("<Ctrl-H>", "rl-backward-delete-char", mode="prompt")
    config.bind("<Ctrl-K>", "rl-kill-line", mode="prompt")
    config.bind("<Ctrl-P>", "prompt-open-download --pdfjs", mode="prompt")
    config.bind("<Ctrl-U>", "rl-unix-line-discard", mode="prompt")
    config.bind("<Ctrl-W>", "rl-unix-word-rubout", mode="prompt")
    config.bind("<Ctrl-X>", "prompt-open-download", mode="prompt")
    config.bind("<Ctrl-Y>", "rl-yank", mode="prompt")
    config.bind("<Down>", "prompt-item-focus next", mode="prompt")
    config.bind("<Escape>", "mode-enter normal", mode="prompt")
    config.bind("<Return>", "prompt-accept", mode="prompt")
    config.bind("<Shift-Tab>", "prompt-item-focus prev", mode="prompt")
    config.bind("<Tab>", "prompt-item-focus next", mode="prompt")
    config.bind("<Up>", "prompt-item-focus prev", mode="prompt")

    # Bindings for register mode
    config.bind("<Escape>", "mode-enter normal", mode="register")

    # Bindings for yesno mode
    config.bind("<Alt-Shift-Y>", "prompt-yank --sel", mode="yesno")
    config.bind("<Alt-Y>", "prompt-yank", mode="yesno")
    config.bind("<Escape>", "mode-enter normal", mode="yesno")
    config.bind("<Return>", "prompt-accept", mode="yesno")
    config.bind("N", "prompt-accept --save no", mode="yesno")
    config.bind("Y", "prompt-accept --save yes", mode="yesno")
    config.bind("n", "prompt-accept no", mode="yesno")
    config.bind("y", "prompt-accept yes", mode="yesno")
コード例 #5
0
def apply_custom(config: ConfigAPI):
    config.bind("yp", "spawn mpv --force-window yes {url}")
    config.bind(
        "ya",
        "spawn --userscript ~/.local/bin/scripts/stream_audio_from_youtube")
    config.bind(
        "y-",
        "hint links spawn --userscript ~/.local/bin/scripts/stream_audio_from_youtube",
    )
    config.bind("yh", "hint links spawn mpv --force-window yes {hint-url}")
    config.bind("<Ctrl-s>", "download")
    config.bind("<Ctrl-i>", "inspector")
    config.bind(".", "tab-next")
    config.bind(",", "tab-prev")
    config.bind(
        "<Ctrl-Shift-p>",
        "spawn --userscript ~/.local/bin/scripts/qute-bitwarden",
        mode="insert",
    )
    config.bind(" z", "spawn --userscript ~/.scripts/qute-goyo")
    config.bind("e", "edit-url")
    config.bind("po", "proxy-off")
    config.bind("pz", "proxy-zscaler-on")
    config.bind("pt", "proxy-tor-on")
コード例 #6
0
ファイル: config.py プロジェクト: jkoelndorfer/dotfiles
def configure(config: ConfigAPI, c: ConfigContainer):
    if qutebrowser_version >= (2, 0, 0):
        config.load_autoconfig(False)

    if qutebrowser_version >= (2, 0, 2):
        mode_enter = "mode-enter"
    else:
        mode_enter = "enter-mode"

    # Configure ctrl-p to open a fuzzy search prompt for currently open tabs.
    config.bind("<Ctrl-p>", "set-cmd-text -s :tab-select")

    # Configure m to launch `qmpvl`.
    config.bind(
        "m", "hint links spawn " +
        os.path.join(dotfile_dir, "bin", "i3", "qmpvl") + " {hint-url}")
    config.bind(
        "M",
        "spawn " + os.path.join(dotfile_dir, "bin", "i3", "qmpvl") + " {url}")

    # Use Shift-Escape to enter passthrough mode instead of Ctrl-V.
    config.bind("<Shift-Escape>", f"{mode_enter} passthrough", mode="normal")
    config.unbind("<Ctrl-V>")

    # Use Ctrl-Shift-J and Ctrl-Shift-K to move tabs down or up, respectively.
    config.bind("<Ctrl-Shift-J>", "tab-move +")
    config.bind("<Ctrl-Shift-K>", "tab-move -")

    # Don't automatically leave insert mode. qutebrowser will leave insert mode automatically
    # if you click off of a textbox element (and under some other conditions) which is kinda
    # annoying.
    config.set("input.insert_mode.auto_leave", False)

    # Don't show history items in completion menu.
    config.set("completion.web_history.max_items", 0)

    config.set("tabs.position", "left")
    config.set("tabs.width", "15%")

    config.set("downloads.position", "bottom")

    # Set default search engine = DuckDuckGo.
    c.url.searchengines["DEFAULT"] = "https://www.duckduckgo.com/?q={}"
    c.url.searchengines["google"] = "https://www.google.com/search?q={}"
    c.url.searchengines[
        "tfawsr"] = "https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/{}"
    c.url.searchengines[
        "tfawsd"] = "https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/{}"
    c.url.searchengines[
        "amod"] = "https://docs.ansible.com/ansible/latest/modules/{}_module.html"

    c.url.start_pages = ["about:blank"]

    # On Wayland, setting qt.highdpi does nothing.
    # Additionally, Wayland scaling causes qutebrowser to have an insanely large mouse pointer.
    if display_profile == "UHD":
        if os.environ.get("WAYLAND_DISPLAY", None) is None:
            config.set("qt.highdpi", True)
        else:
            set_ui_fonts(c, 24)
            config.set("zoom.default", 200)
    else:
        set_ui_fonts(c, 10)

    # Fullscreen only fills the qutebrowser window. If we want true fullscreen,
    # we can pair it with the fullscreen offered by i3.
    fullscreen_windowed = True
    if qutebrowser_version < (1, 11, 0):
        # This option was renamed to content.fullscreen.window in qutebrowser v1.11.0.
        config.set("content.windowed_fullscreen", fullscreen_windowed)
    else:
        config.set("content.fullscreen.window", fullscreen_windowed)

    # Per-domain settings. Since qutebrowser currently does not save permission requests
    # for these, we need to include them in our configuration.
    #
    # See https://github.com/qutebrowser/qutebrowser/issues/832.
    for scope, permission_list in url_permissions.items():
        for permission, domains in permission_list.items():
            for d in domains:
                config.set(scope, permission, d)

    for d in url_permissions_media:
        if qutebrowser_version < (1, 14, 0):
            # This option was split into several options for selective audio, video capture in qutebrowser v1.14.0.
            config.set("content.media_capture", True, d)
        else:
            config.set("content.media.audio_capture", True, d)
            config.set("content.media.video_capture", True, d)
            config.set("content.media.audio_video_capture", True, d)
        config.set(content_notifications_enabled, True, d)

    config.set("content.blocking.whitelist", adblock_whitelist_urls)

    config_colors(c)
コード例 #7
0
ファイル: binds.py プロジェクト: Kruhlmann/dotfiles
def apply_custom(config: ConfigAPI):
    config.bind("yp", "spawn mpv --force-window yes {url}")
    config.bind("yh", "hint links spawn mpv --force-window yes {hint-url}")
    config.bind(";", "set-cmd-text :")
    config.bind("<Ctrl-s>", "download")
    config.bind("<Ctrl-i>", "inspector")
    config.bind(".", "tab-next")
    config.bind(",", "tab-prev")
    config.bind("<Ctrl-Shift-p>",
                "spawn --userscript ~/.scripts/qute-bitwarden")
    config.bind(" z", "spawn --userscript ~/.scripts/qute-goyo")
    config.bind("e", "edit-url")