mpv browser
This commit is contained in:
@@ -1,4 +1,17 @@
|
||||
{ lib, config, pkgs, ... }: {
|
||||
{ lib, config, pkgs, ... }:
|
||||
let
|
||||
#Bookmark: javascript:(function(){window.location.href='mpv://'+encodeURIComponent(window.location.href);})();
|
||||
mpvHandler = pkgs.writeShellScriptBin "mpv-handler" ''
|
||||
#!/bin/bash
|
||||
exec 2>> /tmp/mpv-handler-debug.log
|
||||
set -x
|
||||
RAW_URL="$1"
|
||||
STRIPPED_URL="''${RAW_URL:6}"
|
||||
URL=$(printf '%b' "''${STRIPPED_URL//%/\\x}")
|
||||
exec ${config.programs.mpv.finalPackage}/bin/mpv "$URL"
|
||||
'';
|
||||
in
|
||||
{
|
||||
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
@@ -14,17 +27,23 @@
|
||||
glib
|
||||
];
|
||||
|
||||
|
||||
xdg.desktopEntries."mpv-handler" = {
|
||||
name = "MPV Scheme Handler";
|
||||
exec = "${mpvHandler}/bin/mpv-handler %u";
|
||||
terminal = false;
|
||||
mimeType = [ "x-scheme-handler/mpv" ];
|
||||
};
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"x-scheme-handler/discord-409416265891971072" =
|
||||
[ "discord-409416265891971072.desktop" ];
|
||||
"x-scheme-handler/discord-402572971681644545" =
|
||||
[ "discord-402572971681644545.desktop" ];
|
||||
"x-scheme-handler/discord-696343075731144724" =
|
||||
[ "discord-696343075731144724.desktop" ];
|
||||
"x-scheme-handler/tg" = [ "org.telegram.desktop.desktop" ];
|
||||
"x-scheme-handler/tonsite" = [ "org.telegram.desktop.desktop" ];
|
||||
# --- System & Directories ---
|
||||
"inode/directory" = [ "thunar.desktop" ];
|
||||
"x-scheme-handler/file" = [ "thunar.desktop" ];
|
||||
|
||||
# --- Web & Browsing ---
|
||||
"x-scheme-handler/unknown" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/chrome" = [ "firefox.desktop" ];
|
||||
@@ -36,16 +55,77 @@
|
||||
"application/x-extension-xhtml" = [ "firefox.desktop" ];
|
||||
"application/x-extension-xht" = [ "firefox.desktop" ];
|
||||
|
||||
# --- Chat & Social Protocol Schemes ---
|
||||
"x-scheme-handler/tg" = [ "org.telegram.desktop.desktop" ];
|
||||
"x-scheme-handler/tonsite" = [ "org.telegram.desktop.desktop" ];
|
||||
"x-scheme-handler/discord-409416265891971072" = [ "discord-409416265891971072.desktop" ];
|
||||
"x-scheme-handler/discord-402572971681644545" = [ "discord-402572971681644545.desktop" ];
|
||||
"x-scheme-handler/discord-696343075731144724" = [ "discord-696343075731144724.desktop" ];
|
||||
|
||||
# --- Documents & Source Code (VSCodium) ---
|
||||
"application/pdf" = [ "org.pwmt.zathura-pdf-mupdf.desktop" ];
|
||||
"text/plain" = [ "vscodium.desktop" ];
|
||||
"text/markdown" = [ "vscodium.desktop" ];
|
||||
"text/xml" = [ "vscodium.desktop" ];
|
||||
"text/csv" = [ "vscodium.desktop" ];
|
||||
"text/css" = [ "vscodium.desktop" ];
|
||||
"application/xml" = [ "vscodium.desktop" ];
|
||||
"application/json" = [ "vscodium.desktop" ];
|
||||
"application/toml" = [ "vscodium.desktop" ];
|
||||
"application/yaml" = [ "vscodium.desktop" ];
|
||||
"application/javascript" = [ "vscodium.desktop" ];
|
||||
"application/x-shellscript" = [ "vscodium.desktop" ];
|
||||
|
||||
# --- Video & Audio (MPV) ---
|
||||
"x-scheme-handler/mpv" = [ "mpv-handler.desktop" ];
|
||||
"video/mp4" = [ "mpv.desktop" ];
|
||||
"video/mkv" = [ "mpv.desktop" ];
|
||||
"video/webm" = [ "mpv.desktop" ];
|
||||
"video/x-matroska" = [ "mpv.desktop" ];
|
||||
"video/quicktime" = [ "mpv.desktop" ];
|
||||
"video/x-msvideo" = [ "mpv.desktop" ];
|
||||
"video/x-flv" = [ "mpv.desktop" ];
|
||||
"video/3gpp" = [ "mpv.desktop" ];
|
||||
"audio/mp3" = [ "mpv.desktop" ];
|
||||
"audio/mpeg" = [ "mpv.desktop" ];
|
||||
"audio/ogg" = [ "mpv.desktop" ];
|
||||
"audio/wav" = [ "mpv.desktop" ];
|
||||
"audio/x-wav" = [ "mpv.desktop" ];
|
||||
"audio/flac" = [ "mpv.desktop" ];
|
||||
"audio/x-flac" = [ "mpv.desktop" ];
|
||||
"audio/mp4" = [ "mpv.desktop" ];
|
||||
"audio/aac" = [ "mpv.desktop" ];
|
||||
"audio/x-matroska-audio" = [ "mpv.desktop" ];
|
||||
"audio/x-mpegurl" = [ "mpv.desktop" ];
|
||||
"audio/mpegurl" = [ "mpv.desktop" ];
|
||||
|
||||
# --- Images (IMV) ---
|
||||
"image/png" = [ "imv-dir.desktop" ];
|
||||
"image/jpg" = [ "imv-dir.desktop" ];
|
||||
"image/jpeg" = [ "imv-dir.desktop" ];
|
||||
"image/webp" = [ "imv-dir.desktop" ];
|
||||
"image/gif" = [ "imv-dir.desktop" ];
|
||||
"image/svg+xml" = [ "imv-dir.desktop" ];
|
||||
"image/x-canon-cr2" = [ "imv-dir.desktop" ];
|
||||
"image/bmp" = [ "imv-dir.desktop" ];
|
||||
"image/tiff" = [ "imv-dir.desktop" ];
|
||||
"image/heic" = [ "imv-dir.desktop" ];
|
||||
"image/avif" = [ "imv-dir.desktop" ];
|
||||
|
||||
# --- Archives (Engrampa) ---
|
||||
"application/zip" = [ "engrampa.desktop" ];
|
||||
"application/x-tar" = [ "engrampa.desktop" ];
|
||||
"application/x-gzip" = [ "engrampa.desktop" ];
|
||||
"application/x-bzip2" = [ "engrampa.desktop" ];
|
||||
"application/x-7z-compressed" = [ "engrampa.desktop" ];
|
||||
"application/x-rar" = [ "engrampa.desktop" ];
|
||||
};
|
||||
|
||||
associations = {
|
||||
removed = { "application/pdf" = [ "krita_pdf.desktop" ]; };
|
||||
removed = {
|
||||
"application/pdf" = [ "krita_pdf.desktop" ];
|
||||
"application/zip" = [ "org.prismlauncher.PrismLauncher.desktop" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{ pkgs, ... }: {
|
||||
imports = [ ./debug ./develop ./telegraf ];
|
||||
|
||||
environment.systemPackages = with pkgs; [ pkgs.engrampa ];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user