166 lines
3.4 KiB
Nix
166 lines
3.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
|
|
{
|
|
networking.hostName = "HACKSTATION";
|
|
|
|
# Enable nix-ld to run unpatched binaries
|
|
programs.nix-ld.enable = true;
|
|
programs.nix-ld.libraries = with pkgs; [
|
|
stdenv.cc.cc
|
|
zlib
|
|
libusb1
|
|
];
|
|
|
|
# Add Samsung USB udev rules
|
|
services.udev.extraRules = ''
|
|
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
|
|
'';
|
|
|
|
hardware.amdgpu.initrd.enable = true;
|
|
|
|
# Opengl and vulkan
|
|
hardware.graphics = {
|
|
enable = true;
|
|
extraPackages = with pkgs; [
|
|
libva-vdpau-driver
|
|
libvdpau-va-gl
|
|
];
|
|
enable32Bit = true;
|
|
};
|
|
|
|
hardware.amdgpu.opencl.enable = true;
|
|
|
|
boot.kernelParams = [
|
|
"amdgpu.ppfeaturemask=0xffffffff"
|
|
];
|
|
|
|
# Wake on Lan
|
|
networking.interfaces.enp5s0.wakeOnLan.enable = true;
|
|
networking.firewall.enable = false;
|
|
|
|
systemd.services.NetworkManager-wait-online.enable = false;
|
|
|
|
services.displayManager = {
|
|
autoLogin.enable = true;
|
|
autoLogin.user = "user01";
|
|
sddm = {
|
|
enable = true;
|
|
};
|
|
};
|
|
|
|
# Pipewire stuff
|
|
services.pipewire.extraConfig.pipewire."97-null-sink" = {
|
|
"context.objects" = [
|
|
{
|
|
factory = "adapter";
|
|
args = {
|
|
"factory.name" = "support.null-audio-sink";
|
|
"node.name" = "Null-Sink";
|
|
"node.description" = "Null Sink";
|
|
"media.class" = "Audio/Sink";
|
|
"audio.position" = "FL,FR";
|
|
};
|
|
}
|
|
{
|
|
factory = "adapter";
|
|
args = {
|
|
"factory.name" = "support.null-audio-sink";
|
|
"node.name" = "Null-Source";
|
|
"node.description" = "Null Source";
|
|
"media.class" = "Audio/Source";
|
|
"audio.position" = "FL,FR";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
services.pipewire.extraConfig.pipewire."98-virtual-mic" = {
|
|
"context.modules" = [
|
|
{
|
|
name = "libpipewire-module-loopback";
|
|
args = {
|
|
"audio.position" = "FL,FR";
|
|
"node.description" = "Mumble as Microphone";
|
|
"capture.props" = {
|
|
# Mumble's output node name.
|
|
"node.target" = "Mumble";
|
|
"node.passive" = true;
|
|
};
|
|
"playback.props" = {
|
|
"node.name" = "Virtual-Mumble-Microphone";
|
|
"media.class" = "Audio/Source";
|
|
};
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
# Mumble server
|
|
services.murmur = {
|
|
enable = true;
|
|
bandwidth = 540000;
|
|
bonjour = true;
|
|
password = "mumblepass";
|
|
autobanTime = 0;
|
|
};
|
|
|
|
# Local User
|
|
users.users.user01 = {
|
|
extraGroups = [
|
|
"adbusers"
|
|
"docker"
|
|
];
|
|
packages = with pkgs; [
|
|
bottles
|
|
mumble
|
|
ferdium
|
|
android-tools
|
|
anki
|
|
vesktop
|
|
wine64
|
|
delfin
|
|
docker
|
|
orca-slicer
|
|
exiftool
|
|
ffmpeg
|
|
];
|
|
};
|
|
|
|
environment.systemPackages = [
|
|
inputs.sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.wrapped
|
|
];
|
|
|
|
programs.steam = {
|
|
enable = true;
|
|
package = pkgs.steam.override {
|
|
extraEnv = {
|
|
LD_AUDIT = "${
|
|
inputs.sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.sls-steam
|
|
}/library-inject.so:${
|
|
inputs.sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.sls-steam
|
|
}/SLSsteam.so";
|
|
};
|
|
};
|
|
};
|
|
|
|
services.unbound = {
|
|
enable = true;
|
|
};
|
|
|
|
services.wivrn = {
|
|
enable = true;
|
|
package = pkgs.unstable.wivrn;
|
|
openFirewall = true;
|
|
};
|
|
|
|
virtualisation.docker = {
|
|
enable = true;
|
|
enableOnBoot = false;
|
|
};
|
|
}
|