summaryrefslogtreecommitdiff
path: root/configuration/home-manager/core
diff options
context:
space:
mode:
Diffstat (limited to 'configuration/home-manager/core')
-rw-r--r--configuration/home-manager/core/default.nix74
-rw-r--r--configuration/home-manager/core/helix.nix42
-rw-r--r--configuration/home-manager/core/shell.nix69
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";
+ };
+ };
+ };
+}