NixOS/hosts/workstation/configuration.nix

149 lines
3.6 KiB
Nix

{ pkgs, ... }:
{
imports = [
./hardware-configuration.nix
../../base.nix
../../gnome.nix
../../pkgs/obs-studio.nix
];
my = {
enableContainers = true;
emacs.enable = true;
apps = {
art.enable = true;
dictionaries.enable = true;
fonts.enable = true;
gaming.enable = true;
internet.enable = true;
multimedia.enable = true;
office.enable = true;
misc.enable = true;
};
dev = {
haskell.enable = true;
nix.enable = true;
python.enable = true;
gameDev.enable = true;
sh.enable = true;
javascript.enable = true;
};
shell = {
exercism.enable = true;
multimedia.enable = true;
tools.enable = true;
};
services = {
network.enable = true;
nvidia.enable = true;
printing.enable = true;
sound.enable = true;
};
scripts = {
tasks.enable = true;
run.enable = true;
split-dir.enable = true;
download.enable = true;
ffmpreg.enable = true;
ffmpeg4discord.enable = true;
};
};
sops.secrets = {
"resilio/user" = { };
"resilio/host" = { };
"resilio/password" = { };
};
networking = {
hostName = "workstation";
firewall =
let
openPorts = [
6674 # ns-usbloader
];
openPortRanges = [
{
from = 1714; # kdeconnect
to = 1764; # kdeconnect
}
];
in
{
allowedTCPPorts = openPorts;
allowedUDPPorts = openPorts;
allowedTCPPortRanges = openPortRanges;
allowedUDPPortRanges = openPortRanges;
};
};
nix.settings.cores = 16;
nixpkgs = {
hostPlatform = "x86_64-linux";
config.permittedInsecurePackages = [ ];
};
users = {
groups.nixremote.gid = 555;
users = {
jawz.packages = with pkgs; [
nvidia-podman # why not? i'll probably be dissapointed
distrobox # install packages from other os
gocryptfs # encrypted filesystem! shhh!!!
torrenttools # create torrent files from the terminal!
vcsi # video thumbnails for torrents, can I replace it with ^?
];
nixremote = {
isNormalUser = true;
createHome = true;
group = "nixremote";
home = "/var/nixremote/";
openssh.authorizedKeys.keys = [
(builtins.readFile ../../secrets/ssh/ed25519_nixserver.pub)
(builtins.readFile ../../secrets/ssh/ed25519_nixminiserver.pub)
];
};
};
};
environment.etc = {
"wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = ''
bluez_monitor.properties = {
["bluez5.enable-sbc-xq"] = true,
["bluez5.enable-msbc"] = true,
["bluez5.enable-hw-volume"] = true,
["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]"
}
'';
};
programs = {
kdeconnect = {
enable = true;
package = pkgs.gnomeExtensions.gsconnect;
};
obs-studio = {
enable = true;
enableVirtualCamera = true;
plugins = with pkgs.obs-studio-plugins; [
obs-vkcapture
obs-vaapi
obs-tuna
looking-glass-obs
input-overlay
droidcam-obs
];
};
};
services = {
btrfs.autoScrub = {
enable = true;
fileSystems = [ "/" ];
};
resilio = {
enable = true;
useUpnp = true;
enableWebUI = true;
httpPass = "Uplifting-Proofs-Eggshell-Molecule-Wriggly-Janitor3-Padded-Oxidizing";
deviceName = "Oversweet3834";
httpLogin = "Oversweet3834";
httpListenPort = 9876;
httpListenAddr = "0.0.0.0";
directoryRoot = "/resilio";
};
};
}