nixfleet/hmModules/qutebrowser/default.nix
Andrea Ciceri a394b9cefd
All checks were successful
/ test (push) Successful in 32s
Reformat everything
2024-09-20 11:37:17 +02:00

122 lines
3.4 KiB
Nix

{
pkgs,
config,
...
}:
let
inherit (config.programs.qutebrowser) settings;
websites = {
searx = "https://searx.be";
};
colors = {
black = "#000000";
darker-gray = "#222222";
lighter-gray = "#333333";
white = "#ffffff";
dark-white = "#aaaaaa";
less-dark-white = "#cccccc";
blue = "#0000ff";
};
in
{
programs.qutebrowser = {
enable = true;
searchEngines = with websites; {
DEFAULT = "${searx}/search?q={}&category_general=on&language=all";
w = "https://en.wikipedia.org/wiki/Special:Search?search={}&go=Go&ns0=1";
np = "https://search.nixos.org/packages?sort=relevance&type=packages&query={}";
no = "https://search.nixos.org/options?sort=relevance&type=options&query={}";
g = "https://google.com/search?q={}";
git = "https://github.com/search?q={}";
y = "https://www.youtube.com/results?search_query={}";
};
keyBindings = {
normal = {
"<Ctrl-V>" = "spawn mpv --force-window=immediate {url}";
",l" = ''config-cycle spellcheck.languages [" it-IT "] [" en-US "]'';
};
insert = {
"<Ctrl-p>" = ''spawn --userscript qute-pass --dmenu-invocation '${pkgs.fuzzel}/bin/fuzzel --background-color=253559cc --border-radius=5 --border-width=0 -d' --password-only --unfiltered'';
};
};
settings = {
auto_save.session = true;
url = with websites; {
default_page = searx;
start_pages = [ searx ];
};
editor.command = [
"emacsclient"
"+{line}:{column}"
"{file}"
"-c"
"-F"
"'(name . \\\"{file} - editor - qutebrowser\\\"))" # this is needed to keep the Emacs frame in the correct Sway workspace
];
content.pdfjs = true;
scrolling.smooth = false;
fonts = {
default_size = "11pt";
tabs = {
selected = "13pt";
unselected = "13pt";
};
};
colors = with colors; {
webpage.bg = black; # to avoid flashes when opening new tabs
tabs = {
even = {
bg = darker-gray;
fg = dark-white;
};
odd = {
bg = lighter-gray;
inherit (settings.colors.tabs.even) fg;
};
};
completion = {
even.bg = darker-gray;
odd.bg = settings.colors.completion.even.bg;
fg = less-dark-white;
# match.fg = "";
item.selected = {
match.fg = blue;
# bg = "";
# fg = "";
border = {
top = settings.colors.completion.even.bg;
bottom = settings.colors.completion.even.bg;
};
};
category = {
bg = lighter-gray;
border = {
top = settings.colors.completion.even.bg;
bottom = settings.colors.completion.even.bg;
};
};
};
};
};
# `c.tabs.padding` must be set here since it's a python dict
extraConfig = ''
c.tabs.padding = {
'bottom': 4,
'left': 4,
'right': 4,
'top': 4
}
'';
};
home.packages = with pkgs; [
fuzzel
(makeDesktopItem {
name = "qutebrowser";
exec = "qutebrowser %u";
comment = "Qutebrowser";
desktopName = "qutebrowser";
type = "Application";
mimeTypes = [ "x-scheme-handler/https" ];
})
];
}