163 lines
5.3 KiB
Python
163 lines
5.3 KiB
Python
import catppuccin
|
|
|
|
# pylint: disable=C0111
|
|
from qutebrowser.config.configfiles import ConfigAPI # noqa: F401
|
|
from qutebrowser.config.config import ConfigContainer # noqa: F401
|
|
|
|
# fmt: off
|
|
config: ConfigAPI = config # type: ConfigAPI # noqa: F821 pylint: disable=E0602,C0103 # pyright: ignore
|
|
c: ConfigContainer = c # type: ConfigContainer # noqa: F821 pylint: disable=E0602,C0103 # pyright: ignore
|
|
# fmt: on
|
|
|
|
# load autoconfig values
|
|
config.load_autoconfig()
|
|
|
|
# load catppuccin theme
|
|
catppuccin.setup(c, "Machiatto", True)
|
|
|
|
# load custom configs
|
|
config.source("pyconfig/redirectors.py")
|
|
|
|
##-- Dark Mode Settings --##
|
|
c.colors.webpage.preferred_color_scheme = "dark"
|
|
c.colors.webpage.darkmode.enabled = True
|
|
c.colors.webpage.bg = "black"
|
|
c.colors.webpage.darkmode.algorithm = "lightness-cielab"
|
|
c.colors.webpage.darkmode.threshold.text = 150
|
|
c.colors.webpage.darkmode.threshold.background = 100
|
|
c.colors.webpage.darkmode.policy.images = "always"
|
|
c.colors.webpage.darkmode.grayscale.images = 0.35
|
|
|
|
# change startpage and default page
|
|
c.url.start_pages = ["https://startpage.cronyakatsuki.xyz"]
|
|
c.url.default_page = "https://startpage.cronyakatsuki.xyz"
|
|
|
|
# search engines
|
|
c.url.searchengines = {
|
|
"DEFAULT": "https://searx.cronyakatsuki.xyz/?q={}",
|
|
"aw": "https://wiki.archlinux.org/?search={}",
|
|
"re": "https://www.reddit.com/r/{}",
|
|
"w": "https://en.wikipedia.org/wiki/{}",
|
|
"y": "https://www.youtube.com/results?search_query={}",
|
|
}
|
|
|
|
##-- Fingerprinting settings --##
|
|
c.content.headers.user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.3"
|
|
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.canvas_reading = False
|
|
c.content.webgl = False
|
|
c.content.webrtc_ip_handling_policy = "default-public-interface-only"
|
|
c.content.geolocation = False
|
|
c.content.javascript.enabled = False
|
|
c.content.notifications.enabled = False
|
|
c.content.cookies.accept = "never"
|
|
c.content.private_browsing = False
|
|
|
|
##-- AdBLock Settings --##
|
|
c.content.blocking.method = "both"
|
|
c.content.blocking.adblock.lists = [
|
|
"https://easylist.to/easylist/easylist.txt",
|
|
"https://easylist.to/easylist/easyprivacy.txt",
|
|
"https://secure.fanboy.co.nz/fanboy-annoyance.txt",
|
|
"https://easylist-downloads.adblockplus.org/abp-filters-anti-cv.txt",
|
|
"https://www.i-dont-care-about-cookies.eu/abp/",
|
|
]
|
|
|
|
|
|
# History disable
|
|
c.completion.web_history.max_items = 0
|
|
c.completion.cmd_history_max_items = 0
|
|
|
|
##-- Devtool Settings --##
|
|
with config.pattern("chrome-devtools://*") as s:
|
|
s.content.cookies.accept = "all"
|
|
s.content.images = True
|
|
s.content.javascript.enabled = True
|
|
|
|
with config.pattern("devtools://*") as s:
|
|
s.content.cookies.accept = "all"
|
|
s.content.images = True
|
|
s.content.javascript.enabled = True
|
|
|
|
with config.pattern("chrome://*/*") as s:
|
|
s.content.javascript.enabled = True
|
|
|
|
with config.pattern("qute://*/*") as s:
|
|
s.content.javascript.enabled = True
|
|
|
|
##-- Site settings --##
|
|
with config.pattern("https://searx.cronyakatsuki.xyz/*") as s:
|
|
s.content.cookies.accept = "all"
|
|
with config.pattern("https://monkeytype.com") as s:
|
|
s.content.javascript.enabled = True
|
|
s.content.cookies.accept = "all"
|
|
with config.pattern("https://piped.cronyakatsuki.xyz/*") as s:
|
|
s.content.javascript.enabled = True
|
|
s.content.cookies.accept = "all"
|
|
|
|
|
|
##-- Aliases --##
|
|
c.aliases = config.get("aliases")
|
|
c.aliases["buku"] = "spawn --userscript buku"
|
|
|
|
##-- Bindings --##
|
|
# launch with mpv
|
|
config.bind("<Space>m", "spawn mpv {url}")
|
|
config.bind("<Space>fm", "hint links spawn mpv {hint-url}")
|
|
|
|
# buku bundings
|
|
config.bind("b", "buku open")
|
|
config.bind("<Space>ba", "buku add")
|
|
config.bind("<Space>be", "buku edit")
|
|
config.bind("<Space>bd", "buku delete")
|
|
|
|
# yt-dlp
|
|
config.bind("<Space>y", "spawn --userscript yt-dlp")
|
|
config.bind("<Space>fy", "hint links userscript yt-dlp")
|
|
|
|
# search current selection
|
|
config.bind("<Space>f", "open {primary}")
|
|
config.bind("<Space>F", "open --tab {primary}")
|
|
|
|
# yank found url
|
|
config.bind("yf", "hint links yank")
|
|
|
|
# fix escape
|
|
config.bind(
|
|
"<Escape>", "mode-leave ;; jseval -q document.activeElement.blur()", mode="insert"
|
|
)
|
|
|
|
# fix scrolling
|
|
config.bind("j", "jseval --quiet scrollHelper.scrollBy(200)")
|
|
config.bind("k", "jseval --quiet scrollHelper.scrollBy(-200)")
|
|
config.bind("<Ctrl-D>", "jseval --quiet scrollHelper.scrollPage(0.8)")
|
|
config.bind("<Ctrl-U>", "jseval --quiet scrollHelper.scrollPage(-0.8)")
|
|
config.bind("gg", "jseval --quiet scrollHelper.scrollTo(0)")
|
|
config.bind("G", "jseval --quiet scrollHelper.scrollToPercent(100)")
|
|
|
|
# remove clickbard and gdpr banners
|
|
config.bind(
|
|
"ek",
|
|
"jseval (function () { "
|
|
+ ' var i, elements = document.querySelectorAll("body *");'
|
|
+ ""
|
|
+ " for (i = 0; i < elements.length; i++) {"
|
|
+ " var pos = getComputedStyle(elements[i]).position;"
|
|
+ ' if (pos === "fixed" || pos == "sticky") {'
|
|
+ " elements[i].parentNode.removeChild(elements[i]);"
|
|
+ " }"
|
|
+ " }"
|
|
+ "})();",
|
|
)
|
|
|
|
##-- Font Settings --##
|
|
c.fonts.default_family = '"Source Code Pro"'
|
|
c.fonts.default_size = "11pt"
|
|
c.fonts.completion.entry = 'default_size "default_family"'
|
|
c.fonts.debug_console = 'default_size "default_family"'
|
|
c.fonts.prompts = "default_size default_family"
|
|
c.fonts.statusbar = 'default_size "default_family"'
|