From 1949b78cd959a979f026a87fcc1741e6c7dad7c4 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Mon, 5 May 2025 22:06:39 +0200 Subject: [PATCH] feat: move qutebrowser to own module and provide some config for it --- modules/home/default.nix | 1 + modules/home/packages.nix | 1 - modules/home/qutebrowser.nix | 179 +++++++++++++++++++++++++++++++++++ 3 files changed, 180 insertions(+), 1 deletion(-) create mode 100644 modules/home/qutebrowser.nix diff --git a/modules/home/default.nix b/modules/home/default.nix index 66684a4..96bcd35 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -13,5 +13,6 @@ ++ [ (import ./scripts/scripts.nix) ] ++ [ (import ./waybar) ] ++ [ (import ./zsh.nix) ] + ++ [ (import ./qutebrowser.nix) ] ++ [ (import ./tmux.nix) ]; } diff --git a/modules/home/packages.nix b/modules/home/packages.nix index e9f234a..ce2d3de 100644 --- a/modules/home/packages.nix +++ b/modules/home/packages.nix @@ -65,7 +65,6 @@ wdisplays librewolf # main ungoogled-chromium # for things that don't work with librewolf - qutebrowser # focus nsxiv libreoffice xfce.thunar diff --git a/modules/home/qutebrowser.nix b/modules/home/qutebrowser.nix new file mode 100644 index 0000000..5256591 --- /dev/null +++ b/modules/home/qutebrowser.nix @@ -0,0 +1,179 @@ +{ + pkgs, + ... +}: +let + rosewater = "#f5e0dc"; + flamingo = "#f2cdcd"; + pink = "#f5c2e7"; + mauve = "#cba6f7"; + red = "#f38ba8"; + maroon = "#eba0ac"; + peach = "#fab387"; + yellow = "#f9e2af"; + green = "#a6e3a1"; + teal = "#94e2d5"; + sky = "#89dceb"; + sapphire = "#74c7ec"; + blue = "#89b4fa"; + lavender = "#b4befe"; + text = "#cdd6f4"; + subtext1 = "#bac2de"; + subtext0 = "#a6adc8"; + overlay2 = "#9399b2"; + overlay1 = "#7f849c"; + overlay0 = "#6c7086"; + surface2 = "#585b70"; + surface1 = "#45475a"; + surface0 = "#313244"; + base = "#010101"; + mantle = "#010101"; + crust = "#010101"; +in +{ + programs.qutebrowser = { + enable = true; + + settings = { + fonts = { + default_family = "FiraCode Nerd Font"; + default_size = "10pt"; + }; + + tabs = { + show = "multiple"; + }; + + downloads = { + position = "bottom"; + }; + + content = { + javascript = { + clipboard = "access"; + }; + }; + + colors = { + completion = { + category.bg = "${base}"; + category.border.bottom = "${mantle}"; + category.border.top = "${overlay2}"; + category.fg = "${green}"; + fg = "${subtext0}"; + item.selected.bg = "${surface2}"; + item.selected.border.bottom = "${surface2}"; + item.selected.border.top = "${surface2}"; + item.selected.fg = "${text}"; + item.selected.match.fg = "${rosewater}"; + even.bg = "${base}"; + odd.bg = "${base}"; + match.fg = "${green}"; + scrollbar.bg = "${crust}"; + scrollbar.fg = "${surface2}"; + }; + + downloads = { + bar.bg = "${base}"; + error.bg = "${base}"; + start.bg = "${base}"; + stop.bg = "${base}"; + error.fg = "${red}"; + start.fg = "${blue}"; + stop.fg = "${green}"; + system.fg = "none"; + system.bg = "none"; + }; + + hints = { + bg = "${peach}"; + fg = "${mantle}"; + match.fg = "${subtext1}"; + }; + + keyhint = { + bg = "${mantle}"; + fg = "${text}"; + suffix.fg = "${subtext1}"; + }; + + messages = { + error.bg = "${overlay0}"; + info.bg = "${overlay0}"; + warning.bg = "${overlay0}"; + error.border = "${mantle}"; + info.border = "${mantle}"; + warning.border = "${mantle}"; + error.fg = "${red}"; + info.fg = "${text}"; + warning.fg = "${peach}"; + }; + + prompts = { + bg = "${mantle}"; + border = "${overlay0}"; + fg = "${text}"; + selected.bg = "${surface2}"; + selected.fg = "${rosewater}"; + }; + + statusbar = { + normal.bg = "${base}"; + insert.bg = "${crust}"; + command.bg = "${base}"; + caret.bg = "${base}"; + caret.selection.bg = "${base}"; + progress.bg = "${base}"; + passthrough.bg = "${base}"; + normal.fg = "${text}"; + insert.fg = "${rosewater}"; + command.fg = "${text}"; + passthrough.fg = "${peach}"; + caret.fg = "${peach}"; + caret.selection.fg = "${peach}"; + url.error.fg = "${red}"; + url.fg = "${text}"; + url.hover.fg = "${sky}"; + url.success.http.fg = "${teal}"; + url.success.https.fg = "${green}"; + url.warn.fg = "${yellow}"; + private.bg = "${mantle}"; + private.fg = "${subtext1}"; + command.private.bg = "${base}"; + command.private.fg = "${subtext1}"; + }; + + tabs = { + bar.bg = "${crust}"; + even.bg = "${crust}"; + odd.bg = "${crust}"; + even.fg = "${text}"; + odd.fg = "${text}"; + indicator.error = "${red}"; + indicator.system = "none"; + selected.even.bg = "${blue}"; + selected.odd.bg = "${blue}"; + selected.even.fg = "${crust}"; + selected.odd.fg = "${crust}"; + pinned.even.bg = "${crust}"; + pinned.even.fg = "${text}"; + pinned.odd.bg = "${crust}"; + pinned.odd.fg = "${text}"; + pinned.selected.odd.bg = "${blue}"; + pinned.selected.odd.fg = "${crust}"; + pinned.selected.even.bg = "${blue}"; + pinned.selected.even.fg = "${crust}"; + }; + + contextmenu = { + menu.bg = "${base}"; + menu.fg = "${text}"; + disabled.bg = "${mantle}"; + disabled.fg = "${overlay0}"; + selected.bg = "${overlay0}"; + selected.fg = "${rosewater}"; + }; + }; + }; + }; +}