ai vm stuff
This commit is contained in:
130
nix/ai-vm.nix
Normal file
130
nix/ai-vm.nix
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ # Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
<home-manager/nixos>
|
||||||
|
];
|
||||||
|
|
||||||
|
# Bootloader.
|
||||||
|
boot.loader.grub.enable = true;
|
||||||
|
boot.loader.grub.device = "/dev/vda";
|
||||||
|
boot.loader.grub.useOSProber = true;
|
||||||
|
|
||||||
|
networking.hostName = "nixos"; # Define your hostname.
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
time.timeZone = "America/Denver";
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
i18n.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";
|
||||||
|
};
|
||||||
|
|
||||||
|
#https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
|
||||||
|
systemd.services."getty@tty1".enable = false;
|
||||||
|
systemd.services."autovt@tty1".enable = false;
|
||||||
|
|
||||||
|
services.xserver.enable = true;
|
||||||
|
services.xserver.displayManager = {
|
||||||
|
gdm.enable = true;
|
||||||
|
autoLogin = {
|
||||||
|
enable = true;
|
||||||
|
user = "alex";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.xserver.desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
|
# Configure keymap in X11
|
||||||
|
services.xserver.xkb = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "";
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
users.users.alex = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "alex";
|
||||||
|
extraGroups = [ "networkmanager" "wheel" "docker" ];
|
||||||
|
shell = pkgs.fish;
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
lazydocker
|
||||||
|
btop
|
||||||
|
nvtopPackages.nvidia
|
||||||
|
uv
|
||||||
|
git
|
||||||
|
];
|
||||||
|
};
|
||||||
|
home-manager.users.alex = { pgks, ...}: {
|
||||||
|
home.stateVersion = "24.11";
|
||||||
|
imports = [
|
||||||
|
./home-manager/ai-vm.home.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.firefox.enable = true;
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
system.stateVersion = "24.11"; # Did you read the comment?
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
vim
|
||||||
|
];
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
|
||||||
|
programs.fish.enable = true;
|
||||||
|
services.tailscale.enable = true;
|
||||||
|
services.openssh.enable = true;
|
||||||
|
services.qemuGuest.enable = true;
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
hardware.steam-hardware.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
systemd.targets.sleep.enable = false;
|
||||||
|
systemd.targets.suspend.enable = false;
|
||||||
|
systemd.targets.hibernate.enable = false;
|
||||||
|
systemd.targets.hybrid-sleep.enable = false;
|
||||||
|
# gaming stuff
|
||||||
|
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
services.sunshine = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
capSysAdmin = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
hardware.graphics = {
|
||||||
|
enable32Bit = true;
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
open = true;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
};
|
||||||
|
virtualisation.docker.enableNvidia = true;
|
||||||
|
hardware.nvidia-container-toolkit.enable = true;
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
}
|
||||||
117
nix/home-manager/ai-vm.home.nix
Normal file
117
nix/home-manager/ai-vm.home.nix
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
vscode-fhs
|
||||||
|
gnome-software
|
||||||
|
gnome-tweaks
|
||||||
|
nvtopPackages.nvidia
|
||||||
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.droid-sans-mono
|
||||||
|
ghostty
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
programs.ghostty = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
dconf.enable = true;
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
|
toggle-maximized=["<Super>m"];
|
||||||
|
};
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
||||||
|
binding = "<Super>t";
|
||||||
|
command = "ghostty";
|
||||||
|
name = "terminal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = {
|
||||||
|
name = "Adwaita-dark";
|
||||||
|
package = pkgs.gnome-themes-extra;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
shellInit = ''
|
||||||
|
function commit
|
||||||
|
git add --all
|
||||||
|
git commit -m "$argv"
|
||||||
|
git push
|
||||||
|
end
|
||||||
|
|
||||||
|
# have ctrl+backspace delete previous word
|
||||||
|
bind \e\[3\;5~ kill-word
|
||||||
|
# have ctrl+delete delete following word
|
||||||
|
bind \b backward-kill-word
|
||||||
|
|
||||||
|
set -U fish_user_paths ~/.local/bin $fish_user_paths
|
||||||
|
#set -U fish_user_paths ~/.dotnet $fish_user_paths
|
||||||
|
#set -U fish_user_paths ~/.dotnet/tools $fish_user_paths
|
||||||
|
|
||||||
|
export VISUAL=vim
|
||||||
|
export EDITOR="$VISUAL"
|
||||||
|
export DOTNET_WATCH_RESTART_ON_RUDE_EDIT=1
|
||||||
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||||
|
set -x LIBVIRT_DEFAULT_URI qemu:///system
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
home.file = {
|
||||||
|
".config/lazydocker/config.yml".text = ''
|
||||||
|
gui:
|
||||||
|
returnImmediately: true
|
||||||
|
screenMode: "half"
|
||||||
|
'';
|
||||||
|
".config/k9s/config.yaml".text = ''
|
||||||
|
k9s:
|
||||||
|
liveViewAutoRefresh: true
|
||||||
|
screenDumpDir: /home/alexm/.local/state/k9s/screen-dumps
|
||||||
|
refreshRate: 2
|
||||||
|
maxConnRetry: 5
|
||||||
|
readOnly: false
|
||||||
|
noExitOnCtrlC: false
|
||||||
|
ui:
|
||||||
|
enableMouse: false
|
||||||
|
headless: false
|
||||||
|
logoless: false
|
||||||
|
crumbsless: false
|
||||||
|
reactive: false
|
||||||
|
noIcons: false
|
||||||
|
defaultsToFullScreen: false
|
||||||
|
skipLatestRevCheck: false
|
||||||
|
disablePodCounting: false
|
||||||
|
shellPod:
|
||||||
|
image: busybox:1.35.0
|
||||||
|
namespace: default
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 100Mi
|
||||||
|
imageScans:
|
||||||
|
enable: false
|
||||||
|
exclusions:
|
||||||
|
namespaces: []
|
||||||
|
labels: {}
|
||||||
|
logger:
|
||||||
|
tail: 1000
|
||||||
|
buffer: 5000
|
||||||
|
sinceSeconds: -1
|
||||||
|
textWrap: false
|
||||||
|
showTime: false
|
||||||
|
thresholds:
|
||||||
|
cpu:
|
||||||
|
critical: 90
|
||||||
|
warn: 70
|
||||||
|
memory:
|
||||||
|
critical: 90
|
||||||
|
warn: 70
|
||||||
|
namespace:
|
||||||
|
lockFavorites: false
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user