Skip to content

Instantly share code, notes, and snippets.

@colonelpanic8
Created August 18, 2021 17:41
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save colonelpanic8/f1605af853b01cbf54317377063bee16 to your computer and use it in GitHub Desktop.
Save colonelpanic8/f1605af853b01cbf54317377063bee16 to your computer and use it in GitHub Desktop.
{
inputs = {
nixos-hardware.url = github:IvanMalison/nixos-hardware;
nixpkgs = {
url = github:NixOS/nixpkgs/nixos-unstable;
};
};
outputs = { self, nixpkgs, nixos-hardware }:
let configuration = { config, pkgs, ... }:
{
imports = [
nixos-hardware.nixosModules.raspberry-pi-4
];
nixpkgs.config.allowUnfree = true;
programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
networking.firewall.enable = false;
networking.networkmanager.enable = true;
sound.enable = true;
hardware.pulseaudio.enable = true;
# Keyboard/Keymap
console.keyMap = "us";
i18n = {
defaultLocale = "en_US.UTF-8";
};
# Update timezone automatically
services.tzupdate.enable = true;
nix = {
extraOptions = ''
experimental-features = nix-command flakes ca-references
'';
};
hardware.raspberry-pi."4".fkms-3d.enable = true;
hardware.raspberry-pi."4".audio.enable = true;
boot = {
kernelPackages = pkgs.linuxPackages_rpi4;
tmpOnTmpfs = true;
loader = {
grub.enable = false;
generic-extlinux-compatible.enable = true;
raspberryPi = {
enable = true;
version = 4;
firmwareConfig = ''
dtparam=audio=on
hdmi_drive=2
'';
};
};
};
services.xserver = {
exportConfiguration = true;
enable = true;
layout = "us";
desktopManager.gnome.enable = true;
displayManager.gdm.enable = true;
};
hardware.enableRedistributableFirmware = true;
networking.useDHCP = false;
networking.interfaces.eth0.useDHCP = true;
networking.interfaces.wlan0.useDHCP = true;
powerManagement.cpuFreqGovernor = "ondemand";
fileSystems."/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
options = [ "noatime" ];
};
users.extraUsers = {
khushboo = {
name = "khushboo";
group = "users";
isNormalUser = true;
createHome = true;
extraGroups = [
"audio"
"disk"
"networkmanager"
"plugdev"
"systemd-journal"
"video"
"wheel"
];
};
};
environment.systemPackages = with pkgs; [
raspberrypi-eeprom
vim
firefox
dolphin
binutils
gawk
gitFull
htop
ncdu
lsof
ripgrep
tmux
usbutils
wget
ic-keysmith
quill
quill-qr
];
};
in {
nixosConfigurations = {
air-gapped-pi = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
modules = [ configuration ];
};
};
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment