adamhamlin / dotfiles

My dotfile/configuration repository

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

adam does dotfiles

NOTE: This is a WIP!!!

This was influenced by https://github.com/holman/dotfiles.

design

There are a few special directories...

  • shell/: All files required for your particular shell. Currently using bash.
  • bin/: Anything in bin/ will get added to your $PATH and be made available everywhere.
  • nix/: Contains a flake.nix file to configure/install packages for your environment. See README.
  • public-keys/: Public keys you want to make available anywhere.

All other directories are "topics", corresponding to specific programs/packages/etc. These files are processed/synced by running the ./bootstrap script.

  • {topic}/*.symlink: Any file ending in *.symlink will be symlinked into your $HOME directory.

    Note this will overwrite an existing file with the same name.

  • {topic}/*.source: Any files ending in .source get sourced by your shell. For example, you might want to export applicable environment variables or set up auto-completion.

prerequisites

We're using nix for package management, but there are some specific requirements to even install nix. Ensure your system has the following before proceeding:

  • sudo (and your user has sudo access)
  • git
  • curl
  • xz

use it

git clone https://github.com/adamhamlin/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./bootstrap
# restart/reset your shell
exec $SHELL

Changes to .source files or existing .symlink files should be reflected on next shell reset, but other changes may require you to re-run the bootstrap script.

caveats

  • While there is a nix package for docker, it really only is useful for NixOS. Better off just installing docker engine + docker desktop separately.

todo

  • More mac vs linux switches
  • One-time setup install scripts? i.e., separate from shell sourcing?
  • Use NixOS?

About

My dotfile/configuration repository

License:MIT License


Languages

Language:Shell 78.6%Language:Nix 21.4%