Clone the repository:
git clone https://github.com/aloop/dotfiles.git ~/.dotfiles
To setup or update all links and copies, simply run the following command:
~/.dotfiles/dfctl install
On the other hand, you may wish to only update softlinks, hardlinks or copies:
~/.dotfiles/dfctl install --links # Only setup softlinks
# or:
~/.dotfiles/dfctl install --hardlinks # Only setup hardlinks
# or:
~/.dotfiles/dfctl install --copies # Only setup copies
These options can also be in any combination with each other:
~/.dotfiles/dfctl install --links --copies
# or:
~/.dotfiles/dfctl install --hardlinks --links
# etc.
If you've installed the dotfiles and are using bash
or zsh
as your shell,
once you open a new shell session ~/.dotfiles/bin
should be on your $PATH
,
subsequent invocations of dfctl
in this readme will not include ~/.dotfiles
in expectation of this.
Settings scripts for various programs and operating systems are kept in ~/.dotfiles/scripts/settings/
,
they can either be called directly (they are shell scripts), or you can call
them through the install script:
dfctl run settings linux
Very similar to the settings scripts outlined above, these are scripts meant to make installing certain pieces of software easier.
dfctl run install rustup
Files and Folders to be installed that already exist at the destination will be backed up by default to a directory similar to:
~/.dotfiles/backups/${HOST}@2023-01-01T00:00:00.000000
dfctl install --no-backups
To disable backups by default, copy the example config file like so:
cp ~/.dotfiles/config.example.ini ~/.dotfiles/config.ini
then edit the file as directed to disable backups.
DF_SWAY_AUTOSTART
: whether or not to start a sway session when a login on tty1 is started. Default is trueDF_TMUX_AUTOSTART
: whether or not to start a tmux session when a terminal is started. Default is falseDF_TMUX_AUTOSTART_SESSION_NAME
: The name of the session which will be automatically created or re-attached to. Default isdf_autostart_session
path_prepend
andpath_append
: add to the PATH, should be set in ~/.before, in PATH formatDF_ZSH_HIGHLIGHTERS
: set which highlighters to use with zsh-syntax-highlighting. Default is(main brackets)
~/.gitconfig.local
: override git settings, useful for setting email and name~/.before
: is sourced near the beginning of.bash_profile
or.zshenv
~/.after
: is sourced near the end of.bash_profile
or.zshenv
~/.zshenv.local
${ZDOTDIR}/local/.zshrc
${ZDOTDIR}/local/.zlogin
~/.bash_profile.local
~/.bashrc.local
~/.ssh/config.d/*.conf
: add custom SSH configuration files here${DOTFILES_DIR}/shell/profile.d/*.sh
: any shell scripts you place in this directory will be sourced by${DOTFILES_DIR}/shell/profile.sh
${DOTFILES_DIR}/shell/interactive.d/*.sh
: any shell scripts you place in this directory will be sourced by${DOTFILES_DIR}/shell/interactive.sh
${DOTFILES_DIR}/shell/autostart.d/*.sh
: any shell scripts you place in this directory will be sourced by${DOTFILES_DIR}/shell/autostart.sh
~/.config/sway/config.d
: add extra config files for sway here
- Add some backup management commands
- Create a manifest on install which can be used for uninstalling dotfiles