diff options
Diffstat (limited to 'configuration/home-manager/core')
-rw-r--r-- | configuration/home-manager/core/default.nix | 74 | ||||
-rw-r--r-- | configuration/home-manager/core/helix.nix | 42 | ||||
-rw-r--r-- | configuration/home-manager/core/shell.nix | 69 |
3 files changed, 185 insertions, 0 deletions
diff --git a/configuration/home-manager/core/default.nix b/configuration/home-manager/core/default.nix new file mode 100644 index 0000000..9c33f66 --- /dev/null +++ b/configuration/home-manager/core/default.nix @@ -0,0 +1,74 @@ +{ pkgs, inputs, ... }: +{ + + imports = [ + ./helix.nix + ./shell.nix + ]; + + home.packages = [ + pkgs.gnumake + pkgs.git-crypt + pkgs.bitwarden-cli + + pkgs.fd + pkgs.glow + pkgs.eza + + pkgs.nixfmt-rfc-style + inputs.nil.packages."${pkgs.system}".nil + ]; + + programs.ripgrep.enable = true; + programs.btop.enable = true; + + programs.zoxide = { + enable = true; + options = [ "--cmd cd" ]; + }; + programs.fzf.enable = true; + + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; + + programs.git = { + enable = true; + aliases = { + b = "branch"; + f = "fetch"; + p = "pull"; + s = "status"; + co = "checkout"; + pu = "push"; + nb = "checkout -b"; + db = "branch -D"; + lg = + "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; + praise = "blame"; + bump = "!git bump"; + ae = "!git add -A && git commit --amend"; + ad = "commit --amend"; + ac = "!git add -A && git commit"; + rmbs = + "!git branch | grep -wv master | grep -wv main | xargs git branch -D"; + }; + extraConfig = { + pull.rebase = false; + init.defaultBranch = "main"; + }; + }; + + services.ssh-agent.enable = true; + programs.ssh = { + enable = true; + package = "${pkgs.openssh}"; + addKeysToAgent = "yes"; + }; + + programs.taskwarrior = { + enable = true; + package = "${pkgs.taskwarrior3}"; + }; +} diff --git a/configuration/home-manager/core/helix.nix b/configuration/home-manager/core/helix.nix new file mode 100644 index 0000000..42861ce --- /dev/null +++ b/configuration/home-manager/core/helix.nix @@ -0,0 +1,42 @@ +{ pkgs, inputs, ... }: +{ + home.sessionVariables = { EDITOR = "hx"; }; + home.file = { + helix-ferra = { + source = ../../../assets/helix-wavez.toml; + target = ".config/helix/themes/wavez.toml"; + }; + }; + + programs.helix = { + enable = true; + package = inputs.helix.packages."${pkgs.system}".helix; + defaultEditor = true; + settings = { + theme = "wavez"; + keys.normal = { + space.F = "file_picker_in_current_buffer_directory"; + }; + editor = { + end-of-line-diagnostics = "hint"; + line-number = "relative"; + bufferline = "always"; + auto-save = false; + + inline-diagnostics = { + cursor-line = "error"; + }; + + lsp = { + enable = true; + display-messages = true; + }; + + indent-guides = { + render = true; + skip-levels = 1; + }; + }; + }; + }; +} diff --git a/configuration/home-manager/core/shell.nix b/configuration/home-manager/core/shell.nix new file mode 100644 index 0000000..183b9ae --- /dev/null +++ b/configuration/home-manager/core/shell.nix @@ -0,0 +1,69 @@ +{ pkgs, lib, ... }: +{ + programs.zsh = { + enable = true; + defaultKeymap = "emacs"; + initExtra = '' + # https://github.com/jeffreytse/zsh-vi-mode + source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh + ''; + shellAliases = { + g = "git"; + }; + }; + + programs.starship = { + enable = true; + settings = { + directory.style = "blue"; + + format = lib.concatStrings [ + "$username" + "$hostname" + "$directory" + "$git_branch" + "$git_state" + "$git_status" + "$cmd_duration" + "$line_break" + "$python" + "$openstack" + "$character" + ]; + + character = { + success_symbol = "[❯](purple)"; + error_symbol = "[❯](red)"; + vimcmd_symbol = "[❮](green)"; + }; + + git_branch = { + format = "[$branch]($style)"; + style = "bright-black"; + }; + + git_status = { + format = + "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"; + style = "cyan"; + conflicted = ""; + untracked = ""; + modified = ""; + staged = ""; + renamed = ""; + deleted = ""; + stashed = "≡"; + }; + + git_state = { + format = "'([$state( $progress_current/$progress_total)]($style))' "; + style = "bright-black"; + }; + + cmd_duration = { + format = "[$duration]($style) "; + style = "yellow"; + }; + }; + }; +} |