129 lines
5.7 KiB
Python
129 lines
5.7 KiB
Python
import catppuccin
|
|
import subprocess
|
|
|
|
c = c # noqa: F821 pylint: disable=E0602,C0103
|
|
config = config # noqa: F821 pylint: disable=E0602,C0103
|
|
|
|
import subprocess
|
|
|
|
|
|
def read_xresources(prefix):
|
|
props = {}
|
|
x = subprocess.run(["xrdb", "-query"], capture_output=True, check=True, text=True)
|
|
lines = x.stdout.split("\n")
|
|
for line in filter(lambda l: l.startswith(prefix), lines):
|
|
prop, _, value = line.partition(":\t")
|
|
props[prop] = value
|
|
return props
|
|
|
|
|
|
c.window.hide_decoration = True
|
|
|
|
# load your autoconfig, use this, if the rest of your config is empty!
|
|
config.load_autoconfig()
|
|
|
|
# set the flavor you'd like to use
|
|
# valid options are 'mocha', 'macchiato', 'frappe', and 'latte'
|
|
# last argument (optional, default is False): enable the plain look for the menu rows
|
|
catppuccin.setup(c, "mocha", True)
|
|
|
|
# Dark Mode
|
|
c.colors.webpage.darkmode.enabled = True
|
|
c.colors.webpage.darkmode.algorithm = "lightness-cielab"
|
|
c.colors.webpage.darkmode.policy.images = "never"
|
|
config.set("colors.webpage.darkmode.enabled", False, "file://*")
|
|
|
|
#
|
|
c.tabs.title.format = "{audio}{current_title}"
|
|
c.fonts.web.size.default = 20
|
|
|
|
c.url.searchengines = {
|
|
# note - if you use duckduckgo, you can make use of its built in bangs, of which there are many! https://duckduckgo.com/bangs
|
|
"DEFAULT": "https://duckduckgo.com/?q={}",
|
|
"!aw": "https://wiki.archlinux.org/?search={}",
|
|
"!apkg": "https://archlinux.org/packages/?sort=&q={}&maintainer=&flagged=",
|
|
"!gh": "https://github.com/search?o=desc&q={}&s=stars",
|
|
"!yt": "https://invidious.durp.info/results?search_query={}",
|
|
}
|
|
|
|
c.completion.open_categories = [
|
|
"searchengines",
|
|
"quickmarks",
|
|
"bookmarks",
|
|
"history",
|
|
"filesystem",
|
|
]
|
|
|
|
c.auto_save.session = False # save tabs on quit/restart
|
|
|
|
# keybinding changes
|
|
config.bind("=", "cmd-set-text -s :open")
|
|
config.bind("h", "history")
|
|
config.bind("cs", "cmd-set-text -s :config-source")
|
|
config.bind("tH", "config-cycle tabs.show multiple never")
|
|
config.bind("sH", "config-cycle statusbar.show always never")
|
|
config.bind("T", "hint links tab")
|
|
config.bind("pP", "open -- {primary}")
|
|
config.bind("pp", "open -- {clipboard}")
|
|
config.bind("pt", "open -t -- {clipboard}")
|
|
config.bind("qm", "macro-record")
|
|
config.bind("<ctrl-y>", "spawn --userscript ytdl.sh")
|
|
config.bind("tT", "config-cycle tabs.position top left")
|
|
config.bind("gJ", "tab-move +")
|
|
config.bind("gK", "tab-move -")
|
|
config.bind("gm", "tab-move")
|
|
config.bind("x", "tab-close")
|
|
|
|
# styles, cosmetics
|
|
# c.content.user_stylesheets = ["~/.config/qutebrowser/styles/youtube-tweaks.css"]
|
|
c.tabs.padding = {"top": 5, "bottom": 5, "left": 9, "right": 9}
|
|
c.tabs.indicator.width = 0 # no tab indicators
|
|
# c.window.transparent = True # apparently not needed
|
|
c.tabs.width = "7%"
|
|
|
|
# fonts
|
|
c.fonts.default_family = []
|
|
c.fonts.default_size = "13pt"
|
|
c.fonts.web.family.fixed = "monospace"
|
|
c.fonts.web.family.sans_serif = "monospace"
|
|
c.fonts.web.family.serif = "monospace"
|
|
c.fonts.web.family.standard = "monospace"
|
|
|
|
# privacy - adjust these settings based on your preference
|
|
# config.set("completion.cmd_history_max_items", 0)
|
|
# config.set("content.private_browsing", True)
|
|
config.set("content.webgl", False, "*")
|
|
config.set("content.canvas_reading", False)
|
|
config.set("content.geolocation", False)
|
|
config.set("content.webrtc_ip_handling_policy", "default-public-interface-only")
|
|
config.set("content.cookies.accept", "all")
|
|
config.set("content.cookies.store", True)
|
|
# config.set("content.javascript.enabled", False) # tsh keybind to toggle
|
|
|
|
# Adblocking info -->
|
|
# For yt ads: place the greasemonkey script yt-ads.js in your greasemonkey folder (~/.config/qutebrowser/greasemonkey).
|
|
# The script skips through the entire ad, so all you have to do is click the skip button.
|
|
# Yeah it's not ublock origin, but if you want a minimal browser, this is a solution for the tradeoff.
|
|
# You can also watch yt vids directly in mpv, see qutebrowser FAQ for how to do that.
|
|
# If you want additional blocklists, you can get the python-adblock package, or you can uncomment the ublock lists here.
|
|
c.content.blocking.enabled = True
|
|
# c.content.blocking.method = 'adblock' # uncomment this if you install python-adblock
|
|
# c.content.blocking.adblock.lists = [
|
|
# "https://github.com/ewpratten/youtube_ad_blocklist/blob/master/blocklist.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/legacy.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2020.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2021.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2022.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2023.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2024.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badware.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/privacy.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badlists.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances-cookies.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/annoyances-others.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/badlists.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/quick-fixes.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/resource-abuse.txt",
|
|
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/unbreak.txt"]
|