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
- 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
, andgrep
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 tomain
- Changed license from GPL-2 to BSD-3-Clause
- Moving from NvChad to LazyVim
- zsh-function
log
has been renamed tosay
. BREAKING CHANGE - old scripts relying onlog
will 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
~/.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” 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. SetsLOGLEVEL
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 tomaster
IDGATT_URL
- Repo URL. Defaults tohttps://git.dnns.no/idgatt
IDGATT_cURL
- Url for download in casegit
isn’t installed. Defaults tohttps://git.dnns.no/idgatt/snapshot/idgatt-${IDGATT_BRANCH}.tar.gz
IDGATT_FORCE
- See-f
above. Defaults to0
IDGATT_FORCE_GIT
- See-F
above. Defaults to0
IDGATT_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_HOME
by default, så we need~/.tmux.conf
as a symlink to$XDG_CONFIG_HOME/tmux/tmux.config
.DRYRUN
- See-n
above. Defaults to0
LOGLEVEL
- How much info to output when running the script. Takes a value from 0 oremergency
to 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.