add nix flakes

This commit is contained in:
thek4n 2026-08-04 12:11:40 +03:00
parent 6e81c9c351
commit cd383fa495
5 changed files with 157 additions and 97 deletions

View File

@ -1,97 +0,0 @@
{ config, pkgs, ... }:
{
imports = [
# Подключение файла описания конфигурации устройств.
# Например, описание разбиения дисков.
./hardware-configuration.nix
];
# Использование grub
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
boot.loader.grub.useOSProber = true;
# Установка имени хоста
networking.hostName = "thek4n.local";
# Использование NetworkManager
networking.networkmanager.enable = true;
# Установка временной зоны
time.timeZone = "Europe/Moscow";
i18n.defaultLocale = "en_US.UTF-8";
# Включение демона CUPS для печати докуметов
services.printing.enable = true;
# Включение сервисов звука
services.pulseaudio.enable = true;
services.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
services.openssh.enable = true;
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd sway";
user = "greeter";
};
};
};
users.user."thek4n" = {
isNormalUser = true;
description = "thek4n";
extraGroups = [ "networkmanager" "wheel" ];
# Установка пользовательских пакетов
packages = with pkgs; [ ];
};
# Сырая установка бинарников в глобальное окружение
environment.systemPackages = with pkgs; [
alacritty bat brightnessctl ctags fd ffmpeg fzf glow
grim highlight imagemagick jq kanshi less lesspipe mako
man mpv noto-fonts p7zip poppler resvg ripgrep rofi slurp
socat sway swaybg swayidle swaylock tmux tree-sitter ueberzug
waybar wget wl-clipboard wlr-randr wtype yazi ydotool zoxide
];
programs.firefox.enable = true;
programs.neovim = {
enable = true;
viAlias = true;
defaultEditor = true;
};
programs.zsh.enable = true;
programs.git = {
enabled = true;
userName = "thek4n";
userEmail = "thek4n@yandex.ru";
};
programs.sway = {
enable = true;
};
environment.etc."sway/config" = {
text = ''
set $mod Mod4
set $term alacritty
bindsym $mod+Return exec $term'';
};
# Указание версии NixOs
system.stateVersion = "26.05";
}

26
nix/flake.nix Normal file
View File

@ -0,0 +1,26 @@
{
description = "NixOS configuration with flakes";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, ... }@inputs: {
nixosConfigurations.thek4n = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/thek4n/default.nix
./hosts/thek4n/home.nix
];
};
# `nixos-rebuild switch --flake .#thek4n`
default = self.nixosConfigurations.thek4n;
};
}

View File

@ -0,0 +1,75 @@
{ config, pkgs, inputs, ... }:
{
imports = [
./hardware.nix
];
# Использование grub
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
boot.loader.grub.useOSProber = true;
networking.hostName = "thek4n";
networking.networkmanager.enable = true;
time.timeZone = "Europe/Moscow";
i18n.defaultLocale = "en_US.UTF-8";
services.printing.enable = true;
services.pulseaudio.enable = true;
services.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
services.openssh.enable = true;
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd sway";
user = "greeter";
};
};
};
users.user."thek4n" = {
isNormalUser = true;
description = "thek4n";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [ ];
};
environment.systemPackages = with pkgs; [
alacritty bat brightnessctl ctags fd ffmpeg fzf glow
grim highlight imagemagick jq kanshi less lesspipe mako
man mpv noto-fonts p7zip poppler resvg ripgrep rofi slurp
socat sway swaybg swayidle swaylock tmux tree-sitter ueberzug
waybar wget wl-clipboard wlr-randr wtype yazi ydotool zoxide
];
programs.firefox.enable = true;
programs.sway = {
enable = true;
};
environment.etc."sway/config" = {
text = ''
set $mod Mod4
set $term alacritty
bindsym $mod+Return exec $term
'';
};
system.stateVersion = "26.05";
}

View File

@ -0,0 +1 @@
todo:

55
nix/hosts/thek4n/home.nix Normal file
View File

@ -0,0 +1,55 @@
{ config, pkgs, inputs, ... }:
{
imports = [
inputs.home-manager.nixosModules.home-manager
];
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.thek4n = { pkgs, ... }: {
home.homeDirectory = "/home/thek4n";
home.username = "thek4n";
home.stateVersion = "24.11";
home.packages = with pkgs; [ ];
programs.git = {
enable = true;
userName = "thek4n";
userEmail = "thek4n@yandex.ru";
extraConfig = {
init.defaultBranch = "main";
pull.rebase = false;
core.editor = "nvim";
};
};
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
};
programs.neovim = {
enable = true;
viAlias = true;
defaultEditor = true;
};
programs.git = {
enable = true;
userName = "thek4n";
userEmail = "thek4n@yandex.ru";
};
# home.file.".config/nvim/init.lua".source = ./nvim/init.lua;
# home.file.".zshrc".source = ./zsh/.zshrc;
# home.file.".gitconfig".source = ./git/.gitconfig;
};
};
};