{"id":21038035,"url":"https://github.com/jamesn-dev/public-dotfiles","last_synced_at":"2026-04-29T06:34:35.178Z","repository":{"id":248332412,"uuid":"828408612","full_name":"JamesN-dev/public-dotfiles","owner":"JamesN-dev","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-11T23:04:04.000Z","size":114497,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-02T16:44:01.944Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/JamesN-dev.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-14T04:02:58.000Z","updated_at":"2025-07-11T23:04:07.000Z","dependencies_parsed_at":"2025-07-12T02:08:36.018Z","dependency_job_id":"4a161a94-8f8b-4730-9d51-83238de3ac87","html_url":"https://github.com/JamesN-dev/public-dotfiles","commit_stats":null,"previous_names":["jamesn-dev/public-dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JamesN-dev/public-dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesN-dev%2Fpublic-dotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesN-dev%2Fpublic-dotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesN-dev%2Fpublic-dotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesN-dev%2Fpublic-dotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesN-dev","download_url":"https://codeload.github.com/JamesN-dev/public-dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesN-dev%2Fpublic-dotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32414419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2024-11-19T13:29:14.167Z","updated_at":"2026-04-29T06:34:35.163Z","avatar_url":"https://github.com/JamesN-dev.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My Dotfiles Configuration (Public)\n\nThis `--bare` Git repository manages **publicly shareable** configuration files for my personal macOS development environment using the method described at [https://www.atlassian.com/git/tutorials/dotfiles](https://www.atlassian.com/git/tutorials/dotfiles).\n\n**Disclaimer:** These configurations are primarily for my own backup and setup on an apple silicone mac machine. While intended to be public, review them carefully before use, as they may contain settings specific to my machine. Use at your own risk.\n\n*(Private configurations are managed in a separate repository accessed via a `config` alias).*\n\n## Managed Files Structure\n\nThis repository tracks configuration files, storing them within a specific `Developer/.config-files/` structure relative to `$HOME`:\n\n* `Developer/.config-files/vscode/settings.json`: VS Code user settings.\n* `Developer/.config-files/vscode/keybindings.json`: VS Code user keybindings.\n* `Developer/.config-files/oh-my-zsh/aliases.zsh`: Custom Oh My Zsh aliases.\n* `Developer/.config-files/oh-my-zsh/macos.zsh`: Custom Oh My Zsh macOS settings.\n* `Developer/.config-files/Brewfile`: Homebrew package list.\n\nOther general dotfiles (like `.p10k.zsh`, if used) might be tracked directly in `$HOME`. `.zshrc` is managed in a private repository.\n\n## Setup on a New Machine\n\n1.  **Prerequisites:**\n    * Git installed.\n    * Homebrew installed: `/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"`\n    * Oh My Zsh installed: `sh -c \"$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\"`\n\n2.  **Create Staging Directories:** Ensure the target directories for checked-out files exist:\n    ```bash\n    mkdir -p \"$HOME/Developer/.config-files/vscode\"\n    mkdir -p \"$HOME/Developer/.config-files/oh-my-zsh\"\n    # Ensure Oh My Zsh custom dir exists for potential symlinking later\n    mkdir -p \"$HOME/.oh-my-zsh/custom\"\n    ```\n\n3.  **Clone Bare Repository:** Replace `yourusername` if necessary (looks like `JamesN-dev` is correct based on your output).\n    ```bash\n    git clone --bare git@github.com:JamesN-dev/public-dotfiles.git $HOME/.public-dotfiles\n    ```\n\n4.  **Set up `publicconfig` Alias:**\n    ```bash\n    alias publicconfig='/usr/bin/git --git-dir=$HOME/.public-dotfiles/ --work-tree=$HOME'\n    echo \"alias publicconfig='/usr/bin/git --git-dir=$HOME/.public-dotfiles/ --work-tree=$HOME'\" \u003e\u003e $HOME/.zshrc\n    source $HOME/.zshrc\n    ```\n\n5.  **Checkout Configuration Files:** Places tracked files into `$HOME` according to repo structure (e.g., into `~/Developer/.config-files/`).\n    ```bash\n    publicconfig checkout\n    ```\n    * *Conflict Handling:* If checkout warns about overwriting existing files in `$HOME` or `~/Developer/.config-files/`, you may need to temporarily move/delete those files, checkout again, and manually merge changes if needed.\n\n6.  **Configure Git Status:** Prevent listing all of `$HOME` as untracked.\n    ```bash\n    publicconfig config --local status.showUntrackedFiles no\n    ```\n\n7.  **Install Homebrew Packages:**\n    ```bash\n    brew bundle --file=$HOME/Developer/.config-files/Brewfile\n    ```\n\n8.  **Link Checked-Out Configs to Live Locations:** This is crucial because files were checked out into `~/Developer/.config-files`, but applications expect them elsewhere. Use symbolic links (or copy if you prefer, but links automatically reflect future checkouts).\n    ```bash\n    # Link VSCode settings\n    # Important: Ensure target directory exists! VS Code might need to run once first.\n    mkdir -p \"$HOME/Library/Application Support/Code/User/\"\n    ln -sfv \"$HOME/Developer/.config-files/vscode/settings.json\" \"$HOME/Library/Application Support/Code/User/settings.json\"\n    ln -sfv \"$HOME/Developer/.config-files/vscode/keybindings.json\" \"$HOME/Library/Application Support/Code/User/keybindings.json\"\n\n    # Link Oh My Zsh custom files\n    ln -sfv \"$HOME/Developer/.config-files/oh-my-zsh/aliases.zsh\" \"$HOME/.oh-my-zsh/custom/aliases.zsh\"\n    ln -sfv \"$HOME/Developer/.config-files/oh-my-zsh/macos.zsh\" \"$HOME/.oh-my-zsh/custom/macos.zsh\"\n\n    # Add links for any other configs managed this way\n    ```\n    *(The `ln -sfv` command creates a symbolic link (`-s`), forces overwrite if link exists (`-f`), and is verbose (`-v`).)*\n\n## Updating Configuration Files\n\n1.  **Update VS Code / Zsh Custom Files:**\n    * Make changes to your live config files (`~/Library/...`, `~/.oh-my-zsh/custom/...`).\n    * Run the update script (located in `~/Developer/Scripts/`) to copy live changes into the repo structure (`~/Developer/.config-files/...`) and stage them:\n        ```bash\n        update_configs.sh\n        ```\n\n2.  **Update Brewfile:**\n    * After installing/uninstalling Homebrew packages, update the tracked Brewfile:\n        ```bash\n        # Generate current list (temporary location)\n        brew bundle dump --force --file=$HOME/Brewfile.current\n        # Overwrite tracked Brewfile with current list\n        mv \"$HOME/Brewfile.current\" \"$HOME/Developer/.config-files/Brewfile\"\n        # Stage the updated Brewfile\n        publicconfig add \"$HOME/Developer/.config-files/Brewfile\"\n        ```\n\n3.  **Commit and Push:**\n    * Commit all staged changes (from the script and/or Brewfile update):\n        ```bash\n        publicconfig commit -m \"Update configuration files\" # Add details as needed\n        ```\n    * Push to GitHub:\n        ```bash\n        publicconfig push\n        ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesn-dev%2Fpublic-dotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesn-dev%2Fpublic-dotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesn-dev%2Fpublic-dotfiles/lists"}