nixos/hosts/murex-pecten/default.nix

187 lines
4.9 KiB
Nix
Raw Normal View History

2022-01-06 10:22:46 +01:00
{
pkgs,
inputs,
...
}: {
imports = [
inputs.nixos-hardware.nixosModules.common-pc
inputs.nixos-hardware.nixosModules.common-pc-ssd
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-gpu-amd
inputs.self.nixosModules.homeManagerConfig
inputs.custom-udev-rules.nixosModule
2024-01-15 15:59:54 +01:00
../../hardware/aorus.nix
];
2022-01-06 10:22:46 +01:00
config = {
# Use the systemd-boot EFI boot loader.
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
2022-01-06 10:22:46 +01:00
networking = {
hostName = "murex-pecten";
networkmanager.enable = true;
};
2022-01-06 10:22:46 +01:00
system.fsPackages = [pkgs.sshfs];
2022-12-01 18:08:49 +01:00
nixpkgs.overlays = [
inputs.nixpkgs-wayland.overlay
];
settings.minimalGnome.enable = true;
2022-02-09 15:11:24 +01:00
sound.enable = true;
security.rtkit.enable = true;
services.pipewire = {
2022-02-09 15:11:24 +01:00
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
# config.pipewire-pulse."stream.properties" = {
# "channelmix.upmix" = true;
# "channelmix.lfe-cutoff" = 150;
# };
# config.pipewire."default.clock.allowed-rates" = [48000 44100];
# media-session.config.alsa-monitor = {
# rules = [
# {
# matches = [
# {
# "node.name" = "alsa_output.usb-Focusrite_Scarlett_Solo_USB_Y7ENM550A6399B-00.pro-output-0";
# }
# ];
# actions = {
# update-props = {
# #"audio.rate" = 96000;
# "api.alsa.headroom" = 1024;
# };
# };
# }
# ];
# };
};
2022-01-06 10:22:46 +01:00
xdg.portal = {
2022-01-06 10:22:46 +01:00
enable = true;
config.common.default = "*";
extraPortals = with pkgs; [xdg-desktop-portal-gtk];
2022-01-06 10:22:46 +01:00
};
hardware = {
opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
extraPackages = with pkgs; [amdvlk];
extraPackages32 = with pkgs; [driversi686Linux.amdvlk];
};
2022-01-11 13:09:35 +01:00
};
users.mutableUsers = false;
users.custom.marie.enable = false;
users.custom.malte.enable = true;
fonts = {
enableDefaultPackages = true;
packages = with pkgs; [hackNerdLigatures noto-fonts noto-fonts-cjk joypixels];
fontconfig = {
enable = true;
defaultFonts.monospace = ["Hack NF FC Ligatured"];
};
};
2022-01-11 13:09:35 +01:00
# Configure GPG with SSH support and enable the yubikey
programs.gnupg.agent = {
2022-01-06 10:22:46 +01:00
enable = true;
enableSSHSupport = true;
pinentryFlavor = "qt";
2022-01-06 10:22:46 +01:00
};
security.pam = {
yubico = {
enable = false;
mode = "challenge-response";
control = "sufficient";
};
services.login.yubicoAuth = true;
};
2022-01-06 10:22:46 +01:00
services.udev.customRules = [
# Rename the Scarlett Solo using udev
{
name = "85-scarlett-solo";
rules = ''
SUBSYSTEM=="usb", ENV{ID_MODEL_ID}=="8211", ENV{ID_VENDOR_ID}=="1235", TAG+="systemd", SYMLINK+="scarlett_solo"
'';
}
{
name = "85-yubikey";
rules = ''
SUBSYSTEM=="usb", ENV{ID_MODEL_ID}=="0407", ENV{ID_VENDOR_ID}=="1050", TAG+="systemd", SYMLINK+="yubikey"
'';
}
];
# TODO: This defaults to true, why does it not work with virtualisation.containers.enable?
boot.enableContainers = false;
virtualisation = {
podman = {
enable = true;
# Create a `docker` alias for podman, to use it as a drop-in replacement
dockerCompat = true;
dockerSocket.enable = true;
};
};
2022-01-06 10:22:46 +01:00
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
};
programs.corectrl.enable = true;
services.dbus.packages = with pkgs; [openrgb];
services.udev.packages = with pkgs; [
yubikey-personalization
chrysalis
openrgb
i2c-tools
gnome3.gnome-settings-daemon
qmk-udev-rules
vial
];
2024-01-15 15:59:54 +01:00
sops.defaultSopsFile = ../../secrets/hosts/murex-pecten/secrets.yaml;
sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
environment.systemPackages = with pkgs; [
qt5.qtwayland
thunderbolt
chrysalis
openrgb
gnomeExtensions.appindicator
qmk
vial
];
services.fwupd.enable = true;
services.devmon.enable = true;
services.ratbagd.enable = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.11"; # Did you read the comment?
};
2022-01-06 10:22:46 +01:00
}