From a50e1d183574593cd305e5daa076448b63cb4a1b Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Fri, 22 Sep 2023 22:14:46 +0200 Subject: [PATCH] Add Qutebrowser install --- home-manager/qutebrowser/default.nix | 362 +++++++++++++++++++++++++++ 1 file changed, 362 insertions(+) create mode 100644 home-manager/qutebrowser/default.nix diff --git a/home-manager/qutebrowser/default.nix b/home-manager/qutebrowser/default.nix new file mode 100644 index 0000000..d208136 --- /dev/null +++ b/home-manager/qutebrowser/default.nix @@ -0,0 +1,362 @@ +_: { + + programs.qutebrowser = { + enable = true; + loadAutoconfig = true; + settings = { + + qt.args = [ + "autoplay-policy=user-gesture-required" + "ignore-gpu-blocklist" + "enable-accelerated-video-decode" + "enable-features=VaapiVideoDecoder" + "enable-features=WebRTCPipeWireCapturer" + ]; + # Try to reduce memury usage + qt.chromium.low_end_device_mode = "always"; + qt.chromium.process_model = "process-per-site"; + + fonts.default_family = "Fira Code Nerd Font Mono"; + fonts.completion.category = "default_size default_family"; + + tabs.title.format = "{index}:{audio:1} {current_title}"; + tabs.select_on_remove = "last-used"; + colors.webpage.preferred_color_scheme = "dark"; + + #Privacy + content.canvas_reading = true; + content.headers.do_not_track = true; + content.cookies.accept = "no-3rdparty"; + content.geolocation = false; + content.headers.referer = "same-domain"; + content.blocking.enabled = true; + content.blocking.method = "both"; + content.blocking.adblock.lists = [ + https://easylist.to/easylist/easylist.txt + https://easylist.to/easylist/easyprivacy.txt + https://www.i-dont-care-about-cookies.eu/abp/ + https://secure.fanboy.co.nz/fanboy-cookiemonster.txt + ]; + + content.plugins = false; + downloads.location.directory = "~/downloads"; + completion.open_categories = [ + "quickmarks" + "history" + ]; + }; + extraConfig = '' + c.tabs.padding = { "top":3, "bottom":3, "left":5, "right":5 } + # Change audio icon + from qutebrowser.api import message + try: + from qutebrowser.mainwindow import tabwidget + tabwidget.TabWidget.MUTE_STRING = "󰝟" + tabwidget.TabWidget.AUDIBLE_STRING = "󰕾" + except (ImportError, AttributeError) as err: + message.error(f"Failed to change audible indicators {err}") + + # base16-qutebrowser (https://github.com/theova/base16-qutebrowser) + # Scheme name: Default Dark + # Scheme author: Chris Kempson (http://chriskempson.com) + # Template author: theova and Daniel Mulford + # Commentary: Tinted Theming: (https://github.com/tinted-theming) + + base00 = "#181818" + base01 = "#282828" + base02 = "#383838" + base03 = "#585858" + base04 = "#b8b8b8" + base05 = "#d8d8d8" + base06 = "#e8e8e8" + base07 = "#f8f8f8" + base08 = "#ab4642" + base09 = "#dc9656" + base0A = "#f7ca88" + base0B = "#a1b56c" + base0C = "#86c1b9" + base0D = "#7cafc2" + base0E = "#ba8baf" + base0F = "#a16946" + + # set qutebrowser colors + + # Text color of the completion widget. May be a single color to use for + # all columns or a list of three colors, one for each column. + c.colors.completion.fg = base05 + # Background color of the completion widget for odd rows. + c.colors.completion.odd.bg = base00 + + # Background color of the completion widget for even rows. + c.colors.completion.even.bg = base00 + + # Foreground color of completion widget category headers. + c.colors.completion.category.fg = base0D + + # Background color of the completion widget category headers. + c.colors.completion.category.bg = base00 + + # Top border color of the completion widget category headers. + c.colors.completion.category.border.top = base00 + + # Bottom border color of the completion widget category headers. + c.colors.completion.category.border.bottom = base00 + + # Foreground color of the selected completion item. + c.colors.completion.item.selected.fg = base05 + + # Background color of the selected completion item. + c.colors.completion.item.selected.bg = base02 + + # Top border color of the selected completion item. + c.colors.completion.item.selected.border.top = base02 + + # Bottom border color of the selected completion item. + c.colors.completion.item.selected.border.bottom = base02 + + # Foreground color of the matched text in the selected completion item. + c.colors.completion.item.selected.match.fg = base05 + + # Foreground color of the matched text in the completion. + c.colors.completion.match.fg = base09 + + # Color of the scrollbar handle in the completion view. + c.colors.completion.scrollbar.fg = base05 + + # Color of the scrollbar in the completion view. + c.colors.completion.scrollbar.bg = base00 + + # Background color of disabled items in the context menu. + c.colors.contextmenu.disabled.bg = base01 + + # Foreground color of disabled items in the context menu. + c.colors.contextmenu.disabled.fg = base04 + + # Background color of the context menu. If set to null, the Qt default is used. + c.colors.contextmenu.menu.bg = base00 + + # Foreground color of the context menu. If set to null, the Qt default is used. + c.colors.contextmenu.menu.fg = base05 + + # Background color of the context menu’s selected item. If set to null, the Qt default is used. + c.colors.contextmenu.selected.bg = base02 + + #Foreground color of the context menu’s selected item. If set to null, the Qt default is used. + c.colors.contextmenu.selected.fg = base05 + + # Background color for the download bar. + c.colors.downloads.bar.bg = base00 + + # Color gradient start for download text. + c.colors.downloads.start.fg = base00 + + # Color gradient start for download backgrounds. + c.colors.downloads.start.bg = base0D + + # Color gradient end for download text. + c.colors.downloads.stop.fg = base00 + + # Color gradient stop for download backgrounds. + c.colors.downloads.stop.bg = base0C + + # Foreground color for downloads with errors. + c.colors.downloads.error.fg = base08 + + # Font color for hints. + c.colors.hints.fg = base00 + + # Background color for hints. Note that you can use a `rgba(...)` value + # for transparency. + c.colors.hints.bg = base0A + + # Font color for the matched part of hints. + c.colors.hints.match.fg = base05 + + # Text color for the keyhint widget. + c.colors.keyhint.fg = base05 + + # Highlight color for keys to complete the current keychain. + c.colors.keyhint.suffix.fg = base05 + + # Background color of the keyhint widget. + c.colors.keyhint.bg = base00 + + # Foreground color of an error message. + c.colors.messages.error.fg = base00 + + # Background color of an error message. + c.colors.messages.error.bg = base08 + + # Border color of an error message. + c.colors.messages.error.border = base08 + + # Foreground color of a warning message. + c.colors.messages.warning.fg = base00 + + # Background color of a warning message. + c.colors.messages.warning.bg = base0E + + # Border color of a warning message. + c.colors.messages.warning.border = base0E + + # Foreground color of an info message. + c.colors.messages.info.fg = base05 + + # Background color of an info message. + c.colors.messages.info.bg = base00 + + # Border color of an info message. + c.colors.messages.info.border = base00 + + # Foreground color for prompts. + c.colors.prompts.fg = base05 + + # Border used around UI elements in prompts. + c.colors.prompts.border = base00 + + # Background color for prompts. + c.colors.prompts.bg = base00 + + # Background color for the selected item in filename prompts. + c.colors.prompts.selected.bg = base02 + + # Foreground color for the selected item in filename prompts. + c.colors.prompts.selected.fg = base05 + + # Foreground color of the statusbar. + c.colors.statusbar.normal.fg = base05 + + # Background color of the statusbar. + c.colors.statusbar.normal.bg = base00 + + # Foreground color of the statusbar in insert mode. + c.colors.statusbar.insert.fg = base0C + + # Background color of the statusbar in insert mode. + c.colors.statusbar.insert.bg = base00 + + # Foreground color of the statusbar in passthrough mode. + c.colors.statusbar.passthrough.fg = base0A + + # Background color of the statusbar in passthrough mode. + c.colors.statusbar.passthrough.bg = base00 + + # Foreground color of the statusbar in private browsing mode. + c.colors.statusbar.private.fg = base0E + + # Background color of the statusbar in private browsing mode. + c.colors.statusbar.private.bg = base00 + + # Foreground color of the statusbar in command mode. + c.colors.statusbar.command.fg = base04 + + # Background color of the statusbar in command mode. + c.colors.statusbar.command.bg = base01 + + # Foreground color of the statusbar in private browsing + command mode. + c.colors.statusbar.command.private.fg = base0E + + # Background color of the statusbar in private browsing + command mode. + c.colors.statusbar.command.private.bg = base01 + + # Foreground color of the statusbar in caret mode. + c.colors.statusbar.caret.fg = base0D + + # Background color of the statusbar in caret mode. + c.colors.statusbar.caret.bg = base00 + + # Foreground color of the statusbar in caret mode with a selection. + c.colors.statusbar.caret.selection.fg = base0D + + # Background color of the statusbar in caret mode with a selection. + c.colors.statusbar.caret.selection.bg = base00 + + # Background color of the progress bar. + c.colors.statusbar.progress.bg = base0D + + # Default foreground color of the URL in the statusbar. + c.colors.statusbar.url.fg = base05 + + # Foreground color of the URL in the statusbar on error. + c.colors.statusbar.url.error.fg = base08 + + # Foreground color of the URL in the statusbar for hovered links. + c.colors.statusbar.url.hover.fg = base09 + + # Foreground color of the URL in the statusbar on successful load + # (http). + c.colors.statusbar.url.success.http.fg = base0B + + # Foreground color of the URL in the statusbar on successful load + # (https). + c.colors.statusbar.url.success.https.fg = base0B + + # Foreground color of the URL in the statusbar when there's a warning. + c.colors.statusbar.url.warn.fg = base0E + + # Background color of the tab bar. + c.colors.tabs.bar.bg = base00 + + # Color gradient start for the tab indicator. + c.colors.tabs.indicator.start = base0D + + # Color gradient end for the tab indicator. + c.colors.tabs.indicator.stop = base0C + + # Color for the tab indicator on errors. + c.colors.tabs.indicator.error = base08 + + # Foreground color of unselected odd tabs. + c.colors.tabs.odd.fg = base05 + + # Background color of unselected odd tabs. + c.colors.tabs.odd.bg = base00 + + # Foreground color of unselected even tabs. + c.colors.tabs.even.fg = base05 + + # Background color of unselected even tabs. + c.colors.tabs.even.bg = base00 + + # Background color of pinned unselected even tabs. + c.colors.tabs.pinned.even.bg = base0B + + # Foreground color of pinned unselected even tabs. + c.colors.tabs.pinned.even.fg = base00 + + # Background color of pinned unselected odd tabs. + c.colors.tabs.pinned.odd.bg = base0B + + # Foreground color of pinned unselected odd tabs. + c.colors.tabs.pinned.odd.fg = base00 + + # Background color of pinned selected even tabs. + c.colors.tabs.pinned.selected.even.bg = base02 + + # Foreground color of pinned selected even tabs. + c.colors.tabs.pinned.selected.even.fg = base05 + + # Background color of pinned selected odd tabs. + c.colors.tabs.pinned.selected.odd.bg = base02 + + # Foreground color of pinned selected odd tabs. + c.colors.tabs.pinned.selected.odd.fg = base05 + + # Foreground color of selected odd tabs. + c.colors.tabs.selected.odd.fg = base05 + + # Background color of selected odd tabs. + c.colors.tabs.selected.odd.bg = base02 + + # Foreground color of selected even tabs. + c.colors.tabs.selected.even.fg = base05 + + # Background color of selected even tabs. + c.colors.tabs.selected.even.bg = base02 + + # Background color for webpages if unset (or empty to use the theme's + # color). + c.colors.webpage.bg = base00 + ''; + }; +}