This repo contained my dotfiles untill 2023, now they are all managed to my nix-config. Check out the config/ folder for actual dot files like neovim/i3/wezterm config and such.
My OS X / Ubuntu / Debian dotfiles.
The dotfiles of (github.com/marcusramberg)[marcusramberg] - Initially system was based on (github.com/cowboy/dotfiles)[Cowboy's dotfiles]. They are heavily changed to use ansible, zsh, and debianish/arch, as well as my config files.
That command is ~/bin/dotfiles, and this is my "dotfiles" Git repo.
It's really not complicated. When you run dotfiles , it does the following things:
- Installs Git if necessary, via APT or Homebrew (also installed if necessary).
- Clones this repo into the
~/.dotfiles
directory (or updated if it already exists). - Executes files in
init
(in alphanumeric order). - Copies in
copy
into~/
. - Links files and folders in
link
into~/
. - Sets up prefs as well as vim plugins.
Note:
- The
backups
folder only gets created when necessary. Any files in~/
that would have been overwritten bycopy
orlink
get backed up there. - Files in
bin
are executable shell scripts (includes ~/.dotfiles/bin into the path). - Files in
source
get sourced whenever you open a new shell (in alphanumeric order).. - Files in
conf
just sit there. If a config file doesn't need to go in~/
, put it in there. - Files in
caches
are cache files, only used by some scripts. This folder is auto-created.
Notes:
- You need to be an administrator (for
sudo
). - You need to have installed XCode Command Line Tools, which are available as a separate, optional (and much smaller) download from XCode.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/marcusramberg/dotfiles/master/bin/dotfiles)" && source ~/.config/fish/config.fish
Notes:
- You need to be an administrator (for
sudo
). - If APT wasn't updated or upgraded recently, it will probably take some minutes before you see anything.
sudo apt-get -qq update && sudo apt-get -qq upgrade && sudo apt-get -qq install curl ansible && echo &&
bash -c "$(curl -fsSL https://raw.githubusercontent.com/marcusramberg/dotfiles/master/bin/dotfiles)" && source ~/.zshrc
These things will be installed, but only if they aren't already.
- Homebrew
- git
- tree
- sl
- lesspipe
- id3tool
- nmap
- git-extras
- htop-osx
- apple-gcc42 (via homebrew-dupes)
- APT
- build-essential
- libssl-dev
- git-core
- tree
- sl
- id3tool
- nmap
- telnet
- htop
- Nave
- Npm (latest stable)
- Grunt
- JSHint
- Uglify-JS
- Npm (latest stable)
- Rbenv
- Ruby 1.9.3-p194 (default)
- Ruby 1.9.2-p290 (default)
- Ruby Gems
- bundler
- awesome_print
- interactive_editor
- Perlbrew
Any file in the copy
subdirectory will be copied into ~/
. Any file that needs to be modified with personal information (like .gitconfig which contains an email address and private key) should be copied into ~/
. Because the file you'll be editing is no longer in ~/.dotfiles
, it's less likely to be accidentally committed into your public dotfiles repo.
Any file in the link
subdirectory gets symbolically linked with ln -s
into ~/
. Edit these, and you change the file in the repo. Don't link files containing sensitive data, or you might accidentally commit that data!
To keep things easy, the ~/.zshrc
file is extremely simple, and should never need to be modified. Instead, add your aliases, functions, settings, etc into one of the files in the source
subdirectory, or add a new file. They're all automatically sourced when a new shell is opened. Take a look, I have a lot of aliases and functions. I even have a fancy prompt that shows the current directory, time and current git/svn repo status.
In addition to the aforementioned dotfiles script, there are a few other scripts. This includes ack, which is a git submodule.
- dotfiles - (re)initialize dotfiles. It might ask for your password (for
sudo
). - src - (re)source all files in
source
directory - Look through the bin subdirectory for a few more.
Git repos display as [branch:flags] where flags are:
? untracked files ! changed (but unstaged) files + staged files
SVN repos display as [rev1:rev2] where rev1 and rev2 are:
rev1 last changed revision rev2 revision
https://github.com/gf3/dotfiles https://github.com/mathiasbynens/dotfiles (and 15+ years of accumulated crap)
Some parts Copyright (c) 2012 Marcus Ramberg Copyright (c) 2012 "Cowboy" Ben Alman Licensed under the MIT license. http://benalman.com/about/license/