From 46f59836cb7771c6164e2d0dc9ad3d247a13f9bb Mon Sep 17 00:00:00 2001 From: Kopatz <7265381+Kropatz@users.noreply.github.com> Date: Tue, 2 Dec 2025 16:49:16 +0100 Subject: [PATCH] audio --- modules/package-collections/perf.nix | 15 +++++++++++ pkgs/default.nix | 1 + pkgs/kop-audio/default.nix | 34 +++++++++++++++++++++++++ systems/amd-server-vm/configuration.nix | 8 ++++-- 4 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 modules/package-collections/perf.nix create mode 100644 pkgs/kop-audio/default.nix diff --git a/modules/package-collections/perf.nix b/modules/package-collections/perf.nix new file mode 100644 index 0000000..38567de --- /dev/null +++ b/modules/package-collections/perf.nix @@ -0,0 +1,15 @@ +{ pkgs }: +{ + environment.systemPackages = with pkgs; [ + perf + hotspot + (writeShellScriptBin "start-recording" '' + PID=$(pgrep $1) + if [ -z "$PID" ]; then + echo "Process $1 not found." + exit 1 + fi + sudo perf record -F 999 -p $PID -g + '') + ]; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index b7e29fc..3fd8f6c 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -9,6 +9,7 @@ rec { kop-monitor = pkgs.callPackage ./kop-monitor/default.nix { }; kop-newproject = pkgs.callPackage ./kop-newproject/default.nix { }; kop-website = pkgs.callPackage ./website/default.nix { inherit kop-hub ente-frontend; }; + kop-audio = pkgs.callPackage ./kop-audio/default.nix { }; scheibnkleister-presence = pkgs.callPackage ./scheibnkleister-presence/default.nix { }; custom-sddm-astronaut = pkgs.callPackage ./sddm-astronaut/default.nix { }; mangal-patched = pkgs.callPackage ./mangal/default.nix { }; diff --git a/pkgs/kop-audio/default.nix b/pkgs/kop-audio/default.nix new file mode 100644 index 0000000..15a20e0 --- /dev/null +++ b/pkgs/kop-audio/default.nix @@ -0,0 +1,34 @@ +{ + lib, + fetchFromGitHub, + pkg-config, + libopus, + libpulseaudio, + rustPlatform, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "kop-audio"; + version = "0.0.1"; + + src = fetchGit { + url = "git@github.com:kropatz/kop-audio.git"; + ref = "master"; + rev = "431a8dd069eb8b5ae56d49ee20652ba2fc1c2969"; + }; + buildInputs = [ + libopus + libpulseaudio + ]; + + nativeBuildInputs = [ + pkg-config + ]; + + cargoHash = "sha256-NYzy58PR7SMY1nlAWiESraPod2Wam1KVtgr16q9jm60="; + + meta = { + description = "A voice chat application written in Rust"; + maintainers = [ ]; + }; +}) diff --git a/systems/amd-server-vm/configuration.nix b/systems/amd-server-vm/configuration.nix index 0e61df3..5a6de31 100644 --- a/systems/amd-server-vm/configuration.nix +++ b/systems/amd-server-vm/configuration.nix @@ -162,17 +162,21 @@ virtualisation.vmware.guest.enable = true; services.xserver.videoDrivers = [ "vmware" ]; + environment.systemPackages = with pkgs; [ + kop-audio + ]; # 8888 = scheibenmeister skip button networking.firewall.allowedTCPPorts = [ 25565 25566 8888 - 30033 # teamspeak6 file transfer port + #30033 # teamspeak6 file transfer port ]; networking.firewall.allowedUDPPorts = [ - 9987 # teamspeak6 voice port + 1234 #kop-audio default port + #9987 # teamspeak6 voice port ]; networking.nftables.tables.ip_drop = { family = "inet";