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.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", "bookmarks", ] 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("", "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") config.bind("u", "spawn --userscript bw") # 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 = "JetBrainsMono Nerd Font" c.fonts.default_size = "13pt" c.fonts.web.size.minimum = 16 c.fonts.web.size.default = 16 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", True) 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", ]