Files
dotfiles/README.md

100 lines
3.7 KiB
Markdown

# FaultyBranches Dotfiles
Yet another repository of dotfiles, this time for the FaultyBranches way of setting up a non-machine specific user's software.
Included are configs for:
- neovim
- tmux
- wezterm
- zsh
Planned configs are:
- gitconfig
- newsboat
## Deployment
> [!CAUTION]
> This script _WILL_ clobber existing configuration files for the above applications. Read the script and backup files before running if needed.
Just run `./deploy.sh`
Configurations will be deployed to standard locations for a *nix/Mac user directory by force creating a symlink back to this repository's files.
### Additions
Configurations and their destinations are listed in the deploy script's associative array (dict) named `configs`. Additions or alterations to locations or new configs are to be added there.
## Updating
`git pull` will give the latest changes and via symlinks they will immediately be available to the appropriate applications.
## Applications
### Neovim
Console/terminal based text editor with hefty extensibility, speed and flexibility.
The configs are an attempt at including some IDE functionalities
- Auto-complete via nvim-cmp
- LSP setup via lspconfig and mason
- Debugging via DAP and plugins
- Code snippets via luasnips and a base set of snippets
- Git integration via gitsigns
- Syntax highlighting and symbol parsing via treesitter
- Quality of life options
- Language aware shortcuts for (un)commenting lines or blocks
- Zettlekasten style note plugin for taking/searching/linking notes
- Markdown preview that opens a live updating html view of an edited markdown file
- Markdown in editor rendering
- Telescope fuzzy search for files and file contents
### Tmux
_The_ terminal multiplexer for windowing and pane setups for long running shell sessions.
Simple configuration setup for a few shortcuts, adding the tpm plugin manager, and adding a couple plugins for colorscheme, system clipboard interactions
and a few "sensible" settings.
The main changes to shortcuts involve:
- Moving to Ctrl-Space for the prefix leader instead of the default Ctrl-b
- Using `\` and `-` for splitting the window vertically and horizontally, respectively, and unbinding the defaults
- Adding a config reload shortcut of `<prefix> r`
- Moving to vim-like movement between panes and windows
- Removing auto-renaming of windows based on content
### Wezterm
Cross-platform terminal emulator built from the ground up with speed, good font rendering, true color and a host of nice optional functions.
Simple setup with automatic config reloading, a colorscheme, font and a couple other bits.
Handles loading a local configuration file from the `~/.config/wezterm/local.lua` location.
Contains a fix for Linux cursor rendering and theming, loading only on that OS.
### Zsh
NOTE: Auto-installs oh-my-zsh directly from the github repository when a user opens Zsh for the first time
Sets up the oh-my-zsh framework with:
- Colorscheme
- Autosuggestions and virtual text
- Prompt theme
- Python virtualenv auto-loader
- .env auto-loader
- AWS helper
- Git helper and prompt updater
The config adds the following settings outside of oh-my-zsh:
- PATH environment variable additions for:
- Go binaries
- Rust binaries
- User $HOME based `.local/bin`
- Keychain initialization for caching SSH keys
- Adding a timing function for checking ZSH load timing
- Local specific configuration file loading, with three initial configs:
- `.zsh_aliases`: Aliases for local specific commands
- `.zsh_exports`: Exported variables for a specific system
- `.zsh_functions`: Custom functions
- `.zsh_local`: Local ZSH settings for a specific system such as any environment specific bash required to set up a system's shell or direct ZSH settings