diff --git a/flake.lock b/flake.lock index b4c8641..6bc48ad 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "auto-base16-theme": { + "flake": false, + "locked": { + "lastModified": 1590513364, + "narHash": "sha256-jhfdB1eL25VRYh25qaSmT4jfEVztFld4CHwbM+xzKwg=", + "owner": "makuto", + "repo": "auto-base16-theme", + "rev": "081ca564c13d71860a2d6fcb6b2ea8770ad7512d", + "type": "github" + }, + "original": { + "owner": "makuto", + "repo": "auto-base16-theme", + "type": "github" + } + }, "base16-kitty": { "flake": false, "locked": { @@ -32,6 +48,38 @@ "type": "github" } }, + "bobthefish": { + "flake": false, + "locked": { + "lastModified": 1611805875, + "narHash": "sha256-zUngqEZgHLmlyvoiVO3MwJTSFsYD7t3XiP6yMzmMkBs=", + "owner": "oh-my-fish", + "repo": "theme-bobthefish", + "rev": "626bd39b002535d69e56adba5b58a1060cfb6d7b", + "type": "github" + }, + "original": { + "owner": "oh-my-fish", + "repo": "theme-bobthefish", + "type": "github" + } + }, + "done": { + "flake": false, + "locked": { + "lastModified": 1633249917, + "narHash": "sha256-E0wveeDw1VzEH2kzn63q9hy1xkccfxQHBV2gVpu2IdQ=", + "owner": "franciscolourenco", + "repo": "done", + "rev": "a328d3a747cb47fdbee27e04f54221ed7d639a86", + "type": "github" + }, + "original": { + "owner": "franciscolourenco", + "repo": "done", + "type": "github" + } + }, "firenvim": { "flake": false, "locked": { @@ -118,12 +166,16 @@ }, "root": { "inputs": { + "auto-base16-theme": "auto-base16-theme", "base16-kitty": "base16-kitty", "base16-rofi": "base16-rofi", + "bobthefish": "bobthefish", + "done": "done", "firenvim": "firenvim", "mudl": "mudl", "nixpkgs": "nixpkgs", - "rycee": "rycee" + "rycee": "rycee", + "schemer2": "schemer2" } }, "rycee": { @@ -141,6 +193,22 @@ "repo": "nur-expressions", "type": "gitlab" } + }, + "schemer2": { + "flake": false, + "locked": { + "lastModified": 1554524568, + "narHash": "sha256-EKjVz4NkxtxqGissFwlzUahFut9UAxS8icxx3V7aNnw=", + "owner": "thefryscorer", + "repo": "schemer2", + "rev": "89a66cbf40440e82921719c6919f11bb563d7cfa", + "type": "github" + }, + "original": { + "owner": "thefryscorer", + "repo": "schemer2", + "type": "github" + } } }, "root": "root", diff --git a/modules/ezpw.nix b/modules/ezpw.nix index 8a5cd03..2e2c407 100644 --- a/modules/ezpw.nix +++ b/modules/ezpw.nix @@ -20,6 +20,87 @@ in alsa.enable = lib.mkDefault true; alsa.support32Bit = lib.mkDefault true; pulse.enable = lib.mkDefault true; + + config.pipewire = { + "context.properties" = { + "link.max-buffers" = 16; + "log.level" = 2; + "default.clock.rate" = 48000; + "default.clock.quantum" = 32; + "default.clock.min-quantum" = 32; + "default.clock.max-quantum" = 32; + "core.daemon" = true; + "core.name" = "pipewire-0"; + }; + "context.modules" = [ + { + name = "libpipewire-module-rtkit"; + args = { + "nice.level" = -15; + "rt.prio" = 88; + "rt.time.soft" = 200000; + "rt.time.hard" = 200000; + }; + flags = [ "ifexists" "nofail" ]; + } + { name = "libpipewire-module-protocol-native"; } + { name = "libpipewire-module-profiler"; } + { name = "libpipewire-module-metadata"; } + { name = "libpipewire-module-spa-device-factory"; } + { name = "libpipewire-module-spa-node-factory"; } + { name = "libpipewire-module-client-node"; } + { name = "libpipewire-module-client-device"; } + { + name = "libpipewire-module-portal"; + flags = [ "ifexists" "nofail" ]; + } + { + name = "libpipewire-module-access"; + args = {}; + } + { name = "libpipewire-module-adapter"; } + { name = "libpipewire-module-link-factory"; } + { name = "libpipewire-module-session-manager"; } + ]; + }; + + config.pipewire-pulse = { + "context.properties" = { + "log.level" = 2; + }; + "context.modules" = [ + { + name = "libpipewire-module-rtkit"; + args = { + "nice.level" = -15; + "rt.prio" = 88; + "rt.time.soft" = 200000; + "rt.time.hard" = 200000; + }; + flags = [ "ifexists" "nofail" ]; + } + { name = "libpipewire-module-protocol-native"; } + { name = "libpipewire-module-client-node"; } + { name = "libpipewire-module-adapter"; } + { name = "libpipewire-module-metadata"; } + { + name = "libpipewire-module-protocol-pulse"; + args = { + "pulse.min.req" = "32/48000"; + "pulse.default.req" = "32/48000"; + "pulse.max.req" = "32/48000"; + "pulse.min.quantum" = "32/48000"; + "pulse.max.quantum" = "32/48000"; + "server.address" = [ "unix:native" ]; + }; + } + ]; + "stream.properties" = { + "node.latency" = "32/48000"; + "resample.quality" = 1; + }; + }; + media-session.config.bluez-monitor = { properties = { "bluez5.codecs" = [ "sbc" "aac" "ldac" "aptx" "aptx_hd" ];