{"id":20957144,"url":"https://github.com/tma15/dotfiles","last_synced_at":"2026-05-21T04:06:16.607Z","repository":{"id":16664964,"uuid":"19420603","full_name":"tma15/dotfiles","owner":"tma15","description":"Personal dotfiles","archived":false,"fork":false,"pushed_at":"2026-05-04T12:34:08.000Z","size":175,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-04T14:29:07.838Z","etag":null,"topics":["cmux","dotfiles","pyenv","tmux","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tma15.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-05-04T06:44:48.000Z","updated_at":"2026-05-04T12:33:54.000Z","dependencies_parsed_at":"2024-05-03T00:41:25.571Z","dependency_job_id":"d26b9664-16aa-4f7c-8072-db835730789b","html_url":"https://github.com/tma15/dotfiles","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/tma15/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tma15%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tma15%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tma15%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tma15%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tma15","download_url":"https://codeload.github.com/tma15/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tma15%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33288178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T02:57:32.698Z","status":"ssl_error","status_checked_at":"2026-05-21T02:57:31.990Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cmux","dotfiles","pyenv","tmux","vscode","zsh"],"created_at":"2024-11-19T01:29:40.991Z","updated_at":"2026-05-21T04:06:16.602Z","avatar_url":"https://github.com/tma15.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\n[![CI](https://github.com/tma15/dotfiles/workflows/CI/badge.svg)](https://github.com/tma15/dotfiles/actions/workflows/ci.yaml)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/tma15/dotfiles)](https://github.com/tma15/dotfiles/releases)\n[![License](https://img.shields.io/github/license/tma15/dotfiles)](https://github.com/tma15/dotfiles/blob/main/LICENSE)\n\nPersonal dotfiles for shell, editor, terminal, and SSH setup on macOS and Linux.\n\nManaged configs:\n\n- `zsh`\n- `vim`\n- `Neovim`\n- `tmux`\n- `ssh`\n- `Ghostty`\n- `VS Code`\n- local helper scripts\n\n## Quick Start\n\n### Requirements\n\n- macOS or Linux\n- `git`\n- `curl`\n- `zsh`\n- `tar` on Linux when Neovim needs to be installed\n\n### Install\n\n```sh\ngit clone https://github.com/tma15/dotfiles.git\ncd dotfiles\nzsh init.zsh\n```\n\n`init.zsh` initializes submodules, backs up existing files when needed, creates\nsymlinks, installs Neovim on supported Linux systems when it is missing or too\nold, and installs Deno if `$HOME/.deno/bin/deno` does not exist. Existing files\nare backed up as `*.backup.\u003ctimestamp\u003e`.\n\nSet `DOTFILES_SKIP_NVIM_INSTALL=1` before running `init.zsh` to manage Neovim\noutside this bootstrap.\n\n## Local Overrides\n\nKeep machine-specific values out of the repository.\n\n- `~/.zshrc.local` for local paths, SDK setup, and secrets\n- `~/.ssh/config.local` for host-specific SSH entries\n- `zshrc.local.example` and `ssh/config.local.example` as templates\n\nIf you keep private files in a separate repository, place it at\n`~/work/dotfiles-private` or set `DOTFILES_PRIVATE_DIR` before running\n`init.zsh`.\n\nWhen that overlay repository exists, `init.zsh` links:\n\n- `zshrc.local` to `~/.zshrc.local`\n- `ssh/config.local` to `~/.ssh/config.local`\n\n## Managed Files\n\n### Zsh\n\n- `zprezto` is included as a git submodule\n- Main shell settings live in `zpreztorc`\n- `zshrc` puts `~/.local/bin` on `PATH` and sets up `pyenv`, Deno,\n  Prezto, and local overrides\n- `zshrc` loads `~/.zshrc.local` first, then a repo-local `zshrc.local` if present\n- For cmux relay behavior and SSH alias setup, see `docs/cmux.md`\n\n### Vim\n\n- Plugins are managed by `dein`\n- Plugin lists live in `vim/dein/userconfig/plugins.toml` and\n  `vim/dein/userconfig/plugins_lazy.toml`\n- Deno-backed completion plugins are supported, so `init.zsh` installs Deno\n\n### Neovim\n\n- `nvim/init.vim` reuses the shared Vim configuration from `~/.vimrc`\n- `init.zsh` links it to `~/.config/nvim/init.vim`\n- On Linux x86_64/arm64, `init.zsh` installs the official Neovim tarball to\n  `~/.local/opt/dotfiles/` and links `~/.local/bin/nvim` when no Neovim at\n  least `0.11.3` is available\n\n### SSH\n\n- Shared defaults live in `ssh/config`\n- `ssh/config` includes `~/.ssh/config.local`\n- Public defaults stay in `ssh/config`; identities, forwarding, and host aliases stay local\n\n### tmux\n\n- `tmux.conf` is installed by `init.zsh`\n- tmux is kept as an explicit fallback; Prezto tmux auto-start and aliases are disabled\n\n### Local Helpers\n\n- `bin/md-preview-server` serves a single Markdown file for browser preview\n- `init.zsh` links it to `~/.local/bin/md-preview-server`\n- `init.zsh` also links the `cmux-markdown-preview` Codex skill to\n  `~/.codex/skills/cmux-markdown-preview` so it is available outside this repo\n- In a remote cmux session, run the server on remote localhost and open it with\n  `cmux browser open`; see `docs/cmux.md`\n\n### Ghostty\n\n- `ghostty/config.ghostty` is linked to both\n  `~/.config/ghostty/config.ghostty` and `~/.config/ghostty/config`\n\n### VS Code\n\n- `vscode/settings.json` and `vscode/keybindings.json` are included\n- `init.zsh` links them on macOS when the VS Code user settings directory exists\n\n## Updating\n\nAfter pulling new changes, update submodules and re-run setup if needed.\n\n```sh\ngit pull origin main\ngit submodule update --init --recursive\nzsh init.zsh\n```\n\n## Maintenance\n\n- Releases are managed with `tagpr`\n- GitHub Actions workflows live in `.github/workflows/`\n- Weekly workflows check submodule updates and security/dependency issues\n- Run local smoke tests with `zsh test/run.zsh`\n- Repo-scoped Codex skills live in `.agents/skills/`\n\n## Author\n\nTakuya Makino\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftma15%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftma15%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftma15%2Fdotfiles/lists"}