430 lines
9.5 KiB
Nix
430 lines
9.5 KiB
Nix
# 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. It‘s 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?
|
||
|
||
}
|