import os import subprocess # Load autoconfig.yml config.load_autoconfig() # Keybinds # ---------------------------------------- # # General config.unbind('d') config.bind('dd', 'tab-close') config.bind('go', 'set-cmd-text :open -s {url:pretty}') config.bind('gO', 'set-cmd-text :open -s -t -r {url:pretty}') config.bind('o', 'set-cmd-text -s :open -s') config.bind('O', 'set-cmd-text -s :open -s -t') config.bind('Sb', 'open -t qute://bookmarks#bookmarks') config.bind('Sh', 'open -t qute://history') config.bind('Sq', 'open -t qute://bookmarks') config.bind('Ss', 'open -t qute://settings') config.bind('wo', 'set-cmd-text -s :open -s -w') config.bind('wO', 'set-cmd-text -s :open -s -w {url:pretty}') config.bind('wp', 'open -s -w -- {clipboard}') config.bind('wP', 'open -s -w -- {primary}') config.bind('<<', 'tab-move -') config.bind('>>', 'tab-move +') config.bind('', 'tab-focus last') config.bind('', 'config-cycle tabs.show always never') # Command menu selection config.bind('', 'mode-leave', mode='command') config.bind('', 'completion-item-focus --history next', mode='command') config.bind('', 'completion-item-focus --history prev', mode='command') config.bind('', 'command-accept', mode='command') config.bind('', 'mode-leave', mode='command') # Legacy bindings config.bind('', 'back') config.bind('', 'forward') config.bind('', 'zoom-out') config.bind('', 'zoom-in') config.bind('', 'zoom') config.bind('', 'open -t qute://bookmarks#bookmarks') config.bind('', 'bookmark-add') config.bind('', 'set-cmd-text /') config.bind('', 'open -t qute://history') config.bind('', 'set-cmd-text :open -s {url:pretty}') config.bind('', 'reload') config.bind('', 'reload -f') config.bind('', 'undo') config.bind('', 'tab-prev') config.bind('', ':open -t about:blank ;; set-cmd-text -s :open -s ') config.bind('', 'tab-next') config.bind('', 'set-cmd-text :open -s {url:pretty}') config.bind('', 'devtools bottom') config.bind('', 'scroll-page 0 -1') config.bind('', 'scroll-page 0 0.5') # j open downloads # mpv spawning config.bind('', 'spawn mpv {url} ;; message-info "Sending video to mpv..."') config.bind('', 'hint links spawn umpv {hint-url}') config.bind(';M', 'hint --rapid links spawn umpv {hint-url}') # Reload browser config config.bind('', 'config-source ;; message-info "qutebrowser reloaded."') # Run :debug-keytester to get keybinding names # General # ---------------------------------------- # c.auto_save.session = True c.completion.height = '35%' # c.completion.shrink = False c.content.geolocation = False c.content.headers.accept_language = 'en-US,en;q=0.5' c.content.headers.custom = { 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' } c.content.headers.do_not_track = True c.content.headers.referer = 'same-domain' c.content.headers.user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{upstream_browser_version} Safari/537.36' c.content.pdfjs = True c.content.webrtc_ip_handling_policy = 'default-public-interface-only' c.fonts.default_family = ['DejaVu Sans', 'Source Han Sans JP'] # c.hints.chars = 'asdfghjkl' c.scrolling.bar = 'always' c.session.lazy_restore = True c.spellcheck.languages = ['en-US', 'nl-NL'] c.statusbar.padding = {'top': 1, 'bottom': 3, 'left': 5, 'right': 5} c.statusbar.position = 'top' c.tabs.background = True c.tabs.indicator.width = 0 c.tabs.last_close = 'blank' c.tabs.padding = {'top': 3, 'bottom': 3, 'left': 5, 'right': 5} c.tabs.position = 'left' c.tabs.title.format = '{index}: {audio}{current_title}' c.tabs.width = 240 c.url.default_page = 'about:blank' c.url.searchengines = { 'DEFAULT': 'https://google.com/search?q={}', '4': 'https://4chan.org/{}', 'a': 'https://archlinux.org/packages/?q={}', 'au': 'https://aur.archlinux.org/packages?K={}', 'aw': 'https://wiki.archlinux.org/?search={}', 'i': 'https://google.com/search?tbm=isch&q={}', 'yt': 'https://youtube.com/results?search_query={}', } c.url.start_pages = 'https://google.com' # Colors # ---------------------------------------- # e = os.environ bgcolor = e['BGCOLOR'] bgcolor_inactive = e['BGCOLOR_INACTIVE'] bgcolor_urgent = e['BGCOLOR_URGENT'] fgcolor = e['FGCOLOR'] fgcolor_inactive = e['FGCOLOR_INACTIVE'] darkblack = e['COLOR0'] black = e['COLOR8'] darkred = e['COLOR1'] red = e['COLOR9'] darkgreen = e['COLOR2'] green = e['COLOR10'] darkyellow = e['COLOR3'] yellow = e['COLOR11'] darkblue = e['COLOR4'] blue = e['COLOR12'] darkmagenta = e['COLOR5'] magenta = e['COLOR13'] darkcyan = e['COLOR6'] cyan = e['COLOR14'] darkwhite = e['COLOR7'] white = e['COLOR15'] # Completion colors c.colors.completion.category.bg = bgcolor c.colors.completion.category.border.bottom = bgcolor_inactive c.colors.completion.category.border.top = bgcolor_inactive c.colors.completion.category.fg = white c.colors.completion.even.bg = bgcolor c.colors.completion.fg = white c.colors.completion.item.selected.bg = blue c.colors.completion.item.selected.border.bottom = blue c.colors.completion.item.selected.border.top = blue c.colors.completion.item.selected.fg = black c.colors.completion.match.fg = magenta c.colors.completion.odd.bg = bgcolor_inactive c.colors.completion.scrollbar.bg = darkwhite c.colors.completion.scrollbar.fg = white # Download colors c.colors.downloads.bar.bg = black c.colors.downloads.error.bg = red c.colors.downloads.error.fg = fgcolor c.colors.downloads.start.bg = blue c.colors.downloads.start.fg = black c.colors.downloads.stop.bg = green c.colors.downloads.stop.fg = black # c.colors.downloads.system.bg = 'rgb' # c.colors.downloads.system.fg = 'rgb' # Hints colors c.colors.hints.bg = yellow c.colors.hints.fg = black c.colors.hints.match.fg = fgcolor # Keyhint colors c.colors.keyhint.bg = bgcolor_inactive c.colors.keyhint.fg = darkwhite c.colors.keyhint.suffix.fg = white # Error colors c.colors.messages.error.bg = darkred c.colors.messages.error.border = darkred c.colors.messages.error.fg = fgcolor # Info colors c.colors.messages.info.bg = blue c.colors.messages.info.border = blue c.colors.messages.info.fg = black # Warning colors c.colors.messages.warning.bg = darkyellow c.colors.messages.warning.border = darkyellow c.colors.messages.warning.fg = fgcolor # Prompt colors c.colors.prompts.bg = bgcolor c.colors.prompts.border = bgcolor c.colors.prompts.fg = white c.colors.prompts.selected.bg = darkwhite # Satusbar colors c.colors.statusbar.caret.bg = magenta c.colors.statusbar.caret.fg = white c.colors.statusbar.caret.selection.bg = magenta c.colors.statusbar.caret.selection.fg = white c.colors.statusbar.command.bg = blue c.colors.statusbar.command.fg = black c.colors.statusbar.command.private.bg = darkwhite c.colors.statusbar.command.private.fg = white c.colors.statusbar.insert.bg = green c.colors.statusbar.insert.fg = black c.colors.statusbar.normal.bg = bgcolor_inactive c.colors.statusbar.normal.fg = white c.colors.statusbar.passthrough.bg = darkblue c.colors.statusbar.passthrough.fg = white c.colors.statusbar.private.bg = darkwhite c.colors.statusbar.private.fg = white c.colors.statusbar.progress.bg = white c.colors.statusbar.url.error.fg = darkyellow c.colors.statusbar.url.fg = white c.colors.statusbar.url.hover.fg = cyan c.colors.statusbar.url.success.http.fg = darkwhite c.colors.statusbar.url.success.https.fg = white c.colors.statusbar.url.warn.fg = yellow # Tab colors c.colors.tabs.bar.bg = bgcolor_inactive c.colors.tabs.even.bg = bgcolor c.colors.tabs.even.fg = white c.colors.tabs.indicator.error = red c.colors.tabs.indicator.start = blue c.colors.tabs.indicator.stop = bgcolor # c.colors.tabs.indicator.system = 'rgb' c.colors.tabs.odd.bg = bgcolor c.colors.tabs.odd.fg = white c.colors.tabs.selected.even.bg = bgcolor_inactive c.colors.tabs.selected.even.fg = white c.colors.tabs.selected.odd.bg = bgcolor_inactive c.colors.tabs.selected.odd.fg = white # Default background color c.colors.webpage.bg = fgcolor # Update external dependencies # ---------------------------------------- # subprocess.run(['setsid', '-f', 'python', os.path.join(e['XDG_CONFIG_HOME'], 'qutebrowser/update.py')] + c.spellcheck.languages)