feat(packages): add miraclecast
This commit is contained in:
parent
cf1eae0829
commit
e72b1b1230
|
@ -73,6 +73,7 @@
|
||||||
formatter."${system}" = pkgs.nixfmt-rfc-style;
|
formatter."${system}" = pkgs.nixfmt-rfc-style;
|
||||||
|
|
||||||
packages."${system}" = {
|
packages."${system}" = {
|
||||||
|
miraclecast = pkgs.callPackage ./packages/miraclecast.nix { };
|
||||||
wb32dfu-udev-rules = pkgs.callPackage ./packages/wb32dfu-udev-rules { };
|
wb32dfu-udev-rules = pkgs.callPackage ./packages/wb32dfu-udev-rules { };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,14 @@ This package installs the udev rules necessary to allow flashing QMK/Vial onto k
|
||||||
It is meant to be used in tandem with [NixOS] using the
|
It is meant to be used in tandem with [NixOS] using the
|
||||||
[`services.udev.packages`](https://search.nixos.org/options?query=services.udev.packages) configuration.
|
[`services.udev.packages`](https://search.nixos.org/options?query=services.udev.packages) configuration.
|
||||||
|
|
||||||
|
## [miraclecast](https://github.com/albfan/miraclecast/)
|
||||||
|
|
||||||
|
This is a suite of programs that allows you to connect external monitors through Wi-Fi, though unfortunately some of the
|
||||||
|
programs have no documentation and some an unhelpful help command too.
|
||||||
|
|
||||||
|
Currently the **package is available in [nixpkgs]** __however it currently fails to compile__, so you have to rely on my
|
||||||
|
configuration of this package or wait for [nixpkgs#387762](https://github.com/NixOS/nixpkgs/pull/387762) to be merged.
|
||||||
|
|
||||||
|
|
||||||
<!-- REFERENCES -->
|
<!-- REFERENCES -->
|
||||||
[nixpkgs]: https://github.com/NixOS/nixpkgs/
|
[nixpkgs]: https://github.com/NixOS/nixpkgs/
|
||||||
|
|
91
packages/miraclecast.nix
Normal file
91
packages/miraclecast.nix
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
fetchFromGitHub,
|
||||||
|
glib,
|
||||||
|
gst_all_1,
|
||||||
|
iproute2,
|
||||||
|
libtool,
|
||||||
|
makeBinaryWrapper,
|
||||||
|
meson,
|
||||||
|
miraclecast,
|
||||||
|
ninja,
|
||||||
|
pkg-config,
|
||||||
|
readline,
|
||||||
|
stdenv,
|
||||||
|
systemdLibs,
|
||||||
|
testers,
|
||||||
|
udev,
|
||||||
|
wpa_supplicant,
|
||||||
|
relyUdev ? true,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
gstreamerPluginPaths = lib.concatMapStrings (pth: pth + "/lib/gstreamer-1.0:") [
|
||||||
|
(lib.getLib gst_all_1.gstreamer)
|
||||||
|
gst_all_1.gst-libav
|
||||||
|
gst_all_1.gst-plugins-bad
|
||||||
|
gst_all_1.gst-plugins-base
|
||||||
|
gst_all_1.gst-plugins-good
|
||||||
|
];
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "miraclecast";
|
||||||
|
version = "1.0-unstable-2024-07-13";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "albfan";
|
||||||
|
repo = "miraclecast";
|
||||||
|
rev = "937747fd4de64a33bccf5adb73924c435ceb821b";
|
||||||
|
hash = "sha256-y37+AOz8xYjtDk9ITxMB7UeWeMpDH+b6HQBczv+x5zo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
makeBinaryWrapper
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
glib
|
||||||
|
gst_all_1.gstreamer
|
||||||
|
iproute2
|
||||||
|
libtool
|
||||||
|
readline
|
||||||
|
systemdLibs
|
||||||
|
udev
|
||||||
|
wpa_supplicant
|
||||||
|
];
|
||||||
|
|
||||||
|
mesonFlags =
|
||||||
|
[
|
||||||
|
"-Dbuild-tests=true"
|
||||||
|
"-Dip-binary=${iproute2}/bin/ip"
|
||||||
|
]
|
||||||
|
++ lib.optionals relyUdev [
|
||||||
|
"-Drely-udev=true"
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace res/miracle-gst \
|
||||||
|
--replace-fail "/usr/bin/gst-launch-1.0" "${gst_all_1.gstreamer}/bin/gst-launch-1.0"
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/miracle-gst --set GST_PLUGIN_SYSTEM_PATH_1_0 ${gstreamerPluginPaths}
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.tests.version = testers.testVersion {
|
||||||
|
package = miraclecast;
|
||||||
|
command = "miracled --version";
|
||||||
|
version = "Miraclecast 1";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Connect external monitors to your system via Wifi-Display specification also known as Miracast";
|
||||||
|
homepage = "https://github.com/albfan/miraclecast";
|
||||||
|
license = licenses.lgpl21Plus;
|
||||||
|
maintainers = [ maintainers.wizardlink ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue