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 = ./firmware;
|
||
# 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";
|
||
}
|