Files
nixos-config/hosts/kiara/configuration.nix
2025-08-28 19:05:48 -05:00

430 lines
9.5 KiB
Nix
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
../../mods/vm.nix
# ../../mods/mini-spice.nix
../../mods/wallpaper2.nix
../../mods/syncthing.nix
inputs.spicetify-nix.nixosModules.default
];
services.udev.enable = true;
vm.enable = true;
# Bootloader.
boot = {
loader.grub.enable = true;
loader.grub.device = "/dev/sdb";
loader.grub.useOSProber = true;
# IOMMU
kernelParams = [ "intel_iommu=on" ];
kernelModules = [ "vfio_virqfd" "vfio_pci" "vfio_iommu_type1" "vfio" "v4l2loopback" ];
blacklistedKernelModules = [ "nvidia" "nouveau" ];
extraModprobeConfig = ''
options vfio-pci ids=10de:22bc,10de:2786,8086:24fd
options v4l2loopback exclusive_caps=1
'';
extraModulePackages = [ pkgs.linuxPackages.v4l2loopback ];
};
networking.hostName = "kiara"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
#networking.nameservers = [ "1.1.1.1" "1.0.0.1" ];
# networking.networkmanager.insertNameservers = [ "1.1.1.1" ];
# networking = {
# bridges = {
# "br0" = {
# interfaces = [ "eno1" ];
# };
# };
#
# interfaces = {
# enp0s3.useDHCP = false; # Disable DHCP on the physical Ethernet port
# br0.useDHCP = true; # Enable DHCP on the bridge interface
# };
#};
#{ config, pkgs, lib, ... }:{
# networking.firewall.checkReversePath = false;
#}
# NFS client
fileSystems."/mnt/apricot" = {
device = "192.168.4.194:/mnt/apricot" ;
fsType = "nfs" ;
options = [ "x-systemd.automount" "noauto" ];
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/6eb8bb12-0016-4a01-9c63-8d493487df51";
fsType = "ext4";
};
# Set your time zone.
time.timeZone = "America/Chicago";
# Select internationalisation properties.
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";
};
# networking.bridges = {
# br0.interfaces = [ "eno1" ]; # Replace eth0 with your main network interface
# };
#
# networking.interfaces.br0.useDHCP = true; # Or set a static IP if needed
environment.variables = {
XCURSOR_THEME = "Plasma-Overdose";
XCURSOR_SIZE = "28";
};
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the GNOME Desktop Environment.
services.displayManager.gdm.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
};
# enable opencl on gpu
environment.variables = {
ROC_ENABLE_PRE_VEGA = "1";
};
# hardware.graphics.extraPackages = with pkgs; [
# rocmPackages.clr.icd
# ];
services.udisks2.enable = true;
services.tailscale.enable = true;
services.locate.enable = true;
services.locate.package = pkgs.mlocate;
services.openssh = {
enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.takanashi = {
isNormalUser = true;
description = "takanashi";
extraGroups = [ "networkmanager" "wheel" "docker" ];
packages = with pkgs; [
# thunderbird
];
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Nix Flakes
nix.settings.experimental-features = [ "nix-command" "flakes"];
# Home Manager
# home-manager = {
# # also pass inputs to home-manager modules
# extraSpecialArgs = {inherit inputs;};
# users = {
# "takanashi" = import ./home.nix;
# };
# };
# spicetify-nix
#
# programs.spicetify =
# let
# spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
# in
# {
# enable = true;
#
# #enabledExtensions = with spicePkgs.extensions; [
# # adblock
# # hidePodcasts
# # shuffle # shuffle+ (special characters are sanitized out of extension names)
# #];
# #enabledCustomApps = with spicePkgs.apps; [
# # newReleases
# # ncsVisualizer
# #];
# #enabledSnippets = with spicePkgs.snippets; [
# # rotatingCoverart
# # pointer
# #];
#
# theme = spicePkgs.themes.comfy;
# colorScheme = "hikari";
# };
hardware.bluetooth.enable = true; # enables support for Bluetooth
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
services.blueman.enable = true;
hardware.enableAllFirmware = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
vim
firefox
neovim
wget
hyprland
xdg-desktop-portal-hyprland
alacritty
firefox
waybar
dunst
wofi
nemo
btop
hashcat
git
networkmanager
super-productivity
brave
calc
vesktop
hyprshot
wl-clipboard
yt-dlp
syncthing
brave
fastfetch
obsidian
krita
pavucontrol
ranger
lxqt.lxqt-policykit
linux-wallpaperengine # bug with freeimage-unstable with like 7 CVEs wait for patch
libreoffice
pasystray
# syncthing-tray
udiskie
nm-tray
# hyprpicker
wl-color-picker
dig
wireguard-go
wg-netmanager
wireguard-tools
motrix
zip
unzip
android-file-transfer
appimage-run
python3
python311Packages.pip
pipes-rs
spotify
obs-studio
lsof
alsa-utils
bluez
bluez-tools
wireplumber
xivlauncher
kdePackages.gwenview
mpv
p7zip
file
file-roller
lunar-client
teams-for-linux
ffmpeg
pciutils
kdePackages.partitionmanager
testdisk
kdePackages.filelight
spice
spice-gtk
spice-vdagent
exif
kdePackages.kleopatra
piper
libratbag
cmake
mesa
gnome-disk-utility
python312Packages.numpy
virtualenv
poetry
cheese
usbutils
v4l-utils
kdePackages.okular
blueman
game-devices-udev-rules
looking-glass-client
inputs.zen-browser.packages."${system}".default
# inputs.quasigod.packages."${system}".grayjay-desktop
tree
alvr
syncthing
mlocate
android-udev-rules
slimevr
nix-ld
# grayjay
hyprcursor
rose-pine-hyprcursor
#protonmail-desktop
xcur2png
thunderbird
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
services.flatpak.enable = true;
programs.hyprland.systemd.setPath.enable = true;
programs.hyprland.xwayland.enable = true;
programs.hyprland.enable = true;
hardware.opentabletdriver.enable = true;
hardware.opentabletdriver.daemon.enable = true;
services.spice-vdagentd.enable = true;
security.polkit.enable = true;
hardware.uinput.enable = true;
###########################################
# The Good ol we will fix it later corner #
###########################################
#services.xserver.enable = true;
#services.xserver.displayManager.gdm.enable = true;
#services.xserver.desktopManager = {
# gnome.enable = true;
#};
# Docker stuff
virtualisation.docker.enable = true;
# users.users.takanashi.extraGroups = [ "docker" ];
virtualisation.docker.rootless = {
enable = true;
setSocketVariable = true;
};
virtualisation.docker.daemon.settings = {
data-root = "/home/takanashi/docker";
};
###########################################
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Looking glass shms
systemd.tmpfiles.rules = [
# "f /dev/shm/scream 0660 alex qemu-libvirtd -"
"f /dev/shm/looking-glass 0660 takanashi kvm -"
];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.05"; # Did you read the comment?
}