• Stars
    star
    1,190
  • Rank 39,309 (Top 0.8 %)
  • Language
    Shell
  • License
    MIT License
  • Created almost 5 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🌚 Modular and easy to customize dotfiles framework

⚑️ Simple and fast dotfiles framework ⚑️

The path to increasing your productivity on macOS, Linux and WSL

codely.tv CodelyTV Courses CI pipeline status

dotly is a dotfiles framework built on top of zim, one of the fastest zsh existing frameworks. It creates an opinionated dotfiles structure to handle all your configs and scripts.

πŸš€ Installation

Using wget:

bash <(wget -qO- https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)

Or using curl:

bash <(curl -s https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)

🐳 Try it in Docker

You can safely install additional software and make any changes to the file system. Once you exit zsh the image is deleted.

Using Alpine:

docker run -e TERM -e COLORTERM -e LC_ALL=C.UTF-8 -w /root -it --rm alpine sh -uec '
  apk add curl sudo bash zsh git g++ python3
  bash -c "$(curl -fsSL https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)"
  zsh'

Or using Ubuntu:

docker run -e TERM -e COLORTERM -w /root -it --rm ubuntu sh -uec '
  apt-get update
  apt-get install -y curl build-essential sudo
  su -c bash -c "$(curl -fsSL https://raw.githubusercontent.com/CodelyTV/dotly/HEAD/installer)"
  su -c zsh'

πŸ’» Usage

🚢 First steps

Once dotly is installed, the next step is to commit and push your dotfiles. Create a new repository in your GitHub named dotfiles and then copy the url. Then go to your dotfiles (cd "$DOTFILES_PATH") and execute:

git remote add origin YOUR_DOTFILES_REPO_URL &&
git add -A &&
git commit -m "Initial commit" &&
git push origin main

It's recommended to commit every time you add/modify a config or script.

🌚 The dot command

dot is the core command of dotly. If you execute it, you'll see all your scripts.

{β–Έ} ~ dot -h
Usage:
   dot
   dot <context>
   dot <context> <script> [<args>...]
   dot -h | --help

🌴 Understanding your dotfiles folder structure

β”œβ”€β”€ πŸ“ bin                 # External binaries/symlinks. This folder has preference in your $PATH
β”œβ”€β”€ πŸ“ doc                 # Documentation of your dotfiles
β”œβ”€β”€ πŸ“ editors             # Settings of your editors (vscode, IDEA, …)
β”œβ”€β”€ πŸ“ git                 # git config
β”œβ”€β”€ πŸ“ langs               # Config for programming languages/libraries
β”œβ”€β”€ πŸ“ os                  # Specific config of your Operative System or apps
β”œβ”€β”€ πŸ“ restoration_scripts # This will be execute when you restore your dotfiles in another computer/installation
β”œβ”€β”€ πŸ“ scripts             # Your custom scripts
β”œβ”€β”€ πŸ“ shell               # Bash/Zsh/Fish?… configuration files
└── πŸ“ symlinks            # The config of your symlinks

βš™οΈ Versioning configs

dotly facilites you to version your apps config files. Once you've found the config to version you should:

  1. Copy your config file inside your dotfiles so this will be the source of truth. E.g. cp ~/Library/Application Support/Code/User/settings.json $DOTFILES_PATH/editors/code/settings.json
  2. Symlink this file. To do this you should edit your $DOTFILES_PATH/symlinks/conf.YOUR-OS.yaml and add it. E.g. ~/Library/Application Support/Code/User/settings.json: editors/code/settings.json

🎨 Customization

dotly includes an opinionated, minimal, very fast and powerful theme by default. You can configure it using the following parameters in your shell/exports.sh:

CODELY_THEME_MINIMAL=false|true  # If true the theme will only show the prompt status
CODELY_THEME_MODE="dark"|"light" # Use dark if you use dark colors, light if light
CODELY_THEME_PROMPT_IN_NEW_LINE=false|true           # If true the prompt will be in a newline
CODELY_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
CODELY_THEME_STATUS_ICON_KO="β–ͺ" # The icon to show if the previous command failed. Useful if you're color blind

πŸ’Ύ Default scripts

β”œβ”€β”€ πŸ“ dotfiles
β”‚  β”œβ”€β”€ create # Creates the dotfiles scructure
β”‚  └── import # Import an existing dotfiles
β”œβ”€β”€ πŸ“ git
β”‚  β”œβ”€β”€ amend           # Amend a commit
β”‚  β”œβ”€β”€ apply-gitignore # Exlude all commited files that are inside the project .gitignore
β”‚  β”œβ”€β”€ changed-files   # Show all changed files to main
β”‚  β”œβ”€β”€ commit          # Add all files and then commit
β”‚  β”œβ”€β”€ contributors    # List contributors with number of commits
β”‚  β”œβ”€β”€ find            # Find commits by commit message
β”‚  β”œβ”€β”€ pretty-diff     # Show a pretty git diff using fzf (and copy selected path to the clipboard)
β”‚  β”œβ”€β”€ pretty-log      # Git log filtering
β”‚  └── rm-file-history # Remove completely a file from the repo with its history
β”œβ”€β”€ πŸ“ mac
β”‚  β”œβ”€β”€ brew     # Some brew utils
β”‚  └── defaults # Some defaults utils to view your changes, import and export
β”œβ”€β”€ πŸ“ package
β”‚  β”œβ”€β”€ add        # Install a package
β”‚  β”œβ”€β”€ dump       # Dump all installed packages
β”‚  β”œβ”€β”€ import     # Import previously dumped packages
β”‚  └── update_all # Update all packages
β”œβ”€β”€ πŸ“ self # Instead of `dot self` you can use direclty `dotly` in your terminal
β”‚  β”œβ”€β”€ debug           # Debug dotly
β”‚  β”œβ”€β”€ install         # Install dotly and setup dotfiles
β”‚  β”œβ”€β”€ lint            # Lint all dotly related bash files
β”‚  β”œβ”€β”€ static_analysis # Static analysis of all dotly related bash files
β”‚  └── update          # Update dotly to the latest stable release
β”œβ”€β”€ πŸ“ shell
β”‚  └── zsh # ZSH helpers
└── πŸ“ symlinks
    └── apply # Apply all symlinks

πŸ’½ Alias

You can see the default aliases here. The most commonly used are:

  • ..: cd one directory up
  • la: ls all files/dirs with colors
  • up: Update all your package managers packages

⁉️ Troubleshooting

You can execute dot self debug in parallel with another command to see the errors output.

🀝 Contributing

  • If you want to implement a new feature/script, please, open an issue first

😊 Thanks

A lot of dotly concepts has been inspired by denisidoro/dotfiles

βš–οΈ LICENSE

MIT Β© CodelyTV

More Repositories

1

php-ddd-example

🐘🎯 Hexagonal Architecture + DDD + CQRS in PHP using Symfony 7
PHP
2,954
star
2

typescript-ddd-example

πŸ”·πŸŽ― TypeScript DDD Example: Complete project applying Hexagonal Architecture and Domain-Driven Design patterns
TypeScript
1,300
star
3

refactoring-code_smells-design_patterns

♻️ Example projects illustrating Code Smells in order to apply Refactoring techniques
PHP
564
star
4

typescript-ddd-skeleton

πŸ”·βœ¨ TypeScript DDD Skeleton: Bootstrap your new TypeScript project applying Hexagonal Architecture and Domain-Driven Design patterns
TypeScript
439
star
5

java-ddd-example

♨️ DDD in Java skeleton & examples. Course:
Java
423
star
6

cra-template-codely

<πŸŒ±βš›οΈ> Create React App Codely template
SCSS
337
star
7

pr-size-labeler

🏷 Visualize and optionally limit the size of your Pull Requests
Shell
334
star
8

dotfiles

🐒 πŸ’¨ Speedup your MacOS setup with this fine tuning settings
Shell
306
star
9

eslint-plugin-hexagonal-architecture

A plugin that helps you to enforce hexagonal architecture best practises
TypeScript
290
star
10

java-ddd-example-deprecated

β˜•πŸŽ― Hexagonal Architecture + DDD + CQRS in a Java project using SpringBoot
Java
290
star
11

php-ddd-skeleton-deprecated

πŸ˜πŸš€ PHP DDD Skeleton: Bootstrap your new projects or be inspired by this example project
PHP
251
star
12

javascript-basic-skeleton

JavaScript
209
star
13

typescript-api-skeleton

πŸ”·πŸŒ TypeScript API Skeleton: Bootstrap your new HTTP API backend with TypeScript
TypeScript
196
star
14

awesome-typescript-examples

✨ Awesome TypeScript Examples with complete show cases of how to take advantage of the language potential.
TypeScript
179
star
15

typescript-react_best_practices-vite_template

<βš‘βš›οΈ> Start your React project with Vite following code best practices (TypeScript, Linting, testing, CI/CD…)
SCSS
167
star
16

csharp-ddd-skeleton

🦈✨ C# DDD Skeleton: Bootstrap your new C# projects applying Hexagonal Architecture and Domain-Driven Design patterns
C#
162
star
17

go-hexagonal_http_api-course

Ejemplos del curso de API HTTP en Go aplicando Arquitectura Hexagonal
Go
138
star
18

jetbrains-theme

🎨 A modern, productivity-increaser theme for all JetBrains IDEs
Shell
134
star
19

scala-ddd-example

λ🎯 Hexagonal Architecture + DDD + CQRS applied in Scala using Akka HTTP
Scala
133
star
20

typescript-basic-skeleton

πŸ”·πŸŒ± TypeScript Basic Skeleton: Template for bootstrapping your new TypeScript project following idiomatic best practices.
TypeScript
133
star
21

job-offers

😊 Do you wanna work with us?
132
star
22

typescript-ddd-course

πŸ”·πŸ”– TypeScript DDD Course: Learn Domain-Driven Design in TS lesson by lesson
TypeScript
126
star
23

golang-examples

Introductory examples to Go programming language used in the CodelyTV Pro course
Go
113
star
24

typescript-primitives-type

🧩 TypeScript utility type in order to ensure to return only properties (not methods) containing values in primitive types such as number or boolean (not Value Objects)
TypeScript
111
star
25

php-basic-skeleton

πŸ˜πŸš€ PHP Basic Skeleton: Bootstrap your new projects using this Composer Project
PHP
107
star
26

eslint-config-codely

Opinionated linting configuration considering modern TypeScript best practices and providing consistency to your import statements. Valid for your JavaScript or TypeScript projects 🀟
JavaScript
84
star
27

frontend-hexagonal_architecture-course

Hexagonal Architecture in frontend
TypeScript
79
star
28

java-solid-examples

Learn SOLID principles by examples in Java
Java
78
star
29

javascript-testing-frontend-course

JavaScript
75
star
30

kotlin-api-skeleton

πŸ’Ž Kotlin Hexagonal HTTP API template to create your new projects
Kotlin
63
star
31

vscode-theme

A modern, good-looking, productivity-increaser theme for Visual Studio Code
61
star
32

p2p-editor

Online code editor based on P2P and JavaScript. Demo:
JavaScript
57
star
33

kotlin-basic-skeleton

A basic Skeleton to create your Kotlin apps easily
Kotlin
53
star
34

java-basic-skeleton

β˜•πŸš€ Java Bootstrap: Skeleton for your new projects
Java
51
star
35

php-coding_style-codely

PHP Coding Style rules we use in Codely
PHP
49
star
36

react-from_zero_to_best_practices-course

Developer dashboard made in the "React from 0 with good practices" course
TypeScript
48
star
37

css-architecture-course

HTML
39
star
38

figma-plugin-skeleton

πŸͺ† Template intended to serve as a starting point if you want to bootstrap a Figma Plugin in TypeScript.
TypeScript
35
star
39

awesome-vscode-settings

Awesome Settings for VSCode
TypeScript
33
star
40

typescript-web-skeleton

πŸ”·πŸ•ΈοΈ TypeScript Web Skeleton: Bootstrap your new TypeScript web frontend project
JavaScript
33
star
41

elastic-stack-example

Simple app using Elastic Stack (Elasticsearch+Logstash+Kibana) & Beats with Docker for the CodelyTV Pro course
PHP
32
star
42

developing_codely_website-course

Developing Codely's website course code examples https://pro.codely.tv/library/maquetando-la-web-de-codely-desde-0-181753
TypeScript
32
star
43

java-gildedrose-kata

Java
31
star
44

css-layouts-best-practises-course

Vue
31
star
45

n8n-nodes-twitch

n8n trigger node for Twitch: Execute workflows on stream start, stream end, and new follows
TypeScript
31
star
46

frontend-hexagonal_architecture-example

TypeScript
31
star
47

prometheus-course

πŸŽ“
Go
31
star
48

awesome-p2p

A curated list of awesome P2P learning tutorials and resources
30
star
49

youtube-code-examples

πŸŽ₯ Collection of code examples used in our screencasts about programming best practices
PHP
30
star
50

java-oop-examples

Object-Oriented Programming recap with Java examples
Java
29
star
51

css-grid-course

HTML
28
star
52

bash-github_actions-skeleton

😬 Speedup your GitHub Actions creation!
Shell
27
star
53

value_objects-course

Value Objects course examples
TypeScript
26
star
54

css-flex-course

CSS Flex course examples
HTML
26
star
55

kotlin-hexagonal_http_api-course

πŸ’Ž Kotlin Hexagonal HTTP API Course: Learn to do scalable Kotlin web apps
Kotlin
26
star
56

loki-grafana-course

26
star
57

php-finder_refactoring-kata

πŸ˜πŸ”Incomprehensible Finder Refactoring Kata port for PHP
PHP
25
star
58

awesome-bash-challenges

Awesome Bash Challenges
Shell
25
star
59

terraform-course

Terraform Codely course examples
HCL
25
star
60

design_patterns-criteria-course

Criteria Codely course examples
TypeScript
25
star
61

symfony-maintainable-scalable-course

Examples of "Symfony mantanible y escable" course
PHP
24
star
62

csharp-basic-skeleton

πŸ¦ˆπŸš€ C# Basic Skeleton: Bootstrap your new projects.
C#
24
star
63

design-patterns

Java
23
star
64

refactor-from-js-to-ts-course

TypeScript
23
star
65

add_ai_follwing_best_practices-course

Add Artificial Intelligence following best practices course examples
TypeScript
23
star
66

infrastructure_design-eventbus-aws-course

Infrastructure Design: AWS SQS as a Message Queue course examples
TypeScript
23
star
67

makefiles-course

Makefile
22
star
68

react-carousel

A React Carousel supporting different slides sizes, responsive, custom styling, accesible by default, SSR compatible, and tested
TypeScript
22
star
69

figma-plugin-structurer

πŸ—οΈ Figma Plugin for speeding up and ensure consistency in the structure of your Figma projects
TypeScript
22
star
70

react-devdash

Developer dashboard made in the "React from 0 with good practices" course
TypeScript
22
star
71

vue-progressive-migration-course

HTML
21
star
72

ci_with_github_actions-course

PHP
20
star
73

web-performance-course

Web performance course examples
CSS
20
star
74

check-critical-files

πŸ‘ Check for critical files in your commits
Shell
20
star
75

vue-3-course

Vue
19
star
76

javascript-modern-course

JavaScript
19
star
77

ban-words

Shell
19
star
78

eslint-plugin-no-default-parameters

A plugin that forbids the use of default parameters in functions, methods and constructors.
TypeScript
18
star
79

scala-basic-skeleton.g8

🧬🌱 Scala Basic Skeleton: Template for bootstrapping your new Scala project following idiomatic best practices powered by Giter 8.
Scala
18
star
80

css-light-dark-mode-course

HTML
18
star
81

react-state-management-course

React State Management course examples
JavaScript
18
star
82

domain_modeling-domain_events-course

Domain Modeling: Domain Events course examples
TypeScript
18
star
83

reactjs-video-favourites-app

Introductory examples to ReactJS used in the CodelyTV Pro course
JavaScript
17
star
84

php-coupled_code-example

πŸ˜πŸ€·β€β™‚οΈ Simple demo of a coupled code to ilustrate how to refactor to CQRS & DDD
PHP
16
star
85

aggregates-course

Aggregates course examples
TypeScript
16
star
86

no-pull-requests

πŸ™… GitHub Action to autoclose all Pull Requests
Shell
15
star
87

scala-basic-skeleton

🧬🌱 Scala Basic Skeleton: Template for bootstrapping your new Scala project following idiomatic best practices.
Scala
15
star
88

scala-examples

Ζ›πŸ€” Introduction to Scala CodelyTV Pro course examples
Scala
14
star
89

from-monolith-to-microservices-using-api-gateway

CodelyTV Course
PHP
13
star
90

phpstorm-settings

Code and File Templates for PhpStorm following the PHP ecosystem conventions
PHP
12
star
91

php-password_refactoring-kata

Ejercicio para practicar refactoring
PHP
11
star
92

no-branches

πŸ•Š GitHub Action to autoremove all branches
Shell
11
star
93

linting-js-ts-course

Linting js and ts course examples
HTML
11
star
94

kotlin-introduction-course

Intro a Kotlin course examples
Kotlin
10
star
95

csharp-finder_refactoring-kata

πŸ¦ˆπŸ”Incomprehensible Finder Refactoring Kata port for C#
C#
10
star
96

infrastructure_design-cache-course

Infrastructure design: Cache course examples
TypeScript
9
star
97

ddd_problems-domain_events_errors_handling-course

Examples of how to handle errors when publishing and consuming domain events
Java
9
star
98

typescript-react_library-vite_template

Template for creating React libraries with TypeScript following best practices: Storybook for documentation, testing, Continuous Integration, and linting
TypeScript
9
star
99

infrastructure_design-eventbus-rabbitmq-course

Infrastructure Design: RabbitMQ as a Message Queue course examples
TypeScript
9
star
100

scala-finder_refactoring-kata

Incomprehensible Finder Refactoring Kata Scala
Scala
8
star