These are the base dotfiles that I start with when I set up a
new environment. For more specific local needs I use the .local
files described in the Local Settings
section.
To set up the dotfiles
just run the appropriate snippet in the
terminal:
(:red_circle: Tested on Debian, Ubuntu, Fedora, Kali, ParrotOS, ArcoLinux, and MacOS)
(:warning: DO NOT run the setup
snippet if you do not fully
understand what it does. Seriously, DON'T!).
OS | Snippet |
---|---|
Auto |
bash -c "$(curl -LsS https://github.com/casjay-systems/linux/raw/main/install.sh)" |
Linux Installer |
bash -c "$(curl -LsS https://github.com/casjay-systems/linux/raw/main/install.sh)" |
MacOS Installer |
bash -c "$(curl -LsS https://github.com/casjay-systems/macos/raw/main/install.sh)" |
Windows Installer |
powershell.exe -Command Invoke-WebRequest https://github.com/casjay-systems/windows/raw/main/install.cmd -o %USERPROFILE%\Downloads\install.cmd; %USERPROFILE%\Downloads\install.cmd |
That's it! ✨
The setup process will:
- Download the dotfiles on your computer (by default it will
suggest
~/.local/dotfiles/macos
) - Create some additional directories
- Symlink the
git
,shell
, andvim
files - Install applications / command-line tools for
macOS
/linux
- Install
vim
plugins
Setup process in action:
macOS | linux |
The dotfiles
can be easily extended to suit additional local
requirements by using the following files:
The ~/.config/local/bash.local
file it will be automatically sourced after
all the other bash
related files, thus, allowing
its content to add to or overwrite the existing aliases, settings,
PATH, etc.
Here is a very simple example of a ~/.config/local/bash.local
file:
#!/bin/bash
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set local aliases.
alias starwars="telnet towel.blinkenlights.nl"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set PATH additions.
PATH="$PATH:$HOME/.local/dotfiles/macos/src/bin"
export PATH
The ~/.config/local/gitconfig.local
file it will be automatically included
after the configurations from ~/.gitconfig
, thus, allowing its
content to overwrite or add to the existing git
configurations.
Note: Use ~/.config/local/gitconfig.local
to store sensitive information
such as the git
user credentials, e.g.:
[commit]
# Sign commits using GPG.
# https://help.github.com/articles/signing-commits-using-gpg/
gpgsign = true
[user]
name = Your Name
email = [email protected]
signingkey = XXXXXXXX
The ~/.config/local/vimrc.local
file it will be automatically sourced after
~/.vimrc
, thus, allowing its content to add or overwrite the
settings from ~/.vimrc
.
If you decide to fork this project, do not forget to substitute
my username with your own in the setup
snippets and
in the setup
script
To update the dotfiles you can either run the setup
script
or, if you want to just update one particular part, run the appropriate
os
script.
Output for git status
:
macOS | linux |
Output for git log
:
macOS | linux |
macOS | linux |
The code is available under the MIT license.