NixOS-Config/nixos/desktop/default.nix

170 lines
4.2 KiB
Nix
Raw Permalink Normal View History

# This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
imports = [
# Import shared packages
2024-02-07 13:50:03 +01:00
../shared
];
nixpkgs = {
# You can add overlays here
overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
2024-01-18 12:46:31 +01:00
outputs.overlays.additions
outputs.overlays.modifications
#outputs.overlays.unstable-packages
];
config = {
allowUnfree = true;
};
};
environment.systemPackages = with pkgs; [
2024-01-30 12:07:57 +01:00
# Custom tools
dvd
dvt
2024-02-14 10:50:19 +01:00
servo
2024-03-14 17:03:05 +01:00
restart
2024-01-30 12:07:57 +01:00
# System tools
2024-03-06 10:38:50 +01:00
aha
2024-03-20 18:14:29 +01:00
bcachefs-tools
direnv
git-filter-repo
2024-02-08 10:36:52 +01:00
gnupg
pciutils
2024-02-21 12:16:53 +01:00
podman
podman-compose
sbctl
2024-02-22 15:22:45 +01:00
tpm2-tools
2024-02-22 15:24:39 +01:00
tpm2-tss
2024-01-29 17:59:34 +01:00
waydroid
xwaylandvideobridge
yubikey-personalization
zsh
# KDE/QT
2023-12-05 13:16:48 +01:00
krunner-translator
2024-03-03 17:10:23 +01:00
kdePackages.discover
kdePackages.kcalc
kdePackages.kdepim-addons
kdePackages.kirigami
kdePackages.kdeconnect-kde
# kdePackages.krunner-ssh
# kdePackages.krunner-symbols
kdePackages.packagekit-qt
2024-03-18 16:17:48 +01:00
kdePackages.plasma-pa
kdePackages.sddm-kcm
kdePackages.dolphin-plugins
2024-03-06 10:38:50 +01:00
libportal-qt5
2024-03-03 17:10:23 +01:00
libportal
# User tools
noisetorch
2024-02-21 12:16:53 +01:00
qjackctl
2024-02-16 14:41:36 +01:00
wireplumber
2024-03-14 16:32:44 +01:00
rustdesk
];
programs.direnv = {
enable = true;
};
# Enable networking
networking.networkmanager.enable = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
};
hardware.opengl.driSupport32Bit = true; # Enables support for 32bit libs that steam uses
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the KDE Plasma Desktop Environment.
2024-03-18 16:06:23 +01:00
services.xserver.displayManager.sddm.wayland.enable = true;
2024-03-19 12:18:16 +01:00
services.xserver.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
2024-03-03 17:10:23 +01:00
services.xserver.displayManager.defaultSession = "plasma";
programs.kdeconnect.enable = true;
# Enable flatpak support
services.flatpak.enable = true;
services.packagekit.enable = true;
# Configure keymap in X11
2024-01-10 11:17:18 +01:00
services.xserver.xkb = {
layout = "us";
2024-01-11 14:10:24 +01:00
variant = "";
2024-01-10 11:17:18 +01:00
options = "terminate:ctrl_alt_bksp,compose:caps_toggle";
};
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable bluetooth hardware
hardware.bluetooth.enable = true;
# Enable fwupd daemon and user space client
services.fwupd.enable = true;
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
2024-02-16 21:31:25 +01:00
jack.enable = true;
2024-02-16 14:41:36 +01:00
wireplumber.enable = true;
};
2023-11-17 19:25:12 +01:00
programs.noisetorch = {
enable = true;
};
2024-02-21 12:16:53 +01:00
virtualisation.podman = {
enable = true;
dockerCompat = true;
};
security.tpm2.enable = true;
security.tpm2.pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
security.tpm2.tctiEnvironment.enable = true; # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
users.users.lillian.extraGroups = ["tss"]; # tss group has access to TPM devices
# FIXME: re-enable virtual camera loopback when it build again.
2024-02-21 12:16:53 +01:00
boot.bootspec.enable = true;
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
2024-02-21 12:16:53 +01:00
boot.supportedFilesystems = ["bcachefs"];
# boot.extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out];
2024-02-21 12:16:53 +01:00
boot.kernelModules = [
# Virtual Camera
# "v4l2loopback"
2024-02-21 12:16:53 +01:00
# Virtual Microphone, built-in
"snd-aloop"
];
# Set initial kernel module settings
boot.extraModprobeConfig = ''
# exclusive_caps: Skype, Zoom, Teams etc. will only show device when actually streaming
# card_label: Name of virtual camera, how it'll show up in Skype, Zoom, Teams
# https://github.com/umlaeute/v4l2loopback
# options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
2024-02-21 12:16:53 +01:00
'';
boot.loader.systemd-boot.configurationLimit = 3;
boot.loader.efi.canTouchEfiVariables = true;
}