From acb15b5e7c22fc79057bd2f99ed61d792929163d Mon Sep 17 00:00:00 2001 From: Anthony Cicchetti Date: Tue, 9 May 2023 22:31:32 -0400 Subject: [PATCH] hoo boy, this some magic --- nix/home-manager/home.nix | 49 +++- nix/home-manager/modules/files.nix | 2 +- nix/home-manager/modules/packages/default.nix | 17 +- nix/home-manager/modules/packages/git.nix | 65 ++++++ .../modules/packages/starship.nix | 212 ++++++++++++++++++ nix/home-manager/modules/packages/zellij.nix | 12 + 6 files changed, 335 insertions(+), 22 deletions(-) create mode 100644 nix/home-manager/modules/packages/git.nix create mode 100644 nix/home-manager/modules/packages/starship.nix create mode 100644 nix/home-manager/modules/packages/zellij.nix diff --git a/nix/home-manager/home.nix b/nix/home-manager/home.nix index 6a2cab6..a1431eb 100644 --- a/nix/home-manager/home.nix +++ b/nix/home-manager/home.nix @@ -60,30 +60,43 @@ # # if you don't want to manage your shell through Home Manager. home.sessionVariables = { - # EDITOR = "emacs"; + EDITOR = "nvim"; }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; - programs.zsh = { - enable = false; - }; - programs.nix-index-database = { - comma.enable = true; + + programs.atuin = { + enable = true; + enableZshIntegration = true; }; + programs.direnv = { enable = true; nix-direnv.enable = true; }; - programs.git = { - enable = false; - # TODO + + programs.exa = { + enable = true; + git = true; + icons = true; + enableAliases = false; }; + programs.gh = { enable = false; # TODO }; + programs.htop = { + enable = true; + }; + + programs.mcfly = { + enable = false; + keyScheme = "vim"; + }; + programs.neovim = { enable = false; # TODO @@ -91,10 +104,28 @@ # fnl dir # undodir at ~/.undodir }; + + programs.nix-index-database = { + comma.enable = true; + }; + programs.nnn = { enable = true; }; + programs.skim = { + enable = true; + enableZshIntegration = false; + }; + + programs.zoxide = { + enable = true; + }; + + programs.zsh = { + enable = false; + }; + imports = [ ./modules/packages ./modules/files.nix diff --git a/nix/home-manager/modules/files.nix b/nix/home-manager/modules/files.nix index 8e26c11..534dd08 100644 --- a/nix/home-manager/modules/files.nix +++ b/nix/home-manager/modules/files.nix @@ -4,7 +4,7 @@ config, ... }: { - home.file.".config/zellij/config.kdl".source = ../../../zellij/config.kdl; + home.file.".ideavimrc".source = ../../../ideavim/ideavimrc; # TODO # git-sync binary # ideavimrc diff --git a/nix/home-manager/modules/packages/default.nix b/nix/home-manager/modules/packages/default.nix index 63ca00b..71c2eae 100644 --- a/nix/home-manager/modules/packages/default.nix +++ b/nix/home-manager/modules/packages/default.nix @@ -4,33 +4,26 @@ config, ... }: { + imports = [./git.nix ./starship.nix ./zellij.nix]; home.packages = with pkgs; [ - # TODO: https://github.com/ogham/dog - atuin bandwhich bat cargo-workspaces - delta - difftastic dogdns erdtree - exa fd git gnutar gping - htop + internetarchive jless just kondo - mcfly + litecli neovim + poetry ripgrep - skim - starship - zellij - zoxide - zsh + yt-dlp zstd ]; } diff --git a/nix/home-manager/modules/packages/git.nix b/nix/home-manager/modules/packages/git.nix new file mode 100644 index 0000000..df316e6 --- /dev/null +++ b/nix/home-manager/modules/packages/git.nix @@ -0,0 +1,65 @@ +{ + config, + lib, + pkgs, + ... +}: { + programs.git = { + enable = true; + difftastic.enable = true; + + userName = "Anthony Cicchetti"; + userEmail = "anthony@anthonycicchetti.com"; + + aliases = { + pushall = "!git remote | xargs -L1 git push --all"; + pr = "!f() { git fetch -fu $${2:-$(git remote |grep ^upstream || echo origin)} refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f"; + logp = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"; + }; + + extraConfig = { + core = { + autocrlf = "input"; + fsmonitor = true; + }; + + checkout = { + workers = 0; + }; + + fetch = { + prune = true; + }; + + format = { + pretty = "fuller"; + }; + + log = { + follow = true; + }; + + push = { + autoSetupRemote = true; + }; + + pull = { + rebase = true; + }; + + init = { + defaultBranch = "main"; + }; + help = { + autoCorrect = "prompt"; + }; + rebase = { + updateRefs = true; + }; + }; + + includes = [ + {path = "~/.gitconfig_local";} + ]; + }; +} diff --git a/nix/home-manager/modules/packages/starship.nix b/nix/home-manager/modules/packages/starship.nix new file mode 100644 index 0000000..5292ba8 --- /dev/null +++ b/nix/home-manager/modules/packages/starship.nix @@ -0,0 +1,212 @@ +{ + config, + lib, + pkgs, + ... +}: { + programs.starship = { + enable = true; + settings = { + aws = { + symbol = " "; + }; + + battery = { + disabled = true; + }; + + buf = { + symbol = " "; + }; + + c = { + symbol = " "; + }; + + character = { + success_symbol = "[◯](bold green)"; + error_symbol = "[✗](bold red)"; + vicmd_symbol = "[ƴ](bold yellow)"; + }; + + command_timeout = 1000; + conda = { + symbol = " "; + }; + continuation_prompt = "→→"; + + dart = { + symbol = " "; + }; + + directory = { + read_only = " "; + }; + + docker_context = { + symbol = " "; + }; + + elixir = { + symbol = " "; + }; + + elm = { + symbol = " "; + }; + + fossil_branch = { + symbol = " "; + }; + + git_branch = { + symbol = " "; + }; + + git_metrics = { + disabled = false; + added_style = "bold blue"; + }; + + git_status = { + disabled = true; + ahead = "⇡\${count}"; + diverged = "⇕⇡\${ahead_count}⇣\${behind_count}"; + behind = "⇣\${count}"; + }; + + golang = { + symbol = " "; + }; + + guix_shell = { + symbol = " "; + }; + + haskell = { + symbol = " "; + }; + + haxe = { + symbol = "⌘ "; + }; + + hg_branch = { + symbol = " "; + }; + + hostname = { + ssh_symbol = " "; + }; + + java = { + symbol = " "; + }; + + jobs = { + symbol = "+"; + }; + + julia = { + symbol = " "; + }; + + lua = { + symbol = " "; + }; + + memory_usage = { + symbol = " "; + }; + + meson = { + symbol = "喝 "; + }; + + nim = { + symbol = " "; + }; + + nix_shell = { + symbol = " "; + }; + + nodejs = { + symbol = " "; + }; + + os.symbols = { + "Alpaquita" = " "; + "Alpine" = " "; + "Amazon" = " "; + "Android" = " "; + "Arch" = " "; + "Artix" = " "; + "CentOS" = " "; + "Debian" = " "; + "DragonFly" = " "; + "Emscripten" = " "; + "EndeavourOS" = " "; + "Fedora" = " "; + "FreeBSD" = " "; + "Garuda" = "﯑ "; + "Gentoo" = " "; + "HardenedBSD" = "ﲊ "; + "Illumos" = " "; + "Linux" = " "; + "Mabox" = " "; + "Macos" = " "; + "Manjaro" = " "; + "Mariner" = " "; + "MidnightBSD" = " "; + "Mint" = " "; + "NetBSD" = " "; + "NixOS" = " "; + "OpenBSD" = " "; + "openSUSE" = " "; + "OracleLinux" = " "; + "Pop" = " "; + "Raspbian" = " "; + "Redhat" = " "; + "RedHatEnterprise" = " "; + "Redox" = " "; + "Solus" = "ﴱ "; + "SUSE" = " "; + "Ubuntu" = " "; + "Unknown" = " "; + "Windows" = " "; + }; + + package = { + symbol = " "; + }; + + pijul_channel = { + symbol = "🪺 "; + }; + python = { + symbol = " "; + }; + + rlang = { + symbol = "ﳒ "; + }; + + ruby = { + symbol = " "; + }; + + rust = { + symbol = " "; + }; + + scala = { + symbol = " "; + }; + + spack = { + symbol = "🅢 "; + }; + }; + }; +} diff --git a/nix/home-manager/modules/packages/zellij.nix b/nix/home-manager/modules/packages/zellij.nix new file mode 100644 index 0000000..b291eda --- /dev/null +++ b/nix/home-manager/modules/packages/zellij.nix @@ -0,0 +1,12 @@ +{ + config, + lib, + pkgs, + ... +}: { + programs.zellij = { + enable = true; + }; + + home.file.".config/zellij/config.kdl".source = ../../../../zellij/config.kdl; +}