{"id":19956480,"url":"https://github.com/drudge/dotfiles","last_synced_at":"2026-05-12T18:31:47.563Z","repository":{"id":6003149,"uuid":"7226199","full_name":"drudge/dotfiles","owner":"drudge","description":"My personal dotfiles","archived":false,"fork":false,"pushed_at":"2020-04-21T20:39:15.000Z","size":196,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-28T04:32:26.415Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drudge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-12-18T16:07:13.000Z","updated_at":"2020-04-21T20:39:18.000Z","dependencies_parsed_at":"2022-09-23T04:02:02.240Z","dependency_job_id":null,"html_url":"https://github.com/drudge/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drudge%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drudge%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drudge%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drudge%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drudge","download_url":"https://codeload.github.com/drudge/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241389108,"owners_count":19955105,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T01:34:27.765Z","updated_at":"2026-05-12T18:31:46.586Z","avatar_url":"https://github.com/drudge.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\nMy OS X / Ubuntu dotfiles.\n\n## Why is this a git repo?\n\nI've been using zsh for a long time. In all that time, every time I've set up a new Linux or OS X machine, I've copied over my `.zshrc` file and my `~/bin` folder to each machine manually. And I've never done a very good job of actually maintaining these files. It's been a total mess.\n\nI finally decided that I wanted to be able to execute a single command to \"bootstrap\" a new system to pull down all of my dot files and configs, as well as install all the tools I commonly use. In addition, I wanted to be able to re-execute that command at any time to synchronize anything that might have changed. Finally, I wanted to make it easy to re-integrate changes back in, so that other machines could be updated.\n\nThat command is [~/bin/dotfiles][dotfiles], and this is my \"dot files\" Git repo.\n\n[dotfiles]: https://github.com/drudge/dotfiles/blob/master/bin/dotfiles\n[bin]: https://github.com/drudge/dotfiles/tree/master/bin\n\n## What, exactly, does the \"dot files\" command do?\n\nIt's really not very complicated. When [dotfiles][dotfiles] is run, it does a few things:\n\n1. Git is installed if necessary, via APT or Homebrew (which is installed if necessary).\n2. This repo is cloned into the `~/.dotfiles` directory (or updated if it already exists).\n2. Files in `init` are executed (in alphanumeric order).\n3. Files in `copy` are copied into `~/`.\n4. Files in `link` are linked into `~/`.\n\nNote:\n\n* The `backups` folder only gets created when necessary. Any files in `~/` that would have been overwritten by `copy` or `link` get backed up there.\n* Files in `bin` are executable shell scripts ([~/.dotfiles/bin][bin] is added into the path).\n* Files in `source` get sourced whenever a new shell is opened (in alphanumeric order)..\n* Files in `conf` just sit there. If a config file doesn't _need_ to go in `~/`, put it in there.\n* Files in `caches` are cached files, only used by some scripts. This folder will only be created if necessary.\n\n## Installation\n### OS X\nNotes:\n\n* You need to be an administrator (for `sudo`).\n* You need to have installed [XCode Command Line Tools](https://developer.apple.com/downloads/index.action?=command%20line%20tools), which are available as a separate, optional (and _much smaller_) download from Xcode.\n\n```sh\nbash -c \"$(curl -fsSL https://raw.github.com/drudge/dotfiles/master/bin/dotfiles)\" \u0026\u0026 source ~/.zshrc\n```\n\n### Ubuntu\nNotes:\n\n* You need to be an administrator (for `sudo`).\n* If APT hasn't been updated or upgraded recently, it will probably be a few minutes before you see anything.\n\n```sh\nsudo apt-get -qq update \u0026\u0026 sudo apt-get -qq upgrade \u0026\u0026 sudo apt-get -qq install curl \u0026\u0026 echo \u0026\u0026\nbash -c \"$(curl -fsSL https://raw.github.com/drudge/dotfiles/master/bin/dotfiles)\" \u0026\u0026 source ~/.zshrc\n```\n\n### Android\nNotes:\n\n* Install [Termux](https://termux.com), a great terminal emulator and Linux environment for Android that doesn't require root.\n\n```sh\napt update \u0026\u0026 apt install curl \u0026\u0026 echo \u0026\u0026\nbash -c \"$(curl -fsSL https://raw.github.com/drudge/dotfiles/master/bin/dotfiles)\"\n```\n\n## The \"init\" step\nThese things will be installed, but _only_ if they aren't already.\n\n### OS X\n* Homebrew\n  * git\n  * tree\n  * sl\n  * lesspipe\n  * id3tool\n  * nmap\n  * git-extras\n  * htop-osx\n  * apple-gcc42 (via [homebrew-dupes](https://github.com/Homebrew/homebrew-dupes/blob/master/apple-gcc42.rb))\n\n### Ubuntu\n* APT\n  * build-essential\n  * libssl-dev\n  * git-core\n  * tree\n  * sl\n  * id3tool\n  * nmap\n  * telnet\n  * htop\n\n### Both\n* Nave\n  * Npm (latest stable)\n    * Jake\n    * JSHint\n    * Uglify-JS\n\n## The ~/ \"copy\" step\nAny file in the `copy` subdirectory will be copied into `~/`. Any file that _needs_ to be modified with personal information (like [.gitconfig](https://github.com/drudge/dotfiles/blob/master/copy/.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 dot files repo.\n\n## The ~/ \"link\" step\nAny 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!\n\n## Aliases and Functions\nTo 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](https://github.com/drudge/dotfiles/tree/master/source).\n\n## Scripts\nIn addition to the aforementioned [dotfiles][dotfiles] script, there are a few other [shell scripts][bin].\n\n* [dotfiles][dotfiles] - (re)initialize dot files. It might ask for your password (for `sudo`).\n* src - (re)source all files in `source` directory\n* Look through the [bin][bin] subdirectory for a few more.\n\n## Inspiration\n\u003chttps://github.com/cowboy/dotfiles\u003e\n\u003chttps://github.com/gf3/dotfiles\u003e\n\u003chttps://github.com/mathiasbynens/dotfiles\u003e\n\n## License\nCopyright (c) 2012 Nicholas Penree\nLicensed under the MIT license.\n\u003chttp://benalman.com/about/license/\u003e\n\nOriginal Work:\nCopyright (c) 2012 \"Cowboy\" Ben Alman\nLicensed under the MIT license.\n\u003chttp://benalman.com/about/license/\u003e\n\n## Useful\n\nThe ZSH [reference card](http://www.bash2zsh.com/zsh_refcard/refcard.pdf) is a pretty good start for tips.\n\n## Feedback\n\nSuggestions/improvements are [welcome](https://github.com/drudge/dotfiles/issues)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrudge%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrudge%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrudge%2Fdotfiles/lists"}