Files
nix-thinkcentre/configuration.nix

222 lines
4.4 KiB
Nix
Raw Normal View History

2025-10-11 19:10:48 +05:00
{ config, lib, pkgs, modulesPath, ... }: {
imports = [
./disko.nix
(modulesPath + "/installer/scan/not-detected.nix")
];
# Загрузочная функция.
# Имеет параметры загрузчика,
# а так же настройки initrd.
boot = {
initrd = {
availableKernelModules = [
"xhci_pci"
"ahci"
"ohci_pci"
"ehci_pci"
"usb_storage"
"usbhid"
"sd_mod"
"nvidia_drm"
"nvidia_modeset"
"nvidia"
"nvidia_uvm"
];
kernelModules = [ ];
};
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
grub = {
efiSupport = true;
device = "nodev";
useOSProber = true;
};
};
plymouth = {
enable = true;
theme = "bgrt";
};
};
# Настройка интернета.
# Указывание хоста,
# а так же включение интернета.
networking = {
hostName = "lenovo";
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
};
# Часовой пояс.
time.timeZone = "Asia/Yekaterinburg";
# Настройка локали.
# как и вся система,
# и консоль.
i18n.defaultLocale = "ru_RU.UTF-8";
console = {
font = "cyr-sun16";
keyMap = "ru";
};
# Настройка пользователя.
# указание группы и оболочка.
users.users.fox = {
isNormalUser = true;
extraGroups = [
"wheel"
"input"
"networkmanager"
"video"
"audio"
];
shell = pkgs.zsh;
};
# Автозагрузка оконного менеджера.
services.getty.autologinUser = "fox";
environment.loginShellInit = ''
[[ "$(tty)" == /dev/tty1 ]] && Hyprland
'';
# Включение защитных утилит.
# тот же sudo для авторизации
# по паролю.
security = {
polkit.enable = true;
sudo = {
enable = true;
extraRules = [{
commands = [
{
command = "${pkgs.systemd}/bin/reboot";
options = [ "NOPASSWD" ];
}
{
command = "${pkgs.systemd}/bin/poweroff";
options = [ "NOPASSWD" ];
}];
groups = [ "wheel" ];
}];
};
};
# Пакеты для всей системы.
# Содержат утилиты и шрифты.
environment = {
systemPackages = with pkgs; [
# Для никс
nh
home-manager
# Файлы/документы
neovim
git
tree
wget
unrar
# Аналитика
fastfetch
btop
# Компилятор
gcc
# Для оборудования #
nvidia-vaapi-driver
nv-codec-headers
ffmpeg-full
dmidecode
nodejs_24
];
};
fonts = {
packages = with pkgs; [
cantarell-fonts
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
fira-code-symbols
fira-code
dejavu_fonts
jetbrains-mono
nerd-fonts.symbols-only
nerd-fonts.jetbrains-mono
];
fontconfig.defaultFonts.emoji = [ "Noto COlor Emoji" ];
};
# Включение программ через функцию programs.xxxx.
programs = {
adb.enable = true;
gamemode.enable = true;
zsh.enable = true;
gamescope = {
enable = true;
capSysNice = true;
};
steam = {
enable = true;
gamescopeSession.enable = false;
};
};
# Системные настройки.
# Никс + система.
system.stateVersion = "25.05";
nixpkgs = {
config.allowUnfree = true;
hostPlatform = lib.mkDefault "x86_64-linux";
};
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Сервисы
services = {
xserver.videoDrivers = [ "nvidia" ]; #
desktopManager = {
gnome.enable = true;
plasma6.enable = false;
};
};
# Оборудование
hardware = {
pulseaudio = {
enable = true;
support32Bit = true;
};
graphics.enable = true;
opengl.enable = true;
nvidia = { #
modesetting.enable = true;
powerManagement = {
enable = false;
finegrained = false;
};
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
};
systemd.services.amnezia = { #
enable = true;
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Description = "AmneziaVPN-Service starter";
Type = "simple";
ExecStart = "${pkgs.amnezia-vpn}/bin/AmneziaVPN-service";
};
};
virtualisation.vmware.host.enable = true; #
}