Skip to content

Instantly share code, notes, and snippets.

@yonderbread
Created April 11, 2022 21:07
Show Gist options
  • Save yonderbread/4e16b343d3a37c26fdbe9a6b35f7e960 to your computer and use it in GitHub Desktop.
Save yonderbread/4e16b343d3a37c26fdbe9a6b35f7e960 to your computer and use it in GitHub Desktop.
My qutebrowser config
import os, sys
config.load_autoconfig(False)
c.backend = 'webengine'
c.qt.process_model = 'process-per-site'
# AUTO SAVE
c.auto_save.interval = 15000
c.auto_save.session = True
# CONTENT
c.content.cache.appcache = True
c.content.cache.maximum_pages = 2
c.content.cache.size = 1024
c.content.autoplay = False
c.content.canvas_reading = False
c.content.proxy = 'system'
c.content.proxy_dns_requests = True
c.content.hyperlink_auditing = False
c.content.dns_prefetch = False
c.content.netrc_file = None
c.content.ssl_strict = True
c.content.javascript.alert = True
c.content.javascript.modal_dialog = True
c.content.javascript.prompt = 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.javascript.can_access_clipboard = False
c.content.javascript.can_close_tabs = False
c.content.javascript.can_open_tabs_automatically = False
c.content.javascript.log = {
'unknown': 'debug',
'info': 'debug',
'warning': 'debug',
'error': 'debug'}
c.content.javascript.enabled = True
c.content.cookies.accept = 'no-3rdparty'
c.content.cookies.store = True
config.set('content.cookies.accept', 'all', 'chrome-devtools://*')
config.set('content.cookies.accept', 'all', 'devtools://*')
c.content.desktop_capture = 'ask'
c.content.media_capture = 'ask'
c.content.geolocation = 'ask'
c.content.notifications = 'ask'
c.content.pdfjs = True
c.content.webgl = True
c.content.xss_auditing = True
c.content.plugins = False
c.content.print_element_backgrounds = True
c.content.private_browsing = False
config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:90.0) Gecko/20100101 Firefox/90.0', 'https://accounts.google.com/*')
c.content.host_blocking.enabled = True
c.content.blocking.method = 'both'
c.content.host_blocking.lists = [
'https://www.malwaredomainlist.com/hostslist/hosts.txt',
'http://someonewhocares.org/hosts/hosts',
'http://winhelp2002.mvps.org/hosts.zip',
'http://malwaredomains.lehigh.edu/files/justdomains.zip',
'https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext']
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.user_stylesheets = []
c.content.media.audio_capture = False
c.content.media.audio_video_capture = False
c.content.webrtc_ip_handling_policy = 'default-public-interface-only'
c.content.frame_flattening = False
c.content.headers.accept_language = 'en-US,en'
c.content.headers.referer = 'same-domain'
c.content.headers.do_not_track = True
#c.content.headers.user_agent = None
#c.content.headers.custom = {}
# TABS
c.tabs.favicons.show = 'always'
c.tabs.last_close = 'startpage'
# URL
c.url.start_pages = 'https://html.duckduckgo.com'
c.url.default_page = 'https://html.duckduckgo.com'
c.url.incdec_segments = ['path', 'query']
c.url.searchengines = {'DEFAULT': 'https://duckduckgo.com/?q={}'}
c.url.yank_ignored_parameters = [
'ref', 'utm_source', 'utm_medium',
'utm_campaign', 'utm_term', 'utm_content']
c.url.auto_search = 'never'
# DOWNLOADS
c.downloads.location.directory = '~/Downloads'
c.downloads.location.prompt = True
c.downloads.location.remember = True
c.downloads.location.suggestion = 'path'
c.downloads.open_dispatcher = None
c.downloads.position = 'top'
c.downloads.remove_finished = 1000*15
# EDITOR
c.editor.encoding = 'utf-8'
try:
if os.name.lower() == 'nt' or sys.platform.lower().startswith('win32') or os.envioron.get():
c.editor.command = ['nvim-qt.exe', '-f', '{file}']
except:
c.editor.command = ['nvim-qt', '-f', '{file}']
# SEARCH
c.search.ignore_case = 'smart'
# INPUT
c.input.forward_unbound_keys = 'auto'
c.input.insert_mode.auto_leave = True
c.input.insert_mode.auto_load = False
c.input.insert_mode.plugins = False
c.input.links_included_in_focus_chain = True
c.input.partial_timeout = 5000
c.input.rocker_gestures = False
c.input.spatial_navigation = False
# FONTS
c.fonts.monospace = ''
c.fonts.monospace += 'Monospace, '
c.fonts.monospace += 'Dejavu Sans Mono", '
c.fonts.monospace += '"Courier New", '
c.fonts.monospace += 'monospace'
c.fonts.completion.category = 'bold 10pt monospace'
c.fonts.completion.entry = '10pt monospace'
c.fonts.debug_console = '10pt monospace'
c.fonts.downloads = '10pt monospace'
c.fonts.hints = 'bold 12pt monospace'
c.fonts.keyhint = '8pt monospace'
c.fonts.messages.error = 'bold 10pt monospace'
c.fonts.messages.info = '10pt monospace'
c.fonts.messages.warning = 'bold 10pt monospace'
c.fonts.prompts = '10pt monospace'
c.fonts.statusbar = '10pt monospace'
c.fonts.tabs = 'bold 10pt monospace'
c.fonts.web.family.cursive = ''
c.fonts.web.family.fantasy = ''
c.fonts.web.family.fixed = ''
c.fonts.web.family.sans_serif = ''
c.fonts.web.family.serif = ''
c.fonts.web.family.standard = ''
c.fonts.web.size.default = 16
c.fonts.web.size.default_fixed = 11
c.fonts.web.size.minimum = 0
c.fonts.web.size.minimum_logical = 8
# HINTS
c.hints.auto_follow = 'unique-match'
c.hints.auto_follow_timeout = 0
c.hints.border = '1px solid black'
c.hints.chars = 'tsrn'
c.hints.find_implementation = 'python'
c.hints.hide_unmatched_rapid_hints = True
c.hints.min_chars = 1
c.hints.mode = 'letter'
c.keyhint.blacklist = []
c.keyhint.delay = 250
#c.hints.scatter = False
#c.hints.uppercase = False
try:
if not (os.name.lower() == 'nt' or sys.platform.lower().startswith('win32') or os.envioron.get()):
c.hints.dictionary = '/usr/share/dict/words'
except:
pass
# BEHAVIOR
c.new_instance_open_target_window = 'last-focused'
c.prompt.filebrowser = True
c.prompt.radius = 8
c.spellcheck.languages = ["en-US"]
# WINDOW
c.window.hide_decoration = False
c.window.title_format = '{perc}{title}
# ZOOM
c.zoom.default = '100%'
c.zoom.mouse_divider = 512
c.zoom.text_only = False
c.zoom.levels = [f'{str(i)}%' for i in range(25,200,25)]
#c.zoom.levels = ['25%', '33%', '50%', '67%', '75%', '90%', '100%', '110%', '125%', '150%', '175%', '200%', '250%', '300%', '400%', '500%']
# SCROLLING
c.scrolling.bar = "when-searching"
c.scrolling.smooth = True
# SESSION
c.session.default_name = None
# QT
c.qt.args = []
c.qt.force_platform = None
c.qt.force_software_rendering = "none"
# STATUSBAR
c.statusbar.position = 'bottom'
c.statusbar.padding = {
'top': 1,
'bottom': 1,
'left': 0,
'right': 0}
# TABS
c.tabs.background = True
c.tabs.close_mouse_button = 'none'
c.tabs.favicons.scale = 1.2
c.tabs.favicons.show = 'always'
c.tabs.last_close = 'ignore'
c.tabs.new_position.related = 'next'
c.tabs.new_position.unrelated = 'next'
c.tabs.mousewheel_switching = False
c.tabs.position = 'top'
c.tabs.select_on_remove = 'last-used'
c.tabs.show = 'always'
c.tabs.show_switching_delay = 800
c.tabs.tabs_are_windows = False
c.tabs.title.alignment = 'left'
c.tabs.title.format = '{title}'
c.tabs.title.format_pinned = '[X] {title}'
c.tabs.width = '20%'
c.tabs.indicator.width = 0
c.tabs.wrap = True
c.tabs.padding = {
'top': 0,
'bottom': 0,
'left': 5,
'right': 5}
c.tabs.indicator.padding = {
'top': 2,
'bottom': 2,
'left': 0,
'right': 4}
# COLORS
c.colors.completion.fg = '#f3f3f3'
c.colors.completion.odd.bg = '#333366'
c.colors.completion.even.bg = '#333344'
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 = 'black'
c.colors.completion.item.selected.fg = '#fff'
c.colors.completion.item.selected.bg = '#111111'
c.colors.completion.item.selected.border.top = '#7ad8ff'
c.colors.completion.item.selected.border.bottom = '#7ad8ff'
c.colors.downloads.bar.bg = '#333344'
c.colors.downloads.error.fg = '#302A2A'
c.colors.downloads.error.bg = '#FE3030'
c.colors.downloads.start.bg = '#30FE6C'
c.colors.downloads.stop.bg = '#FEE430'
c.colors.hints.bg = 'rgba(11, 11, 11, 60%)'
c.colors.hints.fg = '#f3f3f3'
c.colors.keyhint.bg = 'rgba(0, 0, 0, 55%)'
c.colors.statusbar.normal.bg = '#111111'
c.colors.statusbar.insert.bg = '#A8E2E1'
c.colors.statusbar.private.bg = '#7E4281'
c.colors.statusbar.normal.fg = '#fafafa'
c.colors.statusbar.insert.fg = '#fafafa'
c.colors.statusbar.private.fg = '#fafafa'
# COMPLETION
c.completion.height = '45%'
c.completion.quick = True
c.completion.scrollbar.padding = 1
c.completion.scrollbar.width = 11
c.completion.show = 'always'
c.completion.shrink = True
c.completion.timestamp_format = '%Y-%m-%d'
c.completion.web_history.max_items = 10
c.confirm_quit = ['downloads', 'multiple-tabs']
# BINDINGS
c.bindings.key_mappings = {'<Ctrl+[>': '<Escape>', '<Ctrl+6>': '<Ctrl+^>', '<Ctrl+m>': '<Return>', '<Ctrl+j>': '<Return>', '<Shift+Return>': '<Return>', '<Enter>': '<Return>', '<Shift+Enter>': '<Return>', '<Ctrl+Enter>': '<Ctrl+Return>'}
config.bind("P", 'spawn mpv {url}')
config.bind('.', 'repeat-command')
config.bind('+', 'zoom-in')
config.bind('-', 'zoom-out')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment