feature(modules): split configuration into nix modules and home-manager modules #2
@@ -1,200 +1,23 @@
|
||||
{ pkgs, lib, inputs, ... }:
|
||||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./hardware-configuration.nix
|
||||
imports = [
|
||||
../../modules/nixos/bootloader.nix
|
||||
../../modules/nixos/audio.nix
|
||||
../../modules/nixos/compositor.nix
|
||||
../../modules/nixos/gnupg.nix
|
||||
../../modules/nixos/locales.nix
|
||||
../../modules/nixos/networking.nix
|
||||
../../modules/nixos/noctalia.nix
|
||||
../../modules/nixos/openssh.nix
|
||||
../../modules/nixos/packages.nix
|
||||
../../modules/nixos/sddm.nix
|
||||
../../modules/nixos/services.nix
|
||||
../../modules/nixos/settings.nix
|
||||
../../modules/nixos/steam.nix
|
||||
../../modules/nixos/users.nix
|
||||
];
|
||||
|
||||
# use flakes
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
# configure bootloader
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# plymouth boot eye candy
|
||||
boot.initrd.systemd.enable = true;
|
||||
boot.kernelParams = [ "quiet" "loglevel=2" ];
|
||||
boot.plymouth.enable = true;
|
||||
boot.plymouth.theme = "spinner";
|
||||
|
||||
# use latest kernel
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# networking
|
||||
networking.hostName = "neon";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
# time zone.
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
|
||||
# select internationalisation properties
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "de_CH-latin1";
|
||||
};
|
||||
|
||||
# set up niri as window manager
|
||||
programs.niri.enable = true;
|
||||
# set up sddm ad display manager
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland = {
|
||||
enable = true;
|
||||
};
|
||||
autoNumlock = true;
|
||||
enableHidpi = true;
|
||||
theme = "sddm-astronaut-theme";
|
||||
settings = {
|
||||
Theme = {
|
||||
Current = "sddm-astronaut-theme";
|
||||
};
|
||||
};
|
||||
extraPackages = with pkgs; [
|
||||
sddm-astronaut
|
||||
];
|
||||
};
|
||||
|
||||
services.tuned.enable = true;
|
||||
services.upower.enable = true;
|
||||
|
||||
environment.pathsToLink = [ "/libexec" ];
|
||||
environment.variables.EDITOR = "vim";
|
||||
|
||||
# enable sound
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# define a user account
|
||||
users.users.aaron = {
|
||||
isNormalUser = true;
|
||||
group = "users";
|
||||
extraGroups = [ "wheel" ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
# browser
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# zsh config
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestions.enable = true;
|
||||
ohMyZsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" "sudo" ];
|
||||
theme = "gentoo";
|
||||
};
|
||||
};
|
||||
|
||||
# system packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
alacritty
|
||||
btop
|
||||
cowsay
|
||||
dnsutils
|
||||
efibootmgr
|
||||
ethtool
|
||||
file
|
||||
ghostty
|
||||
git
|
||||
gnupg
|
||||
iftop
|
||||
imagemagick
|
||||
imv
|
||||
iotop
|
||||
iperf3
|
||||
jq
|
||||
kdePackages.qtmultimedia
|
||||
kitty
|
||||
ldns
|
||||
lm_sensors
|
||||
lsof
|
||||
ltrace
|
||||
mtr
|
||||
neovim
|
||||
nh
|
||||
nix-output-monitor
|
||||
nmap
|
||||
nvd
|
||||
p7zip
|
||||
pciutils
|
||||
sddm-astronaut
|
||||
socat
|
||||
strace
|
||||
sysstat
|
||||
tree
|
||||
unzip
|
||||
usbutils
|
||||
vim
|
||||
wget
|
||||
which
|
||||
xwayland-satellite
|
||||
xz
|
||||
zip
|
||||
zstd
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers
|
||||
programs.mtr.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# enable steam on this machine
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
|
||||
# fix black screen in steam on xwayland-satellite
|
||||
programs.steam.package = pkgs.steam.override {
|
||||
extraArgs = "-system-composer";
|
||||
};
|
||||
|
||||
# enable the OpenSSH daemon
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
# firewall configs
|
||||
networking.firewall.allowedTCPPorts = [ ];
|
||||
networking.firewall.allowedUDPPorts = [ ];
|
||||
|
||||
# enable home-manager globally
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.backupFileExtension = "backup";
|
||||
|
||||
# add flake env variable for nh
|
||||
environment.sessionVariables = {
|
||||
NH_FLAKE = "/home/aaron/git/nixconfig";
|
||||
};
|
||||
|
||||
# install state version
|
||||
system.stateVersion = "25.11"; # Don't change
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user