https://github.com/jordanbrauer/dotfiles
~/.*
https://github.com/jordanbrauer/dotfiles
cli dotfiles git neovim nushell rcfiles shell terminal tmux tools vim
Last synced: 12 months ago
JSON representation
~/.*
- Host: GitHub
- URL: https://github.com/jordanbrauer/dotfiles
- Owner: jordanbrauer
- License: mit
- Created: 2018-04-20T15:54:05.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2025-01-22T00:29:32.000Z (about 1 year ago)
- Last Synced: 2025-01-22T01:22:30.023Z (about 1 year ago)
- Topics: cli, dotfiles, git, neovim, nushell, rcfiles, shell, terminal, tmux, tools, vim
- Language: Nushell
- Homepage:
- Size: 23 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# .dotfiles
Here lay a currated list of the tools I use or have used at one point in time or
another. Consider this my _virtual toolbelt_, full of the well worn & maintained
trappings of a hacker. Perhaps they will be as useful to you, dear reader, as
they are to me.
_Happy hacking!_
## Setting Up
These instructions are for new machines.
1. Clone this repository into the home directory.
```shell
git clone git@github.com:jordanbrauer/dotfiles.git ~/.dotfiles
```
2. Install all necessary dependencies.
```shell
# probably a few that aren't in this install script lol
make install
```
3. Sync the configurations
```
make sync
```
> **Warning**
> These configurations make use of [Nerd Font](https://www.nerdfonts.com/cheat-sheet)
> gylphs. Make sure to use a font that supports dev icons.
## Syncing New Configurations
If a new package is being added, simply create the directory & files, then edit
the `Makefile` `sync` target to include it. Alterantively you can (un)stow the
new package individually to test it before altering the `Makefile`.
If adding a new file to an existing package, no extra work is required.
Once all of the new new files are in place, simply run
```shell
make sync
```
## Terminal ([kitty](https://sw.kovidgoyal.net/kitty/))
It's fast, sleak, fully configurable, scriptable.. what's not to love? Plus,
_cats_.
### [starship](https://starship.rs/)
Configuring a beautiful prompt has never been easier...
### [pfetch](https://github.com/dylanaraps/pfetch)
Minimalistic system information. An alternative to fetch, neofetch, etc.
### [vivid](https://github.com/sharkdp/vivid)
Properly configure colours for `ls` output in a consistent manner.
## Shell ([Nushell](https://www.nushell.sh/))
Bash was awesome for many years, however I am now a Nushell convert.
## Editor ([Neovim](https://neovim.io/))
A few dependencies for Neovim & plugins.
- `luajit`
- `ripgrep`
- `code-minimap`
Other resources
- https://github.com/nanotee/nvim-lua-guide
## Package Managers
How I install my tools.
### [Composer](https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md)
PHP package manager. Not much else to say .. it's great for projects and global
executables.
### [Homebrew](https://brew.sh/)
My choice of package manager as a Mac OS user.
## Other Tools
A bunch of other random tools I've accrued over time on my belt. Some are fun,
and others are essential.
### [bat](https://github.com/sharkdp/bat)
Better `cat(1)`.
### [bottom](https://github.com/ClementTsang/bottom)
`top` and `htop` are fine, but a bit too boring for my liking.
### [choosealicense](https://pypi.org/project/choosealicense-cli/)
I don't like creating repositories with GitHub containing default files. In this
case, a `LICENSE`. It's also annoying to visit [choosealicence.com](https://choosealicense.com/)
everytime.
### [fnm](https://github.com/Schniz/fnm)
`nvm` is too slow, bloated, and confusing. Only really use this for my day-job,
as I don't write much JavaScript otherwise.
### [fzf](https://github.com/junegunn/fzf)
Great for scripting and filtering large amounts of data. Great when you need it
for one-offs, but is sort of replaced by `gum` when you want to write a helper
script that sticks around.
I used to use this with Neovim, but have since switched to Telescope &
`ripgrep`.
### [glow](https://github.com/charmbracelet/glow)
A terminal-based markdown reader. It's absolutely fantastic for reading
`README`s and your own markdown documents.
### [gum](https://github.com/charmbracelet/gum)
A series of elegant helpers to write beautiful shell scripts with. This is a
huge time saver.
### [jq](https://stedolan.github.io/jq/)
A command-line JSON parser, among other things.
An amazing tool, and absolutely good to have, however as a Nushell user, this
has lost a lot of value over time.
### [op](https://1password.com/downloads/command-line/)
The 1Password CLI. Great for scripting all kinds of authentication.
### [psysh](https://psysh.org/)
An improved PHP REPL.
Also used with Neovim & [Codi](https://github.com/metakirby5/codi.vim) as an
interactive scratchpad. A mix between a REPL & editor.
### [slides](https://github.com/maaslalani/slides)
A markdwn, terminal-based slide deck. Originally I used [`lookatme`](https://pypi.org/project/lookatme/),
but if I am honest, I don't really like installing or using Python (pip)
packages and as such, gladly moved to `slides`.
### [stow](https://www.gnu.org/software/stow/)
Symlink farm manager. This tool is how I sync all the configurations from this
repository into my system. Without this, setting up a new machine would always
be some kind of pain in the ass. Now, I simply clone this repsitory and run the
appropriate `stow` command (kept in the `Makefile`).
### [tldr](https://github.com/tldr-pages/tldr)
A more succicnt `man`.
### [todo.sh](https://github.com/todotxt/todo.txt-cli)
A scriptable, terminal-based todo list.
### [tt](https://github.com/lemnos/tt)
A scriptable, terminal-based typing test.
### [xsv](https://github.com/BurntSushi/xsv)
`jq` but for CSVs. Pretty great, but Nushell kind of replaces the need for it.