cos/clhickey-nixos/configuration.nix

261 lines
4.9 KiB
Nix
Raw Normal View History

2025-10-06 13:42:39 -04:00
{ inputs, pkgs, options, config, lib, ... }:
2025-04-09 00:41:08 -04:00
{
imports =
[
./hardware-configuration.nix
2025-10-29 15:47:06 -04:00
../cos.nix
2025-04-09 00:41:08 -04:00
];
2025-10-06 13:42:39 -04:00
cos.username = "clhickey";
cos.hostName = "clhickey-nixos";
2025-04-09 00:41:08 -04:00
boot = {
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
supportedFilesystems = [
"ntfs"
];
binfmt = {
emulatedSystems = [
"aarch64-linux"
];
};
};
2025-10-15 14:18:32 -04:00
services.logind.settings.Login = {
HandlePowerKey="suspend";
};
2025-04-09 00:41:08 -04:00
time.timeZone = "America/New_York";
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";
};
};
2025-10-06 13:42:39 -04:00
networking = {
hostName = config.cos.hostName;
networkmanager.enable = true;
};
2025-10-29 15:47:06 -04:00
cos.wireguard = {
2025-10-06 13:42:39 -04:00
enable = true;
privateKeyFile = "/home/${config.cos.username}/wireguard-keys/private";
};
cos.hyprland = {
enable = true;
2025-10-15 14:17:54 -04:00
wallpaper = builtins.toString ./TranscodedWallpaper.jpeg;
2025-10-06 13:42:39 -04:00
};
2025-10-28 16:21:13 -04:00
# auto-mount USB drives
services.gvfs.enable = true;
services.udisks2.enable = true;
2025-10-06 13:42:39 -04:00
hardware.bluetooth.enable = true;
# For languini
2025-10-29 15:47:06 -04:00
networking.firewall.interfaces.${config.cos.wireguard.interface}.allowedTCPPorts = [
2025-10-06 13:42:39 -04:00
8000
8080
];
2025-04-09 00:41:08 -04:00
services = {
2025-10-06 13:42:39 -04:00
openssh = {
2025-04-09 00:41:08 -04:00
enable = true;
2025-10-06 13:42:39 -04:00
settings = {
PasswordAuthentication = true;
AllowUsers = null;
2025-04-09 00:41:08 -04:00
};
2025-10-06 13:42:39 -04:00
listenAddresses = [
{
port = 22;
2025-10-29 15:47:06 -04:00
addr = config.cos.wireguard.clientInternalIP;
2025-10-06 13:42:39 -04:00
}
];
2025-04-09 00:41:08 -04:00
};
};
virtualisation = {
2025-10-06 13:42:39 -04:00
waydroid = {
enable = false;
};
libvirtd = {
2025-04-09 00:41:08 -04:00
enable = true;
2025-10-06 13:42:39 -04:00
qemu = {
swtpm.enable = true;
ovmf.enable = true;
ovmf.packages = [ pkgs.OVMFFull.fd ];
2025-04-09 00:41:08 -04:00
};
};
2025-10-06 13:42:39 -04:00
virtualbox.host = {
2025-05-03 18:24:46 -04:00
enable = true;
2025-10-06 13:42:39 -04:00
enableKvm = true;
addNetworkInterface = false;
enableExtensionPack = true;
2025-05-03 18:24:46 -04:00
};
2025-10-06 13:42:39 -04:00
spiceUSBRedirection.enable = true;
2025-04-09 00:41:08 -04:00
};
2025-10-06 13:42:39 -04:00
users.users.${config.cos.username} = {
2025-04-09 00:41:08 -04:00
isNormalUser = true;
description = "Clayton Lopez Hickey";
extraGroups = [
"networkmanager"
"wheel"
"adbusers"
"libvirtd"
];
};
nixpkgs.config = {
allowUnfree = true;
android_sdk.accept_license = true;
};
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
2025-10-15 14:18:57 -04:00
2025-10-06 13:42:39 -04:00
nix.settings.trusted-users = [
"root"
"@wheel"
];
2025-04-09 00:41:08 -04:00
environment = {
systemPackages = with pkgs; [
fastfetch
wget
brave
kdePackages.kate
nextcloud-client
obs-studio
vlc
kdePackages.kdenlive
tmux
htop
helvum
libreoffice-fresh
anki-bin
2025-10-06 13:42:39 -04:00
gimp3
2025-04-09 00:41:08 -04:00
audacity
ffmpeg
zoom-us
inkscape
freecad
kdePackages.filelight
prismlauncher
blender
sqlitebrowser
arduino-ide
josm
krita
jetbrains.idea-ultimate
android-studio
gparted
jdk
jdk8
slack
inputs.penn-nix.packages.x86_64-linux.waypoint-client
inputs.cnvim.packages.x86_64-linux.default
osu-lazer-bin
thunderbird-bin
itch
element-desktop
gh
2025-04-10 15:41:08 -04:00
code-cursor
2025-04-09 00:41:08 -04:00
firefox
popsicle
nixfmt-rfc-style
graphviz
alacritty
2025-05-03 18:24:46 -04:00
prismlauncher
2025-10-06 13:42:39 -04:00
google-chrome
trilium-next-desktop
joplin-desktop
sshfs
unityhub
man-pages
man-pages-posix
vulkan-tools
wireshark
dotnetCorePackages.sdk_9_0_1xx-bin # for unit dev
vscode-fhs
2025-10-06 15:59:00 -04:00
discord
2025-10-15 14:19:05 -04:00
aseprite
pixelorama
2025-04-09 00:41:08 -04:00
];
sessionVariables = {
EDITOR = "${inputs.cnvim.packages.x86_64-linux.default}/bin/nvim";
};
};
fonts = {
packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
liberation_ttf
fira-code
fira-code-symbols
mplus-outline-fonts.githubRelease
dina-font
proggyfonts
font-awesome
libre-baskerville
corefonts
vistafonts
];
};
programs = {
adb.enable = true;
steam = {
enable = true;
};
java = {
enable = true;
package = pkgs.jdk;
};
nix-ld = {
enable = true;
libraries = options.programs.nix-ld.libraries.default ++ [
pkgs.xorg.libXext
pkgs.xorg.libX11
pkgs.xorg.libXrender
pkgs.xorg.libXtst
pkgs.xorg.libXi
pkgs.freetype
];
};
virt-manager.enable = true;
ladybird = {
2025-10-06 13:42:39 -04:00
enable = true;
2025-04-09 00:41:08 -04:00
};
git = {
enable = true;
};
};
2025-10-06 13:42:39 -04:00
documentation.dev.enable = true;
2025-04-09 00:41:08 -04:00
2025-10-06 13:42:39 -04:00
home-manager.users.${config.cos.username} = { pkgs, ... }: {
2025-04-09 00:41:08 -04:00
home.stateVersion = "24.11";
};
system.stateVersion = "24.11";
}