refactor: move mpv scripts and firefox addons to scopes in lgcyPkgs

This commit is contained in:
matt1432 2024-06-26 14:47:14 -04:00
parent c928cc2a86
commit fc712b5223
21 changed files with 114 additions and 75 deletions

24
pkgs/README.md Normal file
View file

@ -0,0 +1,24 @@
# Packages
This directory encompasses every derivations for packages exposed by my flake.
## List of my packages found in `self.packages`
| Name | Source / Description |
| ------------------------------ | -------------------- |
| `coloryou` | A custom package to get the main colors from a picture I forked from [here](https://github.com/dharmx/vile/blob/7d486c128c7e553912673755f97b118aaab0193d/src/shell/playerctl.py#L2) |
| `curseforge-server-downloader` | [Github](https://github.com/Malpiszonekx4/curseforge-server-downloader) |
| `gpu-screen-recorder` | [Git](https://git.dec05eba.com/gpu-screen-recorder/about) |
| `pam-fprint-grosshack` | [GitLab](https://gitlab.com/mishakmak/pam-fprint-grosshack) |
| `pokemon-colorscripts` | [GitLab](https://gitlab.com/phoneybadger/pokemon-colorscripts) |
| `repl` | nix repl forked from [here](https://github.com/fufexan/dotfiles/blob/main/pkgs/repl/default.nix)noint are |
| `trash-d` | [Github](https://github.com/rushsteve1/trash-d) |
## List of package scopes found in `self.legacyPackages`
| Name | Description |
| --------------- | ----------- |
| `dracula` | Themes for many apps from the [Dracula GitHub Org](https://github.com/dracula) |
| `firefoxAddons` | Firefox extensions updated with [mozilla-addons-to-nix](https://git.sr.ht/~rycee/mozilla-addons-to-nix) |
| `mpvScripts` | MPV scripts that I use that are not in nixpkgs |

View file

@ -0,0 +1,54 @@
[
{
"pname": "sound-volume",
"slug": "600-sound-volume"
},
{
"pname": "bitwarden",
"slug": "bitwarden-password-manager"
},
{
"slug": "checkmarks-web-ext"
},
{
"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

@ -0,0 +1,61 @@
{
fetchurl,
lib,
pkgs,
stdenv,
...
} @ args: let
buildFirefoxXpiAddon = lib.makeOverridable ({
stdenv ? args.stdenv,
fetchurl ? args.fetchurl,
pname,
version,
addonId,
url,
sha256,
meta,
...
}:
stdenv.mkDerivation {
name = "${pname}-${version}";
inherit meta;
src = fetchurl {inherit url sha256;};
preferLocalBuild = true;
allowSubstitutes = true;
buildCommand =
# bash
''
dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
mkdir -p "$dst"
install -v -m644 "$src" "$dst/${addonId}.xpi"
'';
});
packages = import ./generated-firefox-addons.nix {
inherit buildFirefoxXpiAddon fetchurl lib stdenv;
};
in
lib.makeScope pkgs.newScope (_:
packages
// {
inherit buildFirefoxXpiAddon;
seventv = buildFirefoxXpiAddon {
pname = "frankerfacez";
version = "4.0";
addonId = "frankerfacez@frankerfacez.com";
url = "https://cdn.frankerfacez.com/script/frankerfacez-4.0-an+fx.xpi";
sha256 = "sha256-U/yAra2c+RlGSaQtHfBz9XYsoDaJ67gmPJBsFrpqoE8=";
meta = with lib; {
homepage = "https://www.frankerfacez.com/";
description = "The Twitch Enhancement Suite. Get custom emotes and tons of new features you'll never want to go without.";
license = licenses.asl20;
platforms = platforms.all;
};
};
}
)

View file

@ -0,0 +1,343 @@
{
buildFirefoxXpiAddon,
fetchurl,
lib,
stdenv,
}: {
"bitwarden" = buildFirefoxXpiAddon {
pname = "bitwarden";
version = "2024.6.2";
addonId = "{446900e4-71c2-419f-a6a7-df9c091e268b}";
url = "https://addons.mozilla.org/firefox/downloads/file/4305759/bitwarden_password_manager-2024.6.2.xpi";
sha256 = "c064e2d6601cb921ecd154e0d3bfd54d71af43da1947aa51666877ef0afd1436";
meta = with lib; {
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"
"contextMenus"
"storage"
"unlimitedStorage"
"clipboardRead"
"clipboardWrite"
"idle"
"webRequest"
"webRequestBlocking"
"webNavigation"
"file:///*"
"https://lastpass.com/export.php"
];
platforms = platforms.all;
};
};
"checkmarks-web-ext" = buildFirefoxXpiAddon {
pname = "checkmarks-web-ext";
version = "1.6.1";
addonId = "{bd97f89b-17ba-4539-9fec-06852d07f917}";
url = "https://addons.mozilla.org/firefox/downloads/file/3594420/checkmarks_web_ext-1.6.1.xpi";
sha256 = "c3ccf4b302ee96c9b883c4a1f7d26395ab4e276b976cab2d65c9cd898964e4f0";
meta = with lib; {
homepage = "https://github.com/tanwald/checkmarks";
description = "Checks, sorts, formats bookmarks and loads favicons.";
license = licenses.gpl3;
mozPermissions = [
"<all_urls>"
"bookmarks"
"browsingData"
"storage"
"tabs"
"webNavigation"
"webRequest"
"webRequestBlocking"
];
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.2.3";
addonId = "floccus@handmadeideas.org";
url = "https://addons.mozilla.org/firefox/downloads/file/4307321/floccus-5.2.3.xpi";
sha256 = "87fddf96f0aa0b77f0e00630e661ff40cfd487414a1f7bd8b0b864e67388d700";
meta = with lib; {
homepage = "https://floccus.org";
description = "Sync your bookmarks and tabs across browsers via Nextcloud, any WebDAV service, any Git service, via a local file, via Google Drive.";
license = licenses.mpl20;
mozPermissions = [
"*://*/*"
"alarms"
"bookmarks"
"storage"
"unlimitedStorage"
"tabs"
"identity"
];
platforms = platforms.all;
};
};
"google-container" = buildFirefoxXpiAddon {
pname = "google-container";
version = "1.5.4";
addonId = "@contain-google";
url = "https://addons.mozilla.org/firefox/downloads/file/3736912/google_container-1.5.4.xpi";
sha256 = "47a7c0e85468332a0d949928d8b74376192cde4abaa14280002b3aca4ec814d0";
meta = with lib; {
homepage = "https://github.com/containers-everywhere/contain-google";
description = "THIS IS NOT AN OFFICIAL ADDON FROM MOZILLA!\nIt is a fork of the Facebook Container addon.\n\nPrevent Google from tracking you around the web. The Google Container extension helps you take control and isolate your web activity from Google.";
license = licenses.mpl20;
mozPermissions = [
"<all_urls>"
"contextualIdentities"
"cookies"
"management"
"tabs"
"webRequestBlocking"
"webRequest"
"storage"
];
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";
addonId = "{bf197856-a3c2-4280-84c5-9b556379b706}";
url = "https://addons.mozilla.org/firefox/downloads/file/3522842/opera_gx_witchcraft_purple-2.0.xpi";
sha256 = "aa3c6377b8571c42a3988de042694be70ec6a250a9aea7ae1cc262acdc9374eb";
meta = with lib; {
description = "inspired by Opera GX";
license = licenses.cc-by-sa-30;
mozPermissions = [];
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.1";
addonId = "sponsorBlocker@ajay.app";
url = "https://addons.mozilla.org/firefox/downloads/file/4299073/sponsorblock-5.6.1.xpi";
sha256 = "4ccae0ebc1aa26d61c446956da425bf16daffd5704ea216735e0a57e482fe9ba";
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";
addonId = "{76ef94a4-e3d0-4c6f-961a-d38a429a332b}";
url = "https://addons.mozilla.org/firefox/downloads/file/4280177/ttv_lol_pro-2.3.7.xpi";
sha256 = "2e71c1fa3f5108cf77b1ca8b5a32955584be893ae151a27cd32d10073ae56820";
meta = with lib; {
homepage = "https://github.com/younesaassila/ttv-lol-pro";
description = "TTV LOL PRO removes most livestream ads from Twitch.";
license = licenses.gpl3;
mozPermissions = [
"proxy"
"storage"
"webRequest"
"webRequestBlocking"
"https://*.live-video.net/*"
"https://*.ttvnw.net/*"
"https://*.twitch.tv/*"
"https://perfprod.com/ttvlolpro/telemetry"
"https://www.twitch.tv/*"
"https://m.twitch.tv/*"
];
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

@ -0,0 +1,16 @@
{pkgs, ...} @ inputs:
pkgs.lib.makeScope pkgs.newScope (mpv: let
buildLua =
mpv.callPackage
"${pkgs.path}/pkgs/applications/video/mpv/scripts/buildLua.nix" {};
buildLuaScript = file:
mpv.callPackage file (inputs // {inherit buildLua;});
in {
modernx = buildLuaScript ./modernx.nix;
pointer-event = buildLuaScript ./pointer-event.nix;
touch-gestures = buildLuaScript ./touch-gestures.nix;
kdialog-open-files = buildLuaScript ./kdialog-open-files.nix;
persist-properties = buildLuaScript ./persist-properties.nix;
undo-redo = buildLuaScript ./undo-redo.nix;
})

View file

@ -0,0 +1,16 @@
{
fetchurl,
buildLua,
...
}:
buildLua rec {
pname = "zenity-open-files";
version = "0.0.0";
unpackPhase = ":";
src = fetchurl {
url = "https://gist.githubusercontent.com/ntasos/d1d846abd7d25e4e83a78d22ee067a22/raw/b23b20e830bba024836f8b09412000658edee95c/kdialog-open-files.lua";
hash = "sha256-qJ/Myx0mdaRsWWd+4Mk1/SUSSI/uqQdg/vLZo2pkEwA=";
};
scriptPath = "${src}";
}

View file

@ -0,0 +1,27 @@
{
buildLua,
makeFontsConf,
mkVersion,
modernx-src,
...
}:
buildLua (finalAttrs: {
pname = "modernx";
version = mkVersion modernx-src;
src = modernx-src;
# Make font available to script
postInstall = ''
mkdir -p $out/share/fonts
cp -r ./Material-Design-Iconic-Font.ttf $out/share/fonts
'';
passthru.extraWrapperArgs = [
"--set"
"FONTCONFIG_FILE"
(toString (makeFontsConf {
fontDirectories = ["${finalAttrs.finalPackage}/share/fonts"];
}))
];
})

View file

@ -0,0 +1,12 @@
{
buildLua,
mkVersion,
mpv-persist-properties-src,
...
}:
buildLua {
pname = "persist-properties";
version = mkVersion mpv-persist-properties-src;
src = mpv-persist-properties-src;
}

View file

@ -0,0 +1,12 @@
{
buildLua,
mkVersion,
mpv-pointer-event-src,
...
}:
buildLua {
pname = "pointer-event";
version = mkVersion mpv-pointer-event-src;
src = mpv-pointer-event-src;
}

View file

@ -0,0 +1,12 @@
{
buildLua,
mkVersion,
mpv-touch-gestures-src,
...
}:
buildLua {
pname = "touch-gestures";
version = mkVersion mpv-touch-gestures-src;
src = mpv-touch-gestures-src;
}

View file

@ -0,0 +1,13 @@
{
buildLua,
eisa-scripts-src,
mkVersion,
...
}:
buildLua rec {
pname = "undo-redo";
version = mkVersion eisa-scripts-src;
src = eisa-scripts-src;
scriptPath = "${src}/scripts/UndoRedo.lua";
}

View file

@ -1,4 +1,4 @@
# modified from https://github.com/gytis-ivaskevicius/flake-utils/plus
# modified from https://github.com/fufexan/dotfiles/blob/main/pkgs/repl/default.nix
{
coreutils,
gnused,