{"id":23772143,"url":"https://github.com/connorjs/dotfiles","last_synced_at":"2025-08-16T23:42:36.120Z","repository":{"id":144974647,"uuid":"252898238","full_name":"connorjs/dotfiles","owner":"connorjs","description":"My dotfiles","archived":false,"fork":false,"pushed_at":"2025-07-26T14:57:30.000Z","size":98,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-13T06:00:12.053Z","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":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/connorjs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2020-04-04T03:20:27.000Z","updated_at":"2025-05-31T12:49:31.000Z","dependencies_parsed_at":"2024-05-19T20:30:34.359Z","dependency_job_id":"b51eadc5-88f1-4a4a-b976-4b221e7bfba5","html_url":"https://github.com/connorjs/dotfiles","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/connorjs/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorjs%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorjs%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorjs%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorjs%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/connorjs","download_url":"https://codeload.github.com/connorjs/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorjs%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270786180,"owners_count":24644559,"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-08-16T02:00:11.002Z","response_time":91,"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":[],"created_at":"2025-01-01T04:53:01.842Z","updated_at":"2025-08-16T23:42:36.086Z","avatar_url":"https://github.com/connorjs.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# connorjs dotfiles\n\nMac and Windows. Multiple shells. Same tools. One `install` script.\n\n## Highlights\n\n\u003c/div\u003e\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"1024px\" align=\"center\"\u003e\n\n\u003ch3 id=\"mac\"\u003eMac\u003c/h3\u003e\n\n```shell\n./install.sh\n```\n\n[![](./images/openmoji/fish.svg) Fish][fish].\n[![](./images/openmoji/cat-face.svg) Kitty][kitty].\n[![](./images/openmoji/beer-mug.svg) Homebrew][homebrew].\n\n\u003c/td\u003e\n\u003ctd width=\"50%\" align=\"center\"\u003e\n\n\u003ch3 id=\"windows\"\u003eWindows\u003c/h3\u003e\n\n```shell\n./install.bat\n```\n\nShell?\nTerminal?\n[![](./images/openmoji/chocolate-bar.svg) Chocolatey?][chocolatey].\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"2\" align=\"center\"\u003e\n\nNushell?\nPowerShell?\n[Oh My Posh][oh-my-posh].\n[Neovim][nvim].\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTable of Contents\u003c/summary\u003e\n\n- [Highlights](#highlights)\n- [About](#about)\n- [Install](#install)\n- [Terminal](#terminal)\n- [Utilities](#utilities)\n- [Aliases](#aliases)\n- [File system](#file-system)\n\n\u003c/details\u003e\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e I started working on new updates on Sep 23, 2023. Treat the README and install\n\u003e scripts as out-of-date until I remove this message. I have two goals for these\n\u003e updates in addition to syncing my latest settings and preferences.\n\u003e\n\u003e 1. Windows compatibility\n\u003e 2. Full system configuration (beyond the terminal)\n\u003e\n\u003e [Browse the last stable version](https://github.com/connorjs/dotfiles/tree/pre-changelog).\n\u003e\n\u003e I still have not updated this README nor confirmed the install scripts (May 11, 2025).\n\u003e I continue to edit my `.dotfiles` with my configuration, but I do not guarantee a one-run install.\n\n## About\n\nWelcome to my dotfiles repo! You will find my public configurations including\na single install script for each OS.\n\nIf you have any tips, tricks, or recommendations, I’d love to hear them! Cheers\n\n\u003cdiv align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/div\u003e\n\n## Install\n\n1. Clone this repo\n2. Run the install script: `./install.sh` for Mac and `./install.bat` for Windows\n3. Edit `.gitconfig` (or use `git config --global`)\n4. Restart to see all changes\n\n\u003cdetails\u003e\n\u003csummary\u003eShell commands\u003c/summary\u003e\n\n```shell\nmkdir -p $HOME/w/connorjs \u0026\u0026 \\\ncd $HOME/w/connorjs \u0026\u0026 \\\ngit clone https://github.com/connorjs/dotfiles.git \u0026\u0026 \\\ncd dotfiles \u0026\u0026 \\\n./install.sh \u0026\u0026 \\\ncd $HOME \u0026\u0026 \\\nvim .gitconfig\n```\n\n_See [§ Workspaces](#workspaces) for why I use the `~/w/connorjs` path._\n\n\u003c/details\u003e\n\n\u003cdiv align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/div\u003e\n\n## Terminal\n\nI use [Kitty] (a fast, feature-rich, GPU based terminal emulator) with\n[Selenized] (Solarized redesigned) color schemes (Warm and Black). The\n[on-dark-mode-change](./bin/on-dark-mode-change) script syncs the Kitty theme\nwith the System preference.\n\nI have programmed the F6 media key to toggle between light and dark mode (the\nkey has a moon on it; its original function is Do not Disturb).\n\nFollow [kitty-icon](https://github.com/DinkDonk/kitty-icon) to change the macOS application icon.\n\n\u003cdiv align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/div\u003e\n\n## Utilities\n\n[Homebrew] installs the following utilities (listed alphabetically).\n\n|     Name      | Description/reason                     |\n|:-------------:|:---------------------------------------|\n|     [bat]     | Cat clone with wings                   |\n|   [cowsay]    | _For fun_                              |\n|     curl      | _Ensure latest version_                |\n|    [fish]     | Fish shell                             |\n|     [fnm]     | Fast node manager                      |\n|      git      | _Ensure latest version_                |\n|  [git-delta]  | Syntax-highlighting pager (git diff)   |\n| [imagemagick] | Converting and editing images          |\n|     [jq]      | Command-line JSON processor            |\n|     [lsd]     | LSDeluxe (includes `--tree`)           |\n|    lolcat     | _For fun_                              |\n|    [nvim]     | Hyper-extensible Vim-based text editor |\n| [oh-my-posh]  | Prompt theme engine for any shell      |\n|    [stow]     | Symlink farm manager                   |\n\nSee the [Brewfile](./Brewfile) for the complete list including macOS apps.\n\n\u003cdiv align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/div\u003e\n\n## Aliases\n\nIncludes a consistent configuration of aliases (abbreviations in fish) across\nmultiple shells.\n\n- Fish: [fish/conf.d](./fish/.config/fish/conf.d)\n\n### Git\n\nIncludes shell aliases inspired by [gitalias.com][git-alias-dot-com],\n[Nushell][git-alias-nushell], [Oh My Zsh][git-alias-zsh], and [a Fish shell git\nplugin][git-alias-fish]. Mine do not match 1:1 in the same way that these do\nnot match 1:1 to each other.\n\nTo ensure strong consistency across my own shell configurations, I hand-write\nall aliases instead of sourcing them. I also do not include aliases I never use\n(example: `--signoff` variations for `git commit`).\n\n### LSD\n\nIncludes various `ls` aliases: `l`, `la`, `ll`, `lt`, `t`, `t3`, and more.\n\n\u003cdiv align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/div\u003e\n\n## File system\n\n### XDG base directory\n\n`$HOME/.config`: I prefer to follow the [XDG base directory\nspecification][xdg-basedir-spec] where possible.\n\n_I need to figure out the Windows parallel. Maybe `%APPDATA%`?_\n\nThe install script uses `stow` to link this repositories packages. For example,\n`.vimrc` ends up in `$HOME` and the `init.vim` script ends up in\n`$HOME/.config/nvim` as expected. Also see [“Using GNU Stow to manage your\ndotfiles”][stow-blog-post].\n\n_The package names in this repository exist as preferred logical naming. Only\nthis install script uses them; they do not appear in the target file system._\n\n### Workspaces\n\n`$HOME/w`: Workspaces for code repositories. I name it `w` for brevity. If\nneeded, create `w` on the appropriate drive and symlink to it from `$HOME`.\n\nNamespacing: Regardless of tooling, I see namespacing for code repositories.\nGitHub has the user or organization, AWS has the account, and Azure DevOps has\nthe project.\n\nI match this namespacing with the first-level directory structure under `w`.\nFor example, this repository will exist at `$HOME/w/connorjs/dotfiles`.\n\n_Note: I have considered having separate workspaces or another directory per\ntool. For example, `~/gh` or `~/w/gh` for GitHub. However, I have yet to hit\nconflicts that warrant this additional namespace scheme._\n\n\u003cdiv align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/div\u003e\n\n## Acknowledgements\n\n### Attributions\n\n#### OpenMoji\n\nAll emojis designed by [OpenMoji](https://openmoji.org/) – the open-source emoji\nand icon project. License: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/#).\n\nSee [images/openmoji/LICENSE.md](./images/openmoji/LICENSE.md) for details on\nmodifications and ShareAlike redistribution.\n\n\u003cdiv align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/div\u003e\n\n\u003c!-- @formatter:off --\u003e\n[bat]: https://github.com/sharkdp/bat#readme\n[chocolatey]: https://community.chocolatey.org\n[cowsay]: https://en.wikipedia.org/wiki/Cowsay\n[fish]: https://fishshell.com\n[fnm]: https://github.com/Schniz/fnm#readme\n[git-alias-dot-com]: https://www.gitalias.com\n[git-alias-fish]: https://github.com/jhillyerd/plugin-git#readme\n[git-alias-nushell]: https://github.com/nushell/nu_scripts/blob/main/aliases/git/git-aliases.nu\n[git-alias-zsh]: https://kapeli.com/cheat_sheets/Oh-My-Zsh_Git.docset/Contents/Resources/Documents/index\n[git-delta]: https://dandavison.github.io/delta/\n[homebrew]: https://brew.sh/\n[imagemagick]: https://github.com/ImageMagick/ImageMagick#readme\n[jq]: https://jqlang.github.io/jq/\n[kitty]: https://sw.kovidgoyal.net/kitty/\n[lsd]: https://github.com/lsd-rs/lsd#readme\n[nvim]: https://neovim.io/\n[oh-my-posh]: https://ohmyposh.dev\n[selenized]: https://github.com/jan-warchol/selenized/tree/master#readme\n[stow]: https://www.gnu.org/software/stow/\n[stow-blog-post]: https://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html\n[xdg-basedir-spec]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconnorjs%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconnorjs%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconnorjs%2Fdotfiles/lists"}