{"id":25348566,"url":"https://github.com/markhershey/dotfiles","last_synced_at":"2025-10-29T18:31:06.322Z","repository":{"id":46592541,"uuid":"277129739","full_name":"MarkHershey/dotfiles","owner":"MarkHershey","description":"Automated Dotfiles Installation \u0026 Machine Setup Scripts for macOS and Ubuntu.","archived":false,"fork":false,"pushed_at":"2024-12-31T08:07:44.000Z","size":3366,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T09:18:25.482Z","etag":null,"topics":["dotfiles","linux","linux-shell","macos","shell","tmux","ubuntu","vim","workstation-setup","zsh"],"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/MarkHershey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-04T14:51:21.000Z","updated_at":"2024-12-31T08:07:47.000Z","dependencies_parsed_at":"2024-06-09T10:32:36.248Z","dependency_job_id":"3e47d7d7-3566-4ff3-a83a-d9db67d55e00","html_url":"https://github.com/MarkHershey/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/MarkHershey%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkHershey%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkHershey%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkHershey%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkHershey","download_url":"https://codeload.github.com/MarkHershey/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238867105,"owners_count":19544118,"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","linux","linux-shell","macos","shell","tmux","ubuntu","vim","workstation-setup","zsh"],"created_at":"2025-02-14T15:39:08.988Z","updated_at":"2025-10-29T18:31:05.398Z","avatar_url":"https://github.com/MarkHershey.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\n_Automated dotfiles install \u0026 automated macOS/ Ubuntu setup scripts_\n\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/MarkHershey/dotfiles/shellcheck.yml?style=flat-square\u0026label=ShellCheck)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/MarkHershey/dotfiles/ci_ubuntu.yml?style=flat-square\u0026label=CI-Ubuntu)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/MarkHershey/dotfiles/ci_ubuntu_curl.yml?style=flat-square\u0026label=CI-Ubuntu-Curl)\n![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/MarkHershey/dotfiles/ci_macos.yml?style=flat-square\u0026label=CI-macOS)\n\nIt's a good idea to use a version control system (VCS) like `git` to manage your dotfiles in one place and a script to bootstrap all your dotfiles, so that every time you set up a new machine or a remote server, you just need to clone the repository and run the `./install` script.\n\nThe install script is **idempotent**, meaning that you could run the script repeatedly without causing any side effects.\n\nHope this repository gives you inspiration.\n\n## Run the Script\n\nTo run the automated dotfiles-install script for Ubuntu or macOS, choose either:\n\n-   Install with Git\n\n```bash\ngit clone https://github.com/MarkHershey/dotfiles.git \u0026\u0026 \\\ncd dotfiles \u0026\u0026 \\\n./install\n```\n\n-   Install without Git\n\n```bash\nbash -c \"$(curl -fsSL https://raw.githubusercontent.com/MarkHershey/dotfiles/master/curl_install)\"\n```\n\n## Before You Run the Script\n\n### Fork this Repository\n\nAlternatively, clone this repo and make it your own.\n\n```bash\ngit clone https://github.com/MarkHershey/dotfiles.git \u0026\u0026 \\\ncd dotfiles \u0026\u0026 \\\nrm -rf .git \u0026\u0026 \\\ngit init\n```\n\n### Configurations\n\n1. Understand the scripts before you run it, modify it accordingly to suit your own needs.\n2. You should definitely modify the files that contain personal/regional information, such as:\n    - [`git/gitconfig`](git/gitconfig) contains git user information.\n    - [`macos/macOS_custom_setup.sh`](https://github.com/MarkHershey/dotfiles/blob/eb7cb134a58ee618c10bbc91f16596be1cca36e1/macos/macOS_custom_setup.sh#L105) Line 105-115 contains language \u0026 timezone settings for macOS.\n\n### Try it in Docker\n\nOptionally, if you are not sure if the script will deliver what you wanted, you can try the setup in a Docker container.\n\n-   Build image from source\n\n    ```bash\n    git clone https://github.com/MarkHershey/dotfiles.git \u0026\u0026 \\\n    cd dotfiles \u0026\u0026 \\\n    docker build -t ubuntu-dev .\n    ```\n\n    Then, run the local image\n\n    ```bash\n    docker run -it ubuntu-dev\n    ```\n\n## What is included?\n\n-   [`zsh`](https://en.wikipedia.org/wiki/Z_shell)\n    -   Plugin Manager\n        -   [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh)\n    -   Built-in Plugins\n        -   [git](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git)\n        -   [tmux](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/tmux)\n        -   [sudo](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo)\n        -   [docker](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/docker)\n        -   [colorize](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/colorize)\n        -   [command-not-found](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/command-not-found)\n    -   Custom Plugins\n        -   [zsh-completions](https://github.com/zsh-users/zsh-completions)\n        -   [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting)\n    -   Theme\n        -   [powerlevel10k](https://github.com/romkatv/powerlevel10k)\n-   [`tmux`](https://github.com/tmux/tmux/wiki)\n-   [`vim`](https://www.vim.org/)\n    -   Plugin Manager\n        -   [Vundle](https://github.com/VundleVim/Vundle.vim)\n    -   Plugins\n        -   [vim-airline / vim-airline](https://github.com/vim-airline/vim-airline)\n        -   [preservim / nerdtree](https://github.com/preservim/nerdtree)\n        -   [python-mode / python-mode](https://github.com/python-mode/python-mode)\n        -   [zxqfl / tabnine-vim](https://github.com/zxqfl/tabnine-vim)\n\n## TODOs\n\n-   [ ] Automate Custom Keybindings for Ubuntu. [Reference](https://askubuntu.com/a/597414)\n\n## References\n\n-   [donnemartin / dev-setup / osx.sh](https://github.com/donnemartin/dev-setup/blob/master/osx.sh)\n-   [mathiasbynens / dotfiles / .macos](https://github.com/mathiasbynens/dotfiles/blob/main/.macos)\n-   [teddysun / across / bench.sh](https://github.com/teddysun/across/blob/master/bench.sh)\n\n## LICENSE\n\nCopyright (c) 2020-2023 Mark Huang - [MIT LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkhershey%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkhershey%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkhershey%2Fdotfiles/lists"}