Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michelegera/dotfiles
π¨βπ» macOS dotfiles
https://github.com/michelegera/dotfiles
dotfiles fish-shell macos preferences vimrc
Last synced: 12 days ago
JSON representation
π¨βπ» macOS dotfiles
- Host: GitHub
- URL: https://github.com/michelegera/dotfiles
- Owner: michelegera
- License: mit
- Created: 2015-09-14T21:28:00.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-10-27T16:02:53.000Z (12 days ago)
- Last Synced: 2024-10-27T17:26:30.548Z (12 days 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 = [email protected]
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