Files
nix-thinkcentre/configuration.nix
2025-10-11 19:10:48 +05:00

222 lines
4.4 KiB
Nix
Raw 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.

{ 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; #
}