{"id":15645900,"url":"https://github.com/jeffwidman/dotfiles","last_synced_at":"2025-10-05T23:47:44.968Z","repository":{"id":22816678,"uuid":"26163500","full_name":"jeffwidman/dotfiles","owner":"jeffwidman","description":"Works on *nix, optimized for macOS. Managed using Stow","archived":false,"fork":false,"pushed_at":"2024-08-14T21:00:33.000Z","size":159,"stargazers_count":53,"open_issues_count":0,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-08T00:31:09.948Z","etag":null,"topics":["dotfiles","macos","osx","prezto","zsh"],"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/jeffwidman.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":"2014-11-04T10:11:40.000Z","updated_at":"2024-09-13T12:32:47.000Z","dependencies_parsed_at":"2024-04-10T23:25:26.514Z","dependency_job_id":"9fec6f80-d606-433a-b92b-c03c6770d859","html_url":"https://github.com/jeffwidman/dotfiles","commit_stats":{"total_commits":196,"total_committers":1,"mean_commits":196.0,"dds":0.0,"last_synced_commit":"ff6aa2daffeeed61a8037c0f182081b0c76b5146"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jeffwidman/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffwidman%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffwidman%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffwidman%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffwidman%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffwidman","download_url":"https://codeload.github.com/jeffwidman/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffwidman%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273233240,"owners_count":25068725,"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","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["dotfiles","macos","osx","prezto","zsh"],"created_at":"2024-10-03T12:10:31.456Z","updated_at":"2025-10-05T23:47:39.917Z","avatar_url":"https://github.com/jeffwidman.png","language":"Shell","readme":"# My dotfiles\n\nWorks on *nix, optimized for macOS.\n\nManaged using [Stow](http://www.gnu.org/software/stow/), so you can pick and\nchoose which programs to install.\n\n---\n\n## Philosophy\n\nInitially I tried entirely automating the entire install process, but quickly\nfound it wasn't worth the maintenance. Starting from scratch happens so rarely\nfor me that each time I was fiddling with the bootstrap scripts to work around\na random issue (often due to a new version of macOS).\n\nInstead, it's simpler to install stuff by hand, and manage only the\nconfiguration files (dotfiles) in this repo.\n\n---\n\n## Install steps on a clean macOS machine\n\n1. Make hidden files/folder [visible in Finder](http://apple.stackexchange.com/questions/99213/is-it-possible-to-always-show-hidden-dotfiles-in-open-save-dialogs):\n\n    ```shell\n    defaults write -g AppleShowAllFiles -bool true\n    ```\n\n2. Clone this repo:\n\n    ```shell\n    git clone git@github.com:jeffwidman/dotfiles.git ~/.dotfiles\n    ```\n\n    If cloning to a server without a Github-connected SSH key use `https` instead:\n\n    ```shell\n    git clone https://github.com/jeffwidman/dotfiles.git ~/.dotfiles\n    ```\n\n3. Install desired binaries using your favorite package manager:\n    - If on macOS, use [Homebrew](http://brew.sh/):\n        1. Install Homebrew.\n        2. Use [Homebrew Bundle](https://github.com/Homebrew/homebrew-bundle) to install the stuff listed in the [`.Brewfile`](https://github.com/jeffwidman/dotfiles/blob/master/homebrew/.Brewfile):\n\n              ```shell\n              brew bundle --file=~/.dotfiles/homebrew/.Brewfile\n              ```\n\n            After the `.Brewfile` is symlinked into `~/.Brewfile`, just use:\n\n              ```shell\n              brew bundle --global\n              ```\n\n    - Make sure [`Stow`](https://www.gnu.org/software/stow/) gets installed, we'll use this later to symlink the dotfiles.\n    - Ruby: Use [`rvm`](http://rvm.io/) instead of Homebrew. Much easier to manage gemsets, ruby versions, etc.\n    - Node: Use [`nvm`](https://github.com/nvm-sh/nvm) instead of Homebrew for managing Node.\n\n4. Switch the default shell to the `zsh` installed by Homebrew (it's a newer version than the macOS default):\n\n    1. Append the path to Homebrew's installed `zsh`:\n\n        ```shell\n        sudo sh -c \"echo $(brew --prefix)/bin/zsh \u003e\u003e /etc/shells\"\n        ```\n\n    2. ```shell\n       chsh -s $(brew --prefix)/bin/zsh\n       ```\n\n5. Install `prezto`:\n\n    ```shell\n    git clone --recursive git@github.com:sorin-ionescu/prezto.git \"${ZDOTDIR:-$HOME}/.zprezto\"\n    ```\n\n    The default `prezto` instructions say to symlink the default config files.\n    **Don't do this**; instead use `Stow` to symlink your own config files (instructions below).\n\n    To update `prezto`:\n\n      ```shell\n      git pull \u0026\u0026 git submodule update --init --recursive\n      ```\n\n6. Now use `stow` to symlink whatever config files are relevant:\n\n    1. ```shell\n       cd ~/.dotfiles/\n       ```\n\n    2. `$ stow FOLDER_NAME` will symlink all the files inside of the folder into the parent directory (in this case, the user's home folder.)\n\n    `stow` whatever is relevant:\n\n      - `bash`\n      - `git`\n      - `homebrew` - stowable, `brew bundle --global` will use `$HOME/.Brewfile`\n      - `iterm2` - my `.zshrc` file is configured to look for the shell integration file.\n      - `pypi`\n      - `ruby`\n      - `ssh`\n      - `tmux` - #TODO\n      - `vim` - for when Neovim isn't available\n      - `vimify` - `.inputrc` and `.editrc` make vim commands work in many interactive\n      shells, for example the `mysql` and `postgres` shells\n      - `zsh` - includes `prezto` config files\n\n     `Stow` thoughtfully raises an error if the symlink destination already exists. For example, installing `zsh` creates a default `~/.zshrc` and `~/.zshlogin`. Just delete these default files before stowing your customized versions.\n\n    If using a different OS than macOS, some packages may store their config files at a different location. For example, the fonts folder. Just specify the full destination path for `Stow`.\n\n    More info:\n      - \u003chttp://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html\u003e\n      - \u003chttp://taihen.org/managing-dotfiles-with-gnu-stow/\u003e\n      - \u003chttp://kianmeng.org/blog/2014/03/08/using-gnu-stow-to-manage-your-dotfiles/\u003e\n\n7. Other config files that aren't `stow`able:\n   - `nvim` - Neovim. No need to stow as it respects `$XDG_CONFIG_HOME`\n   - `python` - not stowable, I basically use this as a cheat sheet to remind me of my favorite python packages.\n   - VSCode IDE - don't backup its dotfiles, use its built-in settings sync instead.\n\n8. Other apps I commonly install:\n\n    - [Visual Studio Code](https://code.visualstudio.com/)\n      - Settings and extensions are saved via the built-in settings sync.\n      - Need to manually install the [shell command `code`](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line).\n    - [iTerm2](https://www.iterm2.com/downloads.html)\n    - [Cyberduck](https://cyberduck.io/?l=en)\n    - [PGAdmin](https://www.pgadmin.org/download/macosx.php) or [Postico](https://eggerapps.at/postico/)\n    - [MySQLWorkbench](http://dev.mysql.com/downloads/workbench/)\n    - [Robomongo](https://robomongo.org/)\n    - [SourceTree](https://www.sourcetreeapp.com/)\n    - [Virtualbox](https://www.virtualbox.org/wiki/Downloads)\n    - [BetterTouchTool](https://boastr.net/)\n    - [Rectangle](https://rectangleapp.com/)\n    - [macOS `/etc/hosts` GUI](https://github.com/specialunderwear/Hosts.prefpane)\n\n9. `zsh` completion scripts:\n\n    Symlink any completion scripts into `/usr/local/share/zsh/site-functions/`.\n    The filename must begin with an `_` or `zsh` will not read it. Prezto caches\n    the output of `compinit`, to rebuild the cache do:\n\n    ```shell\n    # typically for me this is located in ~/.cache/prezto/zcompdump\n    rm -rf \"${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump\" \u0026\u0026 compinit\n    ```\n\n    Note: Many `homebrew` formulae automatically handle installing the formula's\n    completion scripts. For example, `brew install the_silver_searcher`(`ag`)\n    will also install a completion script for `ag` in `/usr/local/share/zsh/site-functions/`.\n\n    Docker completion scripts - I opened \u003chttps://github.com/sorin-ionescu/prezto/issues/1459\u003e to try to get this into `prezto`:\n\n      ```shell\n      ln -s /Applications/Docker.app/Contents/Resources/etc/docker.zsh-completion /opt/homebrew/share/zsh/site-functions/_docker\n      ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.zsh-completion /opt/homebrew/share/zsh/site-functions/_docker-compose\n      ````\n\n---\n\n## Misc Notes\n\nList of possible macOS customizations: \u003chttps://mths.be/macos\u003e\n\nFavorite Colorschemes:\n\n- `monokai`\n- `solarized`\n- `railscasts`\n\nFavorite Fonts:\n\n- Ubuntu Monospace including powerline fix\n- Adobe Source Code (look for powerline fix)\n\n---\n\n## TODO\n\n- add \u003chttps://github.com/skwp/dotfiles/blob/master/ctags/ctags\u003e to make ctags parse ruby and js better\n- how to use ctags \u003chttp://scholarslab.org/research-and-development/code-spelunking-with-ctags-and-vim/\u003e\n\n- Improve my vimrc and nvimrc - vim plugins:\n  - vim-markdown Markdown syntax highlighting for Vim\n  - syntastic (pylint, pep8, pyflakes linters)\n  - youcompleteme\n  - tasklist\n  - taglist (and ctags) (tagbar as alternative?)\n  - nerdtree\n  - powerline\n  - minibuffexplorer\n  - the_silver_searcher (vs ctrlp?)\n\n- add powerline - used in vim, [zsh](http://powerline.readthedocs.org/en/latest/usage/shell-prompts.html), ipython, and tmux\n\n---\n\n## License\n\nCopyright 2015 Jeff Widman\nLicensed under the MIT License\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffwidman%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffwidman%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffwidman%2Fdotfiles/lists"}