Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pmmmwh/dotfiles
`pmmmwh@local dotfiles ﹪ █`
https://github.com/pmmmwh/dotfiles
dotfiles macos zsh
Last synced: 2 months ago
JSON representation
`pmmmwh@local dotfiles ﹪ █`
- Host: GitHub
- URL: https://github.com/pmmmwh/dotfiles
- Owner: pmmmwh
- License: mit
- Created: 2020-09-15T20:40:53.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-06-18T23:30:45.000Z (7 months ago)
- Last Synced: 2024-10-14T09:31:13.020Z (3 months ago)
- Topics: dotfiles, macos, zsh
- Language: Shell
- Homepage:
- Size: 1.06 MB
- Stars: 11
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `pmmmwh@dotfiles`
## Getting Started
> ⚠️ **WARNING** ⚠️ - Proceed at your own risk.
>
> The setup here have been tweaked to cater my personal workflow.
> They don't suit everyone, so please review the code to make sure the dotfiles fit your setup.First, clone the repository with submodules. You can put it wherever you want.
```sh
git clone --recurse-submodules --remote-submodules https://github.com/pmmmwh/dotfiles.git
cd dotfiles
```Then, set [the bootstrap script](./bootstrap) as executable and run it.
It will ensure the environment contains binaries needed for the setup (Git and GNU Stow).```sh
chmod u+x bootstrap
bootstrap
```The environment is now properly setup and ready to go.
### macOS
If you're using macOS, you can also setup a few extra things.
Setting some sensible macOS defaults with [`settings.zsh`](./@macos/settings.zsh).
```sh
chmod u+x @macos/settings.zsh
@macos/settings.zsh
```Installing binaries and apps (via [`Homebrew`](https://brew.sh) and [`mas`](https://github.com/mas-cli/mas)) with [`brew.zsh`](./@macos/brew.zsh):
(The actual list is in the [`Brewfile`](./@macos/Brewfile))```sh
chmod u+x @macos/brew.zsh
@macos/brew.zsh
```## Operations
### Customisation
If you want to customise the setup, you can add `.zsh` files within the [`.zshcustom`](./zsh/.zshcustom) folder.
It has been set as the "custom" directory for `Oh My Zsh`, so any `.zsh` files inside will be automatically sourced.### Reverting
If you do not like the setup and would like to revert the changes it did, you can run the teardown script.
It will remove any symlinks created by the bootstrap process.```sh
chmod u+x teardown
teardown
```### Updating
To update, go to your local `dotfiles` repository and run the teardown script.
Then, re-run the bootstrap script -
it will then pull in the latest changes and re-run the whole setup process.```sh
cd dotfiles
teardown
bootstrap
```## Structure
The project have been structured as Stow packages and named with a specific convention in mind:
- `lowercase` for anything to be symlinked to `$HOME`
- a leading `@` for anything dependent on the installation operating system
- a leading `_` for anything that should not be symlinked (i.e. not a Stow package.)External packages are applied using Git Submodules.
Here's a list of all dependencies pulled in:- [`evalcache`](https://github.com/mroth/evalcache)
- [`tpm`](https://github.com/tmux-plugins/tpm)
- [`zsh-completions`](https://github.com/zsh-users/zsh-completions)## Acknowledgements
- [Github does dotfiles](https://dotfiles.github.io)
- [Dotfiles](https://github.com/mathiasbynens/dotfiles) by [@mathiasbynens](https://github.com/mathiasbynens),
which is an amazing starting point for custom dotfiles
(also contains the amazing `~/.macos` script!)
- [Dotfiles](https://github.com/Kraymer/F-dotfiles) by [@Kraymer](https://github.com/Kraymer),
which inspired me to use GNU Stow for dotfiles management
- [Dotfiles](https://github.com/driesvints/dotfiles) by [@driesvints](https://github.com/driesvints),
which introduced me to tools like `mackup` and `mas` to manage apps and preferences
- [Dock.sh](https://gist.github.com/kamui545/c810eccf6281b33a53e094484247f5e8) by [@kamui545](https://github.com/kamui545),
which is used here to programmatically setup the macOS Dock