helm/modules/desktop/browsers/qutebrowser.nix

54 lines
1.7 KiB
Nix
Raw Normal View History

2020-03-28 22:48:43 -07:00
# modules/browser/qutebrowser.nix --- https://github.com/qutebrowser/qutebrowser
#
# Qutebrowser is cute because it's not enough of a browser to be handsome.
# Still, we can all tell he'll grow up to be one hell of a lady-killer.
{ options, config, lib, pkgs, ... }:
2020-03-28 22:48:43 -07:00
with lib;
with lib.my;
let cfg = config.modules.desktop.browsers.qutebrowser;
pkg = pkgs.unstable.qutebrowser;
in {
2020-10-17 20:38:38 -07:00
options.modules.desktop.browsers.qutebrowser = with types; {
enable = mkBoolOpt false;
2020-10-17 20:38:38 -07:00
userStyles = mkOpt lines "";
2021-02-01 21:24:47 -08:00
extraConfig = mkOpt lines "";
dicts = mkOpt (listOf str) [ "en-US" ];
2020-03-28 22:48:43 -07:00
};
config = mkIf cfg.enable {
user.packages = with pkgs; [
pkg
2020-03-28 22:48:43 -07:00
(makeDesktopItem {
name = "qutebrowser-private";
desktopName = "Qutebrowser (Private)";
genericName = "Open a private Qutebrowser window";
icon = "qutebrowser";
exec = ''${pkg}/bin/qutebrowser ":open -p"'';
2020-03-28 22:48:43 -07:00
categories = "Network";
})
python39Packages.adblock
2020-03-28 22:48:43 -07:00
];
home = {
2021-02-01 21:24:47 -08:00
configFile = {
"qutebrowser" = {
source = "${configDir}/qutebrowser";
recursive = true;
};
"qutebrowser/extra/00-extraConfig.py".text = cfg.extraConfig;
};
2020-10-17 20:38:38 -07:00
dataFile."qutebrowser/userstyles.css".text = cfg.userStyles;
2020-03-28 22:48:43 -07:00
};
# Install language dictionaries for spellcheck backends
system.userActivationScripts.qutebrowserInstallDicts =
concatStringsSep "\\\n" (map (lang: ''
if ! find "$XDG_DATA_HOME/qutebrowser/qtwebengine_dictionaries" -type d -maxdepth 1 -name "${lang}*" 2>/dev/null | grep -q .; then
${pkgs.python3}/bin/python ${pkg}/share/qutebrowser/scripts/dictcli.py install ${lang}
fi
'') cfg.dicts);
2020-03-28 22:48:43 -07:00
};
}