droidcam and magit improvements

This commit is contained in:
Andrea Ciceri 2022-04-24 13:25:23 +02:00
parent 8175759a71
commit 39521036fb
No known key found for this signature in database
GPG key ID: A1FC89532D1C5654
11 changed files with 98 additions and 5 deletions

6
flake.lock generated
View file

@ -329,11 +329,11 @@
}, },
"nixpkgsDevInput": { "nixpkgsDevInput": {
"locked": { "locked": {
"lastModified": 1650235668, "lastModified": 1650450000,
"narHash": "sha256-OmGlM2pIMMrhkoHNi4yxG0H3JzoK8gZ7dUfx7OsDoFE=", "narHash": "sha256-/ASymH28AS7KsNvkQ1RMKRoCQKSi1AsWkHdJpQwhXCg=",
"owner": "aciceri", "owner": "aciceri",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a28ba9716a4c3f16379ceba7e4d754782846bebb", "rev": "cf941213b48d9602be0dc2656e02e065740798ab",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -6,9 +6,10 @@
boot = { boot = {
initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
initrd.kernelModules = [ ]; initrd.kernelModules = [ ];
kernelModules = [ "kvm-intel" "v4l2loopback" ]; kernelModules = [ "kvm-intel" "snd-aloop" "v4l2loopback" ];
extraModulePackages = with config.boot.kernelPackages; [ extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback v4l2loopback
pkgs.v4l2loopback-dc
]; ];
extraModprobeConfig = '' extraModprobeConfig = ''

View file

@ -26,5 +26,7 @@ in
geoclue2 = nixpkgsUnstable.geoclue2; geoclue2 = nixpkgsUnstable.geoclue2;
gnome = nixpkgsUnstable.gnome; gnome = nixpkgsUnstable.gnome;
umoria = nixpkgsDev.umoria; umoria = nixpkgsDev.umoria;
droidcam = prev.callPackage (import ./droidcam) { };
v4l2loopback-dc = prev.callPackage (import ./v4l2loopback-dc) { kernel = prev.linux; };
# then, call packages with `final.callPackage` # then, call packages with `final.callPackage`
} }

36
pkgs/droidcam/default.nix Normal file
View file

@ -0,0 +1,36 @@
{ stdenv, fetchzip, pkgconfig, ffmpeg, gtk3-x11, libjpeg, libusbmuxd, alsaLib, speex }:
stdenv.mkDerivation rec {
pname = "droidcam";
version = "0";
src = fetchzip {
url = "https://github.com/dev47apps/droidcam/archive/refs/tags/v1.7.2.zip";
sha256 = "1iskvs5p71gkiinj78kkl9ygl5il9rdbzm0h85hwyzm2xwkcybrp";
};
sourceRoot = "source";
buildInputs = [ pkgconfig ];
nativeBuildInputs = [ ffmpeg gtk3-x11 libusbmuxd alsaLib libjpeg speex ];
postPatch = ''
cat Makefile
ls ${libusbmuxd.out}/lib
sed -i -e 's:-lusbmuxd:-I ${libusbmuxd.out} ${libusbmuxd.out}/lib/libusbmuxd-2.0.so:' Makefile
sed -i -e 's:/opt/libjpeg-turbo:${libjpeg.out}:' Makefile
sed -i -e 's:$(JPEG_DIR)/lib`getconf LONG_BIT`:${libjpeg.out}/lib:' Makefile
sed -i -e 's:libturbojpeg.a:libturbojpeg.so:' Makefile
cat Makefile
'';
installPhase = ''
mkdir -p $out/bin
cp droidcam droidcam-cli $out/bin/
'';
meta = with stdenv.lib; {
description = "DroidCam Linux client";
homepage = https://github.com/aramg/droidcam;
};
}

View file

@ -12,6 +12,7 @@ emacsWithPackages (
all-the-icons all-the-icons
company company
dap-mode dap-mode
diff-hl
doom-modeline doom-modeline
evil evil
evil-collection evil-collection

View file

@ -0,0 +1,32 @@
{ stdenv, fetchzip, kernel }:
stdenv.mkDerivation rec {
pname = "v4l2loopback-dc";
version = "0";
src = fetchzip {
url = "https://github.com/dev47apps/droidcam/archive/refs/tags/v1.7.2.zip";
sha256 = "1iskvs5p71gkiinj78kkl9ygl5il9rdbzm0h85hwyzm2xwkcybrp";
};
sourceRoot = "source/v4l2loopback";
KVER = "${kernel.modDirVersion}";
KBUILD_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
nativeBuildInputs = kernel.moduleBuildDependencies;
postPatch = ''
sed -i -e 's:/lib/modules/$(KERNELRELEASE)/build:${KBUILD_DIR}:g' Makefile
'';
installPhase = ''
mkdir -p $out/lib/modules/${KVER}/kernels/media/video
cp v4l2loopback-dc.ko $out/lib/modules/${KVER}/kernels/media/video/
'';
meta = with stdenv.lib; {
description = "DroidCam kernel module v4l2loopback-dc";
homepage = https://github.com/aramg/droidcam;
};
}

View file

@ -1,4 +1,8 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
programs.adb.enable = !pkgs.stdenv.hostPlatform.isAarch64; programs.adb.enable = !pkgs.stdenv.hostPlatform.isAarch64;
services.udev.packages = [
pkgs.android-udev-rules
];
} }

View file

@ -10,6 +10,7 @@
ack ack
ranger ranger
umoria umoria
droidcam
] ++ (if config.networking.hostName != "hs" then [ ] ++ (if config.networking.hostName != "hs" then [
imv imv
calibre calibre

View file

@ -41,7 +41,8 @@
("<prior>" . #'good-scroll-down-full-screen))) ("<prior>" . #'good-scroll-down-full-screen)))
(use-package rainbow-identifiers (use-package rainbow-identifiers
:hook ((prog-mode . rainbow-identifiers-mode))) ;; :hook ((prog-mode . rainbow-identifiers-mode))
)
;; To move in a different config file ;; To move in a different config file
(when (string-equal system-type "darwin") (when (string-equal system-type "darwin")

View file

@ -2,4 +2,17 @@
:bind (("C-x g" . magit-status) :bind (("C-x g" . magit-status)
("C-x C-g" . magit-status))) ("C-x C-g" . magit-status)))
(use-package transient
:defer t
:config
(transient-bind-q-to-quit))
(use-package diff-hl
:after magit
:config
(require 'diff-hl-flydiff)
(add-hook 'magit-post-refresh-hook 'diff-hl-magit-post-refresh)
(diff-hl-flydiff-mode t)
(global-diff-hl-mode t))
(provide 'config-magit) (provide 'config-magit)

View file

@ -16,7 +16,9 @@ in
package = pkgs.gitAndTools.gitFull; package = pkgs.gitAndTools.gitFull;
extraConfig = { extraConfig = {
ui.color = true;
pull.rebase = false; pull.rebase = false;
rebase.autostash = true;
}; };
userName = config.name; userName = config.name;