{ config, pkgs, ... }: let unstableTarball = fetchTarball "https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz"; in { # Home Manager needs a bit of information about you and the paths it should # manage. home.username = "root"; home.homeDirectory = "/root"; # This value determines the Home Manager release that your configuration is # compatible with. This helps avoid breakage when a new Home Manager release # introduces backwards incompatible changes. # # You should not change this value, even if you update Home Manager. If you do # want to update the value, then make sure to first check the Home Manager # release notes. home.stateVersion = "24.05"; # Please read the comment before changing. nixpkgs.config = { allowUnfree = true; packageOverrides = pkgs: with pkgs; { unstable = import unstableTarball { config = config.nixpkgs.config; }; }; }; # The home.packages option allows you to install Nix packages into your # environment. home.packages = with pkgs; [ zsh zsh-powerlevel10k oh-my-zsh thefuck fzf zsh-fzf-tab helix hyfetch btop eza ]; # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file = { }; home.sessionVariables = { EDITOR = "hx"; TERM = "xterm-256color"; }; programs.home-manager.enable = true; programs.fzf = { enable = true; enableZshIntegration = true; }; programs.zsh = { enable = true; enableCompletion = true; syntaxHighlighting.enable = true; shellAliases = { ls = "eza"; ll = "eza --icons -l"; la = "eza --icons -al"; vi = "hx"; vim = "hx"; home-update = "home-manager switch"; home-edit = "hx ~/.config/home-manager"; }; history = { size = 10000; path = "${config.xdg.dataHome}/zsh/history"; }; zplug = { enable = true; plugins = [{ name = "zsh-users/zsh-autosuggestions"; }]; }; plugins = [{ name = "powerlevel10k"; src = pkgs.zsh-powerlevel10k; file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; }]; oh-my-zsh = { enable = true; plugins = [ "git" "thefuck" ]; theme = "agnoster"; }; initExtra = '' [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh source ${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh ''; }; }