diff --git a/hosts/cap-nr200p/configuration.nix b/hosts/cap-nr200p/configuration.nix index 187838a..d5af449 100644 --- a/hosts/cap-nr200p/configuration.nix +++ b/hosts/cap-nr200p/configuration.nix @@ -38,6 +38,7 @@ ../../modules/application-groups/gaming.nix ../../modules/application-groups/homelab.nix ../../modules/application-groups/media.nix + ../../modules/application-groups/media-creation.nix ../../modules/application-groups/pcb-design.nix ../../modules/application-groups/productivity.nix ../../modules/application-groups/programming.nix diff --git a/hosts/cap-slim7/configuration.nix b/hosts/cap-slim7/configuration.nix index b51a84f..af52a6c 100644 --- a/hosts/cap-slim7/configuration.nix +++ b/hosts/cap-slim7/configuration.nix @@ -34,6 +34,7 @@ ../../modules/application-groups/gaming.nix ../../modules/application-groups/homelab.nix ../../modules/application-groups/media.nix + ../../modules/application-groups/media-creation.nix ../../modules/application-groups/pcb-design.nix ../../modules/application-groups/productivity.nix ../../modules/application-groups/programming.nix diff --git a/modules/application-groups/media-creation.nix b/modules/application-groups/media-creation.nix new file mode 100644 index 0000000..a0da309 --- /dev/null +++ b/modules/application-groups/media-creation.nix @@ -0,0 +1,51 @@ +{ config, pkgs, ... }: +let + spotifyPlayerDesktopEntry = pkgs.writeTextFile { + name = "spotify-player-desktop"; + destination = "/share/applications/spotify-player.desktop"; + text = '' + [Desktop Entry] + Type=Application + Name=Spotify Player + Exec=kitty -e spotify_player + Icon=spotify_player + Terminal=false + Categories=Media; + ''; + }; +in +{ + boot = { + # Make v4l2loopback kernel module available to NixOS. + extraModulePackages = with config.boot.kernelPackages; [ + v4l2loopback + ]; + # Activate kernel module(s). + kernelModules = [ + # Virtual camera. + "v4l2loopback" + # Virtual Microphone. Custom DroidCam v4l2loopback driver needed for audio. + # "snd-aloop" + ]; + }; + + boot.extraModprobeConfig = '' + # exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming + # card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams + # https://github.com/umlaeute/v4l2loopback + options v4l2loopback exclusive_caps=1 card_label="Virtual Camera" + ''; + + programs.bash.shellAliases = { + scrwebcam = "sudo pkill scrcpy ; sudo modprobe -r v4l2loopback ; sudo modprobe v4l2loopback && nohup scrcpy --camera-facing=back --video-source=camera --v4l2-sink=/dev/video0 --no-window --no-audio-playback 2>&1 1>/dev/null"; + }; + + environment.systemPackages = with pkgs; [ + audacity + darktable + davinci-resolve + kdePackages.kdenlive + obs-studio + ]; + +} diff --git a/modules/application-groups/media.nix b/modules/application-groups/media.nix index 8242f72..e910fe2 100644 --- a/modules/application-groups/media.nix +++ b/modules/application-groups/media.nix @@ -13,7 +13,8 @@ let Categories=Media; ''; }; -in { +in +{ boot = { # Make v4l2loopback kernel module available to NixOS. extraModulePackages = with config.boot.kernelPackages; [ @@ -40,12 +41,8 @@ in { }; environment.systemPackages = with pkgs; [ - - # aaudacity - # darktable deadbeef glava - obs-studio plex-desktop projectm_3 sox @@ -54,6 +51,4 @@ in { vlc ]; - - }