I am batman
This commit is contained in:
201
hosts/nixos/configuration.nix
Normal file
201
hosts/nixos/configuration.nix
Normal file
@@ -0,0 +1,201 @@
|
||||
{ config, pkgs, inputs, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix # Include hardware scan results.
|
||||
];
|
||||
|
||||
boot.loader.grub = {
|
||||
enable = true;
|
||||
efiSupport = true;
|
||||
device = "nodev";
|
||||
useOSProber = true;
|
||||
};
|
||||
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
networking = {
|
||||
hostName = "nixos";
|
||||
networkmanager.enable = true; # Enable NetworkManager
|
||||
nameservers = ["192.168.1.2"];
|
||||
};
|
||||
|
||||
time.timeZone = "America/Detroit";
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
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";
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
users.users.cody = {
|
||||
isNormalUser = true;
|
||||
description = "cody";
|
||||
extraGroups = [ "wheel" "networkmanager" "libvirtd" "kvm" "qemu" "docker" ];
|
||||
packages = with pkgs; [ ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
home-manager.users.cody = import ./home.nix;
|
||||
|
||||
nixpkgs.overlays = [
|
||||
inputs.nur.overlays.default
|
||||
];
|
||||
|
||||
nixpkgs.config.android_sdk.accept_license = true;
|
||||
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
xkb.layout = "us";
|
||||
displayManager.lightdm = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
tailscale.enable = true;
|
||||
|
||||
displayManager.defaultSession = "hyprland";
|
||||
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
resolved.enable = false;
|
||||
|
||||
blueman.enable = true;
|
||||
};
|
||||
|
||||
|
||||
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
libvirtd.enable = true; # Enables libvirt daemon and KVM support
|
||||
docker.enable = true; # Enable this only if you want Docker
|
||||
};
|
||||
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
|
||||
boot.kernelModules = [
|
||||
"kvm"
|
||||
"kvm-intel"
|
||||
"v4l2loopback"
|
||||
];
|
||||
|
||||
fonts = {
|
||||
fontconfig.enable = true;
|
||||
fontconfig.defaultFonts.monospace = [ "Meslo LG M Regular Nerd Font Complete Mono" ];
|
||||
packages = with pkgs; [
|
||||
nerd-fonts.meslo-lg
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.agave
|
||||
font-awesome
|
||||
powerline-fonts
|
||||
powerline-symbols
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
lastpass-cli
|
||||
wget
|
||||
git
|
||||
docker
|
||||
xhost
|
||||
docker-compose
|
||||
gnumake42
|
||||
go
|
||||
cmake
|
||||
gcc
|
||||
gdb
|
||||
networkmanagerapplet
|
||||
kdenlive
|
||||
postman
|
||||
pywalfox-native
|
||||
vlc
|
||||
xcolor
|
||||
adb-sync
|
||||
wl-clipboard
|
||||
cliphist
|
||||
wtype
|
||||
nwg-look
|
||||
tailscale
|
||||
libsForQt5.qt5.qtgraphicaleffects
|
||||
linuxPackages.v4l2loopback # Kernel module for virtual webcam
|
||||
alsa-utils # Audio support
|
||||
v4l-utils # Video4Linux tools
|
||||
pipewire
|
||||
libsForQt5.qt5.qtmultimedia
|
||||
qemu
|
||||
libvirt
|
||||
virt-manager
|
||||
bridge-utils # For networking support
|
||||
dnsmasq # DHCP for VM networking
|
||||
ebtables # NAT support for VMs
|
||||
grim
|
||||
nload
|
||||
htop
|
||||
atop
|
||||
iftop
|
||||
slurp
|
||||
grimblast
|
||||
swappy
|
||||
dunst
|
||||
jq
|
||||
moreutils
|
||||
hyprland
|
||||
libnotify
|
||||
coreutils
|
||||
hyprshade
|
||||
unityhub
|
||||
pkg-config
|
||||
mkinitcpio-nfs-utils
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libXrandr
|
||||
xorg.libXinerama
|
||||
xorg.libXi
|
||||
mesa
|
||||
libGL
|
||||
alsa-lib
|
||||
adwaita-icon-theme
|
||||
papirus-icon-theme
|
||||
bibata-cursors
|
||||
blueman
|
||||
chromium
|
||||
|
||||
bind
|
||||
iproute2
|
||||
iputils
|
||||
traceroute
|
||||
mtr
|
||||
tcpdump
|
||||
];
|
||||
|
||||
# Miscellaneous Settings
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
# System State Version
|
||||
system.stateVersion = "25.11";
|
||||
}
|
||||
31
hosts/nixos/hardware-configuration.nix
Normal file
31
hosts/nixos/hardware-configuration.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/7f7c0193-c0bc-47ad-9be3-0d48d83e489a";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/E646-95CD";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
100
hosts/nixos/home.nix
Normal file
100
hosts/nixos/home.nix
Normal file
@@ -0,0 +1,100 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../../modules
|
||||
];
|
||||
|
||||
home.username = "cody";
|
||||
home.homeDirectory = "/home/cody";
|
||||
home.stateVersion = "24.11";
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
kitty
|
||||
screenkey
|
||||
docker
|
||||
tree
|
||||
ffmpeg
|
||||
tilt
|
||||
unzip
|
||||
gimp
|
||||
ripgrep
|
||||
fzf
|
||||
lsd
|
||||
lazygit
|
||||
opencode
|
||||
neofetch
|
||||
fastfetch
|
||||
tree
|
||||
git
|
||||
nodejs_22
|
||||
zig
|
||||
tailwindcss
|
||||
templ
|
||||
imagemagick
|
||||
go-blueprint
|
||||
protobuf
|
||||
air
|
||||
pywal
|
||||
bat
|
||||
# go_1_24
|
||||
# go-tools
|
||||
# Protocol buffers
|
||||
# protobuf
|
||||
# Go protoc plugins
|
||||
# protoc-gen-go
|
||||
# protoc-gen-go-grpc
|
||||
cava
|
||||
w3m
|
||||
nwg-displays
|
||||
(writeShellScriptBin "protoc-gen-go" ''
|
||||
export PATH=$HOME/.go/bin:$PATH
|
||||
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
|
||||
'')
|
||||
|
||||
(writeShellScriptBin "protoc-gen-go-grpc" ''
|
||||
export PATH=$HOME/.go/bin:$PATH
|
||||
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
|
||||
'')
|
||||
];
|
||||
|
||||
modules.android = {
|
||||
enable = false;
|
||||
enableEmulator = false;
|
||||
apiLevel = 34;
|
||||
enableFlutterSupport = false;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
SHELL = "${pkgs.zsh}/bin/zsh";
|
||||
};
|
||||
|
||||
programs.dircolors.enable = true;
|
||||
|
||||
home.file.".p10k.zsh".source = ../../.p10k.zsh;
|
||||
|
||||
home.activation.copyScripts =
|
||||
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
mkdir -p ~/.local/share/bin
|
||||
rm -rf ~/.local/share/bin/*
|
||||
cp -r ${../../scripts}/* ~/.local/share/bin/
|
||||
chmod +x ~/.local/share/bin/*
|
||||
if [ -x ~/.local/share/bin/tmux-session-manager.sh ] && [ ! -e ~/.local/share/bin/tmux-session-manager ]; then
|
||||
ln -s ~/.local/share/bin/tmux-session-manager.sh ~/.local/share/bin/tmux-session-manager
|
||||
fi
|
||||
'';
|
||||
|
||||
home.activation.setupFirefoxCalendarProfile =
|
||||
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
bash ~/.local/share/bin/setup-firefox-calendar-profile.sh
|
||||
'';
|
||||
|
||||
home.activation.copyWallpapers =
|
||||
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
mkdir -p ~/Pictures/wallpapers
|
||||
rm -rf ~/Pictures/wallpapers/*
|
||||
cp -r ${../../wallpapers}/* ~/Pictures/wallpapers/
|
||||
'';
|
||||
}
|
||||
16
hosts/nixos/sddm-theme.nix
Normal file
16
hosts/nixos/sddm-theme.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ pkgs }:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "sddm-theme";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "MarianArlt";
|
||||
repo = "sddm-sugar-dark";
|
||||
rev = "ceb2c455663429be03ba62d9f898c571650ef7fe";
|
||||
sha256 = "0153z1kylbhc9d12nxy9vpn0spxgrhgy36wy37pk6ysq7akaqlvy";
|
||||
};
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -R ./* $out/
|
||||
'';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user