mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 14:49:14 +00:00
194 lines
5.9 KiB
Nix
194 lines
5.9 KiB
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (pkgs) nur;
|
|
in {
|
|
programs.firefox = {
|
|
enable = true;
|
|
|
|
policies = {
|
|
SearchEngines = {
|
|
Default = "Google en@en";
|
|
Remove = ["Google"];
|
|
Add =
|
|
# Google specialized for each language x display language
|
|
# reference: https://developers.google.com/custom-search/docs/xml_results?hl=zh-tw#advanced-search-query-parameters
|
|
lib.mapCartesianProduct (
|
|
{
|
|
lr,
|
|
hl,
|
|
}: let
|
|
lr' = lib.substring 0 2 (lib.removePrefix "lang_" lr);
|
|
hl' = lib.substring 0 2 hl;
|
|
in {
|
|
Name = "Google ${lr'}@${hl'}";
|
|
Alias =
|
|
if lib.removePrefix "lang_" lr == hl
|
|
then "@G" + lr'
|
|
else "@G" + lr' + hl';
|
|
Description = "Your data yum yum (but ${lr'} in ${hl'})";
|
|
IconURL = "https://google.com/favicon.ico";
|
|
SuggestURLTemplate = "https://suggestqueries.google.com/complete/search?q={searchTerms}&lr=${lr}&hl=${hl}";
|
|
URLTemplate = "https://google.com/search?q={searchTerms}&lr=${lr}&hl=${hl}";
|
|
}
|
|
) {
|
|
lr = ["lang_fr" "lang_en" "lang_zh-TW"];
|
|
hl = ["fr" "en" "zh-TW"];
|
|
}
|
|
++ [
|
|
# Forges
|
|
{
|
|
Name = "GitHub";
|
|
Alias = "@ggh";
|
|
IconURL = "https://github.com/favicon.ico";
|
|
Description = "Your code yum yum";
|
|
URLTemplate = "https://github.com/search?q={searchTerms}&type=repositories";
|
|
}
|
|
{
|
|
Name = "GitHub (Code Search)";
|
|
Alias = "@gghc";
|
|
IconURL = "https://github.com/favicon.ico";
|
|
Description = "Your code yum yum";
|
|
URLTemplate = "https://github.com/search?q={searchTerms}&type=code";
|
|
}
|
|
{
|
|
Name = "Codeberg";
|
|
Alias = "@gco";
|
|
IconURL = "https://codeberg.org/favicon.ico";
|
|
Description = "Software development, but free!";
|
|
URLTemplate = "https://codeberg.org/explore/repos?q={searchTerms}";
|
|
}
|
|
{
|
|
Name = "?C";
|
|
Alias = "@gcc";
|
|
IconURL = "https://git.confusedcompiler.org/favicon.ico";
|
|
URLTemplate = "https://git.confusedcompiler.org/explore/repos?q={searchTerms}";
|
|
}
|
|
|
|
# Nix{,OS,pkgs}
|
|
{
|
|
Name = "NixOS Search (Package)";
|
|
Alias = "@np";
|
|
IconURL = "https://nixos.org/favicon.ico";
|
|
Description = "Search in nixpkgs";
|
|
URLTemplate = "https://search.nixos.org/packages?query={searchTerms}";
|
|
}
|
|
{
|
|
Name = "NixOS Search (Options)";
|
|
Alias = "@no";
|
|
IconURL = "https://nixos.org/favicon.ico";
|
|
Description = "Search in NixOS options";
|
|
URLTemplate = "https://search.nixos.org/options?query={searchTerms}";
|
|
}
|
|
|
|
# Haskell
|
|
{
|
|
Name = "Flora";
|
|
Alias = "@hs";
|
|
IconURL = "https://flora.pm/static/icons/favicon-32x32.png";
|
|
URLTemplate = "https://flora.pm/search?q={searchTerms}";
|
|
}
|
|
|
|
# Discourse
|
|
{
|
|
Name = "NixOS Discourse";
|
|
Alias = "@nd";
|
|
IconURL = "https://nixos.org/favicon.ico";
|
|
URLTemplate = "https://discourse.nixos.org/search?q={searchTerms}";
|
|
}
|
|
{
|
|
Name = "Framework Discourse";
|
|
Alias = "@fd";
|
|
IconURL = "https://frame.work/favicon.ico";
|
|
URLTemplate = "https://community.frame.work/search?q={searchTerms}";
|
|
}
|
|
|
|
# Misc
|
|
{
|
|
Name = "YouTube";
|
|
Alias = "@yt";
|
|
IconURL = "https://youtube.com/favicon.ico";
|
|
SuggestURLTemplate = "http://suggestqueries.google.com/complete/search?q={searchTerms}&ds=yt";
|
|
URLTemplate = "https://www.youtube.com/results?search_query={searchTerms}";
|
|
}
|
|
{
|
|
Name = "Genius";
|
|
Alias = "@geni";
|
|
IconURL = "https://genius.com/favicon.ico";
|
|
URLTemplate = "https://genius.com/search?q={searchTerms}";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
profiles = {
|
|
default = {
|
|
settings = {
|
|
# "full-screen-api.ignore-widgets" = true; # limit fullscreen mode to window
|
|
};
|
|
userChrome = ''
|
|
/* monofont tweak */
|
|
#statuspanel-label {
|
|
font-family: monospace;
|
|
}
|
|
.urlbar-input-box {
|
|
font-family: monospace;
|
|
}
|
|
'';
|
|
extensions.packages = let
|
|
addons = nur.repos.rycee.firefox-addons;
|
|
in [
|
|
addons.sponsorblock
|
|
addons.return-youtube-dislikes
|
|
|
|
addons.shinigami-eyes
|
|
|
|
addons.consent-o-matic
|
|
];
|
|
};
|
|
|
|
junk = {
|
|
id = 1;
|
|
inherit
|
|
(config.programs.firefox.profiles.default)
|
|
settings
|
|
userChrome
|
|
;
|
|
|
|
extensions.packages = let
|
|
addons = nur.repos.rycee.firefox-addons;
|
|
in [addons.multi-account-containers];
|
|
|
|
containers = {
|
|
raisin = {
|
|
color = "purple";
|
|
icon = "fruit";
|
|
id = 1;
|
|
};
|
|
pomme = {
|
|
color = "red";
|
|
icon = "fruit";
|
|
id = 2;
|
|
};
|
|
};
|
|
};
|
|
|
|
# Isolate it because it's proprietary
|
|
tampermonkey = {
|
|
id = 2;
|
|
inherit
|
|
(config.programs.firefox.profiles.default)
|
|
settings
|
|
userChrome
|
|
;
|
|
|
|
extensions.packages = let
|
|
addons = nur.repos.rycee.firefox-addons;
|
|
in [addons.tampermonkey];
|
|
};
|
|
};
|
|
};
|
|
}
|