Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nicolodiamante/dotfiles
Automate and streamline your configuration synching on multiple systems with this dotfiles.
https://github.com/nicolodiamante/dotfiles
dotfiles dotfiles-installer dotfiles-macos dotfiles-resources dotfiles-setup git homebrew homebrew-cask linux mackup macos node shell zsh zsh-configuration zsh-configuration-framework zsh-custom zsh-prompt zshell
Last synced: 2 months ago
JSON representation
Automate and streamline your configuration synching on multiple systems with this dotfiles.
- Host: GitHub
- URL: https://github.com/nicolodiamante/dotfiles
- Owner: nicolodiamante
- License: other
- Created: 2022-11-13T15:04:42.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-23T20:29:32.000Z (11 months ago)
- Last Synced: 2024-01-23T21:54:52.343Z (11 months ago)
- Topics: dotfiles, dotfiles-installer, dotfiles-macos, dotfiles-resources, dotfiles-setup, git, homebrew, homebrew-cask, linux, mackup, macos, node, shell, zsh, zsh-configuration, zsh-configuration-framework, zsh-custom, zsh-prompt, zshell
- Language: Shell
- Homepage:
- Size: 143 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
For those who are not familiar, the dotfiles directory is a hidden directory in the user's home directory that contains configuration files for various applications and tools. These files are typically preceded by a dot, hence the name "dotfiles". This project's shell scripts automate the installation of development tools, apps, and symbolic links, making it easy to automate and synchronise your configurations across multiple systems.
### Benefits of Dotfiles
- Saves time and effort by automating the installation of development tools.
- Ensures consistency across multiple systems by synchronising configurations.
- Easy to set up and use.
## Using a cloud service instead of GitHub
As a member of the Apple ecosystem, I decided to streamline my workflow by moving my dotfiles to iCloud Drive. Since I'm already paying for an iCloud subscription, it made sense to take advantage of this cloud storage service to keep all my dotfiles in one place. Putting dotfiles into iCloud Drive can be a great way to keep them synced across all of your Apple devices. However, my latest configuration still remains on Github, allowing me to easily push or pull updates as I make them. This simple sync process ensures that you can keep all your systems in sync and access your dotfiles from anywhere. This streamlined workflow saves you time and effort, making it a convenient and accessible solution for managing your dotfiles.
### What are the benefits of working in the Cloud?
Using a cloud service, like Dropbox, Google Drive, or iCloud Drive, can offer various advantages, especially when it comes to real-time syncing. By storing your dotfiles in the cloud, you can quickly and easily access and edit them from any device, without worrying about manually transferring the latest version. Additionally, you can maintain the same folder structure across all your devices, making it easier to organise and locate your files. You can even use Github as a backup and reference to share your repository with others. This approach ensures that you always have access to the latest version of your configuration, no matter where you are.
## Getting started
> Before incorporating someone else's dotfiles, it's recommended to review the code thoroughly to ensure that it's compatible with your system and to remove any unnecessary settings. Blindly using someone else's dotfiles without understanding what they do can lead to unintended consequences, so it's important to have a good understanding of what each configuration setting does before applying it to your system.
### Installation
With the [Bootstrap script][bootstrap], you can easily manage and install packages using [Homebrew][brew], [npm][npm] and [mas][mas]. Once the packages are installed and configured, the macOS settings will be automatically set up for you. The script will then proceed to create a symbolic link of your dotfiles in your home directory, while keeping the original files intact in either iCloud Drive or in your local directory.
Let's get started, download the repository via curl:
```shell
zsh -c "$(curl -fsSL https://raw.githubusercontent.com/nicolodiamante/dotfiles/HEAD/bootstrap.zsh)"
```The script will first attempt to clone the repository to `~/Library/Mobile Documents/com~apple~CloudDocs`, which is the path to the iCloud Drive directory for the user. If iCloud Drive is not available, the script will then clone the repository to `~` which is a local directory on the user's system.
### Install Manually
As an alternative, you can download it first:
```shell
git clone https://github.com/nicolodiamante/dotfiles.git ~
```Navigate to the dotfiles directory and execute the script.
```shell
cd bin && source bootstrap.zsh
```
## Add custom commands without creating a new fork
The user/config feature allows users to add custom commands to their dotfiles without having to fork the entire repository. This is useful for adding commands that users do not want to commit to a public repository. Additionally, users can also create additional files in the user/ directory which will be sourced automatically from the zshrc file and ignored by Git. This provides users with more flexibility in managing their dotfiles and allows them to easily customise their shell environment to suit their needs. With this approach, users can keep their dotfiles organised and easily accessible, while also ensuring that their sensitive information remains private.
## Notes
### Resources
#### Arch Linux
- [Zsh (Wiki)][archw-zsh]
#### Base Directory
- [XDG Base Directory Specification][XDG]
#### Zsh Documentations
- [Documentation Index][zsh-docs]
- [User Guide][zsh-docs-guide]
- [Startup Files][zsh-docs-startup_files]
- [Variable Index][zsh-docs-var_idex]
- [Shell Grammar][zsh-docs-shell_grammar]### Contribution
Thanks for considering these Dotfiles for your development needs. If you have any ideas on how to improve this project, please feel free to share them. If you encounter any issues or bugs, please report them to the [issues page][issues]. Your feedback is valuable in helping to improve these Dotfiles.
>
[bootstrap]: bootstrap.sh
[brew]: https://brew.sh
[npm]: https://www.npmjs.com
[mas]: https://github.com/mas-cli/mas
[zsh-docs]: http://zsh.sourceforge.net/Doc
[zsh-docs-guide]: http://zsh.sourceforge.net/Guide/zshguide.html
[zsh-docs-startup_files]: http://zsh.sourceforge.net/Intro/intro_3.html
[zsh-docs-var_idex]: http://zsh.sourceforge.net/Doc/Release/Variables-Index.html
[zsh-docs-shell_grammar]: http://zsh.sourceforge.net/Doc/Release/Shell-Grammar.html
[archw-zsh]: https://wiki.archlinux.org/index.php/zsh
[XDG]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
[issues]: https://github.com/nicolodiamante/dotfiles/issues