# Documentation: # qute://help/configuring.html # qute://help/settings.html # Load GUI Settings config.load_autoconfig() # bindings.commands and bindings.default will not be overwitten by aliases and key_mappings c.aliases = { 'w': 'session-save', 'q': 'close', 'qa': 'quit', 'wq': 'quit --save', 'wqa': 'quit --save', 'lp': 'spawn --userscript qute-lastpass', 'o': 'open' } c.auto_save.interval = 15000 c.auto_save.session = False c.backend = 'webengine' c.bindings.key_mappings = { '': '', '': '', '': '', '': '', '': '', '': '', '': '', '': '', '': '', # Vim keybinds '': '', '': '', '': '', '': '' } # ░█▀▀░█▀█░█░░░█▀█░█▀▄░█▀▀ # ░█░░░█░█░█░░░█░█░█▀▄░▀▀█ # ░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀ # colors # TODO: Draw directly from Xresources myColors = { 'foreground': '#f8f8f2', 'background': '#272822', 'black': ['#272822', '#75715e'], 'red': '#f92672', 'green': '#a6e22e', 'yellow': '#f4bf75', 'blue': '#66d9ef', 'magenta': '#ae81ff', 'cyan': '#a1efe4', 'white': '#f8f8f2' } # Default color settings # If set to null, the Qt default is used. # Type: QssColor c.colors.completion.category.bg = 'qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #888888, stop:1 #505050)' c.colors.completion.category.border.bottom = myColors['background'] c.colors.completion.category.border.top = myColors['background'] c.colors.completion.category.fg = myColors['foreground'] c.colors.completion.even.bg = '#333333' c.colors.completion.fg = ['white', 'white', 'white'] c.colors.completion.item.selected.bg = '#e8c000' c.colors.completion.item.selected.border.bottom = '#bbbb00' c.colors.completion.item.selected.border.top = '#bbbb00' c.colors.completion.item.selected.fg = 'black' c.colors.completion.item.selected.match.fg = myColors['red'] c.colors.completion.match.fg = myColors['red'] c.colors.completion.odd.bg = myColors['black'][0] c.colors.completion.scrollbar.bg = myColors['black'][0] c.colors.completion.scrollbar.fg = myColors['white'] c.colors.contextmenu.disabled.bg = None c.colors.contextmenu.disabled.fg = None c.colors.contextmenu.menu.bg = None c.colors.contextmenu.menu.fg = None c.colors.contextmenu.selected.bg = None c.colors.contextmenu.selected.fg = None c.colors.downloads.bar.bg = 'black' c.colors.downloads.error.bg = 'red' c.colors.downloads.error.fg = 'white' c.colors.downloads.start.bg = '#0000aa' c.colors.downloads.start.fg = 'white' c.colors.downloads.stop.bg = '#00aa00' c.colors.downloads.stop.fg = 'white' # Color gradient interpolation system for download backgrounds. # Type: ColorSystem # Valid values: # - rgb: Interpolate in the RGB color system. # - hsv: Interpolate in the HSV color system. # - hsl: Interpolate in the HSL color system. # - none: Don't show a gradient. c.colors.downloads.system.bg = 'rgb' # Color gradient interpolation system for download text. # Type: ColorSystem # Valid values: # - rgb: Interpolate in the RGB color system. # - hsv: Interpolate in the HSV color system. # - hsl: Interpolate in the HSL color system. # - none: Don't show a gradient. c.colors.downloads.system.fg = 'rgb' def hex_to_RGBA(hex): return 'rgba({}, {}, {}, {})'.format( *[int(hex[a:a+2], 16) for a in (1,3,5,7)]) stop0 = f'stop:0 {hex_to_RGBA("#00ff0044")}' stop1 = f'stop:1 {hex_to_RGBA("#00660044")}' c.colors.hints.bg = f'qlineargradient(x1:0, y1:0, x2:0, y2:1, {stop0}, {stop1})' c.colors.hints.fg = 'black' c.colors.hints.match.fg = 'green' c.colors.keyhint.bg = 'rgba(0, 0, 0, 80%)' c.colors.keyhint.fg = '#FFFFFF' c.colors.keyhint.suffix.fg = '#FFFF00' c.colors.messages.error.bg = 'red' c.colors.messages.error.border = '#bb0000' c.colors.messages.error.fg = 'white' c.colors.messages.info.bg = 'black' c.colors.messages.info.border = '#333333' c.colors.messages.info.fg = 'white' c.colors.messages.warning.bg = 'darkorange' c.colors.messages.warning.border = '#d47300' c.colors.messages.warning.fg = 'white' c.colors.prompts.bg = '#444444' c.colors.prompts.border = '3px solid gray' # Border used around UI elements in prompts. c.colors.prompts.fg = 'white' c.colors.prompts.selected.bg = 'grey' c.colors.statusbar.caret.bg = 'purple' c.colors.statusbar.caret.fg = 'white' c.colors.statusbar.caret.selection.bg = '#a12dff' c.colors.statusbar.caret.selection.fg = 'white' c.colors.statusbar.command.bg = myColors['background'] c.colors.statusbar.command.fg = 'white' c.colors.statusbar.command.private.bg = 'darkslategray' c.colors.statusbar.command.private.fg = 'white' c.colors.statusbar.insert.bg = 'darkgreen' c.colors.statusbar.insert.fg = 'white' c.colors.statusbar.normal.bg = myColors['background'] c.colors.statusbar.normal.fg = myColors['foreground'] c.colors.statusbar.passthrough.bg = 'darkblue' c.colors.statusbar.passthrough.fg = 'white' c.colors.statusbar.private.bg = '#666666' c.colors.statusbar.private.fg = 'white' c.colors.statusbar.progress.bg = 'white' c.colors.statusbar.url.error.fg = 'orange' c.colors.statusbar.url.fg = 'white' c.colors.statusbar.url.hover.fg = 'aqua' c.colors.statusbar.url.success.http.fg = 'white' c.colors.statusbar.url.success.https.fg = 'lime' c.colors.statusbar.url.warn.fg = 'yellow' c.colors.tabs.bar.bg = '#555555' c.colors.tabs.even.bg = myColors['background'] c.colors.tabs.even.fg = myColors['foreground'] c.colors.tabs.indicator.error = '#ff0000' c.colors.tabs.indicator.start = '#0000aa' c.colors.tabs.indicator.stop = '#00aa00' # Color gradient interpolation system for the tab indicator. # Type: ColorSystem # Valid values: # - rgb: Interpolate in the RGB color system. # - hsv: Interpolate in the HSV color system. # - hsl: Interpolate in the HSL color system. # - none: Don't show a gradient. c.colors.tabs.indicator.system = 'rgb' # From here on only QtColors c.colors.tabs.odd.bg = myColors['background'] c.colors.tabs.odd.fg = myColors['foreground'] c.colors.tabs.pinned.even.bg = myColors['background'] c.colors.tabs.pinned.even.fg = myColors['red'] c.colors.tabs.pinned.odd.bg = myColors['background'] c.colors.tabs.pinned.odd.fg = myColors['red'] c.colors.tabs.pinned.selected.even.bg = myColors['background'] c.colors.tabs.pinned.selected.even.fg = myColors['green'] c.colors.tabs.pinned.selected.odd.bg = myColors['background'] c.colors.tabs.pinned.selected.odd.fg = myColors['green'] c.colors.tabs.selected.even.bg = myColors['background'] c.colors.tabs.selected.even.fg = myColors['green'] c.colors.tabs.selected.odd.bg = myColors['background'] c.colors.tabs.selected.odd.fg = myColors['green'] # ░█▀▄░█▀▀░█▀▀░█▀█░█░░░█▀█░█▀▄░▀█▀░█▀█░█▀▀ # ░█▀▄░█▀▀░█░░░█░█░█░░░█░█░█▀▄░░█░░█░█░█░█ # ░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀░▀░▀░▀▀▀ # recoloring c.colors.webpage.bg = 'white' # Which algorithm to use for modifying how colors are rendered with # darkmode. # Type: String # Valid values: # - lightness-cielab: Modify colors by converting them to CIELAB color space and inverting the L value. # - lightness-hsl: Modify colors by converting them to the HSL color space and inverting the lightness (i.e. the "L" in HSL). # - brightness-rgb: Modify colors by subtracting each of r, g, and b from their maximum value. c.colors.webpage.darkmode.algorithm = 'lightness-cielab' # Contrast for dark mode. This only has an effect when # `colors.webpage.darkmode.algorithm` is set to `lightness-hsl` or # `brightness-rgb`. # Type: Float c.colors.webpage.darkmode.contrast = 0.0 # Render all web contents using a dark theme. Example configurations # from Chromium's `chrome://flags`: - "With simple HSL/CIELAB/RGB-based # inversion": Set `colors.webpage.darkmode.algorithm` accordingly. - # "With selective image inversion": Set # `colors.webpage.darkmode.policy.images` to `smart`. - "With selective # inversion of non-image elements": Set # `colors.webpage.darkmode.threshold.text` to 150 and # `colors.webpage.darkmode.threshold.background` to 205. - "With # selective inversion of everything": Combines the two variants above. # Type: Bool c.colors.webpage.darkmode.enabled = False # Render all colors as grayscale. This only has an effect when # `colors.webpage.darkmode.algorithm` is set to `lightness-hsl` or # `brightness-rgb`. # Type: Bool c.colors.webpage.darkmode.grayscale.all = False # Desaturation factor for images in dark mode. If set to 0, images are # left as-is. If set to 1, images are completely grayscale. Values # between 0 and 1 desaturate the colors accordingly. # Type: Float c.colors.webpage.darkmode.grayscale.images = 0.0 # Which images to apply dark mode to. WARNING: With QtWebengine 5.15.0, # this setting can cause frequent renderer process crashes due to a # https://codereview.qt-project.org/c/qt/qtwebengine- # chromium/+/304211[bug in Qt]. Thus, the 'smart' setting is ignored and # treated like 'never' in that case. # Type: String # Valid values: # - always: Apply dark mode filter to all images. # - never: Never apply dark mode filter to any images. # - smart: Apply dark mode based on image content. c.colors.webpage.darkmode.policy.images = 'smart' # Which pages to apply dark mode to. # Type: String # Valid values: # - always: Apply dark mode filter to all frames, regardless of content. # - smart: Apply dark mode filter to frames based on background color. c.colors.webpage.darkmode.policy.page = 'smart' # Threshold for inverting background elements with dark mode. Background # elements with brightness above this threshold will be inverted, and # below it will be left as in the original, non-dark-mode page. Set to # 256 to never invert the color or to 0 to always invert it. Note: This # behavior is the opposite of `colors.webpage.darkmode.threshold.text`! # Type: Int c.colors.webpage.darkmode.threshold.background = 0 # Threshold for inverting text with dark mode. Text colors with # brightness below this threshold will be inverted, and above it will be # left as in the original, non-dark-mode page. Set to 256 to always # invert text color or to 0 to never invert text color. # Type: Int c.colors.webpage.darkmode.threshold.text = 256 c.colors.webpage.prefers_color_scheme_dark = True # ░█░█░█▀▀░█░█░█▀▀ # ░█▀▄░█▀▀░░█░░▀▀█ # ░▀░▀░▀▀▀░░▀░░▀▀▀ # keys # Bindings for normal mode config.bind("'", 'enter-mode 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('', 'tab-focus 1') config.bind('', 'tab-focus 2') config.bind('', 'tab-focus 3') config.bind('', 'tab-focus 4') config.bind('', 'tab-focus 5') config.bind('', 'tab-focus 6') config.bind('', 'tab-focus 7') config.bind('', 'tab-focus 8') config.bind('', 'tab-focus -1') config.bind('', 'tab-mute') config.bind('', 'navigate increment') config.bind('', 'print') config.bind('', 'scroll-page 0 -1') config.bind('', 'scroll-page 0 0.5') config.bind('', 'reload -f') config.bind('', 'scroll-page 0 1') config.bind('', 'open -w') config.bind('', 'tab-next') config.bind('', 'tab-prev') config.bind('', 'quit') config.bind('', 'follow-selected -t') config.bind('', 'open -p') config.bind('', 'undo') config.bind('', 'nop') config.bind('', 'close') config.bind('', 'open -t') config.bind('', 'tab-focus last') config.bind('', 'scroll-page 0 -0.5') config.bind('', 'enter-mode passthrough') config.bind('', 'tab-close') config.bind('', 'navigate decrement') config.bind('', 'tab-focus last') config.bind('', 'home') config.bind('', 'tab-pin') config.bind('', 'stop') config.bind('', 'clear-keychain ;; search ;; fullscreen --leave') config.bind('', 'fullscreen') config.bind('', 'reload') config.bind('', 'follow-selected') config.bind('', 'back') config.bind('', 'forward') config.bind('=', 'zoom') config.bind('?', 'set-cmd-text ?') config.bind('@', 'run-macro') 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('U', 'undo -w') config.bind('V', 'enter-mode caret ;; toggle-selection --line') config.bind('ZQ', 'quit') config.bind('ZZ', 'quit --save') config.bind('[[', 'navigate prev') config.bind(']]', 'navigate next') config.bind('`', 'enter-mode 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', 'enter-mode 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', 'record-macro') 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('tCH', 'config-cycle -p -u *://*.{url:host}/* content.cookies.accept all no-3rdparty never ;; reload') config.bind('tCh', 'config-cycle -p -u *://{url:host}/* content.cookies.accept all no-3rdparty never ;; reload') config.bind('tCu', 'config-cycle -p -u {url} content.cookies.accept all no-3rdparty never ;; reload') 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('tcH', 'config-cycle -p -t -u *://*.{url:host}/* content.cookies.accept all no-3rdparty never ;; reload') config.bind('tch', 'config-cycle -p -t -u *://{url:host}/* content.cookies.accept all no-3rdparty never ;; reload') config.bind('tcu', 'config-cycle -p -t -u {url} content.cookies.accept all no-3rdparty never ;; 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', 'enter-mode caret') config.bind('wB', 'set-cmd-text -s :bookmark-load -w') config.bind('wIf', 'devtools-focus') config.bind('wIh', 'devtools left') config.bind('wIj', 'devtools bottom') config.bind('wIk', 'devtools top') config.bind('wIl', 'devtools right') config.bind('wIw', 'devtools window') 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', 'devtools') 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('', 'drop-selection', mode='caret') config.bind('', 'leave-mode', mode='caret') config.bind('', 'yank selection', mode='caret') config.bind('', '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('V', 'toggle-selection --line', 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', 'enter-mode 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('', 'rl-backward-word', mode='command') config.bind('', 'rl-backward-kill-word', mode='command') config.bind('', 'rl-kill-word', mode='command') config.bind('', 'rl-forward-word', mode='command') config.bind('', 'rl-delete-char', mode='command') config.bind('', 'rl-beginning-of-line', mode='command') config.bind('', 'rl-backward-char', mode='command') config.bind('', 'completion-item-yank', mode='command') config.bind('', 'completion-item-del', mode='command') config.bind('', 'rl-end-of-line', mode='command') config.bind('', 'rl-forward-char', mode='command') config.bind('', 'rl-backward-delete-char', mode='command') config.bind('', 'rl-kill-line', mode='command') config.bind('', 'command-history-next', mode='command') config.bind('', 'command-history-prev', mode='command') config.bind('', 'command-accept --rapid', mode='command') config.bind('', 'completion-item-yank --sel', mode='command') config.bind('', 'completion-item-focus prev-category', mode='command') config.bind('', 'completion-item-focus next-category', mode='command') config.bind('', 'rl-unix-line-discard', mode='command') config.bind('', 'rl-unix-word-rubout', mode='command') config.bind('', 'rl-yank', mode='command') config.bind('', 'completion-item-focus --history next', mode='command') config.bind('', 'leave-mode', mode='command') config.bind('', 'completion-item-focus next-page', mode='command') config.bind('', 'completion-item-focus prev-page', mode='command') config.bind('', 'command-accept', mode='command') config.bind('', 'completion-item-del', mode='command') config.bind('', 'completion-item-focus prev', mode='command') config.bind('', 'completion-item-focus next', mode='command') config.bind('', 'completion-item-focus --history prev', mode='command') # Bindings for hint mode config.bind('', 'hint all tab-bg', mode='hint') config.bind('', 'hint links', mode='hint') config.bind('', 'hint --rapid links tab-bg', mode='hint') config.bind('', 'leave-mode', mode='hint') config.bind('', 'follow-hint', mode='hint') # Bindings for insert mode config.bind('', 'open-editor', mode='insert') config.bind('', 'leave-mode', mode='insert') config.bind('', 'insert-text -- {primary}', mode='insert') # Bindings for passthrough mode config.bind('', 'leave-mode', mode='passthrough') # Bindings for prompt mode config.bind('', 'rl-backward-word', mode='prompt') config.bind('', 'rl-backward-kill-word', mode='prompt') config.bind('', 'rl-kill-word', mode='prompt') config.bind('', 'rl-forward-word', mode='prompt') config.bind('', 'prompt-yank --sel', mode='prompt') config.bind('', 'prompt-yank', mode='prompt') config.bind('', 'rl-delete-char', mode='prompt') config.bind('', 'rl-beginning-of-line', mode='prompt') config.bind('', 'rl-backward-char', mode='prompt') config.bind('', 'rl-end-of-line', mode='prompt') config.bind('', 'rl-forward-char', mode='prompt') config.bind('', 'rl-backward-delete-char', mode='prompt') config.bind('', 'rl-kill-line', mode='prompt') config.bind('', 'prompt-open-download --pdfjs', mode='prompt') config.bind('', 'rl-unix-line-discard', mode='prompt') config.bind('', 'rl-unix-word-rubout', mode='prompt') config.bind('', 'prompt-open-download', mode='prompt') config.bind('', 'rl-yank', mode='prompt') config.bind('', 'prompt-item-focus next', mode='prompt') config.bind('', 'leave-mode', mode='prompt') config.bind('', 'prompt-accept', mode='prompt') config.bind('', 'prompt-item-focus prev', mode='prompt') config.bind('', 'prompt-item-focus next', mode='prompt') config.bind('', 'prompt-item-focus prev', mode='prompt') # Bindings for register mode config.bind('', 'leave-mode', mode='register') # Bindings for yesno mode config.bind('', 'prompt-yank --sel', mode='yesno') config.bind('', 'prompt-yank', mode='yesno') config.bind('', 'leave-mode', mode='yesno') config.bind('', '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') # ░█▄█░▀█▀░█▀▀░█▀▀ # ░█░█░░█░░▀▀█░█░░ # ░▀░▀░▀▀▀░▀▀▀░▀▀▀ c.completion.cmd_history_max_items = 100 c.completion.delay = 0 c.completion.height = '50%' c.completion.min_chars = 1 c.completion.open_categories = ['searchengines', 'quickmarks', 'bookmarks', 'history'] # Move on to the next part when there's only one possible completion # left. # Type: Bool c.completion.quick = True c.completion.scrollbar.padding = 2 c.completion.scrollbar.width = 12 # When to show the autocompletion window. # Type: String # Valid values: # - always: Whenever a completion is available. # - auto: Whenever a completion is requested. # - never: Never. c.completion.show = 'always' # Shrink the completion to be smaller than the configured size if there # are no scrollbars. # Type: Bool c.completion.shrink = False # Format of timestamps (e.g. for the history completion). See # https://sqlite.org/lang_datefunc.html and # https://docs.python.org/3/library/datetime.html#strftime-strptime- # behavior for allowed substitutions, qutebrowser uses both sqlite and # Python to format its timestamps. # Type: String c.completion.timestamp_format = '%Y-%m-%d %H:%M' # Execute the best-matching command on a partial match. # Type: Bool c.completion.use_best_match = False # A list of patterns which should not be shown in the history. This only # affects the completion. Matching URLs are still saved in the history # (and visible on the qute://history page), but hidden in the # completion. Changing this setting will cause the completion history to # be regenerated on the next start, which will take a short while. # Type: List of UrlPattern c.completion.web_history.exclude = [] # Number of URLs to show in the web history. 0: no history / -1: # unlimited # Type: Int c.completion.web_history.max_items = -1 # Require a confirmation before quitting the application. # Type: ConfirmQuit # Valid values: # - always: Always show a confirmation. # - multiple-tabs: Show a confirmation if multiple tabs are opened. # - downloads: Show a confirmation if downloads are running # - never: Never show a confirmation. c.confirm_quit = ['never'] # Automatically start playing `