This allows us to avoid intermixing firmware within the repository. We already must build this specific flake configuration as impure due to mesa replacement. This may be revisited in the future, but it allows for significantly less hassle at the moment.
97 lines
2.1 KiB
Nix
97 lines
2.1 KiB
Nix
# Edit this configuration file to define what should be installed on
|
||
# your system. Help is available in the configuration.nix(5) man page, on
|
||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||
|
||
{ config, lib, pkgs, ... }:
|
||
|
||
{
|
||
|
||
imports = [
|
||
./hardware-configuration.nix
|
||
];
|
||
|
||
nix.settings.experimental-features = [ "flakes" "nix-command" ];
|
||
|
||
# Use the systemd-boot EFI boot loader.
|
||
boot.loader.systemd-boot.enable = true;
|
||
boot.loader.efi.canTouchEfiVariables = false;
|
||
# GPU enablement
|
||
hardware.asahi = {
|
||
peripheralFirmwareDirectory = /boot/asahi;
|
||
# GPU enablement
|
||
useExperimentalGPUDriver = true;
|
||
experimentalGPUInstallMode = "replace";
|
||
withRust = true;
|
||
};
|
||
|
||
networking = {
|
||
hostName = "spotlights-macbook-air";
|
||
wireless.iwd = {
|
||
enable = true;
|
||
settings.General.EnableNetworkConfiguration = true;
|
||
};
|
||
networkmanager.enable = true;
|
||
};
|
||
|
||
services = {
|
||
# Enable GNOME
|
||
xserver = {
|
||
enable = true;
|
||
displayManager.gdm.enable = true;
|
||
desktopManager.gnome.enable = true;
|
||
};
|
||
avahi = {
|
||
enable = true;
|
||
# Enable .local resolution
|
||
nssmdns4 = true;
|
||
};
|
||
|
||
# Enable CUPS to print documents.
|
||
printing.enable = true;
|
||
};
|
||
|
||
# Our user account.
|
||
programs.zsh.enable = true;
|
||
users.users.spotlight = {
|
||
isNormalUser = true;
|
||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||
shell = pkgs.zsh;
|
||
};
|
||
|
||
environment.systemPackages = with pkgs; [
|
||
cachix
|
||
firefox
|
||
git
|
||
htop
|
||
gnomeExtensions.appindicator
|
||
legcord
|
||
minicom
|
||
nix-output-monitor
|
||
python3
|
||
seafile-client
|
||
telegram-desktop
|
||
tmux
|
||
usbutils
|
||
vim
|
||
vscode
|
||
wget
|
||
];
|
||
|
||
# :(
|
||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||
"vscode"
|
||
];
|
||
|
||
# Allow location services.
|
||
location.provider = "geoclue2";
|
||
services.geoclue2.enable = true;
|
||
|
||
# Some programs need SUID wrappers, can be configured further or are
|
||
# started in user sessions.
|
||
programs.gnupg.agent = {
|
||
enable = true;
|
||
pinentryPackage = pkgs.pinentry-gnome3;
|
||
};
|
||
|
||
system.stateVersion = "24.05";
|
||
}
|