{"id":18396851,"url":"https://github.com/bartventer/dotfiles","last_synced_at":"2025-07-24T06:33:07.403Z","repository":{"id":225999322,"uuid":"767443415","full_name":"bartventer/dotfiles","owner":"bartventer","description":"⚪️📂 My dotfiles","archived":false,"fork":false,"pushed_at":"2025-06-16T11:48:45.000Z","size":807,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-16T12:45:26.130Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bartventer.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,"zenodo":null}},"created_at":"2024-03-05T09:56:39.000Z","updated_at":"2025-06-16T11:48:48.000Z","dependencies_parsed_at":"2024-03-28T15:46:20.449Z","dependency_job_id":"241be0d7-04a4-42eb-a64d-ffb4a471db8b","html_url":"https://github.com/bartventer/dotfiles","commit_stats":null,"previous_names":["bartventer/dotfiles"],"tags_count":74,"template":false,"template_full_name":null,"purl":"pkg:github/bartventer/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartventer%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartventer%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartventer%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartventer%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bartventer","download_url":"https://codeload.github.com/bartventer/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartventer%2Fdotfiles/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266802642,"owners_count":23986384,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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-06T02:15:03.075Z","updated_at":"2025-07-24T06:33:07.274Z","avatar_url":"https://github.com/bartventer.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\nThis repository contains my personal dotfiles for Unix-like systems. It includes configuration files for the Zsh shell, tmux, and Neovim.\n\n[![Release](https://img.shields.io/github/release/bartventer/dotfiles.svg)](https://github.com/bartventer/dotfiles/releases/latest)\n[![codecov](https://codecov.io/gh/bartventer/dotfiles/graph/badge.svg?token=qxQt1nkKcG)](https://codecov.io/gh/bartventer/dotfiles)\n[![License](https://img.shields.io/github/license/bartventer/dotfiles.svg)](LICENSE)\n[![Build](https://github.com/bartventer/dotfiles/actions/workflows/ci.yml/badge.svg)](https://github.com/bartventer/dotfiles/actions/workflows/ci.yml)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/bartventer/dotfiles)\n\n## Table of Contents\n\n- [Prerequisites](#prerequisites)\n- [OS Support](#os-support)\n- [Files and Directories](#files-and-directories)\n- [Installation](#installation)\n- [Font Update](#font-update)\n- [Visual Studio Code Settings](#visual-studio-code-settings)\n- [License](#license)\n\n## Prerequisites\n\n### Main Script\n\nYou should have the following software installed for the main script:\n\n| Software                                              | Description                   | Installation Command (Arch-based) | Required For    |\n| ----------------------------------------------------- | ----------------------------- | --------------------------------- | --------------- |\n| [Zsh](http://www.zsh.org/)                            | The Zsh shell with Oh My Zsh. | `sudo pacman -S zsh`              | Shell setup     |\n| [Node.js](https://nodejs.org/)                        | JavaScript runtime.           | `sudo pacman -S nodejs`           | Neovim plugins  |\n| [jq](https://stedolan.github.io/jq/)                  | Command-line JSON processor.  | `sudo pacman -S jq`               | Scripting       |\n| [ps](https://man7.org/linux/man-pages/man1/ps.1.html) | Process status.               | `sudo pacman -S procps-ng`        | Shell detection |\n| [Python3](https://www.python.org/)                    | Python programming language.  | `sudo pacman -S python`           | Scripting       |\n| [pip](https://pip.pypa.io/en/stable/)                 | Python package installer.     | `sudo pacman -S python-pip`       | Scripting       |\n| [venv](https://docs.python.org/3/library/venv.html)   | Python virtual environment.   | Included with Python3             | Scripting       |\n| [make](https://www.gnu.org/software/make/)            | Build automation tool.        | `sudo pacman -S make`             | Optional        |\n\n### Font Scraping Script (Optional)\n\nFor the optional `update_fonts.sh` script (detailed in the [Font Update](#font-update) section), you should have the following additional software installed:\n\n| Software                                            | Description                  | Installation Command (Arch-based) |\n| --------------------------------------------------- | ---------------------------- | --------------------------------- |\n| [Python3](https://www.python.org/)                  | Python programming language. | `sudo pacman -S python`           |\n| [pip](https://pip.pypa.io/en/stable/)               | Python package installer.    | `sudo pacman -S python-pip`       |\n| [venv](https://docs.python.org/3/library/venv.html) | Python virtual environment.  | Included with Python3             |\n\n## OS Support\n\nThis script is designed to work on the following operating systems:\n\n- Debian-based distributions (like Ubuntu)\n- Red Hat-based distributions (like Fedora)\n- Arch Linux\n- macOS\n\nThe script uses different package managers depending on the OS, including `apt-get`, `dnf`, `yum`, `pacman`, and `brew`.\n\nThe `install.sh` script handles the installation of necessary packages. It is designed to recognize the operating system and install the appropriate packages accordingly. For the detailed list of packages and the installation process, please refer to the [install.sh](install.sh) script.\n\nPlease note that the script is designed to work with recent versions of these operating systems. If you encounter any issues, please open an issue on the GitHub repository.\n\n## Files and Directories\n\n| File/Directory                       | Description                                                           |\n| ------------------------------------ | --------------------------------------------------------------------- |\n| [`.zshrc`](.zshrc)                   | This file contains configuration for the Zsh shell.                   |\n| [`.tmux.conf`](.tmux.conf)           | This file contains configuration for tmux.                            |\n| [`.config/nvim`](.config/nvim)       | This directory contains configuration files for Neovim.               |\n| [`install.sh`](install.sh)           | This script installs the dotfiles on your system.                     |\n| [`tools/update_fonts.sh`](tools/update_fonts.sh) | This script updates the fonts.json file.                              |\n| [`config/fonts.json`](config/fonts.json)    | This file contains a list of available fonts.                         |\n| [`config/config.json`](config/config.json)  | This file contains configuration options for the installation script. |\n| [`tools/fetch_fonts.py`](tools/fetch_fonts.py) | This script fetches the latest fonts for the project. |\n\n## Installation\n\nTo set up your system using the configurations in this repository, clone this repository and run the `install.sh` script:\n\n```bash\ngit clone https://github.com/bartventer/dotfiles.git\ncd dotfiles\n./install.sh\n```\n\nOr with `make`:\n\n```bash\nmake install\n```\n\nThe script performs the following steps:\n\n1. Check and install `zsh` and `oh-my-zsh`.\n2. Create symbolic links for files from the repository to the home directory.\n3. Identify the package manager, update package lists and install packages.\n4. Clone `oh-my-zsh` plugins and theme.\n5. Clone and install `tmux` plugins.\n6. Install `oh-my-zsh` theme.\n7. Install fonts.\n8. Install and configure `Neovim`.\n\nYou can customize the installation using the following command-line options:\n\n| Option | Description                                                                                                                               | Default                                                                                                          | Example             |\n| ------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------- |\n| `-r`   | Specify a custom theme repository for oh-my-zsh.                                                                                          | `romkatv/powerlevel10k`                                                                                          | `agnoster/agnoster` |\n| `-f`   | Specify a font name. See [fonts.json](./fonts.json) for available fonts.\u003cbr\u003eSee the [Font Update](#font-update) section for more details. | `MesloLGS NF` ([patched for `powerlevel10k`](https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#fonts)) | `Source Code Pro`   |\n\nYou can also run the script in interactive mode with the `--it` or `--interactive` command-line arguments. In interactive mode, you will be prompted to enter the options.\n\nExample:\n\n```bash\n./install.sh \\\n-r \"agnoster/agnoster\" \\\n-f \"Source Code Pro\"\n```\n\nOr with `make`:\n\n```bash\nmake OHMYZSH_THEME_REPO=\"agnoster/agnoster\" \\\n    DOTFILES_FONT=\"Source Code Pro\" \\\n    install\n```\n\n## Font Update\n\nTo update the fonts, run the `update_fonts.sh` script from the root of the repository. This script scrapes the latest fonts from the [Nerd Fonts](https://www.nerdfonts.com/) website and updates the `fonts.json` file.\n\n```bash\n./tools/update_fonts.sh\n```\n\nOr with `make`:\n\n```bash\nmake update_fonts\n```\n\n## Visual Studio Code Settings\n\nIf you are using Visual Studio Code, you can modify your settings to automatically sync your dotfiles. Add the following settings to your `settings.json` file:\n\n```json\n{\n    \"dotfiles.repository\": \"bartventer/dotfiles\",\n    \"dotfiles.targetPath\": \"~/dotfiles\",\n    \"dotfiles.installCommand\": \"install.sh\"\n}\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartventer%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbartventer%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartventer%2Fdotfiles/lists"}