изменено: configuration.nix

изменено:      flake.nix
This commit is contained in:
Gregory Bednov 2025-04-29 11:48:14 +03:00
commit ec565c41f1
2 changed files with 218 additions and 187 deletions

View file

@ -16,7 +16,12 @@ in
users.users.student = {
isNormalUser = true;
initialPassword = "student"; # вход беспарольный, но пароль student
extraGroups = [ "video" "sound" "input" "storage" ];
extraGroups = [
"video"
"sound"
"input"
"storage"
];
packages =
let
# определение как скачивать плагины jetbrains (скачивать с нашего сервера копию)
@ -61,8 +66,7 @@ in
#idea-community."2024.1"."R4Intellij"
idea-community."2024.1"."com.redhat.devtools.lsp4ij"
])
++
[
++ [
# поддежка языка C/C++ на уровне подсветки синтаксиса и автодополнения
(customJBPlugin "clsp" "1.0.1" "sha256-AU/Q61YYsGn2BAYykCGm4XGNyeSwd5K/txGNzP2dJg0=")
@ -78,9 +82,14 @@ in
sakura # терминал
unzipNLS # поддержка zip
unrar # поддержка rar
gtk3 whitesur-icon-theme # необходимо для иконок
(pkgs.writeShellScriptBin "powermenu" (builtins.readFile inputs.mireadesktop.packages.x86_64-linux.powermenu))
(pkgs.writeShellScriptBin "resethome" (builtins.readFile inputs.mireadesktop.packages.x86_64-linux.resethome))
gtk3
whitesur-icon-theme # необходимо для иконок
(pkgs.writeShellScriptBin "powermenu" (
builtins.readFile inputs.mireadesktop.packages.x86_64-linux.powermenu
))
(pkgs.writeShellScriptBin "resethome" (
builtins.readFile inputs.mireadesktop.packages.x86_64-linux.resethome
))
pandoc
#onlyoffice-desktopeditors # к сожалению, пока у OnlyOffice баг со шрифтами. Ждём фикс
@ -118,7 +127,8 @@ in
# Другие возможные языки и инструменты, например:
# rustc # - Rust
# go gopls delve golint go-tools # - Go
jdk kotlin # - Java, Kotlin (идут вместе с IJ IDEA)
jdk
kotlin # - Java, Kotlin (идут вместе с IJ IDEA)
# ghc haskell-language-server # - Haskell
# nodePackages.intelephense # - PHP
# dotnet-sdk # - C#
@ -143,7 +153,6 @@ in
archi # поддержка archimate
##### Утилиты и программы для STM32 #####
# 1) STM32CubeIDE упаковать не удалось
# 2) есть основания полагать, что её функциональность лучше встроить
@ -157,8 +166,10 @@ in
##### СЕТЕВЫЕ УТИЛИТЫ ######
# установлен Cisco Packet Tracer, обернут в firejail чтобы не стучался на Netacad.com
nodePackages.node-red # - лоукод-платформа программирования устройств, в частности интернета вещей
httpie httpie-desktop # - передовой клиент HTTP-запросов
netcat socat # - низкоуровневые простейшие утилиты установления TCP или UDP между компьютерами или с ПЛК
httpie
httpie-desktop # - передовой клиент HTTP-запросов
netcat
socat # - низкоуровневые простейшие утилиты установления TCP или UDP между компьютерами или с ПЛК
opcua-client-gui # - простой графический клиент OPC UA
###### Другой софт #######
@ -185,7 +196,8 @@ in
fhsEnv = pkgs.buildFHSEnv {
name = "${pname}-fhs";
targetPkgs = p: with p; [
targetPkgs =
p: with p; [
eudev.out
libGL.out
openal.out
@ -220,7 +232,6 @@ in
'';
})
# поставка SimInTech. Кодогенерация библиотек для ПК работает,
# но несовместима с .dll из windows!
#simintech.packages.x86_64-linux.simintech
@ -235,7 +246,8 @@ in
fhsEnv = pkgs.buildFHSEnv {
name = "${pname}-fhs-env";
targetPkgs = p: with p; [
targetPkgs =
p: with p; [
at-spi2-atk.out
gdk-pixbuf.out
glamoroustoolkit.out
@ -338,7 +350,9 @@ in
# если машина установлена на диск с Windows,
# то она позволяет "увидеть" и выбрать Windows в течение 30 с
# иначе - 5 c таймаута (для виртуалок)
boot.loader = if hasBootPartition then {
boot.loader =
if hasBootPartition then
{
efi.canTouchEfiVariables = true;
timeout = 30;
grub = {
@ -346,14 +360,22 @@ in
efiSupport = true;
device = "nodev";
useOSProber = true;
theme = "${pkgs.sleek-grub-theme.override{ withStyle = "orange"; withBanner = "Выберите ОС"; }}";
theme = "${pkgs.sleek-grub-theme.override {
withStyle = "orange";
withBanner = "Выберите ОС";
}}";
};
} else {
}
else
{
timeout = 5;
grub = {
enable = true;
device = "/dev/sda";
theme = "${pkgs.sleek-grub-theme.override{ withStyle = "orange"; withBanner = "Загрузчик Linux"; }}";
theme = "${pkgs.sleek-grub-theme.override {
withStyle = "orange";
withBanner = "Загрузчик Linux";
}}";
};
};
time.hardwareClockInLocalTime = hasBootPartition;
@ -399,7 +421,9 @@ in
nvidiaSettings = false;
};
boot.blacklistedKernelModules = [ "nouveau" ];
boot.extraModprobeConfig = "options nvidia " + lib.concatStringsSep " " [
boot.extraModprobeConfig =
"options nvidia "
+ lib.concatStringsSep " " [
"NVreg_UsePageAttributeTable=1"
"NVreg_EnablePCIeGen3=1"
"NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100"
@ -434,11 +458,15 @@ in
##### СЕТЕВЫЕ НАСТРОЙКИ #######
# каждый компьютер виден под уникальным именем через Avahi
services.avahi = {
hostName = "nixos"
+ builtins.readFile ((pkgs.runCommandLocal "uuid" {} ''
hostName =
"nixos"
+ builtins.readFile (
(pkgs.runCommandLocal "uuid" { } ''
mkdir $out
cat /proc/sys/kernel/random/uuid > $out/uuid
'')+"/uuid");
'')
+ "/uuid"
);
enable = true;
nssmdns4 = true;
openFirewall = true;
@ -460,7 +488,10 @@ in
networking.nameservers = [ serverIP ];
# каждый компьютер знает, что kafpi.local - это адрес нашего сервера
networking.hosts."${serverIP}" = [ "kafpi.local" "hydra.kafpi.local" ];
networking.hosts."${serverIP}" = [
"kafpi.local"
"hydra.kafpi.local"
];
#security.pki.certificateFiles = [
# (builtins.fetchurl {
# url = "http://${serverIP}/server.crt";
@ -492,7 +523,6 @@ in
liberation_ttf
];
####### ПРОЧИЕ НАСТРОЙКИ #######
environment.systemPackages = with pkgs; [
vim
@ -514,7 +544,10 @@ in
wrappedBinaries = {
packettracer7 = {
executable = "${packettracer7.packages.x86_64-linux.default}/bin/packettracer7";
extraArgs = [ "--net=none" "--noprofile" ];
extraArgs = [
"--net=none"
"--noprofile"
];
};
};
};
@ -538,4 +571,3 @@ in
# НЕ МЕНЯТЬ, иначе придётся все компы переустанавливать, а не обновлять
system.stateVersion = "24.05";
}

View file

@ -31,4 +31,3 @@
};
};
}