refactor: reduce amount of IFDs

This commit is contained in:
matt1432 2024-06-10 22:57:20 -04:00
parent f08e17f51b
commit cab5bfa648
22 changed files with 351 additions and 123 deletions

View file

@ -1,20 +1,54 @@
[
{
"pname": "sound-volume",
"slug": "600-sound-volume"
},
{
"slug": "google-container"
"pname": "bitwarden",
"slug": "bitwarden-password-manager"
},
{
"slug": "checkmarks-web-ext"
},
{
"slug": "ttv-lol-pro"
"slug": "darkreader"
},
{
"slug": "floccus"
},
{
"slug": "google-container"
},
{
"slug": "istilldontcareaboutcookies"
},
{
"slug": "image-search-options",
"license": {
"tag": "predefined",
"shortName": "mpl11"
}
},
{
"slug": "opera-gx-witchcraft-purple"
},
{
"slug": "return-youtube-dislikes"
},
{
"slug": "sponsorblock"
},
{
"pname": "stylus",
"slug": "styl-us"
},
{
"slug": "ttv-lol-pro"
},
{
"slug": "ublock-origin"
},
{
"slug": "undoclosetabbutton"
}
]

View file

@ -4,23 +4,31 @@
lib,
stdenv,
}: {
"600-sound-volume" = buildFirefoxXpiAddon {
pname = "600-sound-volume";
version = "1.5.5";
addonId = "{c4b582ec-4343-438c-bda2-2f691c16c262}";
url = "https://addons.mozilla.org/firefox/downloads/file/4219765/600_sound_volume-1.5.5.xpi";
sha256 = "efc686d54727f29b5c796f4037f19a5d5f31f77354c9c5f8f47d8768ba24fe98";
"bitwarden" = buildFirefoxXpiAddon {
pname = "bitwarden";
version = "2024.4.2";
addonId = "{446900e4-71c2-419f-a6a7-df9c091e268b}";
url = "https://addons.mozilla.org/firefox/downloads/file/4282854/bitwarden_password_manager-2024.4.2.xpi";
sha256 = "19caac7131a37e558204c1f61cf1459502cc624b0284dc5837112c4742917da0";
meta = with lib; {
homepage = "http://resourcefulman.net/";
description = "Up to 600% volume boost";
license = licenses.mpl20;
homepage = "https://bitwarden.com";
description = "At home, at work, or on the go, Bitwarden easily secures all your passwords, passkeys, and sensitive information.";
license = licenses.gpl3;
mozPermissions = [
"<all_urls>"
"*://*/*"
"tabs"
"activeTab"
"contextMenus"
"storage"
"unlimitedStorage"
"clipboardRead"
"clipboardWrite"
"idle"
"webRequest"
"webRequestBlocking"
"webNavigation"
"file:///*"
"https://lastpass.com/export.php"
];
platforms = platforms.all;
};
@ -48,6 +56,27 @@
platforms = platforms.all;
};
};
"darkreader" = buildFirefoxXpiAddon {
pname = "darkreader";
version = "4.9.86";
addonId = "addon@darkreader.org";
url = "https://addons.mozilla.org/firefox/downloads/file/4295557/darkreader-4.9.86.xpi";
sha256 = "dde9896751858d0179f3d724a59f2bd4a0d61e599cb8822dc8ed2de320510714";
meta = with lib; {
homepage = "https://darkreader.org/";
description = "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing.";
license = licenses.mit;
mozPermissions = [
"alarms"
"contextMenus"
"storage"
"tabs"
"theme"
"<all_urls>"
];
platforms = platforms.all;
};
};
"floccus" = buildFirefoxXpiAddon {
pname = "floccus";
version = "5.1.4.2";
@ -93,6 +122,49 @@
platforms = platforms.all;
};
};
"image-search-options" = buildFirefoxXpiAddon {
pname = "image-search-options";
version = "3.0.12";
addonId = "{4a313247-8330-4a81-948e-b79936516f78}";
url = "https://addons.mozilla.org/firefox/downloads/file/3059971/image_search_options-3.0.12.xpi";
sha256 = "1fbdd8597fc32b1be11302a958ea3ba2b010edcfeb432c299637b2c58c6fd068";
meta = with lib; {
homepage = "http://saucenao.com/";
description = "A customizable reverse image search tool that conveniently presents a variety of top image search engines.";
license = licenses.mpl11;
mozPermissions = [
"storage"
"contextMenus"
"activeTab"
"tabs"
"<all_urls>"
];
platforms = platforms.all;
};
};
"istilldontcareaboutcookies" = buildFirefoxXpiAddon {
pname = "istilldontcareaboutcookies";
version = "1.1.4";
addonId = "idcac-pub@guus.ninja";
url = "https://addons.mozilla.org/firefox/downloads/file/4216095/istilldontcareaboutcookies-1.1.4.xpi";
sha256 = "cadeb24622d3b9a2b82bf4308242fd802546b126bb9dd14e1ea66f2aa2066795";
meta = with lib; {
homepage = "https://github.com/OhMyGuus/I-Dont-Care-About-Cookies";
description = "Community version of the popular extension \"I don't care about cookies\" \n\n<a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/d899243c3222e303a4ac90833f850da61cdf8f7779e2685f60f657254302216d/https%3A//github.com/OhMyGuus/I-Dont-Care-About-Cookies\" rel=\"nofollow\">https://github.com/OhMyGuus/I-Dont-Care-About-Cookies</a>";
license = licenses.gpl3;
mozPermissions = [
"tabs"
"storage"
"http://*/*"
"https://*/*"
"notifications"
"webRequest"
"webRequestBlocking"
"webNavigation"
];
platforms = platforms.all;
};
};
"opera-gx-witchcraft-purple" = buildFirefoxXpiAddon {
pname = "opera-gx-witchcraft-purple";
version = "2.0";
@ -106,6 +178,91 @@
platforms = platforms.all;
};
};
"return-youtube-dislikes" = buildFirefoxXpiAddon {
pname = "return-youtube-dislikes";
version = "3.0.0.14";
addonId = "{762f9885-5a13-4abd-9c77-433dcd38b8fd}";
url = "https://addons.mozilla.org/firefox/downloads/file/4208483/return_youtube_dislikes-3.0.0.14.xpi";
sha256 = "a31ab23549846b7eab92a094e92df8349047b48bbd807f069d128083c3b27f61";
meta = with lib; {
description = "Returns ability to see dislike statistics on youtube";
license = licenses.gpl3;
mozPermissions = [
"activeTab"
"*://*.youtube.com/*"
"storage"
"*://returnyoutubedislikeapi.com/*"
];
platforms = platforms.all;
};
};
"sound-volume" = buildFirefoxXpiAddon {
pname = "sound-volume";
version = "1.5.5";
addonId = "{c4b582ec-4343-438c-bda2-2f691c16c262}";
url = "https://addons.mozilla.org/firefox/downloads/file/4219765/600_sound_volume-1.5.5.xpi";
sha256 = "efc686d54727f29b5c796f4037f19a5d5f31f77354c9c5f8f47d8768ba24fe98";
meta = with lib; {
homepage = "http://resourcefulman.net/";
description = "Up to 600% volume boost";
license = licenses.mpl20;
mozPermissions = [
"<all_urls>"
"tabs"
"activeTab"
"storage"
"webRequest"
"webRequestBlocking"
];
platforms = platforms.all;
};
};
"sponsorblock" = buildFirefoxXpiAddon {
pname = "sponsorblock";
version = "5.6";
addonId = "sponsorBlocker@ajay.app";
url = "https://addons.mozilla.org/firefox/downloads/file/4292214/sponsorblock-5.6.xpi";
sha256 = "ec2343ee8db27666177e0b59510ddcd8b0f1072c88b5df05ba789d72a3af32e6";
meta = with lib; {
homepage = "https://sponsor.ajay.app";
description = "Easily skip YouTube video sponsors. When you visit a YouTube video, the extension will check the database for reported sponsors and automatically skip known sponsors. You can also report sponsors in videos. Other browsers: https://sponsor.ajay.app";
license = licenses.lgpl3;
mozPermissions = [
"storage"
"https://sponsor.ajay.app/*"
"scripting"
"https://*.youtube.com/*"
"https://www.youtube-nocookie.com/embed/*"
];
platforms = platforms.all;
};
};
"stylus" = buildFirefoxXpiAddon {
pname = "stylus";
version = "1.5.46";
addonId = "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}";
url = "https://addons.mozilla.org/firefox/downloads/file/4232144/styl_us-1.5.46.xpi";
sha256 = "9a75bf1bdde7263a5502d78009b5f19117ea09e6237afc852e7ba4e52b565364";
meta = with lib; {
homepage = "https://add0n.com/stylus.html";
description = "Redesign your favorite websites with Stylus, an actively developed and community driven userstyles manager. Easily install custom themes from popular online repositories, or create, edit, and manage your own personalized CSS stylesheets.";
license = licenses.gpl3;
mozPermissions = [
"tabs"
"webNavigation"
"webRequest"
"webRequestBlocking"
"contextMenus"
"storage"
"unlimitedStorage"
"alarms"
"<all_urls>"
"http://userstyles.org/*"
"https://userstyles.org/*"
];
platforms = platforms.all;
};
};
"ttv-lol-pro" = buildFirefoxXpiAddon {
pname = "ttv-lol-pro";
version = "2.3.7";
@ -131,4 +288,56 @@
platforms = platforms.all;
};
};
"ublock-origin" = buildFirefoxXpiAddon {
pname = "ublock-origin";
version = "1.58.0";
addonId = "uBlock0@raymondhill.net";
url = "https://addons.mozilla.org/firefox/downloads/file/4290466/ublock_origin-1.58.0.xpi";
sha256 = "470c56994a7174db21578adce598b158a5dc0970c87c5cfe889ac632bd3085ea";
meta = with lib; {
homepage = "https://github.com/gorhill/uBlock#ublock-origin";
description = "Finally, an efficient wide-spectrum content blocker. Easy on CPU and memory.";
license = licenses.gpl3;
mozPermissions = [
"alarms"
"dns"
"menus"
"privacy"
"storage"
"tabs"
"unlimitedStorage"
"webNavigation"
"webRequest"
"webRequestBlocking"
"<all_urls>"
"http://*/*"
"https://*/*"
"file://*/*"
"https://easylist.to/*"
"https://*.fanboy.co.nz/*"
"https://filterlists.com/*"
"https://forums.lanik.us/*"
"https://github.com/*"
"https://*.github.io/*"
"https://github.com/uBlockOrigin/*"
"https://ublockorigin.github.io/*"
"https://*.reddit.com/r/uBlockOrigin/*"
];
platforms = platforms.all;
};
};
"undoclosetabbutton" = buildFirefoxXpiAddon {
pname = "undoclosetabbutton";
version = "8.0.0";
addonId = "{4853d046-c5a3-436b-bc36-220fd935ee1d}";
url = "https://addons.mozilla.org/firefox/downloads/file/4212173/undoclosetabbutton-8.0.0.xpi";
sha256 = "c83a058c417f98d75e62ab310e2995971bf79c99cd83cf1dcbd8a44797aa60c4";
meta = with lib; {
homepage = "https://github.com/M-Reimer/undoclosetab";
description = "Allows you to restore the tab you just closed with a single clickplus it can offer a list of recently closed tabs within a convenient context menu.";
license = licenses.gpl3;
mozPermissions = ["menus" "tabs" "sessions" "storage" "theme"];
platforms = platforms.all;
};
};
}

View file

@ -1,22 +1,19 @@
{
config,
pkgs,
firefox-gx-src,
...
}: let
inherit (builtins) readFile;
firefox-addons = pkgs.recurseIntoAttrs (pkgs.callPackage ./addons {});
sound-volume = firefox-addons."600-sound-volume";
firefox-gx = pkgs.callPackage ./firefox-gx {
inherit firefox-gx-src;
};
in {
home.file = {
".mozilla/firefox/matt/chrome/components".source = "${firefox-gx}/chrome/components";
".mozilla/firefox/matt/chrome/icons".source = "${firefox-gx}/chrome/icons";
".mozilla/firefox/matt/chrome/images".source = "${firefox-gx}/chrome/images";
".mozilla/firefox/matt/chrome/userContent.css".source = "${firefox-gx}/chrome/userContent.css";
".mozilla/firefox/matt/chrome/components".source = "${firefox-gx}/chrome/components";
".mozilla/firefox/matt/chrome/images".source = "${firefox-gx}/chrome/images";
".mozilla/firefox/matt/chrome/icons".source = "${firefox-gx}/chrome/icons";
};
programs.firefox = {
@ -26,10 +23,9 @@ in {
id = 0;
userChrome = ''
${readFile "${firefox-gx}/chrome/userChrome.css"}
${readFile ./custom.css}
@import url("file://${firefox-gx}/chrome/userChrome.css");
@import url("file://${./custom.css}");
'';
extraConfig = readFile "${firefox-gx}/user.js";
settings = {
# Theme
@ -40,6 +36,24 @@ in {
"userChrome.tab.bottom_rounded_corner.australis" = true;
"widget.use-xdg-desktop-portal.file-picker" = 1;
# Firefox-gx user.js
/*
Default rules
*/
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"svg.context-properties.content.enabled" = true;
"layout.css.color-mix.enabled" = true;
"browser.tabs.delayHidingAudioPlayingIconMS" = 0;
"layout.css.backdrop-filter.enabled" = true;
"browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar" = false;
/*
To active container tabs without any extension
*/
"privacy.userContext.enabled" = true;
"privacy.userContext.ui.enabled" = true;
"privacy.userContext.longPressBehavior" = 2;
# Open previous windows and tabs
"browser.startup.page" = 3;
@ -176,30 +190,24 @@ in {
];
};
extensions =
(with config.nur.repos.bandithedoge.firefoxAddons; [
sponsorblock
stylus
#tridactyl
ublock-origin
])
++ (with config.nur.repos.rycee.firefox-addons; [
bitwarden
darkreader
istilldontcareaboutcookies
image-search-options
return-youtube-dislikes
undoclosetabbutton
])
++ (with firefox-addons; [
floccus
google-container
checkmarks-web-ext
ttv-lol-pro
seventv
opera-gx-witchcraft-purple
])
++ [sound-volume];
extensions = with firefox-addons; [
bitwarden
checkmarks-web-ext
darkreader
floccus
google-container
image-search-options
istilldontcareaboutcookies
opera-gx-witchcraft-purple
return-youtube-dislikes
seventv
sponsorblock
sound-volume
stylus
ttv-lol-pro
ublock-origin
undoclosetabbutton
];
};
};
}

View file

@ -3,7 +3,7 @@
self,
...
}: let
inherit (self.packages.${pkgs.system}) dracula;
inherit (self.legacyPackages.${pkgs.system}) dracula;
in {
imports = [
./gtk.nix
@ -23,7 +23,25 @@ in {
};
};
xresources.extraConfig =
builtins.readFile
"${dracula.xresources}";
xresources.extraConfig = ''
! Dracula Xresources palette
*.foreground: #F8F8F2
*.background: #282A36
*.color0: #000000
*.color8: #4D4D4D
*.color1: #FF5555
*.color9: #FF6E67
*.color2: #50FA7B
*.color10: #5AF78E
*.color3: #F1FA8C
*.color11: #F4F99D
*.color4: #BD93F9
*.color12: #CAA9FA
*.color5: #FF79C6
*.color13: #FF92D0
*.color6: #8BE9FD
*.color14: #9AEDFE
*.color7: #BFBFBF
*.color15: #E6E6E6
'';
}

View file

@ -38,16 +38,14 @@
build = pkgs.stdenv.mkDerivation {
name = "gradience-build";
preset = lib.fileContents "${presets}/curated/dracula-dark.json";
passAsFile = ["preset"];
phases = ["buildPhase" "installPhase"];
nativeBuildInputs = [gnomeShellStub];
buildPhase = ''
export HOME=$TMPDIR
export XDG_CURRENT_DESKTOP=GNOME
mkdir -p $HOME/.config/presets
${package}/bin/gradience-cli apply -p $presetPath --gtk both
${package}/bin/gradience-cli gnome-shell -p $presetPath -v dark
${package}/bin/gradience-cli apply -p "${presets}/curated/dracula-dark.json" --gtk both
${package}/bin/gradience-cli gnome-shell -p "${presets}/curated/dracula-dark.json" -v dark
'';
installPhase = ''
mkdir -p $out

View file

@ -34,14 +34,14 @@ in {
extraConfig = {
"gtk-application-prefer-dark-theme" = 1;
};
extraCss = builtins.readFile "${gradience.build}/gtk-3.0/gtk.css";
extraCss = "@import url(\"file://${gradience.build}/gtk-3.0/gtk.css\");";
};
gtk4 = {
extraConfig = {
"gtk-application-prefer-dark-theme" = 1;
};
extraCss = builtins.readFile "${gradience.build}/gtk-4.0/gtk.css";
extraCss = "@import url(\"file://${gradience.build}/gtk-4.0/gtk.css\");";
};
};

View file

@ -6,7 +6,7 @@
...
}: let
inherit (config.vars) fontSize;
inherit (self.packages.${pkgs.system}) dracula;
inherit (self.legacyPackages.${pkgs.system}) dracula;
in {
home.packages = with pkgs; [
libsForQt5.qtstyleplugin-kvantum

View file

@ -11,7 +11,7 @@ in {
xdg.configFile."wpaperd/config.toml".source = writeTOML "config.toml" {
default = {
path = toString self.packages.${pkgs.system}.dracula.wallpaper;
path = toString self.legacyPackages.${pkgs.system}.dracula.wallpaper;
mode = "stretch";
};
};