dotfiles/hosts/endurance/default.nix

218 lines
4.5 KiB
Nix

{
pkgs,
lib,
config,
inputs,
...
}: {
imports = [
inputs.flatpak.nixosModules.nix-flatpak
./hardware.nix
./disko.nix
];
bosun = {
profiles = {
graphical.enable = true;
docker.enable = true;
work.enable = true;
};
#quirks = ["avahi" "docker" "nix-ld"];
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD";
};
networking = {
firewall.enable = false;
interfaces.eno1.wakeOnLan.enable = true;
};
programs = {
weylus.users = ["toph"];
gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-gtk2;
enableSSHSupport = true;
};
dconf.enable = true;
steam = {
enable = true;
protontricks.enable = true;
remotePlay.openFirewall = true;
};
envision.enable = true;
gamemode.enable = true;
_1password.enable = true;
_1password-gui = {
enable = true;
# Certain features, including CLI integration and system authentication support,
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
polkitPolicyOwners = ["toph"];
};
obs-studio = {
enable = true;
enableVirtualCamera = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-vaapi
obs-pipewire-audio-capture
obs-backgroundremoval
obs-move-transition
droidcam-obs
];
};
};
services = {
# ovos.enable = true; # message-bus only. remainder in hm
flatpak = {
enable = true;
packages = [
"com.bambulab.BambuStudio"
"im.riot.Riot"
];
};
hardware.openrgb.enable = true;
# Bluetooth manager
blueman.enable = true;
udev.extraRules = ''
# SpaceMouse Enterprise
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", MODE="0666"
# Thrustmaster T.Flight Rudder Pedals
SUBSYSTEM=="input", ATTRS{idProduct}=="b679", ATTRS{idVendor}=="044f", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
'';
udev.packages = [pkgs.platformio-core.udev];
elements.ollama.enable = true;
usbmuxd = {
enable = true;
package = pkgs.usbmuxd2;
};
gvfs.enable = true; # Mount/trash/...
tumbler.enable = true; # Thumbnail support in Thunar
gnome.gnome-keyring.enable = true;
# Enable CUPS to print documents.
printing = {
enable = true;
drivers = with pkgs; [
brlaser
];
};
# Smartcard support, necessary for Yubikey logins
pcscd.enable = true;
};
environment = {
# List packages installed in system profile. To search, run:
# $ nix search wget
systemPackages = with pkgs; [
# Global apps
vim
wget
htop
gnumake
libnotify
gtk3
openrgb-with-all-plugins
# lact # GPU tuning
libimobiledevice
ifuse
naps2 # Scanning
# Oxidized coreutils
uutils-coreutils-noprefix
wally-cli
keymapp
pavucontrol
nix-tree
nix-output-monitor
xdg-desktop-portal
xdg-desktop-portal-gtk
];
# Quirky workaround for this not being set in portals for some reason
sessionVariables.MOZ_ENABLE_WAYLAND = "1";
};
users.groups.pico = {};
# AMD GPU tooling
# systemd.packages = [pkgs.lact];
# systemd.services.lactd.wantedBy = ["multi-user.target"];
hardware = {
amdgpu = {
opencl.enable = true;
overdrive.enable = true;
};
graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
mesa.opencl
];
};
bluetooth = {
enable = true;
powerOnBoot = true;
};
# SANE scanner support
sane = {
enable = true;
extraBackends = [pkgs.brscan4];
};
# 3DConnexion support
spacenavd.enable = true;
# Input emulation from userspace (see weylus).
uinput.enable = true;
# Enable zsa keyboard (Moonlander) support.
keyboard.zsa.enable = true;
};
# Do not change this value!
system.stateVersion = "23.05";
boot = {
# Set up our bootloader
loader = {
efi.canTouchEfiVariables = true;
grub = {
enable = true;
device = "nodev";
efiSupport = true;
};
};
extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
kernelModules = ["v4l2loopback"];
extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
};
}