From a4da243cb9c5290cd72d09ff39a492b4f211a151 Mon Sep 17 00:00:00 2001 From: kagura-server-common Date: Wed, 11 Sep 2024 04:58:44 +0200 Subject: [PATCH] Init repo --- home.nix | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 home.nix diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..c3e9d00 --- /dev/null +++ b/home.nix @@ -0,0 +1,113 @@ +{ 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 + ''; + }; +} +