{"id":19789712,"url":"https://github.com/cbarrick/dotfiles","last_synced_at":"2025-05-01T01:31:45.983Z","repository":{"id":11579894,"uuid":"14069273","full_name":"cbarrick/dotfiles","owner":"cbarrick","description":"zsh, git, vscode, ipython","archived":false,"fork":false,"pushed_at":"2024-11-03T01:21:46.000Z","size":17535,"stargazers_count":24,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-03T02:18:38.378Z","etag":null,"topics":["dotfiles","git","iterm2","vscode","zsh"],"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/cbarrick.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-02T16:21:03.000Z","updated_at":"2024-11-03T01:21:49.000Z","dependencies_parsed_at":"2023-12-13T04:44:29.682Z","dependency_job_id":null,"html_url":"https://github.com/cbarrick/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/cbarrick%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbarrick%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbarrick%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbarrick%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cbarrick","download_url":"https://codeload.github.com/cbarrick/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224231418,"owners_count":17277386,"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","git","iterm2","vscode","zsh"],"created_at":"2024-11-12T06:34:22.254Z","updated_at":"2024-11-12T06:34:22.865Z","avatar_url":"https://github.com/cbarrick.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"There's no place like `$HOME`\n==================================================\n\nThis is my home, built on [Zsh], [Git], and [VS Code].\n\n[VS Code]: https://code.visualstudio.com\n[Git]: http://git-scm.com\n[Zsh]: http://www.zsh.org\n\n\n## Install\n\nConfigs are separated into a few groups:\n\n- **Main** dotfiles live in `home/*`. These dot files are linked directly into\n  your home directory.\n\n- **Misc** config files live in `misc/*`. These files don't necessarily belong\n  in your home directory (e.g. global config files) or on every system (e.g.\n  OS-specific).\n\nEach directory contains an install script, e.g. `home/install.zsh`, that will\nlink or copy their respective config files into the proper locations. These\nscripts may also perform additional installation actions.\n\nYou can run all of the install scripts using the top-level install script:\n\n```sh\n$ ./install_all.zsh\n```\n\n\n## Setup the terminal emulator\n\nCertain features of the Zsh config are only set for login shells. On some\nterminals, you must manually flip a switch to launch your shell as a login\nshell. This applies to `gnome-terminal`. If your terminal is configured to run\nZsh as a custom command on startup, ensure that it starts Zsh as a login shell\nwith `zsh -l`.\n\n\n## Configure the prompt\n\nThe prompt looks like this:\n\n```\n╭────────────────────────────────────[ master ]──[ csb @ roronoa : ~/dotfiles ]\n╰ $\n```\n\nThe pieces surrounded by brackets are called prompt *widgets*. A widget is just\na function that outputs some text to include in the prompt. To add a new\nwidget, simply write the widget function and add it to the `widgets` style. The\nwidgets are evaluated every time the prompt is drawn. No space is allocated for\nthe widget if it produces no output.\n\nThe builtin widgets are:\n\n- `prompt_csb_hostpath_widget` prints your username, hostname, and current\n  working directory.\n\n- `prompt_csb_vcs_widget` prints your current VCS branch and additional info\n  when relevant. It is hidden when you are outside of a version controlled\n  directory.\n\n- `prompt_csb_bg_widget` prints the number of background jobs. It is hidden\n  when you have no background jobs.\n\nThe prompt is configured with `zstyle` in `.zshrc`. Below is a list of the\navailable configuration options and their defaults:\n\n```sh\n# Prompt widgets\nzstyle ':prompt_csb:*' widgets \\\n    prompt_csb_hostpath_widget \\\n    prompt_csb_vcs_widget \\\n    prompt_csb_bg_widget\n\n# Prompt colors\nzstyle ':prompt_csb:local:*' main_color 243\nzstyle ':prompt_csb:ssh:*' main_color blue\nzstyle ':prompt_csb:*' info_color green\nzstyle ':prompt_csb:*' alt_color blue\nzstyle ':prompt_csb:*' err_color red\n```\n\nThe `zstyle` command takes three(-ish) arguments: a _context pattern_, a\n_style name_, and one or more _values_. The context pattern determines when the\ngiven value applies to the style. The context always starts with `:prompt_csb`\nfollowed by either `:local` when working on your localhost or `:ssh` when\nconnected to a remote machine. Passing multiple values sets them all as an\narray value for the style.\n\nThere are four colors that can be configured.\n\n- `main_color` is the primary color of the prompt. The default 243 is a shade\n  of dark gray.\n\n- `info_color` is used to draw things like your git branch.\n\n- `alt_color` is used to draw secondary information, e.g. a notification that\n  you're dealing with merge conflicts.\n\n- `err_color` overrides the main color if the previous command exited with a\n  non-zero status.\n\n\n## Modular config files\n\nThe Zsh config allows configuration options to be spread across multiple files:\n\n- `~/.zsh/.zshenv.d/*`\n- `~/.zsh/.zprofile.d/*`\n- `~/.zsh/.zshrc.d/*`\n- `~/.zsh/.zlogin.d/*`\n- `~/.zsh/.zlogout.d/*`\n\nFiles in these directories are sourced in lexicographic order (`.zlogout.d/*`\nis sourced in *reverse* order).\n\nTypically, these directories are used to hold host-specific configurations, e.g.\nhost-specific path updates and environment variables. Global configuration\nshould by stored in the top-level config files.\n\n\n## Configure the `PATH`\n\nThe `PATH` is set in a way similar to the `path_helper(8)` tool on macOS.\n\nThe `PATH` is determined by the lines of so-called path files. These lines may\ninclude parameter substitutions and globs. Path files are read in the following\norder:\n\n1. `/etc/paths`\n2. `/etc/paths.d/*` (in lexicographic order)\n3. `~/.zsh/paths/paths`\n4. `~/.zsh/paths/paths.d/*` (in lexicographic order)\n\nA similar process applies for other `PATH`-like variables as well, including\n`MANPATH`, `FPATH`, and more.\n\nYou can add a new directory to the path by creating a new path file:\n\n```sh\n$ echo '/some/path/to/foo/bin' \u003e ~/.zsh/paths/paths.d/foo\n$ exec zsh -l  # Reload your shell\n```\n\n## Configure iTerm2\n\niTerm2 needs to be told where to find it's configuration. The installation\nscript will attempt to handle this for you. If it fails, go to the preferences\npanel in iTerm2 and set it to load preferences from `~/.iterm2`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbarrick%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcbarrick%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbarrick%2Fdotfiles/lists"}