{"id":16589957,"url":"https://github.com/rlch/dotfiles","last_synced_at":"2025-03-21T13:31:14.736Z","repository":{"id":55720872,"uuid":"450763377","full_name":"rlch/dotfiles","owner":"rlch","description":"neovim + aerospace + wezterm + zellij - I don't like my mouse","archived":false,"fork":false,"pushed_at":"2025-02-13T03:03:49.000Z","size":5910,"stargazers_count":10,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T01:43:03.094Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rlch.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":"2022-01-22T08:45:06.000Z","updated_at":"2025-02-13T03:03:52.000Z","dependencies_parsed_at":"2023-02-12T14:15:54.154Z","dependency_job_id":"86ac2669-8357-47c3-853d-b449f070f8bf","html_url":"https://github.com/rlch/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/rlch%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlch%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlch%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rlch%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rlch","download_url":"https://codeload.github.com/rlch/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244806091,"owners_count":20513378,"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":[],"created_at":"2024-10-11T23:10:32.106Z","updated_at":"2025-03-21T13:31:14.355Z","avatar_url":"https://github.com/rlch.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `dotfiles`\n\n\u003c!--toc:start--\u003e\n\n- [`dotfiles`](#dotfiles)\n  - [Getting started](#getting-started)\n  - [Installation](#installation)\n  - [Making changes](#making-changes)\n    - [Updating your own `dotfiles`](#updating-your-own-dotfiles)\n    - [Updating template `dotfiles`](#updating-template-dotfiles)\n    - [Tracking configuration for new software](#tracking-configuration-for-new-software)\n  - [Updating](#updating)\n  - [Contribution](#contribution)\n  \u003c!--toc:end--\u003e\n\n## Getting started\n\nBefore `dotfiles` can be setup, install a few dependencies:\n\n- [`brew`](https://brew.sh/)\n- [`gh`](https://docs.github.com/en/github-cli/github-cli/quickstart)\n- [`go`](https://go.dev/doc/install)\n- [`jq`](https://jqlang.github.io/jq/download/)\n\nAfter installing `brew`, install the remaining dependencies using:\n\n```bash\nbrew install gh go jq\n```\n\nAlso install the terminal definitions for `wezterm` in a `bash/zsh` shell (this isn't valid `fish`):\n\n```bash\nbash\ntempfile=$(mktemp) \\\n  \u0026\u0026 curl -o $tempfile https://raw.githubusercontent.com/wez/wezterm/main/termwiz/data/wezterm.terminfo \\\n  \u0026\u0026 tic -x -o ~/.terminfo $tempfile \\\n  \u0026\u0026 rm $tempfile\n```\n\n## Installation\n\nFirst, install the GitHub command-line tool `gh` and authenticate with GitHub.\n\n```bash\ngh auth login\n```\n\nNow, create a `dotfiles` repository on your GitHub account, from the Tutero `dotfiles` template.\n\n```bash\nGH_USER=$(gh api user | jq -r '.login')\ncd ~\ngh repo create $GH_USER/dotfiles --private --template=MathGaps/dotfiles\ngh repo clone $GH_USER/dotfiles dotfiles\ncd dotfiles\ngit remote add template https://github.com/MathGaps/dotfiles.git\ngit fetch template\ngit submodule update --remote\n```\n\nWith the `dotfiles` repository created, run the installation process. First, modify the `baseDir` in `config.yaml` to `/Users/\u003chome-user\u003e` (no trailing `/`) or whichever directory you would like to install your `dotfiles` to. You may also customize the default folder locations.\n\n```bash\ngo run .\n```\n\n\u003e [!NOTE]\n\u003e If the installation process hangs when installing dependencies for longer than 20-30 seconds, try cancelling with `\u003cCtrl-C\u003e` and run `go run .` again. The script is idempotent.\n\nAfter the installation process completes, it's recommended to logout and login again to ensure system changes (like key repeat) have been applied.\n\n\u003e [!IMPORTANT]\n\u003e If you already had `\u003cbaseDir\u003e/.config/*` files, they will be moved to `\u003cbaseDir\u003e/.config.bak/*`. Ensure any files you want to keep in your `dotfiles` are moved back to `\u003cbaseDir\u003e/.config/*`.\n\n## Making changes\n\n### Updating your own `dotfiles`\n\nSimply make changes to `\u003crepository clone dir\u003e/config/*` or equivalently the symbolic links inside `\u003cbaseDir\u003e/.config/*` and push to git as normal. This will make changes to your own `dotfiles` repository, **not the template**.\n\n### Updating template `dotfiles`\n\nOnce you've made changes as above, you can:\n\n1. Create a new branch based off `template/main`, inside `origin` with `git fetch template \u0026\u0026 git checkout -b \u003cnew-branch-name\u003e template/main`\n2. Make changes to this branch / cherry-pick from your other commits in `origin`.\n3. Push your changes to `template` with `git push template HEAD`\n4. Create a PR to `MathGaps/dotfiles` with `gh pr create -B main -R MathGaps/dotfiles`; and follow the process.\n5. Once merged, let everyone know via Slack if necessary.\n\n### Tracking configuration for new software\n\nIf you want to add and track changes to new software, then:\n\n1. Add your configuration to `\u003crepository clone dir\u003e/config/\u003cname\u003e`.\n\n\u003e [!IMPORTANT]\n\u003e Make sure your configuration is copied over from `\u003cbaseDir\u003e/.config/\u003cname\u003e` before continuing. Any `links` in `install.dotfiles.yaml` will replace existing configuration with the source-of-truth in the repository.\n\n2. Add `$BASE_DIR/.config/\u003cname\u003e: config/\u003cname\u003e` to `install.dotfiles.yaml` so that the CLI knows to symbolically link these directories.\n3. Run `go run .` to create the symbolic link.\n4. _If you make a PR to the template, make sure to let everyone know. Anyone wanting these changes should also run `go run .`_\n\n## Updating\n\nIn order to pull updates from this repository when others make improvements, we need to merge your upstream branch with the template branch. We cannot assume equivalent histories given upstream changes can be made.\n\n```bash\ngit fetch template\ngit merge template/main --allow-unrelated-histories\n# Resolve any conflicts\n```\n\n## Contribution\n\nIf you have any improvements, features, fixes, or new software that you think benefit everyone in the team,\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frlch%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frlch%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frlch%2Fdotfiles/lists"}