dotfiles/hosts/scarab/default.nix
2024-04-20 10:14:18 +00:00

109 lines
2.9 KiB
Nix

{ config, inputs, lib, pkgs, ... }:
let
in
{
imports = [
../default.nix
#"${inputs.mobile-nixos}/modules/quirks/qualcomm/sdm845-modem.nix"
#"${inputs.mobile-nixos}/modules/quirks/audio.nix"
];
stitchyconf.form = "handheld";
mobile = {
beautification = {
silentBoot = lib.mkDefault true;
splash = lib.mkDefault true;
};
boot.stage-1 = {
kernel.useStrictKernelConfig = true;
networking.enable = true;
};
quirks = {
audio.alsa-ucm-meld = true;
qualcomm.sdm845-modem.enable = true;
};
};
boot.loader = {
efi.canTouchEfiVariables = false;
systemd-boot.enable = false;
};
#services.openssh.enable = true;
services.xserver.desktopManager.phosh = {
enable = true;
user = "stitchynyan";
group = "users";
};
#services.xserver.desktopManager.plasma5 = {
# enable = true;
# mobile.enable = true;
#};
programs.firefox.enable = true;
programs.calls.enable = true;
hardware = {
bluetooth.enable = true;
pulseaudio.enable = lib.mkForce false;
sensor.iio.enable = true;
};
networking.networkmanager = {
enable = true;
unmanaged = [ "rndis0" "usb0" ];
};
/*services.pipewire.wireplumber.configPackages = [
(pkgs.writeTextDir "share/wireplumber/quailcum.lua.d/51-qcom-sdm845.lua" ''
${builtins.readFile (pkgs.fetchurl {
url = "https://gitlab.com/postmarketOS/pmaports/-/raw/0aa9524204e9c9c002c860b87c972bc2ebf025f3/device/community/soc-qcom-sdm845/51-qcom-sdm845.lua";
hash = "sha256-56oNJJyuZZe1Iig1xskDuyazw3PbRZtmU/YRFUTqjwk=";
})}
'')
];*/
services.pipewire.wireplumber.configPackages = [
(pkgs.writeTextDir "share/wireplumber/quailcum.lua.d/51-qcom-sdm845.lua" ''
-- PipeWire's S24LE default audio format is broken in the kernel driver
alsa_monitor.rules = [
{
matches = {
{ "node.name" = "alsa_output.*.HiFi*__sink" },
{ "node.name" = "alsa_input.*.HiFi*__source" }
]
actions = {
update-props = {
audio.format = "S16LE",
audio.rate = 48000,
api.alsa.period-size = 4096,
api.alsa.period-num = 6,
api.alsa.headroom = 512,
},
}
}
}]
-- Disable suspend for Voice Call devices
alsa_monitor.rules = [
{
matches = {
{ "node.name" = "alsa_output.*.Voice_Call*__sink" },
{ "node.name" ="alsa_input.*.Voice_Call*__source" }
}
actions.update=props = {
audio.format = "S16LE",
session.suspend-timeout-seconds = 0,
}
}]
'')
];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"oneplus-sdm845-firmware"
"oneplus-sdm845-firmware-xz"
];
system.stateVersion = "23.11";
}