cos/clhickey-nixos/configuration.nix

284 lines
5.3 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
];
2026-03-08 14:55:34 -04:00
nixpkgs.overlays = [
inputs.nix-bwrapper.overlays.default
];
2025-10-06 13:42:39 -04:00
cos.username = "clhickey";
cos.hostName = "clhickey-nixos";
2025-04-09 00:41:08 -04:00
cos.winboat.enable = true;
cos.docker.enable = true;
2025-11-16 10:46:59 -05:00
cos.remoteBuild.enable = false;
2025-12-04 17:38:28 -05:00
cos.emacs.enable = true;
cos.emacs.org-directory = "~/Nextcloud/Emacs/org/";
2025-11-04 13:58:34 -05:00
2025-11-18 17:14:20 -05:00
cos.gnupg.enable = true;
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-11-09 15:24:40 -05: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;
2025-04-09 00:41:08 -04:00
};
};
2025-10-06 13:42:39 -04:00
virtualbox.host = {
2026-03-14 01:15:28 -04:00
enable = false;
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;
};
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
2026-03-14 01:15:40 -04:00
crosspipe
2025-04-09 00:41:08 -04:00
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
2026-02-08 17:21:46 -05:00
jetbrains.idea
2025-04-09 00:41:08 -04:00
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
2026-02-08 17:21:46 -05:00
nixfmt
2025-04-09 00:41:08 -04:00
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-11-04 13:58:52 -05:00
dig
ncdu
2025-11-18 14:11:06 -05:00
servo
2025-11-19 14:48:05 -05:00
tcpdump
2025-12-19 11:17:45 -05:00
kicad
2026-02-08 15:28:54 -05:00
orca-slicer
2026-02-08 17:21:46 -05:00
android-tools
2026-03-08 14:55:34 -04:00
obsidian
#(pkgs.mkBwrapper {
# app = {
# package = pkgs.obsidian;
# runScript = "obsidian";
# };
# mounts.readWrite = [
# "$HOME/git/Journal"
# ];
#})
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
2025-11-04 13:58:52 -05:00
noto-fonts-color-emoji
2025-04-09 00:41:08 -04:00
liberation_ttf
fira-code
fira-code-symbols
mplus-outline-fonts.githubRelease
dina-font
proggyfonts
font-awesome
libre-baskerville
corefonts
2025-11-04 13:58:52 -05:00
vista-fonts
2025-04-09 00:41:08 -04:00
];
};
programs = {
steam = {
enable = true;
};
java = {
enable = true;
package = pkgs.jdk;
};
nix-ld = {
enable = true;
libraries = options.programs.nix-ld.libraries.default ++ [
2026-03-14 01:16:07 -04:00
pkgs.libXext
pkgs.libX11
pkgs.libXrender
pkgs.libXtst
pkgs.libXi
2025-04-09 00:41:08 -04:00
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";
}