Skip to content

LoganBarnett/dotfiles

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

This is my system configuration. It’s a continual work in progress. It also relies upon less public configuration in another repository. My end goal is to transform this into a fully literate configuration. At least as much as is reasonable. At some point I need to bootstrap the configuration, of course.

Privacy

Some configuration here is private and cannot reasonably shared with the community at large. These exist as separate repositories whose permissions are locked down to my personal access only. Some paths in here will refer to private repositories or files. All of them will have a private identifier somewhere in the name. It is recommended that you stub these out if you’re not me, but if you’re in a rush you can just comment/remove these references to get you going.

If Installing From an Existing Configuration

You will want to backup your ~/.zshrc and perhaps other shell configuration files.

Installation

Run ./install.sh.

Other installers are named install-<thing>.sh or <thing>-install.sh, with the latter being preferred but refactoring is not done yet. In addition, installers are slowly being removed in favor of Nix. See the Nix section for details on its preferred layout.

Nix

This repository uses Nix extensively. Nix is used in conjunction with home-manager to manage a user’s configuration. nix-darwin is used for macOS configurations. Everything locked via Nix Flakes. The entry point is ./nix/flake.nix.

Nix installation can be run by itself via ./nix-install.sh.

I have in-progress work and notes in ./nix/README.org.

With Direnv and shell.nix Files

Old - needs updating since we now use flake.nix instead of shell.nix but much of this still applies.

This installation includes direnv, which can automatically load a shell.nix file when entering its directory if the path has been blessed via direnv allow. The shell.nix file declares a series of packages which will be available in the shell, and possibly even additional setup (like adding shell aliases or running some initial setup like database schemas). This is like tools like pyenv, rbenv, and nodenv or the *vm equivalents (rvm, nvm, etc), but it works for any software that Nix can handle, not just that one ecosystem.

Use nix-direnv-add-envrc to lay down the necessary direnv files and also allow the setup immediately.

Global Packages from VMs

Some languages that require runtimes (Ruby, Python, Node.js) all have packages that can be installed globally and communities tend to author tools which leverage this. Installing these kinds of packages by hand is not really the Nix way and generally you will run into permissions errors trying to do this with this configuration. Instead you want to install these packages via your .nix files.

About

Config files I use

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Nix 54.1%
  • Emacs Lisp 18.2%
  • CSS 11.1%
  • Shell 9.0%
  • Ruby 4.6%
  • JavaScript 1.1%
  • Other 1.9%