{"id":22946568,"url":"https://github.com/kfox/dotfiles","last_synced_at":"2025-10-24T14:41:21.917Z","repository":{"id":91416886,"uuid":"95156783","full_name":"kfox/dotfiles","owner":"kfox","description":"Configuration files for my macOS environment","archived":false,"fork":false,"pushed_at":"2024-07-18T20:56:30.000Z","size":411,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-07-19T05:01:19.107Z","etag":null,"topics":["dotfiles"],"latest_commit_sha":null,"homepage":null,"language":"Vim Script","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/kfox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2017-06-22T21:09:48.000Z","updated_at":"2024-07-18T20:56:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"293d5717-5f0a-4ead-948e-d9566e115306","html_url":"https://github.com/kfox/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/kfox%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfox%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfox%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kfox%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kfox","download_url":"https://codeload.github.com/kfox/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229717769,"owners_count":18113395,"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":["dotfiles"],"created_at":"2024-12-14T14:47:19.574Z","updated_at":"2025-10-24T14:41:16.856Z","avatar_url":"https://github.com/kfox.png","language":"Vim Script","funding_links":["https://www.patreon.com/gnachman"],"categories":[],"sub_categories":[],"readme":"# Kelly Fox's dotfiles\n\nThese are the files I use to make the terminal a better place to live and work.\n:heart:\n\n**NOTE:** I suggest using [iTerm2](https://www.iterm2.com/)\ninstead of the basic Terminal.app that comes with macOS. This will make\nyour life on the command-line much easier. I also recommend supporting the\nauthor's work on [Patreon](https://www.patreon.com/gnachman).\n\n## Installation and Setup\n\nFollow these directions to set up: https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/\n\nThen run the setup script:\n```bash\n$ setup.sh\n```\n\n## Contents\n\n### Bash configuration files\n\n#### `.bash_profile`\n\nThis is just a simple wrapper to load `.bashrc` and `.bash_aliases`.\n\n#### `.bashrc`\n\nThe guts of my Bash setup. Here's what it does for you:\n\n##### Functions\n\n* `serve` lets you serve files using a simple web server in the current\n  directory or a directory you specify. Usage: `serve [documentroot]\n  [port]`. The `documentroot` defaults to the current directory and the\n  port defaults to `8080`.\n\n* `gh` is a handy way to open the appropriate respository home page for\n  projects on github.com via the command line. It works in three different\n  modes:\n\n  1. Without arguments and in a git repository, it will open the project\n     home page on github.com\n  2. With an argument of a project name, e.g. `vim-vinegar`, it will use\n     the github API to find the URL of the repo most likely to be the one\n     you're looking for, then opens that project's home page. Best used\n     when feeling lucky.\n  3. With an argument like username/repo, e.g. `tpope/vim-vinegar`, it\n     will just open that repo\n\n* `gpr` will open a pull request on github.com for the current branch\n  if your current working directory is part of a local git repository.\n\n##### Environment\n\n* The main thing here is the git-repo-friendly prompt courtesy of\n  [bash-git-prompt](https://github.com/magicmonty/bash-git-prompt). You\n  may want to tweak the colors/symbols to your liking.\n\n* The paths are set up for `npm`, `node`, `go`, and `rbenv`\n\n* The `GREP_OPTIONS` are given some degree of sanity\n\n* Your shell command history is constrained to 10000 commands\n\n* Minor typos in `cd` commands will be auto-corrected when possible\n\n* Several other things are initialized, e.g.\n  [virtualenv](http://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/)\n  for Python, [rbenv](https://github.com/rbenv/rbenv) for Ruby, shell\n  integration for [iTerm2](https://www.iterm2.com/),\n  [bash-completion](https://github.com/scop/bash-completion),\n  and [z](https://github.com/rupa/z).\n\n#### `.bash_aliases`\n\n* Make `ls` output more useful. Show all directories and use some color\n  while doing it.\n\n* Add the `ll` alias because I fell in love with it while using Linux\n  systems\n\n* \"Clear the screen\" just by typing `c`\n\n* Add a couple of Rails and git aliases. The keystrokes you save may be\n  your own.\n\n#### `.editrc`\n\n* Lets you use \u003ckbd\u003eCtrl\u003c/kbd\u003e-\u003ckbd\u003eR\u003c/kbd\u003e to search backward through your\n  entire command history\n\n#### `.inputrc`\n\n* Ignores case when tab-completing directories and filenames\n\n* Disables the terminal bell\n\n* Sets the default command-line editing mode to use vi keybinds\n  instead of emacs, e.g. hit \u003ckbd\u003eEsc\u003c/kbd\u003e-\u003ckbd\u003eK\u003c/kbd\u003e to enter\n  edit mode, then \u003ckbd\u003eK\u003c/kbd\u003e again to move back through your\n  command history or other `vi` command-mode commands to move and\n  edit the current commmand.\n\n* Shows all matches if your tab-completion would be ambiguous\n\n### Ruby configuration files\n\n* `.gemrc` will not auto-install rubydocs when you install a gem\n\n* `.irbrc` enables readline support, with a simple prompt, and enables\n  [awesome_print](https://github.com/awesome-print/awesome_print) by\n  default\n\n* `.pryrc` adds some spiffy prompt stuff and a few convenience methods\n\n### Git configuration files\n\nThe `.gitignore_global` file specifies filename patterns to ignore\nglobally, and is specified in the `.gitconfig` file.\n\nThe `.gitconfig` file defines several handy aliases:\n\n* `alias` will add a new alias, e.g. `git alias \u003calias\u003e \u003coriginal command\u003e`\n\n* `aliases` will list all defined aliases\n\n* `br` is short for `branch`\n\n* `changes` is a more concise way of showing changed files and their\n  status\n\n* `ci` is short for `commit`\n\n* `co` is short for `checkout`\n\n* `dc` will show a diff of staged changes\n\n* `df` is short for `diff`\n\n* `diffstat` shows the number of additions/deletions per file\n\n* `history` shows a complete diff history for each commit of a given\n  file, e.g. `git history package.json`\n\n* `laststash` shows the diff of the most recent stash against the\n  current branch\n\n* `lc` gives you an annotated log of changes to file(s) or the repo\n\n* `lg` is a log with \"graphing\", showing merges and commits with lots of\n  pretty colors :rainbow:\n\n* `new` is a shorter way to create a new branch\n\n* `rm-merged` will locally delete merged branches\n\n* `st` is short for `status`\n\n* `undo-commit` will undo the most recent commit\n\n* `whatis` shows the commit message and date for a given sha commit hash\n\n* `whatsnew` displays the most recent commit message, author, and date\n\n* `who` shows the number of commits per committer. Will make use of a\n  `~/.mailmap` file if present to deduplicate and aggregate user names.\n\n* `whois` gives you the full name and email address of a user if you\n  provide a username\n\n### Homebrew\n\nMy [Homebrew](https://brew.sh/) environment is preserved by way of\n[Homebrew Bundle](https://github.com/Homebrew/homebrew-bundle) which\nuses the `Brewfile` to specify formulae and casks to be installed.\n\n## Scripts\n\nThese scripts are all located in the `bin` directory:\n\n* `download-bing-wallpaper.js` will download the latest\n  [Bing Homepage image](http://www.bing.com/gallery/)\n  to your `~/Google Drive/Pictures/Bing` directory and sets your primary desktop\n  background to that image. Add it to a cron job for a fresh picture\n  every day. Only the last 365 days of images are retained.\n\n* `colors` shows a color palette so you can tweak your terminal colors\n\n* `excuse` generates a programmer's excuse, for example:\n  ```bash\n  $ git commit -m \"$(excuse)\"\n  ```\n\n* `gci`, `gco`, `gsq` — git commit, checkout, and squash shortcuts\n\n* `logicprefs` makes backups of your\n  [Logic Pro X](https://www.apple.com/logic-pro/) preferences, and lets\n  you restore them in case you happen to jack them up.\n\n* `mkbr` creates a new git branch\n\n* `mkfavicon` generates a `favicon.ico` file at all the different\n  resolutions you probably will ever need\n\n* `mvbr` renames a git branch\n\n* `ql` is an easy way to use the macOS\n  [Quick Look](https://support.apple.com/kb/PH25575) functionality from\n  the command line\n\n* `reassociate` will associate source code file extensions with\n  VS Code so you can \u003ckbd\u003eCommand\u003c/kbd\u003e-click a filename in iTerm2\n  (or double-click the file in Finder) and have it open in VS Code\n\n* `rmbr` deletes a git branch, locally and remotely\n\n* `sayphrase` says something using the built-in macOS speech synthesis.\n  By default, it says a programming excuse (see above).\n\n* `setup.sh` is the script to install/initialize the rest of my apps\n\n* `svg-to-data-uri.sh` will take an SVG and URL-encode it for use in a\n  data: URI. Full base64 encoding isn't necessary.\n\n* `updall` updates Homebrew formulae/casks and global npm packages\n\n### Miscellaneous configuration files\n\n#### `.ptconfig.toml`\n\nSome settings for use with the `pt` command, a.k.a. [The Platinum\nSearcher](https://github.com/monochromegane/the_platinum_searcher).\n\n## Feedback Welcome\n\nIf you see something that is broken, incorrect, or that could be\nimproved, drop me a line or open an issue. Thanks! :heart_eyes:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkfox%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkfox%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkfox%2Fdotfiles/lists"}