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
zshgit
Optional dependencies
zsh-syntax-highlighting- Fish shell like syntax highlighting for ZSH.fzf- Fuzzyfinderrg- Ripgrep, a faster grep
Suggested extras
- fzf and fzf.vim, for fuzzyfinding in vim
- zsh-completions - Additional completion definitions for Zsh.
- zsh-syntax-highlighting - syntax-highlighting for zsh
- zsh-autosuggestions - autosuggestions for zsh
- GNU coreutils - Idgatt works fine
on any system, but if you have GNU coreutils installed,
ls,sed, andgrepare 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 tomain - Changed license from GPL-2 to BSD-3-Clause
- Moving from NvChad to LazyVim
- zsh-function
loghas been renamed tosay. BREAKING CHANGE - old scripts relying onlogwill have to be updated to usesay. - 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
~/.zshto~/.config/zsh? - Move
~/.vimto ~/.config/vim? - Re-introduce git submodules?
- Move
~/.idgattto~/.local/share/idgatt? - Re-purpose branches so that
mainis bleeding edge, and and use tags for stable “releases” - Remove
terminfo(5)-file for kitty
Branches
main- This is the “stable” branchdevel- The bleeding edgemaster- 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. SetsLOGLEVELto 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}/.idgattIDGATT_BRANCH- Which branch to use. Defaults tomasterIDGATT_URL- Repo URL. Defaults tohttps://git.dnns.no/idgattIDGATT_cURL- Url for download in casegitisn’t installed. Defaults tohttps://git.dnns.no/idgatt/snapshot/idgatt-${IDGATT_BRANCH}.tar.gzIDGATT_FORCE- See-fabove. Defaults to0IDGATT_FORCE_GIT- See-Fabove. Defaults to0IDGATT_STOW- What folders inidgatt/should be installed/symlinked to~/. Takes an array. Defaults to(bin config git lynx readline terminfo texinfo vim zsh), which is everything excepttmux/.tmux/is only included on OpenBSD, because tmux on OpenBSD does not check$XDG_CONFIG_HOMEby default, så we need~/.tmux.confas a symlink to$XDG_CONFIG_HOME/tmux/tmux.config.DRYRUN- See-nabove. Defaults to0LOGLEVEL- How much info to output when running the script. Takes a value from 0 oremergencyto 7 ordebug. Follows RFC5424 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.