dotfiles/.config/qutebrowser/config.py

152 lines
5.8 KiB
Python
Raw Normal View History

2020-10-13 20:14:57 +00:00
invid = 'invidious.fdn.fr'
2020-09-06 03:14:57 +00:00
nittr = 'nitter.snopyta.org'
# BEGIN MAIN CONFIGURATION #
c.url.default_page = "https://feedly.com/i/my"
2020-10-28 14:09:03 +00:00
c.url.start_pages = ["https://duck.com/?q=20m+timer"]
c.url.searchengines['y'] = "localhost" + "/search?q={}"
2020-08-22 20:58:07 +00:00
2020-08-22 19:38:32 +00:00
c.completion.open_categories = ["quickmarks", "bookmarks", "history"]
c.tabs.show = "multiple"
c.fonts.default_size = "9pt"
2020-08-25 15:47:14 +00:00
c.content.fullscreen.window = True
c.qt.force_platformtheme = "gtk2"
2020-08-22 20:58:07 +00:00
2020-08-22 19:38:32 +00:00
c.content.cookies.accept = "no-3rdparty"
2020-08-22 20:58:07 +00:00
c.input.insert_mode.auto_leave = False
2020-08-22 21:36:46 +00:00
c.downloads.location.prompt = False
c.url.open_base_url = True
2020-08-23 02:51:44 +00:00
c.tabs.background = True
2020-08-24 01:10:33 +00:00
c.content.dns_prefetch = True
c.confirm_quit = ["downloads"]
c.scrolling.smooth = True
2020-10-19 20:41:44 +00:00
hosts = c.content.host_blocking.lists
hosts.append("https://github.com/jmdugan/blocklists/raw/master/corporations/facebook/all-but-whatsapp")
hosts.append("https://github.com/jmdugan/blocklists/raw/master/corporations/microsoft/all")
hosts.append("https://github.com/jmdugan/blocklists/raw/master/corporations/twitter/all")
2020-10-19 20:41:44 +00:00
hosts.append("https://github.com/Perflyst/PiHoleBlocklist/raw/master/AmazonFireTV.txt")
2020-10-20 02:48:29 +00:00
config.set('content.register_protocol_handler', True, 'https://mail.tutanota.com')
config.set('content.notifications', True, 'https://mail.tutanota.com')
2020-10-24 03:45:26 +00:00
config.set('content.register_protocol_handler', False, 'https://mail.google.com?extsrc=mailto&url=%25s')
2020-10-20 02:48:29 +00:00
config.set('content.desktop_capture', True, 'https://discord.com')
config.set('content.media.audio_capture', True, 'https://discord.com')
config.set('content.persistent_storage', True, 'https://mega.nz')
2020-10-24 03:45:26 +00:00
# BINDINGS #
config.bind('<Ctrl-q>', 'close')
config.bind('<Ctrl-w>', 'tab-close')
config.bind('c1', 'download-open')
config.bind('gs', 'debug-dump-page ~/Downloads/dump.html')
config.bind('sd', "spawn fish -c 'dl; open (ls | rofi -dmenu -b -i || exit 0)'")
2020-10-24 03:45:26 +00:00
mpv = 'spawn -m -d -v mpv --ytdl-raw-options=write-sub=,write-auto-sub=,embed-subs=,sub-lang=en'
c.aliases['mpv'] = mpv
config.bind('m', 'mpv {url}')
config.bind(';m', 'hint links run mpv {hint-url}')
config.bind(',', 'hint links run mpv {hint-url}')
2020-10-24 03:45:26 +00:00
c.aliases['mpv4'] = mpv + ' --ytdl-format=bestvideo[vcodec^=avc1]+bestaudio'
config.bind('M', 'mpv4 {url}')
config.bind(';M', 'hint links run mpv4 {hint-url}')
2020-10-24 03:45:26 +00:00
config.bind('sq', 'open qr {url}')
config.bind('sa', 'open https://archive.is/?run=1&url={url}')
config.bind('sw', 'open https://conifer.rhizome.org/record/{url}')
config.bind('se', 'open https://dotepub.com/converter/?url={url}&fmt=epub')
2020-10-24 03:45:26 +00:00
c.aliases['remove-sticky'] = 'jseval -q !function(){var e,o=document.querySelectorAll("body *");for(e=0;e<o.length;e++)["sticky","fixed"].includes(getComputedStyle(o[e]).position)&&o[e].parentNode.removeChild(o[e])}();'
config.bind('sr', 'remove-sticky')
2020-12-30 17:08:03 +00:00
config.bind('<Ctrl-r>', 'spawn -u /usr/bin/env python3 /usr/share/qutebrowser/userscripts/readability')
config.bind('<Ctrl-Shift-R>', 'spawn kitty rdrview -B qutebrowser {url}')
2020-10-24 03:45:26 +00:00
config.bind('st', 'config-cycle -t content.proxy socks://localhost:9050/ system')
2020-10-28 14:09:03 +00:00
config.bind('sc', 'config-cycle -t content.user_stylesheets adapta.css ""')
2020-10-24 03:45:26 +00:00
# APPEARANCE #
guicol = '#222D32'
accent = '#5294E2'
2020-10-19 20:41:44 +00:00
cc = c.colors
cct = cc.tabs
ccc = cc.completion
ccw = cc.webpage
2020-10-19 20:41:44 +00:00
ccwd = ccw.darkmode
ccw.prefers_color_scheme_dark = True
ccwd.enabled = True
ccwd.policy.images = 'never'
2020-10-19 20:41:44 +00:00
ccc.category.bg = guicol
ccc.scrollbar.bg = guicol
cc.downloads.bar.bg = guicol
cc.prompts.bg = guicol
cc.statusbar.command.bg = guicol
cc.statusbar.command.private.bg = guicol
cc.statusbar.normal.bg = guicol
cc.statusbar.private.bg = guicol
cct.bar.bg = guicol
cct.even.bg = guicol
cct.odd.bg = guicol
cct.pinned.even.bg = guicol
cct.pinned.odd.bg = guicol
cct.selected.even.fg = 'black'
cct.selected.odd.fg = 'black'
cct.pinned.selected.even.fg = 'black'
cct.pinned.selected.odd.fg = 'black'
cc.hints.bg = 'rgba(0, 226, 255, 0.8)'
c.hints.border = '1px solid #00A5BA'
cct.selected.even.bg = accent
cct.selected.odd.bg = accent
cct.pinned.selected.even.bg = accent
cct.pinned.selected.odd.bg = accent
ccc.even.bg = '#29353B'
ccc.odd.bg = '#243035'
ccc.item.selected.bg = accent
ccc.item.selected.border.top = accent
ccc.item.selected.border.bottom = accent
ccc.match.fg = accent
ccc.scrollbar.fg = accent
2020-08-22 19:38:32 +00:00
2020-10-24 03:45:26 +00:00
# REDIRECTS #
2020-08-24 01:10:33 +00:00
from qutebrowser.api import interceptor
2020-08-22 20:58:07 +00:00
import operator, typing
REDIRECT_MAP = {
"reddit.com": operator.methodcaller('setHost', 'teddit.net'),
"www.reddit.com": operator.methodcaller('setHost', 'teddit.net'),
2020-09-06 03:14:57 +00:00
"twitter.com": operator.methodcaller('setHost', nittr),
"api.twitter.com": operator.methodcaller('setHost', nittr),
"platform.twitter.com": operator.methodcaller('setHost', nittr),
"www.platform.twitter.com": operator.methodcaller('setHost', nittr),
"mobile.twitter.com": operator.methodcaller('setHost', nittr),
"www.youtube.com": operator.methodcaller('setHost', invid),
"youtube.com": operator.methodcaller('setHost', invid),
"youtu.be": operator.methodcaller('setHost', invid),
2020-08-22 20:58:07 +00:00
"www.instagram.com": operator.methodcaller('setHost', 'bibliogram.snopyta.org'),
}
def int_fn(info: interceptor.Request):
"""Block the given request if necessary."""
if (info.resource_type != interceptor.ResourceType.main_frame or
info.request_url.scheme() in {"data", "blob"}):
return
url = info.request_url
redir = REDIRECT_MAP.get(url.host())
if redir is not None and redir(url) is not False:
info.redirect(url)
interceptor.register(int_fn)
# DRACULA #
#import dracula.draw
#dracula.draw.blood(c, {
# 'spacing': {
# 'vertical': 1,
# 'horizontal': 0
# }
#})