{ description = "Home Manager configuration"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; devbox.url = "github:jetify-com/devbox/latest"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; lexical-flake = { url = "github:ffloyd/lexical"; }; }; outputs = { nixpkgs, home-manager, flake-utils, lexical-flake, ... }@inputs: flake-utils.lib.eachDefaultSystem ( system: let user = "nikos"; # change your user here dotfilesHome = "/home/${user}/.dotfiles"; # specify your dotfiles path pkgs = nixpkgs.legacyPackages.${system}; overlays = [ (self: super: { devbox = inputs.devbox.packages.${system}.default; lexical = ( (lexical-flake.lib.mkLexical { erlang = pkgs.beam.packages.erlang_26; }).override { elixir = pkgs.beam.packages.erlang_26.elixir_1_17; fodHash = "sha256-Ee8RbLkb7jkdK91G4TAUIlPthBP5OyeynHJGg87UvBI="; } ); }) inputs.neovim-nightly-overlay.overlays.default ]; in { formatter = pkgs.nixfmt-rfc-style; packages.homeConfigurations.${user} = home-manager.lib.homeManagerConfiguration { inherit pkgs; # Specify your home configuration modules here, for example, # the path to your home.nix. modules = [ { nixpkgs.overlays = overlays; } ./home.nix ]; extraSpecialArgs = { extra = { inherit user dotfilesHome; }; }; }; } ); }