dotfiles/qutebrowser/.config/qutebrowser/config.py
Marty Oehme ad8decb4ef Integrate dynamic colorschemes into applications
Makes polybar use Xresources color values for its colors. Resets rofi
values to their default after being overwritten by the base16 themes.
Makes qutebrowser include the colorscheme in its configuration file.

Ignore dynamically generated colorschemes in .gitignore file.
2020-02-01 11:01:26 +01:00

162 lines
5.7 KiB
Python

from qutebrowser.config.configfiles import ConfigAPI # noqa: F401
from qutebrowser.config.config import ConfigContainer # noqa: F401
import os
# Autogenerated config.py
# Documentation:
# qute://help/configuring.html
# qute://help/settings.html
# Uncomment this to still load settings configured via autoconfig.yml
config.load_autoconfig()
c.completion.web_history.max_items = 1000
c.hints.uppercase = True
c.content.host_blocking.enabled = True
c.content.host_blocking.lists = [
"http://www.malwaredomainlist.com/hostslist/hosts.txt",
"http://someonewhocares.org/hosts/hosts",
"http://winhelp2002.mvps.org/hosts.zip",
"http://malwaredomains.lehigh.edu/files/justdomains.zip",
"http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext",
]
c.content.host_blocking.whitelist = ['piwik.org']
c.content.pdfjs = False
c.content.javascript.enabled = False
js_whitelist = [
"*://*.youtube.com/*",
"*://127.0.0.1/*",
"*://darksky.net/*"
"*://deepl.com/*",
"*://duckduckgo.com/*",
"*://github.com/*",
"*://localhost/*",
"*://news.ycombinator.com/*",
"*://reddit.com/*",
"*://translate.google.com/*",
"*://maps.google.com/*",
"*://mail.google.com/*",
"*://todoist.com/*",
"*://toggl.com/*",
"file://*",
"chrome://*/*",
"qute://*/*",
]
for page in js_whitelist:
with config.pattern(page) as p:
p.content.javascript.enabled = True
c.editor.command = ["alacritty", "-e", "nvim", "-f", "{file}"]
# LOOK
# ----
# Tab-Bar
# have tab bar on the right, not on the top
c.tabs.background = True
c.tabs.title.format = '{index} {audio}{perc}{current_title}'
c.tabs.position = "right"
c.tabs.width = "15%"
# give the browser nice theme colors
config.source('colorscheme.py')
# Status bar
# should be visible to prevent 'jumping' bug, see https://github.com/qutebrowser/qutebrowser/issues/2236
# TODO think about implementing a simple toggle for the statusbar, like for the tabs
c.statusbar.hide = False
# CSS
DARK_STYLESHEET = config.configdir / \
"stylesheets/solarized-dark.css"
LIGHT_STYLESHEET = config.configdir / \
"stylesheets/solarized-light.css"
if DARK_STYLESHEET.exists() and LIGHT_STYLESHEET.exists():
css = [str(DARK_STYLESHEET), str(LIGHT_STYLESHEET)]
# FUNCTION
# --------
# Prevents *all* tabs from being loaded on restore, only loads on activating them
c.session.lazy_restore = True
# Binds
# 'Leader' key binding
leader = "<Space>"
# toggles ('cycles') between tabs always showing, or only when switching between them
config.bind(leader + 'tt', 'config-cycle -t tabs.show always switching')
config.bind(leader + 'th', 'set tabs.position bottom')
config.bind(leader + 'tH', 'set tabs.position top')
config.bind(leader + 'tv', 'set tabs.position right')
config.bind(leader + 'tV', 'set tabs.position left')
# [M]edia shortcuts - watch, queue, download media
# bind mpv to play the current page/links, using a single instance which queues the next link passed
config.bind(leader + 'M', 'spawn umpv {url}')
config.bind(leader + 'm', 'hint links spawn umpv {hint-url}')
# bind youtube-dl to download the current page/links
config.bind(leader + 'dM', 'spawn youtube-dl -o ~/videos/%(title)s.%(ext)s {url}')
config.bind(leader + 'dm', 'hint --rapid links spawn youtube-dl -o ~/videos/%(title)s.%(ext)s {url}')
# Let me close tabs more easily, and 'unclose' them with the same key
config.bind('x', 'tab-close', mode='normal')
config.bind('X', 'undo', mode='normal')
# Use q for quitting a tab (mimicks vim buffer) - qa is used for exiting
c.aliases["q"] = "tab-close"
# if we save sessions with w, load sessions with e (again, mimicks vim)
c.aliases["e"] = "session-load"
# bookmarklet aliases:
# currently the idea is to prefix bookmarklets with b (as in open "bookmarklet")
# wallabag add current page, either with walla command, or <leader>bw
c.aliases["add-wallabag"] = "spawn --userscript wallabag_add.sh"
config.bind(leader + 'bw', 'add-wallabag', mode='normal')
# add to (my) shaarli instance
c.aliases["add-shaarli"] = "spawn --userscript shaarli_add.sh"
config.bind(leader + 'bs', 'add-shaarli', mode='normal')
# re-opens the current page on the web archive overview page
c.aliases["archive-open"] = "open https://web.archive.org/web/{url}"
config.bind(leader + 'ba', 'archive-open', mode='normal')
# save current page to pdf file
c.aliases["printpdf"] = "spawn --userscript pagetopdf.sh"
# set to gp, to mirror gd (download) just as go-Pdfdownload
config.bind('gp', 'printpdf', mode='normal')
# set stylesheets for the browser to use
# leader - ss to remove all applied stylesheets
config.bind(leader + 'ss', 'set content.user_stylesheets ""')
# leader - sd for dark mode solarized
config.bind(leader + 'sd', 'set content.user_stylesheets ' + str(css[0]) )
# leader - sl for light mode solarized
config.bind(leader + 'sl', 'set content.user_stylesheets ' + str(css[1]) )
# Enable and disable javascript
config.bind(leader + "js", "config-cycle content.javascript.enabled true false")
# Reload this config
config.bind(leader + "VV", "config-source")
c.url.searchengines = {
"DEFAULT": "https://duckduckgo.com/?q={}",
"d": "https://www.dict.cc/?s={}",
"t": "https://www.thesaurus.com/browse/{}",
"gt": "https://translate.google.com/#auto/de/{}",
"dt": "https://www.deepl.com/translator#en/de/{}",
"g": "https://www.google.com/search?q={}",
"r": "https://old.reddit.com/r/{}",
"w": "https://en.wikipedia.org/w/index.php?search={}",
"gh": "https://github.com/search?q={}",
"al": "https://wiki.archlinux.org/index.php/{}",
"aur": "https://aur.archlinux.org/packages/?K={}",
"yt": "https://www.youtube.com/results?search_query={}",
"maps": "https://www.google.fr/maps?q={}",
"gol": "https://golang.org/pkg/{}/",
}