93 lines
1.9 KiB
Nix
93 lines
1.9 KiB
Nix
{ pkgs, config, ... }:
|
|
|
|
{
|
|
# Kernel
|
|
boot.kernelPackages = pkgs.linuxPackages_zen;
|
|
|
|
boot.initrd.kernelModules = [
|
|
"v4l2loopback"
|
|
"zenergy"
|
|
];
|
|
|
|
boot.extraModulePackages = [
|
|
config.boot.kernelPackages.v4l2loopback
|
|
config.boot.kernelPackages.zenergy # Allows fetching power draw information on AMD CPUs
|
|
];
|
|
|
|
# Configure v4l2loopback
|
|
boot.extraModprobeConfig = ''
|
|
options v4l2loopback devices=1 video_nr=1 card_label="Virtual camera" exclusive_caps=1
|
|
'';
|
|
|
|
# Bootloader.
|
|
boot.loader = {
|
|
systemd-boot = {
|
|
enable = true;
|
|
configurationLimit = 10;
|
|
};
|
|
|
|
efi.canTouchEfiVariables = true;
|
|
};
|
|
|
|
# Enables zram.
|
|
zramSwap.enable = true;
|
|
|
|
# Enable networking
|
|
networking.networkmanager.enable = true;
|
|
|
|
# Enable sound with pipewire.
|
|
services.pulseaudio.enable = false;
|
|
services.pipewire = {
|
|
enable = true;
|
|
audio.enable = true;
|
|
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
|
|
pulse.enable = true;
|
|
};
|
|
|
|
# Enable fish system-wide to integrate with nixpkgs.
|
|
programs.fish.enable = true;
|
|
|
|
# Set fish as the default shell for all users.
|
|
users.defaultUserShell = pkgs.fish;
|
|
|
|
# Enable CUPS to print documents.
|
|
services.printing.enable = true;
|
|
|
|
# And the service that enables IPP Everywhere
|
|
services.avahi = {
|
|
enable = true;
|
|
nssmdns4 = true;
|
|
nssmdns6 = true;
|
|
openFirewall = true;
|
|
};
|
|
|
|
# Enable the OpenSSH daemon.
|
|
services.openssh = {
|
|
enable = true;
|
|
|
|
settings = {
|
|
PasswordAuthentication = false;
|
|
PermitRootLogin = "no";
|
|
StreamLocalBindUnlink = "yes";
|
|
};
|
|
};
|
|
|
|
# Enable GPG.
|
|
programs.gnupg.agent = {
|
|
enable = true;
|
|
enableSSHSupport = true;
|
|
};
|
|
|
|
# Enable polkit,
|
|
security.polkit.enable = true;
|
|
|
|
# install an agent to interface with it,
|
|
environment.systemPackages = with pkgs; [ polkit_gnome ];
|
|
|
|
# And enable GNOME keyring for registering keys.
|
|
services.gnome.gnome-keyring.enable = true;
|
|
}
|