https://github.com/michelegera/dotfiles
π¨βπ» macOS dotfiles
https://github.com/michelegera/dotfiles
dotfiles fish-shell macos preferences vimrc
Last synced: about 1 year ago
JSON representation
π¨βπ» macOS dotfiles
- Host: GitHub
- URL: https://github.com/michelegera/dotfiles
- Owner: michelegera
- License: mit
- Created: 2015-09-14T21:28:00.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2024-10-27T16:02:53.000Z (over 1 year ago)
- Last Synced: 2024-10-27T17:26:30.548Z (over 1 year ago)
- Topics: dotfiles, fish-shell, macos, preferences, vimrc
- Language: Shell
- Homepage:
- Size: 1.34 MB
- Stars: 10
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# [michelegera][github profile]βs dotfiles [![Build Status][ci badge]][ci link]
These are the base dotfiles that I start with when I set up a new environment.
For more specific local needs I use the `*.local` files described in the
[Local Settings](#local-settings) section.
## Table of Contents
- [0οΈβ£ Before getting started](#before-getting-started)
- [π§ Setup](#setup)
- [π Customize](#customize)
- [π Local Settings](#local-settings)
- [π `~/.fishconfig.local`](#fishconfiglocal)
- [π `~/.gitconfig.local`](#gitconfiglocal)
- [π Forks](#forks)
- [βοΈ Update](#update)
- [π₯ Acknowledgements](#acknowledgements)
- [βοΈ License](#license)
## Before getting started
Some commands (e.g. `defaults write`) wonβt work unless the terminal has full
disk access. To grant full disk access to the terminal, go to
`System Settings > Privacy & Security > Full Disk Access` and add the terminal
to the list of apps.
## Setup
To set up the dotfiles run the appropriate snippet in the terminal:
[!CAUTION]
**DO NOT** run the `setup` snippet if you do not fully understand
[what it does][setup]. Seriously, **DONβT**!
```shell
bash -c "$(curl -LsS https://setup.dotfiles.michelegera.dev)"
```
Thatβs it! β¨
The setup process will:
- Download the dotfiles on your computer (by default it will suggest
`~/Code/$(whoami)/dotfiles`)
- Create some additional [directories][dirs]
- [Symlink][symlink] the [Git][git], [prefs][prefs], and [shell][shell] files
- Install [applications and command-line tools][installs]
- Set custom [preferences][preferences] preferences
## Customize
### Local Settings
The dotfiles can be easily extended to suit additional local requirements by
using the following files:
#### `~/.fishconfig.local`
The `~/.fishconfig.local` file will be automatically sourced after the standard
[Fish configuration][fish], thus, allowing its content to add to or overwrite
the existing aliases, settings, `PATH`, environment variables etc.
Here is an example:
```shell
# Set local aliases.
alias g="git"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set environment variables.
set -x NPMJS_AUTH_TOKEN xxxxxxxx
```
#### `~/.gitconfig.local`
The `~/.gitconfig.local` file will be automatically included after the
configurations from `~/.gitconfig`, thus, allowing its content to overwrite or
add to the existing Git configurations.
**Note:** Use `~/.gitconfig.local` to store sensitive information such as the
Git user credentials, e.g.:
```gitconfig
[commit]
# Sign commits using GPG.
# https://help.github.com/articles/signing-commits-using-gpg/
gpgSign = true
[user]
name = John Appleseed
email = john.appleseed@apple.com
signingKey = XXXXXXXX
```
### Set up GPG signing for Git commits
First, make sure permissions are set correctly on the `.gnupg` directory:
```shell
chmod -R go= ~/.gnupg/
```
Next, import your private GPG key:
```shell
gpg --import
```
Finally, set `user.signingKey` in `~/.gitconfig.local` to the short id of your
key. You can find it by running:
```shell
gpg --list-secret-keys --keyid-format SHORT
```
### Forks
If you decide to [fork] this project, do not forget to substitute my username
with your own in the `setup` script.
## Update
To update the dotfiles you can either run the [`setup` script][setup] or, if you
want to update one particular part, run the appropriate [`os` script][os].
## Acknowledgements
Inspiration and code was taken from many sources, but mainly
[CΔtΔlin MariΘβ dotfiles][alrra]. Thank you for your amazing work!
## License
The code is available under the [MIT license][license].
[alrra]: https://github.com/alrra/dotfiles
[ci badge]: https://github.com/michelegera/dotfiles/workflows/tests/badge.svg
[ci link]: https://github.com/michelegera/dotfiles/actions
[dirs]: src/os/create_directories.sh
[fish]: src/shell/config/fish/config.fish
[fork]: https://help.github.com/en/github/getting-started-with-github/fork-a-repo
[git]: src/git
[github profile]: https://github.com/michelegera
[installs]: src/os/installs
[license]: LICENSE.txt
[os]: src/os
[preferences]: src/os/preferences
[prefs]: src/prefs
[setup]: src/setup.sh
[shell]: src/shell
[symlink]: src/os/create_symbolic_links.sh