204 lines
6.0 KiB
Nix
204 lines
6.0 KiB
Nix
{ config, pkgs, lib, inputs, ... }:
|
|
|
|
{
|
|
imports =
|
|
[
|
|
./hardware-configuration.nix
|
|
|
|
inputs.disko.nixosModules.default
|
|
|
|
(import ./disko.nix { device1 = "/dev/nvme0n1"; device2 = "/dev/nvme1n1"; device3 = "/dev/sda"; })
|
|
|
|
inputs.sops-nix.nixosModules.sops
|
|
|
|
inputs.home-manager.nixosModules.default
|
|
|
|
];
|
|
|
|
config = {
|
|
boot = {
|
|
kernelPackages = pkgs.linuxKernel.packages.linux_6_16;
|
|
loader = {
|
|
systemd-boot.enable = true;
|
|
efi.canTouchEfiVariables = true;
|
|
};
|
|
binfmt.emulatedSystems = lib.mkIf config.sysconfig.remoteBuildHost [ "aarch64-linux" ];
|
|
};
|
|
|
|
hardware = {
|
|
|
|
graphics.enable = true;
|
|
|
|
nvidia = {
|
|
modesetting.enable = true;
|
|
open = false;
|
|
nvidiaSettings = true;
|
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
};
|
|
|
|
bluetooth.enable = true;
|
|
|
|
};
|
|
|
|
services = {
|
|
xserver = {
|
|
#enable = true;
|
|
videoDrivers = ["nvidia"];
|
|
};
|
|
displayManager = {
|
|
enable = true;
|
|
defaultSession = "hyprland";
|
|
autoLogin = {
|
|
enable = true;
|
|
user = "nathan";
|
|
};
|
|
};
|
|
pulseaudio.enable = false;
|
|
};
|
|
|
|
systemd.extraConfig = "DefaultLimitNOFILE=2048";
|
|
|
|
environment.sessionVariables = {
|
|
WLR_BACKENDS = "headless";
|
|
WLR_LIBINPUT_NO_DEVICES = "1";
|
|
};
|
|
|
|
programs.zsh.enable = true;
|
|
environment.shells = with pkgs; [ zsh bashInteractive ];
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
services.displayManager.sddm.settings.AutoLogin = {
|
|
User = "nathan";
|
|
Session = "hyprland";
|
|
Relogin = true;
|
|
};
|
|
|
|
networking = {
|
|
nameservers = lib.mkDefault [ "1.1.1.1" "1.0.0.1" ];
|
|
networkmanager = {
|
|
enable = true;
|
|
dns = "none";
|
|
};
|
|
|
|
nftables = {};
|
|
nat = {
|
|
enable = true;
|
|
internalInterfaces = [ "ve-+" ];
|
|
externalInterface = "enp6s0";
|
|
};
|
|
};
|
|
|
|
system.stateVersion = "23.05"; # Did you read the comment?
|
|
|
|
sops = {
|
|
age.keyFile = "/home/nathan/.config/sops/age/keys.txt";
|
|
defaultSopsFile = ./secrets.yaml;
|
|
defaultSopsFormat = "yaml";
|
|
|
|
secrets = {
|
|
"nathan/pass" = {
|
|
neededForUsers = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
services.getty = {
|
|
autologinUser = "nathan";
|
|
};
|
|
|
|
programs.zsh.shellInit = ''
|
|
if [ -z "''${WAYLAND_DISPLAY}" ] && [ "''${XDG_VTNR}" -eq 1 ]; then
|
|
dbus-run-session Hyprland
|
|
fi
|
|
'';
|
|
|
|
systemd.services.hyprland = {};
|
|
|
|
sysconfig = {
|
|
remoteBuildHost = true;
|
|
host = "homebox";
|
|
graphical = true;
|
|
users = {
|
|
nathan = {
|
|
extraGroups = [ "wheel" "networkmanager" ];
|
|
sshKeys = [
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsU69CxfQk58CvItPN426h5Alnpb60SH37wet97Vb57 nathan@laptop"
|
|
];
|
|
shell = pkgs.zsh;
|
|
hashedPasswordFile = config.sops.secrets."nathan/pass".path;
|
|
home-manager = {
|
|
enable = true;
|
|
extraModules = [
|
|
{
|
|
homeconfig = {
|
|
minimal = false;
|
|
hyprland.enable = true;
|
|
swaylock.enable = true;
|
|
wal.enable = true;
|
|
mpd.enable = true;
|
|
hyprpanel.enable = true;
|
|
calcurse.enable = true;
|
|
rofi.enable = true;
|
|
firefox.enable = true;
|
|
git.enable = true;
|
|
nh.enable = true;
|
|
};
|
|
|
|
home.packages = [
|
|
pkgs.wayvnc
|
|
];
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
services = {
|
|
sddm.enable = false;
|
|
openssh.enable = true;
|
|
pipewire.enable = true;
|
|
netbird.enable = true;
|
|
minecraft.enable = false;
|
|
};
|
|
|
|
programs = {
|
|
hyprland.enable = true;
|
|
hyprpanel.enable = true;
|
|
steam.enable = false;
|
|
};
|
|
|
|
virtualization = {
|
|
traefik.enable = true;
|
|
jellyfin.enable = true;
|
|
"blunkall.us".enable = true;
|
|
nextcloud.enable = true;
|
|
ntfy.enable = false;
|
|
gitea.enable = true;
|
|
n8n.enable = true;
|
|
keycloak.enable = true;
|
|
netbird.enable = true;
|
|
ollama.enable = true;
|
|
homeassistant.enable = true;
|
|
wyoming = {
|
|
enable = true;
|
|
piper = false;
|
|
openwakeword = true;
|
|
faster-whisper = true;
|
|
};
|
|
rustdesk.enable = false; #broken
|
|
pihole.enable = false; #broken
|
|
code-server.enable = false;
|
|
novnc.enable = true;
|
|
minecraft.enable = true;
|
|
|
|
sandbox.enable = false;
|
|
};
|
|
};
|
|
|
|
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
|
|
|
|
};
|
|
|
|
}
|