# idgatt It's Dangeroud to Go Alone! Take This! Idgatt is my implementation of dotfiles. This is a highly opinionated project, and though I try to keep to general best practices, several bits have been customized to how I like them. This dotrepo mainly uses a custom zsh-script, `idgatt.zsh`, to install everything. ## Dependencies - `zsh` - `git` ### Optional dependencies - `zsh-syntax-highlighting` - Fish shell like syntax highlighting for ZSH. - `fzf` - Fuzzyfinder - `rg` - Ripgrep, a faster grep ### Suggested extras - [fzf](https://github.com/junegunn/fzf) and [fzf.vim](https://github.com/junegunn/fzf.vim), for fuzzyfinding in vim - [zsh-completions](https://github.com/zsh-users/zsh-completions) - Additional completion definitions for Zsh. - [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) - syntax-highlighting for zsh - [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) - autosuggestions for zsh - [GNU coreutils](https://www.gnu.org/software/coreutils/) - Idgatt works fine on any system, but if you have GNU coreutils installed, `ls`, `sed`, and `grep` are aliased to the GNU versions. ## News & Roadmap Version 3 is finally out. I should have released a new version long ago, but the `devel`-branch has seen major changes, and there's always been that last thing I have to fix before merging back into main branch. I'll try to move things along faster in the future. Major changes since v2: - Renamed `master`-branch to `main` - Changed license from GPL-2 to BSD-3-Clause - Moving from [NvChad](https://github.com/NvChad/NvChad) to [LazyVim](https://github.com/LazyVim/LazyVim/) - zsh-function `log` has been renamed to `say`. BREAKING CHANGE - old scripts relying on `log` will have to be updated to use `say`. - Lots of stuff moved from `~/` to `~/.config` - yay for `$XDG_CONFIG_HOME` - Lots and lots of minor changes Future roadmap: - Clean up install-script. Either properly, or recreate in perl? - Move `~/.zsh` to `~/.config/zsh`? - Move `~/.vim` to ~/.config/vim? - Re-introduce git submodules? - Move `~/.idgatt` to `~/.local/share/idgatt`? - Re-purpose branches so that `main` is bleeding edge, and and use tags for stable "releases" - Remove `terminfo(5)`-file for kitty ## Branches - `main` - This is the "stable" branch - `devel` - The bleeding edge - `master` - Old "stable" branch. Deprecated. ## Installing `idgatt.zsh` is the install-script. It's optional to use it. It will install idgatt to your home folder, do a git pull, and put config-files where they go. The script takes these flags: - `-d` - Debug. Sets `LOGLEVEL` to 7, and tries to show everything that happens. - `-f` - Use force. This will delete files that may be in the way for an installation or update of idgatt. - `-F` - Use force with git as well. This will force a new checkout of the git-repo, and will destroy any local changes. - `-h` - Shows a short help-message, saying to check this README. - `-n` - No-op, or DRYRUN. Se what changes the script will perform, but do not perform them. - `-U` - Do *not* update idgatt, only stash files - `-x` - set XTRACE Environmental variables: - `IDGATTDIR` - Installation directory for Idgatt. Defaults to `${HOME}/.idgatt` - `IDGATT_BRANCH` - Which branch to use. Defaults to `master` - `IDGATT_URL` - Repo URL. Defaults to `https://git.dnns.no/idgatt` - `IDGATT_cURL` - Url for download in case `git` isn't installed. Defaults to `https://git.dnns.no/idgatt/snapshot/idgatt-${IDGATT_BRANCH}.tar.gz` - `IDGATT_FORCE` - See `-f` above. Defaults to `0` - `IDGATT_FORCE_GIT` - See `-F` above. Defaults to `0` - `IDGATT_STOW` - What folders in `idgatt/` should be installed/symlinked to `~/`. Takes an array. Defaults to `(bin config git lynx readline terminfo texinfo vim zsh)`, which is everything except `tmux/`. `tmux/` is only included on OpenBSD, because tmux on OpenBSD does not check `$XDG_CONFIG_HOME` by default, så we *need* `~/.tmux.conf` as a symlink to `$XDG_CONFIG_HOME/tmux/tmux.config`. - `DRYRUN` - See `-n` above. Defaults to `0` - `LOGLEVEL` - How much info to output when running the script. Takes a value from 0 or `emergency` to 7 or `debug`. Follows [RFC5424](https://www.rfc-editor.org/rfc/rfc5424#page-11) for severity of messages. Defaults to 6 (`info`) Flags override environmental variables. # ZSH Coming # Vim / Neovim Coming # Licence This repo is distributed under the BSD-3-Clause license [LICENSE]. Some files also carry their own licenses.