You may also be interested in Flare's Scripts, a collection of shell and NodeJS (check that project's readme!) scripts I use dozens of times an hour.
Based on a lot of discoveries from GitHub Does dotfiles, this is my repo for my dotfiles. I've also included a setup script, mostly for personal use, that will bring a brand new Mac from stock to stylish with minimal messing around.
bash -c "$(curl -sSL https://raw.githubusercontent.com/Flare576/dotfiles/main/setup/OSX/mac.sh)"
Or a new Steam Deck
bash -c "$(curl -sSL https://raw.githubusercontent.com/Flare576/dotfiles/main/setup/NIX/steamdeck.sh)"
Or a new Ubuntu Linux
bash -c "$(curl -sSL https://raw.githubusercontent.com/Flare576/dotfiles/main/setup/NIX/ubuntu.sh)"
If not setting up a new machine I git clone directly into ~ and run the script for the thing(s) I want to setup:
sh dotfiles/setup/secureRepo.sh # You should absolutely run this file to help prevent leaking secrets
sh dotfiles/setup/linkFiles.sh # Symlinks files to ~
sh dotfiles/setup/scripts.sh # pull scripts and sets up paths: see Flare57/scripts repo
sh dotfiles/setup/vim.sh # Yes, this sets up vim
sh dotfiles/setup/omz.sh # Oh My Zshell goes deliciously with Zsh
A quick note about secrets and private info: This project recommends keeping sensitive information in a set of
.doNotCommitfiles in the$HOME/dotfiles/.doNotCommit.dfolder. They do not reside directly in$HOMEbecause scripts in thedotfilesproject can and do edit them.
If I also want to install all the apps I use frequently, I'll run
sh dotfiles/setup/homebrew.sh # Check the script for details
sh dotfiles/setup/OSX/casks.sh # Check the script for details
You can read each of the scripts for details of how/what they do, but as far as what YOU can do, here's a breakdown:
There's a lot going on here, I know. Looking at all these lists is enough to make most folks close the browser tab, but bear with me for a moment.
The most important part of a program/tool is, in my opinion, getting around. For my configs, I've settled on a "vim-style" approach to this, which means using H, J, K, and L to move Left, Down, Up, and Right. Combining these movements with different modifiers makes up the bulk of getting around!
| Modifier | App | Notes |
|---|---|---|
| Ctrl | Vim | Moves between Buffers |
| Shift | Vim | Moves between Tabs |
| Alt | tmux | Moves between panes |
| Shift+Alt | tmux | Moves between Windows |
As a bonus: _ and | plus the above modifiers also splits/creates the thing it navigates
horizontally or vertically!
- Solarized - Beauty!
- vim-airline - Fast and flexible status line
- vim-json - Make JSON better!
- typescript-vim - Make Typescript... less awful
- ag.vim - Silver Searcher... IN VIM
- ctrlp.vim - Fuzzy file finder!
- z.vim - The power of Z-script in Vim
- undotree - Makes traversing the undo tree not suck
- gutentags + tagabar - Index your source code and <Ctrl-]> your way to happiness
- MergeTool - Makes
git mergetoolway more useful - vim-surround - easily change '' to "" to
, withcsthen the thing that's there, and the thing you want- (e.g. 'hello world' to "hello world", do
cs'")
- (e.g. 'hello world' to "hello world", do
See https://dougblack.io/words/a-good-vimrc.html for info, or the .vimrc file for line-by-line comments
| Mode | Keys | Actions |
|---|---|---|
| Normal/Visual | j/k/h/l | move "visually" up and down, makes soft-wraps easier |
| Normal | B & E | shortcuts for ^ and $ |
| Normal | ctrl + j, k, h, l | change focus between windows |
| Normal | H & L | Move between tabs |
| Normal | :VE | Open a new Vertical buffer in Explore mode |
| Normal | :HE | Open a new Horizontal buffer in Explore mode |
| Normal | :TE | Open a new Tab in Explore mode |
| Normal | ctrl + _ | split window horizontally |
| Normal | ctrl + | | split window vertically |
| Normal | ,<Enter> | zoom in/out of buffer |
| Normal | >, <, +, - | resize current window |
| Normal | ,a | fuzzy search (Silver Searcher) for files under pwd |
| Normal | ,z | Open commonly used folders in current buffer (see Z) |
| Normal | ctrl+p | brings up file search under pwd |
| Visual | ,y | yank selected to OSx/WSL clipboard |
| Mode | Keys | Actions |
|---|---|---|
| Visual | ,uq | Removes quotes from selected text |
| Normal | ,<space> | turns off search highlighting |
| Normal | ,dc | Diff current buffer against on-disk file (changes since last save) |
| Normal | ,dg | Diffs current buffer against git history |
| Normal | ,do | Diffs "open" buffers against each other |
| Normal | ,/ | Shows the count of your last search |
| Normal | gV | highlight last inserted text |
| Normal | ,u | Brings up "Super Undo" |
| Mode | Keys | Actions |
|---|---|---|
| Normal | @y | converts "Describe Table" and converts to YAML (beta) |
| Visual | <count>,<Tab> | works on range, starts a # comment at column |
| Normal | ,q | saves current session to /tmp/ongoing and exits |
| Normal | ,rb | [R]uns current file in [b]rowser (chrome by default) |
| Mode | Keys | Actions |
|---|---|---|
| Insert | ,jg | Starts a Green section |
| Insert | ,jr | Starts a Red section |
| Insert | ,jo | Starts an Orange section |
| Mode | Keys | Actions |
|---|---|---|
| Normal | ,sv | Source .vimrc in open vim instance |
| Normal | ,ev | Edit .vimrc in new tab |
| Normal | ,ez | Edit .zshrc & .zshenv in new tab w/ split pane |
| Normal | ,et | Edit .tmux.conf in new tab |
| Normal | ,ej | Edit .jira.d/config.yml in new tab |
| Normal | ,ed | Edit dotfiles root folder in new tab |
| Mode | Keys | Actions |
|---|---|---|
| Default | Ma h, j, k, l | Resize pane 2 units in given direction |
| Default | M + h, j, k, l | Switch to pane given direction |
| Default | M + , - | New horizontal, vertical split |
| Default | M +⇧ + |, _ | New window |
| Default | M +⇧ + K | Switch to the "last" window |
| Default | M +⇧ + H, L | Switch to window to the left/right |
| Default | M +⇧ + : | tmux command prompt |
| Default | C-k | clear buffer |
| Default | Ma Enter | Maximize/Restore current pane |
| Default | Ma b | Sends UbuntuQuickInstall script to pane (for containers!) |
Check out flare576/jira-cli.
| Command | Parms | Result |
|---|---|---|
| vz | none | Edit(vi) .zshrc and .zshenv |
| vd | none | Edit(vi) dotfiles root dir |
| vv | none | Edit(vi) with /tmp/ongoing session |
| vt | none | Edit(vi) with /dotfiles/.tmux.conf session |
| vs | none | Edit(vi) ~/scripts root dir |
| sz | none | Source .zshrc and .zshenv |
| plcat | .plist file | OSX only: outputs human-readable contents of a .plist file |
| pi/py | various | runs pipenv and pipenv run python respectively |
See also Git Aliases
| Command | Params | Result |
|---|---|---|
| k | see docs | alias to kubectl, so whatever you pass to kubectl |
| k9s | see docs | UI for K8s. You're welcome |
| klog | none | call kubelogin to authenticate in browser for current context |
| kcon | context | alias to kubectl config use-context |
| kcons | none | alias to kubectl config get-context |
| kn | namespace | alias to kubectl config set-context --current --namespace |
| lzy | none | opens lazydocker |
| lzye | none | edits lazydocker config file |
| dnuke | none | alias to docker system prune --volumes -af |
See also kubectl, docker-compose, docker-aliases or just run
alias | grep dockerto see them all!
ZSH has a command-line editor functionality,
which can be set to vim-mode but
defaults to emacs. It's pretty nice, but I've become used to some of the emacs features. To bring
them back (and to make it act more like my vim), these changes were made
| Key(s) | Mode | Action |
|---|---|---|
| B | vicmd | Jumps to front of line (imitate ^) |
| E | vicmd | Jumps to front of line (imitate $) |
| ↑ / ↓ | viins | Scrolls through previous commands (imitates emacs behavior) |
Sometimes you just don't want to dig through a bunch of scripts and want to know what a person suggests. Here's what makes my life easier:
- Homebrew / Cask (https://brew.sh/)
vimgrab the most recent version †git+hubgitHub actions in your CLI †the_silver_searcherBettah than awk †tmuxpanel/window manager in terminal †batreplacescat†1passwordMore secure, cleaner interface ††launchbarSpotlight kinda sux ††slackPlease don't make me use teams ††pipenvw/ python 3.7.2 †nvm99 problems, but node versions ain't one †- ZSH Bettah than bash †
shellcheckstatic analysis on scripts †git-secretsenabled on this project †masCLI app store tool †cheatCLI Cheat sheets †watchre-run commands on timer †jqprocess JSON output †k9sCLI UI for K8s †dockerContainer Manager ††lazydockerCLI UI for Docker †- All my Vim config; sorry, you're gonna have to read it for details.
† Installable with Homebrew
†† Installable with Homebrew Cask
kirbydance -> <(^.^<) (>^.^)> <(^.^)>
shruggy -> ¯\_(ツ)_/¯
fliptable -> (╯°□°)╯︵ ┻━┻
fixtable -> ┬─┬ノ( º _ ºノ)
middlefinger -> 凸 (`0´)凸