{"id":16362433,"url":"https://github.com/petemcw/dotfiles","last_synced_at":"2026-03-03T17:33:45.814Z","repository":{"id":1188803,"uuid":"1092085","full_name":"petemcw/dotfiles","owner":"petemcw","description":"💻  A collection of config files that bring flavor to my digital world","archived":false,"fork":false,"pushed_at":"2023-12-11T17:51:04.000Z","size":56774,"stargazers_count":16,"open_issues_count":2,"forks_count":14,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T11:37:06.152Z","etag":null,"topics":["docker","dotfiles","homebrew","macos","shell","ubuntu"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/petemcw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-11-18T16:30:16.000Z","updated_at":"2025-01-05T13:00:52.000Z","dependencies_parsed_at":"2024-10-28T15:22:27.389Z","dependency_job_id":"74429787-ff27-44a6-8255-b9091cbdc2e1","html_url":"https://github.com/petemcw/dotfiles","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/petemcw/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petemcw%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petemcw%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petemcw%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petemcw%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petemcw","download_url":"https://codeload.github.com/petemcw/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petemcw%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30052499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T15:26:47.567Z","status":"ssl_error","status_checked_at":"2026-03-03T15:26:17.132Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","dotfiles","homebrew","macos","shell","ubuntu"],"created_at":"2024-10-11T02:24:14.162Z","updated_at":"2026-03-03T17:33:45.792Z","avatar_url":"https://github.com/petemcw.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\nDotfiles are used to configure and personalize your computer environment. This is the collection of files I use when spinning up a new machine (MacOS or Ubuntu).\n\n**Before you use these**, browse the contents of the repository and see how all the components work together and mesh with your needs. Then go ahead and [fork it](https://github.com/petemcw/dotfiles/fork), [remove](https://github.com/petemcw/dotfiles/blob/master/README.md#forks) what you don't need, and build on the rest to create your own flavor.\n\n# Installation\n\nTo install, run the appropriate command for your system.\n\n:warning: **DO NOT** run the `setup.sh` command if you don't fully understand how it works. It can cause trouble on an already configured system.\n\n## MacOS\n\n```bash\nbash -c \"$(curl -fsSL https://raw.githubusercontent.com/petemcw/dotfiles/master/src/os/setup.sh)\"\n```\n\n## Ubuntu\n\n```bash\nbash -c \"$(wget -qO - https://raw.githubusercontent.com/petemcw/dotfiles/master/src/os/setup.sh)\"\n```\n\n:sparkles: All done! :sparkles:\n\n# Updates\n\nTo update the repository with any new changes and re-run the setup process, simply run the [`setup.sh` script](https://github.com/petemcw/dotfiles/blob/master/src/os/setup.sh). You can also update a particular component by running the appropriate script.\n\n# Customize\n\nYou can easily extend the functionality provided by this repository on a local, per-environment basis using the following files.\n\n## Git Settings\n\nThe `~/.gitconfig.local` file will be created for you during installation. It's contents are up to you and will be included after content from `~/.gitconfig` allowing you to overwrite and add to the default config.\n\n**Example:** Use `~/.gitconfig.local` to store sensitive information such as credentials:\n\n```bash\n[commit]\n    # Sign commits using GPG.\n    # https://help.github.com/articles/signing-commits-using-gpg/\n    gpgsign = true\n\n[user]\n    signingkey = XXXXXXXX\n```\n\n## Shell Settings\n\nThe `~/.localrc` file will be created for you during installation. It's contents are up to you and will be sourced after all other [Zsh related files](https://github.com/petemcw/dotfiles/tree/master/src/shell/zsh) allowing you to overwrite and add to the default config.\n\n**Example:** Use `~/.localrc` to store sensitive information such as credentials:\n\n```bash\n#!/usr/local/bin/zsh\n\n# Set environment\nexport HOMEBREW_GITHUB_API_TOKEN='XXXXXXXX'\nexport DIGITAL_OCEAN_TOKEN='XXXXXXXX'\n\n# Path additions\nexport PATH=\"$PATH:$HOME/.bin\"\n```\n\n## Vim Settings\n\nThe `~/.vimrc.local` file will be created for you during installation. It's contents are up to you and will be sourced after content from `~/.vimrc` allowing you to overwrite and add to the default config.\n\n## Prompt Theme\n\nShown with Solarized Dark color scheme and Powerline-patched Inconsolata 18pt (Unicode) / Powerline-patched DejaVu Sans Mono 14pt (Non-ASCII) in iTerm 2.\n\n![Theme Sample](https://cloud.githubusercontent.com/assets/131408/20852751/2d4a779a-b8ad-11e6-9643-40cedc878d05.png)\n\n### Additional Setup:\n\nInstall one of the [patched fonts](https://github.com/powerline/fonts) from [Powerline](https://powerline.readthedocs.org/en/latest/installation/linux.html#fonts-installation) or patch your own for the special characters. Optionally set `DEFAULT_USER` in `~/.zshenv` to your username to hide the `user on hostname` info when you’re logged in as yourself on your local machine.\n\n### background_jobs\n\n| Variable | Default Value | Description |\n|----------|---------------|-------------|\n|`DOUBLEUP_VERBOSE_BG_JOBS`|`true`|If there is more than one background job, this segment will show the number of jobs. Set this to `false` to turn this feature off.|\n\n### status\n\nThis segment shows the return code of the last command.\n\n| Variable | Default Value | Description |\n|----------|---------------|-------------|\n|`DOUBLEUP_VERBOSE_STATUS`|`false`|Set to `true` if you wish to show actual return code when the last command fails.|\n\n### time\n\n| Variable | Default Value | Description |\n|----------|---------------|-------------|\n|`DOUBLEUP_TIME_FORMAT`|'H:M:S'|ZSH time format to use in this segment.|\n\nAs an example, if you wanted a reversed time format, you would use this:\n\n```\n# Reversed time format\nDOUBLEUP_TIME_FORMAT='%D{%S:%M:%H}'\n```\n\n### vcs\n\nBy default, the `vcs` segment will provide quite a bit of information. Further customization is provided via:\n\n| Variable | Default Value | Description |\n|----------|---------------|-------------|\n|`DOUBLEUP_VCS_HIDE_TAGS`|`true`|Set to `false` to allow tags being displayed in the segment.|\n|`DOUBLEUP_VCS_SHOW_CHANGESET`|`false`|Set to `true` to display the hash in the segment.|\n|`DOUBLEUP_VCS_INTERNAL_HASH_LENGTH`|`8`|How many characters of the hash to display in the segment.|\n\n# Components\n\nThe `setup.sh` script is a simple installer that will prompt for some info, check dependencies, set default preferences, install common apps, and so on.\n\nHere's what happens during install:\n\n* The [repository is cloned](https://github.com/petemcw/dotfiles/blob/master/src/os/setup.sh#L50) into your home folder at `~/.dotfiles`\n  * If this isn't the first run, you'll be asked if you want to update the repository with an new commits\n* Some [additional directories](https://github.com/petemcw/dotfiles/blob/master/src/os/create_directories.sh) will be created\n* Files with [user-provided content](https://github.com/petemcw/dotfiles/blob/master/src/os/copy_files.sh) will be copied\n  * Any file or directory name ending in `.copy` will get linked into the home directory\n* Symlinks for [Git](https://github.com/petemcw/dotfiles/tree/master/src/git), [Shell](https://github.com/petemcw/dotfiles/tree/master/src/shell), and [Vim](https://github.com/petemcw/dotfiles/tree/master/src/vim) configurations will created in `~/`\n  * Any file or directory name ending in `.symlink` will get linked into the home directory\n* Applications and command-line tools are installed for [MacOS](https://github.com/petemcw/dotfiles/tree/master/src/os/install/macos) \u0026 [Ubuntu](https://github.com/petemcw/dotfiles/tree/master/src/os/install/ubuntu)\n  * Python-powered [Powerline](https://github.com/petemcw/dotfiles/blob/master/src/os/install/powerline.sh) will be installed\n  * [Vim plugins](https://github.com/petemcw/dotfiles/blob/master/src/os/install/vim.sh) are installed\n* Sane preferences are set for [MacOS](https://github.com/petemcw/dotfiles/tree/master/src/os/preferences/macos) \u0026 [Ubuntu](https://github.com/petemcw/dotfiles/tree/master/src/os/preferences/ubuntu)\n* Finally, `zsh` will be set as the [default shell](https://github.com/petemcw/dotfiles/blob/master/src/os/configure_zsh.sh)\n\n# Testing\n\n## MacOS\n\nUnfortunately you won't be able to test your `~/.dotfiles` natively on MacOS using Docker. Instead you'll need to build a VirtualBox machine or try it out in a separate user account on your existing system.\n\n## Linux\n\nA great way to test changes to your `~/.dotfiles` on Linux is by using Docker.\n\n### Build \u0026 Run a Test Container\n\nThis repository contains a simple configuration for a basic Ubuntu container. Assuming your host system has Docker \u0026 Docker Compose properly installed:\n\n#### Build a Container\n\n```bash\ndocker compose build\n```\n\n#### Run a Container\n\nTo test the online installation, create a self-removing container like so:\n\n```bash\ndocker run -it --rm petemcw/dotfiles\n```\n\nTo test a local `dotfiles` repository, mount as a volume in your self-removing container:\n\n```bash\ndocker run -it --rm -v $PWD:/root/.dotfiles petemcw/dotfiles\n```\n\n# Forks\n\nIf you fork this project for your own use, awesome! Just don't forget to update/customize the following:\n\n* Links in this [README.md](https://github.com/petemcw/dotfiles/blob/master/README.md#installation)\n* Environment variables in the [`setup.sh` script](https://github.com/petemcw/dotfiles/blob/master/src/os/setup.sh#L5)\n* [Login Window](https://github.com/petemcw/dotfiles/blob/master/src/os/preferences/macos/ui_ux.sh#L18) text preference\n\n# Thanks\n\nSo much inspiration and code has been gleaned from many talented people over the years, including but not limited to:\n\n* [Cătălin Mariș](https://github.com/alrra)\n* [Ben Hilburn](https://github.com/bhilburn)\n* [Ryan Bates](https://github.com/ryanb)\n* [Andrei Zmievski](https://github.com/andreiz)\n* [Zach Holman](https://github.com/holman)\n* [Nick Nisi](https://github.com/nicknisi)\n* [Martin Grenfell](https://github.com/scrooloose)\n\n# License\n\nThe code uses the [MIT license](https://github.com/petemcw/dotfiles/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetemcw%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetemcw%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetemcw%2Fdotfiles/lists"}