aboutsummaryrefslogtreecommitdiffstatshomepage

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

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 to 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 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.