From cd383fa495bfa39b2b849fdb0f3baca975305ade Mon Sep 17 00:00:00 2001 From: thek4n Date: Tue, 4 Aug 2026 12:11:40 +0300 Subject: [PATCH] add nix flakes --- configuration.nix | 97 ----------------------------------- nix/flake.nix | 26 ++++++++++ nix/hosts/thek4n/default.nix | 75 +++++++++++++++++++++++++++ nix/hosts/thek4n/hardware.nix | 1 + nix/hosts/thek4n/home.nix | 55 ++++++++++++++++++++ 5 files changed, 157 insertions(+), 97 deletions(-) delete mode 100644 configuration.nix create mode 100644 nix/flake.nix create mode 100644 nix/hosts/thek4n/default.nix create mode 100644 nix/hosts/thek4n/hardware.nix create mode 100644 nix/hosts/thek4n/home.nix diff --git a/configuration.nix b/configuration.nix deleted file mode 100644 index fecd9ba..0000000 --- a/configuration.nix +++ /dev/null @@ -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"; -} diff --git a/nix/flake.nix b/nix/flake.nix new file mode 100644 index 0000000..6935b55 --- /dev/null +++ b/nix/flake.nix @@ -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; + }; +} diff --git a/nix/hosts/thek4n/default.nix b/nix/hosts/thek4n/default.nix new file mode 100644 index 0000000..8d0837d --- /dev/null +++ b/nix/hosts/thek4n/default.nix @@ -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"; +} diff --git a/nix/hosts/thek4n/hardware.nix b/nix/hosts/thek4n/hardware.nix new file mode 100644 index 0000000..84fa199 --- /dev/null +++ b/nix/hosts/thek4n/hardware.nix @@ -0,0 +1 @@ +todo: diff --git a/nix/hosts/thek4n/home.nix b/nix/hosts/thek4n/home.nix new file mode 100644 index 0000000..1672469 --- /dev/null +++ b/nix/hosts/thek4n/home.nix @@ -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; + }; + }; +};