From f71051f47158f57091306e269352d7579522e426 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Thu, 6 Feb 2025 22:03:10 +0000 Subject: bluurb --- configuration/home-manager/core/default.nix | 74 +++++++++++++++++++++++++++++ configuration/home-manager/core/helix.nix | 42 ++++++++++++++++ configuration/home-manager/core/shell.nix | 69 +++++++++++++++++++++++++++ 3 files changed, 185 insertions(+) create mode 100644 configuration/home-manager/core/default.nix create mode 100644 configuration/home-manager/core/helix.nix create mode 100644 configuration/home-manager/core/shell.nix (limited to 'configuration/home-manager/core') 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"; + }; + }; + }; +} -- cgit v1.2.3