Highly customized dotfiles with one operative system per branch and powerful installer and updater scripts.
Dotfiles are user's configuration files on Unix/Linux/BSD/OS X operative
systems. Their filename begins with a dot .
(thus the name dotfiles),
making them hidden files; they are usually places in the user's home
directory ~
.
Having a published repository of your whole system configuration (with some
installers), allows fast and no-pain set-up of any newly installed machine
anywhere, especially some servers that are controlled only by command line
by ssh
.
This repository has no installers and other scripts on the common
branch but
there is one Git branch for each operative system. This helps using the
OS-specific packager managers (apt-get
, brew
, ...) and make OS-specific
changes (for instance htop
has different configurations on Linux and OS X).
To install Matjaž's dotfiles, run one of the following commands. It downloads and runs the installer for your specific OS found in that OS's branch.
The installer should handle all the rest with an interactive command line
interface. It installs the dotfiles repository (by default in
~/Development/Dotfiles
, but you can change that), all the required packages,
HomeBrew (OS X only) and Oh My ZSH!.
Git is required by the installer to clone the branch of your OS.
Basically Linuxes with apt-get
.
# Using wget
bash -c "$(wget https://raw.github.com/TheMatjaz/dotfiles/debian-ubuntu/matjaz_dotfiles_installer.sh -O -)"
# Using curl
bash -c "$(curl -fsSL https://raw.github.com/TheMatjaz/dotfiles/debian-ubuntu/matjaz_dotfiles_installer.sh)"
CAUTION!
This installer has NEVER BEEN TESTED because I have not yet installed another OS X system. Use it at your own risk.
# Using curl
bash -c "$(curl -fsSL https://raw.github.com/TheMatjaz/dotfiles/mac-osx/matjaz_dotfiles_installer.sh)"
No other OSs yet, but any contribution is welcome!
zshrc
: general Oh My ZSH! settingszsh_path
:$PATH
variable setting andexport
settings, like default text editors and so onzsh_aliases
: custom aliases and functions for the zshzsh_fino_custom.zsh-theme
: a customizedfino
theme for Oh My ZSH!gitignore_global
: a list of files Git should ignore in any repository. Those are used also by Mercurialemacs_init.el
: Emacs configuration that also installs some ELPA packages, if not already installed, to completely clone an existing configuration
The others are pretty obvious from the filenames alone.
matjaz_dotfiles_installer.sh
does all the work for you (see Installation section above). It's an interactive installer which allows:- downloading this repository
- downloading all the required packages for the dotfiles, like Emacs or Oh My ZSH!
- placing the proper symlinks to activate the dotfiles
- performing system updates
- and a few more small things such as locale setting, hostname, swapfile
new_system_packages_installer.sh
installs some packages which the Matjaž's dotfiles are for. It calls the system's package manager. Can be run stand-alone. Thematjaz_dotfiles_installer.sh
calls it for you as well.full_system_updater.sh
just likenew_system_packages_installs.sh
detects the operative system and updates all the packages of its package managers. Can be run stand-alone. Thematjaz_dotfiles_installer.sh
calls it optionally during the install.useful_packages.md
is a simple list containing packages generally worth installing on any system (it's not an executable, just a memo). It is not available on thecommon
branch.
This dotfiles repository and all its files are released under the BSD 3-clause license.
Those repositories were used as a huge inspiration, some functions and aliases were also taken from them. All of those repositories are subject to the MIT license, released by their respective owners.
- Mathias Bynens's dotfiles
- Holman's dotfiles
- Joined's dotfiles
- A huge list of other dotfiles repositories
- Oh My ZSH installation scripts
Some really useful documentation about the dotfiles repositories may be found here:
- Getting started with dotfiles, great for beginners
- Dotfiles are meant to be forked by Holman
- Using Git and GitHub to manage your dotfiles