{"id":14982829,"url":"https://github.com/codelytv/dotly","last_synced_at":"2025-05-14T15:11:33.044Z","repository":{"id":39633641,"uuid":"236863475","full_name":"CodelyTV/dotly","owner":"CodelyTV","description":"🌚 Modular and easy to customize dotfiles framework","archived":false,"fork":false,"pushed_at":"2025-02-10T17:39:42.000Z","size":340,"stargazers_count":1220,"open_issues_count":45,"forks_count":117,"subscribers_count":24,"default_branch":"main","last_synced_at":"2025-04-13T13:13:39.037Z","etag":null,"topics":["bash","codely","codelytv","dotfile","dotfile-manager","dotfile-windows","dotfiles","dotfiles-automation","dotfiles-install","dotfiles-installer","dotfiles-linux","dotfiles-macos","dotfiles-manager","dotfiles-resources","zsh"],"latest_commit_sha":null,"homepage":"https://codely.com/cursos","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/CodelyTV.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":"2020-01-28T23:16:05.000Z","updated_at":"2025-04-10T08:57:09.000Z","dependencies_parsed_at":"2024-04-12T22:38:25.562Z","dependency_job_id":"346fc1e9-ef71-4d35-828e-16c7f317532a","html_url":"https://github.com/CodelyTV/dotly","commit_stats":{"total_commits":226,"total_committers":33,"mean_commits":6.848484848484849,"dds":"0.31858407079646023","last_synced_commit":"12ca79c9499556740eb02441d8f6d816f1432ad8"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodelyTV%2Fdotly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodelyTV%2Fdotly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodelyTV%2Fdotly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodelyTV%2Fdotly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodelyTV","download_url":"https://codeload.github.com/CodelyTV/dotly/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254170059,"owners_count":22026219,"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":["bash","codely","codelytv","dotfile","dotfile-manager","dotfile-windows","dotfiles","dotfiles-automation","dotfiles-install","dotfiles-installer","dotfiles-linux","dotfiles-macos","dotfiles-manager","dotfiles-resources","zsh"],"created_at":"2024-09-24T14:06:15.548Z","updated_at":"2025-05-14T15:11:32.997Z","avatar_url":"https://github.com/CodelyTV.png","language":"Shell","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://codely.tv\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/1331435/141520189-90349bbd-3e0f-4200-8b76-f4297be11898.png\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e⚡️ Simple and fast dotfiles framework ⚡️\u003c/h1\u003e\n  \u003cstrong\u003eThe path to increasing your productivity on macOS, Linux and WSL\u003c/strong\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/CodelyTV\"\u003e\u003cimg src=\"https://img.shields.io/badge/CodelyTV-OS-green.svg?style=flat-square\" alt=\"codely.tv\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://pro.codely.tv\"\u003e\u003cimg src=\"https://img.shields.io/badge/CodelyTV-PRO-black.svg?style=flat-square\" alt=\"CodelyTV Courses\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/CodelyTV/dotly/actions\"\u003e\u003cimg src=\"https://github.com/CodelyTV/dotly/workflows/CI/badge.svg\" alt=\"CI pipeline status\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\ndotly is a dotfiles framework built on top of [zim](https://github.com/zimfw/zimfw), one of the fastest zsh existing\nframeworks. It creates an opinionated dotfiles structure to handle all your configs and scripts.\n\n## 🚀 Installation\n\nUsing wget:\n\n```bash\nbash \u003c(wget -qO- https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)\n```\n\nOr using curl:\n\n```bash\nbash \u003c(curl -s https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)\n```\n\n## 🐳 Try it in Docker\n\nYou can safely install additional software and make any changes to the file system. Once you exit zsh the image is\ndeleted.\n\n\u003cdetails\u003e\n\u003csummary\u003eUsing Alpine:\u003c/summary\u003e\n\n```bash\ndocker run -e TERM -e COLORTERM -e LC_ALL=C.UTF-8 -w /root -it --rm alpine sh -uec '\n  apk add curl sudo bash zsh git g++ python3\n  bash -c \"$(curl -fsSL https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)\"\n  zsh'\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eOr using Ubuntu:\u003c/summary\u003e\n\n```bash\ndocker run -e TERM -e COLORTERM -w /root -it --rm ubuntu sh -uec '\n  apt-get update\n  apt-get install -y curl build-essential sudo\n  su -c bash -c \"$(curl -fsSL https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)\"\n  su -c zsh'\n```\n\u003c/details\u003e\n\n## Restore your Dotfiles manually\n\n* Install git\n* Clone your dotfiles repository `git clone [your repository of dotfiles] $HOME/.dotfiles`\n* Go to your dotfiles folder `cd $HOME/.dotfiles`\n* Install git submodules `git submodule update --init --recursive modules/dotly`\n* Install your dotfiles `DOTFILES_PATH=\"$HOME/.dotfiles\" DOTLY_PATH=\"$DOTFILES_PATH/modules/dotly\" \"$DOTLY_PATH/bin/dot\" self install`\n* Restart your terminal\n* Import your packages `dot package import`\n\n## Restore your Dotfiles with script\n\nUsing wget\n```bash\nbash \u003c(wget -qO- https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/restorer)\n```\n\nUsing curl\n```bash\nbash \u003c(curl -s https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/restorer)\n```\n\n🔒 You need to know your GitHub username, repository and install ssh key if your repository is private.\n\nIt also supports other git repos, but you need to know your git repository url.\n\n## 💻 Usage\n\n### 🚶 First steps\n\nOnce dotly is installed, the next step is to commit and push your dotfiles. Create a new repository in your GitHub\nnamed `dotfiles` and then copy the url. Then go to your dotfiles (`cd \"$DOTFILES_PATH\"`) and execute:\n\n```bash\ngit remote add origin YOUR_DOTFILES_REPO_URL \u0026\u0026\ngit add -A \u0026\u0026\ngit commit -m \"Initial commit\" \u0026\u0026\ngit push origin main\n```\n\n⚠️ It's recommended to commit every time you add/modify a config or script.\n\n### 🌚 The `dot` command\n\n`dot` is the core command of dotly. If you execute it, you'll see all your scripts.\n\n```bash\n{▸} ~ dot -h\nUsage:\n   dot\n   dot \u003ccontext\u003e\n   dot \u003ccontext\u003e \u003cscript\u003e [\u003cargs\u003e...]\n   dot -h | --help\n ```\n\n### 🌴 Understanding your dotfiles folder structure\n\n```bash\n├── 📁 bin                 # External binaries/symlinks. This folder has preference in your $PATH\n├── 📁 doc                 # Documentation of your dotfiles\n├── 📁 editors             # Settings of your editors (vscode, IDEA, …)\n├── 📁 git                 # git config\n├── 📁 langs               # Config for programming languages/libraries\n├── 📁 os                  # Specific config of your Operative System or apps\n├── 📁 restoration_scripts # This will be execute when you restore your dotfiles in another computer/installation\n├── 📁 scripts             # Your custom scripts\n├── 📁 shell               # Bash/Zsh/Fish?… configuration files\n└── 📁 symlinks            # The config of your symlinks\n```\n\n### ⚙️ Versioning configs\n\ndotly allows you to version your apps' config files. Once you've found the config to version you should:\n\n1. Copy your config file inside your dotfiles so this will be the source of truth.\n   E.g. `cp ~/Library/Application Support/Code/User/settings.json $DOTFILES_PATH/editors/code/settings.json`\n2. Symlink this file. To do this you should edit your `$DOTFILES_PATH/symlinks/conf.YOUR-OS.yaml` and add it.\n   E.g. `~/Library/Application Support/Code/User/settings.json: editors/code/settings.json`\n\n### 🎨 Customization\n\ndotly includes an opinionated, minimal, very fast and powerful theme by default. You can configure it using the\nfollowing parameters in your `shell/exports.sh`:\n\n```bash\nCODELY_THEME_MINIMAL=false|true  # If true the theme will only show the prompt status\nCODELY_THEME_MODE=\"dark\"|\"light\" # Use dark if you use dark colors, light if light\nCODELY_THEME_PROMPT_IN_NEW_LINE=false|true           # If true the prompt will be in a newline\nCODELY_THEME_PWD_MODE=\"short\"|\"full\"|\"home_relative\" # short will show the first letter of each directory, full the full path and home_relative the full path relative to the $HOME dir\nCODELY_THEME_STATUS_ICON_KO=\"▪\" # The icon to show if the previous command failed. Useful if you're color blind\n```\n\n### 💾 Default scripts\n\n```bash\n├── 📁 dotfiles\n│  ├── create # Creates the dotfiles scructure\n│  └── import # Import an existing dotfiles\n├── 📁 git\n│  ├── amend           # Amend a commit\n│  ├── apply-gitignore # Exlude all commited files that are inside the project .gitignore\n│  ├── changed-files   # Show all changed files to main\n│  ├── commit          # Add all files and then commit\n│  ├── contributors    # List contributors with number of commits\n│  ├── find            # Find commits by commit message\n│  ├── pretty-diff     # Show a pretty git diff using fzf (and copy selected path to the clipboard)\n│  ├── pretty-log      # Git log filtering\n│  └── rm-file-history # Remove completely a file from the repo with its history\n├── 📁 mac\n│  ├── brew     # Some brew utils\n│  └── defaults # Some defaults utils to view your changes, import and export\n├── 📁 package\n│  ├── add        # Install a package\n│  ├── dump       # Dump all installed packages\n│  ├── import     # Import previously dumped packages\n│  └── update_all # Update all packages\n├── 📁 self # Instead of `dot self` you can use direclty `dotly` in your terminal\n│  ├── debug           # Debug dotly\n│  ├── install         # Install dotly and setup dotfiles\n│  ├── lint            # Lint all dotly related bash files\n│  ├── static_analysis # Static analysis of all dotly related bash files\n│  └── update          # Update dotly to the latest stable release\n├── 📁 shell\n│  └── zsh # ZSH helpers\n└── 📁 symlinks\n    └── apply # Apply all symlinks\n```\n\n### 💽 Alias\n\nYou can see the default aliases [here](dotfiles_template/shell/aliases.sh). The most commonly used are:\n\n* `..`: cd one directory up\n* `la`: ls all files/dirs with colors\n* `up`: Update all your package managers packages\n\n## 📽️ Feature showcase (Spanish)\n\nFor an in-depth look at the features offered by dotly, you can take a look at [this video](https://www.youtube.com/watch?v=kCBvPb8qAAE):\n\n[![Watch the video](https://img.youtube.com/vi/kCBvPb8qAAE/maxresdefault.jpg)](https://youtu.be/kCBvPb8qAAE)\n\n## ⁉️ Troubleshooting\n\nYou can execute `dot self debug` in parallel with another command to see the errors output.\n\n## 🤝 Contributing\n\n* If you want to implement a new feature/script, please, open an issue first\n\n## 😊 Thanks\n\nA lot of dotly concepts has been inspired by [denisidoro/dotfiles](https://github.com/denisidoro/dotfiles)\n\n## ⚖️ LICENSE\n\nMIT © [CodelyTV](https://codely.tv)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelytv%2Fdotly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodelytv%2Fdotly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelytv%2Fdotly/lists"}