195 lines
6.9 KiB
Nix
195 lines
6.9 KiB
Nix
{
|
|
programs.qutebrowser = {
|
|
enable = true;
|
|
extraConfig = ''
|
|
from locale import getdefaultlocale
|
|
from os import environ
|
|
from re import match
|
|
from pathlib import Path
|
|
|
|
config.load_autoconfig()
|
|
|
|
c.aliases = {
|
|
"o": "open",
|
|
"q": "quit",
|
|
"w": "session-save",
|
|
"wq": "quit --save",
|
|
"adblock-toggle": "config-cycle -t content.blocking.enabled",
|
|
"incognito": "open --private",
|
|
"mpv": "spawn --detach mpv {url}",
|
|
}
|
|
|
|
c.colors.webpage.bg = "black"
|
|
|
|
# TODO
|
|
# c.editor.command = [
|
|
# "neovide",
|
|
# "--nofork",
|
|
# "--wayland-app-id",
|
|
# "neovidefloat",
|
|
# "--",
|
|
# "+normal {line}G{column0}l",
|
|
# "--",
|
|
# "{file}",
|
|
# ]
|
|
|
|
c.editor.encoding = "utf-8"
|
|
|
|
config.bind("td", "config-cycle colors.webpage.darkmode.enabled;; restart")
|
|
|
|
c.content.local_content_can_access_remote_urls = True
|
|
|
|
c.tabs.show = "multiple"
|
|
|
|
c.url.default_page = Path("${./start.html}").as_uri()
|
|
|
|
c.url.start_pages = [c.url.default_page]
|
|
|
|
c.url.searchengines = {
|
|
"DEFAULT": "https://www.google.com/search?q={}",
|
|
"g": "https://www.google.com/search?q={}",
|
|
"ddg": "https://lite.duckduckgo.com/lite?q={}",
|
|
"wt": "https://en.wiktionary.org/w/index.php?search={}",
|
|
"w": "https://en.wikipedia.org/w/index.php?search={}",
|
|
"bs": "https://search.brave.com/search?q={}",
|
|
"aur": "https://aur.archlinux.org/packages/?SB=p&SO=d&O=0&K={}",
|
|
"gh": "https://github.com/search?q={}",
|
|
"gist": "https://gist.github.com/search?q={}",
|
|
"dd": "https://thefreedictionary.com/{}",
|
|
"dr": "https://search.disroot.org/?q={}",
|
|
}
|
|
|
|
try:
|
|
l = getdefaultlocale()[0]
|
|
if l is None or l in ("C", "POSIX"):
|
|
raise ValueError
|
|
|
|
rematch = match(r"([a-z]+)(_([A-Z]+)?)", l)
|
|
if rematch is None:
|
|
raise ValueError
|
|
|
|
language = rematch[1]
|
|
|
|
try:
|
|
locale = rematch[3]
|
|
c.content.headers.accept_language = f"{language}-{locale},{language};q=0.9,en-{locale},en;q=0.8,en-US,en;q=0.7,*;q=0.6"
|
|
except IndexError:
|
|
c.content.headers.accept_language = f"{language};q=0.9,en-US,en;q=0.8,*;q=0.7"
|
|
except:
|
|
c.content.headers.accept_language = "en-US,en;q=0.9"
|
|
|
|
# TODO
|
|
# c.colors.webpage.preferred_color_scheme = "dark"
|
|
|
|
base00 = "#1f2022"
|
|
base01 = "#282828"
|
|
base02 = "#444155"
|
|
base03 = "#585858"
|
|
base04 = "#b8b8b8"
|
|
base05 = "#a3a3a3"
|
|
base06 = "#e8e8e8"
|
|
base07 = "#f8f8f8"
|
|
base08 = "#f2241f"
|
|
base09 = "#ffa500"
|
|
base0A = "#b1951d"
|
|
base0B = "#67b11d"
|
|
base0C = "#2d9574"
|
|
base0D = "#4f97d7"
|
|
base0E = "#a31db1"
|
|
base0F = "#b03060"
|
|
|
|
c.colors.completion.fg = base05
|
|
c.colors.completion.odd.bg = base01
|
|
c.colors.completion.even.bg = base00
|
|
c.colors.completion.category.fg = base0A
|
|
c.colors.completion.category.bg = base00
|
|
c.colors.completion.category.border.top = base00
|
|
c.colors.completion.category.border.bottom = base00
|
|
c.colors.completion.item.selected.fg = base05
|
|
c.colors.completion.item.selected.bg = base02
|
|
c.colors.completion.item.selected.border.top = base02
|
|
c.colors.completion.item.selected.border.bottom = base02
|
|
c.colors.completion.item.selected.match.fg = base0B
|
|
c.colors.completion.match.fg = base0B
|
|
c.colors.completion.scrollbar.fg = base05
|
|
c.colors.completion.scrollbar.bg = base00
|
|
c.colors.contextmenu.disabled.bg = base01
|
|
c.colors.contextmenu.disabled.fg = base04
|
|
c.colors.contextmenu.menu.bg = base00
|
|
c.colors.contextmenu.menu.fg = base05
|
|
c.colors.contextmenu.selected.bg = base02
|
|
c.colors.contextmenu.selected.fg = base05
|
|
c.colors.downloads.bar.bg = base00
|
|
c.colors.downloads.start.fg = base00
|
|
c.colors.downloads.start.bg = base0D
|
|
c.colors.downloads.stop.fg = base00
|
|
c.colors.downloads.stop.bg = base0C
|
|
c.colors.downloads.error.fg = base08
|
|
c.colors.hints.fg = base00
|
|
c.colors.hints.bg = base0A
|
|
c.colors.hints.match.fg = base05
|
|
c.colors.keyhint.fg = base05
|
|
c.colors.keyhint.suffix.fg = base05
|
|
c.colors.keyhint.bg = base00
|
|
c.colors.messages.error.fg = base00
|
|
c.colors.messages.error.bg = base08
|
|
c.colors.messages.error.border = base08
|
|
c.colors.messages.warning.fg = base00
|
|
c.colors.messages.warning.bg = base0E
|
|
c.colors.messages.warning.border = base0E
|
|
c.colors.messages.info.fg = base05
|
|
c.colors.messages.info.bg = base00
|
|
c.colors.messages.info.border = base00
|
|
c.colors.prompts.fg = base05
|
|
c.colors.prompts.border = base00
|
|
c.colors.prompts.bg = base00
|
|
c.colors.prompts.selected.bg = base02
|
|
c.colors.prompts.selected.fg = base05
|
|
c.colors.statusbar.normal.fg = base0B
|
|
c.colors.statusbar.normal.bg = base00
|
|
c.colors.statusbar.insert.fg = base00
|
|
c.colors.statusbar.insert.bg = base0D
|
|
c.colors.statusbar.passthrough.fg = base00
|
|
c.colors.statusbar.passthrough.bg = base0C
|
|
c.colors.statusbar.private.fg = base00
|
|
c.colors.statusbar.private.bg = base01
|
|
c.colors.statusbar.command.fg = base05
|
|
c.colors.statusbar.command.bg = base00
|
|
c.colors.statusbar.command.private.fg = base05
|
|
c.colors.statusbar.command.private.bg = base00
|
|
c.colors.statusbar.caret.fg = base00
|
|
c.colors.statusbar.caret.bg = base0E
|
|
c.colors.statusbar.caret.selection.fg = base00
|
|
c.colors.statusbar.caret.selection.bg = base0D
|
|
c.colors.statusbar.progress.bg = base0D
|
|
c.colors.statusbar.url.fg = base05
|
|
c.colors.statusbar.url.error.fg = base08
|
|
c.colors.statusbar.url.hover.fg = base05
|
|
c.colors.statusbar.url.success.http.fg = base0C
|
|
c.colors.statusbar.url.success.https.fg = base0B
|
|
c.colors.statusbar.url.warn.fg = base0E
|
|
c.colors.tabs.bar.bg = base00
|
|
c.colors.tabs.indicator.start = base0D
|
|
c.colors.tabs.indicator.stop = base0C
|
|
c.colors.tabs.indicator.error = base08
|
|
c.colors.tabs.odd.fg = base05
|
|
c.colors.tabs.odd.bg = base01
|
|
c.colors.tabs.even.fg = base05
|
|
c.colors.tabs.even.bg = base00
|
|
c.colors.tabs.pinned.even.bg = base0C
|
|
c.colors.tabs.pinned.even.fg = base07
|
|
c.colors.tabs.pinned.odd.bg = base0B
|
|
c.colors.tabs.pinned.odd.fg = base07
|
|
c.colors.tabs.pinned.selected.even.bg = base02
|
|
c.colors.tabs.pinned.selected.even.fg = base05
|
|
c.colors.tabs.pinned.selected.odd.bg = base02
|
|
c.colors.tabs.pinned.selected.odd.fg = base05
|
|
c.colors.tabs.selected.odd.fg = base05
|
|
c.colors.tabs.selected.odd.bg = base02
|
|
c.colors.tabs.selected.even.fg = base05
|
|
c.colors.tabs.selected.even.bg = base02
|
|
c.colors.webpage.bg = base00
|
|
'';
|
|
};
|
|
}
|