{"id":16272601,"url":"https://github.com/jemus42/syncbin","last_synced_at":"2026-05-02T04:34:03.178Z","repository":{"id":11432293,"uuid":"13886443","full_name":"jemus42/syncbin","owner":"jemus42","description":"Scripts, snippets and whatevs to ease new installations. Hopefully.","archived":false,"fork":false,"pushed_at":"2025-03-19T16:54:09.000Z","size":1261,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T15:57:02.305Z","etag":null,"topics":["dotfiles","macos-setup","shell","tmux-conf","zshrc"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/jemus42.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2013-10-26T16:07:18.000Z","updated_at":"2025-03-19T16:54:13.000Z","dependencies_parsed_at":"2024-03-21T18:39:33.319Z","dependency_job_id":"3460e3b8-0b2e-4ea3-a7eb-7c1b4320968a","html_url":"https://github.com/jemus42/syncbin","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/jemus42%2Fsyncbin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jemus42%2Fsyncbin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jemus42%2Fsyncbin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jemus42%2Fsyncbin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jemus42","download_url":"https://codeload.github.com/jemus42/syncbin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247876942,"owners_count":21011147,"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","macos-setup","shell","tmux-conf","zshrc"],"created_at":"2024-10-10T18:18:25.964Z","updated_at":"2026-05-02T04:34:03.173Z","avatar_url":"https://github.com/jemus42.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Syncbin Jemu\n\nPersonal dotfiles and configuration management for cross-machine\nsynchronization.\n\n## Quick Start\n\n**Bootstrap (new machine):**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/jemus42/syncbin/main/bootstrap.sh | sh\n\n# Or interactive mode:\ncurl -fsSL https://raw.githubusercontent.com/jemus42/syncbin/main/bootstrap.sh | sh -s -- -i\n```\n\n**Manual:**\n\n```bash\ngit clone --recursive https://github.com/jemus42/syncbin ~/syncbin\ncd ~/syncbin \u0026\u0026 ./install.sh\n```\n\n**Health check:**\n\n```bash\nsyncbin-doctor\n```\n\n## Repository Structure\n\n```\nsyncbin/\n├── zsh/                    # Zsh configuration (primary shell)\n│   ├── zshrc.zsh          # Main entry point (~/.zshrc)\n│   ├── config/            # Modular configs (00-*.zsh to 99-*.zsh)\n│   └── completions/       # Custom completions (_command format)\n├── bash/                   # Bash configuration\n│   ├── bashrc             # Main entry point (~/.bashrc)\n│   ├── config/            # Modular configs (00-*.bash to 99-*.bash)\n│   └── completions/       # Custom completions (command.bash)\n├── fish/                   # Fish configuration\n│   ├── config.fish        # Main entry point\n│   ├── config/            # Modular configs (00-*.fish to 99-*.fish)\n│   └── completions/       # Custom completions (command.fish)\n├── ohmyzsh_custom/        # Oh-My-Zsh plugins (git submodules)\n├── bin/                   # Custom scripts (added to PATH)\n├── alacritty/             # Alacritty terminal config\n├── ghostty/               # Ghostty terminal config\n├── bat/                   # Bat config and themes\n├── btop/                  # Btop system monitor config\n├── helix/                 # Helix editor config\n├── micro/                 # Micro editor config\n├── zed/                   # Zed editor config\n├── zellij/                # Zellij multiplexer config\n├── R/                     # R/RStudio configuration\n├── common/                # POSIX sh scripts (bash + zsh compatible)\n│   └── aliases.sh        # Git, docker, systemd aliases\n├── carapace/              # Carapace completion specs\n│   └── specs/            # Custom specs (symlinked to ~/.config/carapace/specs)\n├── bootstrap.sh           # One-line installer\n├── install.sh             # Main installation script\n└── dependencies.yaml      # Tool dependencies manifest\n```\n\n## Shell Configuration\n\nAll three shells use a **modular configuration** approach with numbered files:\n\n```\nconfig/\n├── 00-early.zsh         # Profiling, basic setup\n├── 01-environment.zsh   # Environment variables, PATH, XDG\n├── 02-oh-my-zsh.zsh     # Oh-My-Zsh initialization (zsh only)\n├── 03-completions.zsh   # Completion system (carapace + fallback)\n├── 04-aliases.zsh       # Shell aliases\n├── 05-functions.zsh     # Custom functions\n├── 06-rstudio-server.zsh\n├── 07-integrations.zsh  # Tool integrations (zoxide, direnv, etc.)\n├── 08-prompt.zsh        # Prompt configuration\n├── 09-tmux.zsh          # Tmux integration\n└── 99-local.zsh         # Local machine overrides\n```\n\n## Local Overrides (Machine-Specific Config)\n\nLocal configuration that shouldn't be committed lives in `~/.config/syncbin/`:\n\n```\n~/.config/syncbin/\n├── env              # Environment variables (KEY=value, one per line)\n├── path             # PATH additions (one directory per line)\n├── local.zsh        # ZSH-specific overrides\n├── local.bash       # Bash-specific overrides\n├── local.fish       # Fish-specific overrides\n├── work.zsh         # Example: work-specific config\n└── experiments.zsh  # Example: trying new things\n```\n\n**How it works:**\n\n- `env` and `path` files are shell-agnostic (work for all shells)\n- All `*.zsh` files are sourced by zsh, `*.bash` by bash, `*.fish` by fish\n- Drop in new files to experiment without touching syncbin\n- Comments (`#`) supported in env and path files\n\n**Example:**\n\n```bash\n# ~/.config/syncbin/env\nMY_API_KEY=secret123\n\n# ~/.config/syncbin/path\n/opt/custom/bin\n~/projects/tools/bin\n\n# ~/.config/syncbin/experiments.zsh\nalias foo='echo bar'\n```\n\n## Completion System\n\n[Carapace](https://carapace.sh) is the primary completion system (600+\ncommands). Custom completions in `*/completions/` directories serve as fallback\nfor commands carapace doesn't support.\n\n**Adding completions:**\n\n1. **Carapace spec (preferred):** `carapace/specs/mycmd.yaml` (synced across machines)\n2. **Shell-specific:** `zsh/completions/_mycmd`, `bash/completions/mycmd.bash`,\n   `fish/completions/mycmd.fish`\n\n## Key Commands\n\n| Command          | Description                                   |\n| ---------------- | --------------------------------------------- |\n| `reload`         | Pull latest syncbin, run doctor, reload shell |\n| `syncbin-doctor` | Health check for the installation             |\n| `extract` / `x`  | Universal archive extraction (tar, zip, 7z, rar, etc.) |\n\n## Dependencies\n\nSee `dependencies.yaml` for full list. Key tools:\n\n- **Required:** git\n- **Recommended:** carapace, starship, bat, eza/lsd, fd, ripgrep, fzf, zoxide\n\n## Credits\n\n- https://github.com/mathiasbynens/dotfiles\n- [Oh-My-Zsh](https://github.com/ohmyzsh/ohmyzsh)\n- [Powerlevel10k](https://github.com/romkatv/powerlevel10k)\n- [zsh-users](https://github.com/zsh-users) (completions, autosuggestions,\n  syntax-highlighting)\n- [Carapace](https://carapace.sh)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjemus42%2Fsyncbin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjemus42%2Fsyncbin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjemus42%2Fsyncbin/lists"}