# Table of Contents 1. [Dependencies](#dependencies) 1. [Optional Dependencies](#optional-dependencies) 2. [Instructions](#instructions) 1. [Modifications](#modifications) 3. [TODO](#todo) # Dependencies - If you have root, symlink `/bin/sh` to a copy of `dash` // This isn't necessary but it'll speed things up - This repo was intended to be used with `chezmoi`. You can still make use of it manually but you'll have to move all the files to the right place yourself and set the permissions. - Many programs here require a Nerd Font to be installed - I'm using [Fira Code](https://github.com/ryanoasis/nerd-fonts/releases/latest/download/FiraCode.tar.xz). - A patched version of [San Francisco Mono](https://github.com/shaunsingh/SFMono-Nerd-Font-Ligaturized) is viable to - There's a ton of other options [here](https://github.com/ryanoasis/nerd-fonts/releases/latest/) - This repo primarily targests ZSH as a shell, unfortunately you'll need root to install this and set it as default without using janky hacks - If you do want to use janky hacks, I'm sure there's a way to get it through brew/spack, otherwise build it yourself, yeet it into `~/.local/bin` and add `exec zsh` to your `.bashrc` ## Optional Dependencies - Cargo (package manager, should be able to install most of the stuff on this list without root) - cargo-binstall (lets you download precompiled binaries for Rust apps) - Go (package manager/programming language, should be able to install most of what cargo can't) - brew (\*NIX)/scoop (Windows) (*very* optional package manager) - Nala (Debian-based Linux) (package manager, don't use `apt`, worse `apt-get`, it's 2023) - Zellij (terminal multiplexer, you can replace this with `tmux` but I don't have a config for that) - fzf (fuzzy finder, my `.zshrc` should automatically download the binary, but its better if you install this with a package manager) - Sheldon (plugin manager, currently only configured for zsh) - pywal (lets you generate themes from an image) - gpg-agent (lets you store GPG and SSH Keys) - ssh-agent comes with ssh, and will also be configured by this repo but gpg agent is more flexible - mcfly (history search) - zoxide (`cd` but better) - broot (`cd` but a TUI) - starship (shell theme) - lazygit (git TUI) - lazydocker (docker TUI) - duf (`df` but better (tells you how much disk space you have)) - delta (`diff` but better) - uutils (rust reimplementation of GNU Coreutils, mostly useful for adding progress bars to `cp` and `mv`) - fd (aka fdfind) (`find` but better) - gdu (`du`/`ncdu` but *much* faster) - btdu (`du`/`ncdu` but for more advanced BTRFS setups) - viddy (`watch` but better) - bat (`cat` but better) - gping (`ping` but visual) - lsd (`ls` but better) - neovim (`vim` but better) - ripgrep (`grep` but better) - ag/silver searcher (`grep` for source code) - bottom (`top` but better) # Instructions - To clone this repo run `chezmoi init https://gitea.argentumcation.com/mira/dotfiles` - If you're not me, you're gonna have to make a few changes outlined in [Modifications](#modifications) - Once done you should be able to run `chezmoi apply` ## Modifications - Run `chezmoi cd` to enter the dir where Chezmoi stores files (`~/.local/share/chezmoi`) - Several files are encrypted with my GPG key. If you're not someone with access to those, you'll need to delete the files prefixed with `encrypted_` , If you fork the repo be sure to change the public keys in the Chezmoi config - `key.txt.asc` should be deleted as well, or replaced with a GPG private key encrypted with `gpg -a --symmetric` - `pubkeys.asc` should contain your public GPG keys, if you have none, delete this file -`run_onchange_add_ssh_pubkeys.ps1.tmpl` adds my pubkeys to `.ssh/authorized_keys`, if you don't want me to be able to ssh into your machine, delete this - `run_decrypt_private_key.ps1.tmpl`is used to decrypt encrypted files. If you have none, delete this. - Most configuration has been done for ZSH, with some copied over for Bash. There's a minimal config for PowerShell as well. # TODO - fix `gpg-agent.conf` so it works on WSL - automate deleting stuff specific to me - add gum - install dependencies