This project is forked from rafaeleyng/dotfiles
. I made a light version of it.
Original:
This project is heavily inspired by @holman dotfiles. I've added oh-my-zsh
, changed the whole structure, and simplified a lot the version management for programming languages by using asdf
.
git clone https://github.com/rafaeleyng/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
scripts/dotfiles-install.sh
The most notable folders are:
scripts
: scripts that you can run manually, to either install this dotfiles project or install/update the dependencies it specifiesbasic
: each subfolder contains configuration for some basic component (like a default text editor or a default shell)bin/
: files are added to$PATH
and made available everywhere, and are executed in a child process.editor
: configurations for my text editorfunctions/
: files are added to$fpath
and made available everywhere, and are executed in the current process.shell
: configurations for my shell (zsh)
specific
: each subfolder contains configuration for some specific technology (like Git or the Go programming language):oh-my-zsh
: my configuration for oh-my-zsh
*/index.zsh
: files calledindex.zsh
get loaded into your environment when a shell is loaded*/*.symlink
: files ending in*.symlink
get symlinked (without the*.symlink
extension) into your$HOME
when you runscripts/dotfiles-install.sh
I can have a basic dotfiles project and isolate specifics, like:
- I want my work computer to have some specific files
- I want my personal computer to have other specific files
Create a separate repository with your extensions files, and clone it into an extensions
folder (already git-ignored), like:
# create the extensions dir
mkdir extensions && cd extensions
# add as many extensions projects you want
git clone https://github.com/<username>/<dotfiles-extension-personal>.git
git clone https://github.com/<username>/<dotfiles-extension-work>.git
# install the extensions
scripts/dotfiles-install.sh # install any dependencies (`install.sh` files) defined in the extensions and links `*.symlink` files from the extensions to the home directory
The currently supported extension files you can have inside your extensions project are:
git/gitconfig.extension.symlink
: extendsspecific/git/gitconfig.symlink
and gets symlinked into your$HOME
*/index.zsh
: files calledindex.zsh
get loaded into your environment when a shell is loaded (note: they should be inside some directory, likeshell/index.zsh
)
Here are some of the most useful software included in this dotfiles:
- utilities:
- commands:
e
: opens my favorite text editortodo <text>
: creates a file on desktop to remind a to-doupdate
: runs all*/update.sh
files
- functions:
c <tab>
, a function to go to my code folders (copied from @ryanb dotfiles)extract <file>
: knows how to unzip several formats
- aliases:
chrome [<filename>]
: to open Google Chromepubkey
: copy~/.ssh/id_rsa.pub
to clipboard
- https://github.com/holman/dotfiles
- holman/dotfiles#70: I renamed in this project every occurrence of the variable
ZSH
toDOTFILES
, to avoid conflicts between dotfiles and oh-my-zsh. - https://unix.stackexchange.com/questions/151889/why-does-bashs-source-command-behave-differently-when-called-from-a-function: I've used this question to source my files, but if you can understand what is happening (look at all my questions in the comments of the answers) please explain to me.