init
This commit is contained in:
221
configuration.nix
Normal file
221
configuration.nix
Normal file
@@ -0,0 +1,221 @@
|
||||
{ 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; #
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user