GithubHelp home page GithubHelp logo

escozul / dotfiles Goto Github PK

View Code? Open in Web Editor NEW

This project forked from natelandau/dotfiles

0.0 0.0 0.0 5.71 MB

Copy of Home for my bootstrap script, dotfiles, and configuration files by natelandau

License: MIT License

Shell 80.61% sed 19.39%

dotfiles's Introduction

Dotfiles, managed with Chezmoi.

  • zsh and bash configurations, aliases, and functions
  • Configuration for common command-line tools
  • Integrations for Python tooling such as Pyenv, Poetry, and Pipx
  • Configurations and integrations for MacOS applications
  • Secrets management with 1Password CLI
  • ssh configuration and key management with 1Password
  • OSX defaults management
  • Custom vscode theme
  • Configuration for my CLI scripts halp,vid-cleaner, jdfile, and brewup
  • and more...

Install

Ensure required software is installed before proceeding. There are many ways to install Chezmoi. Check the official documentation for the most up-to-date instructions. To install chezmoi and these dotfiles in a single command run the following:

sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply natelandau

Daily Usage

After Chezmoi is installed, use the following commands.

# Initialize chezmoi configuration and apply the dotfiles (first run)
chezmoi init natelandau

# Check for common problems.
chezmoi doctor

# Update dotfiles from the source directory.
chezmoi apply

# Pull the latest changes from your remote repo and runs chezmoi apply.
chezmoi update

Note that if chezmoi hangs waiting for user input, you will need to kill the process (killall chezmoi) and run apply manually, because chezmoi locks the database.

Managing Secrets

Secrets are managed in 1Password. 1Password is not needed if Chezmoi is set to use_secrets = false in the ~/.config/chezmoi/chezmoi.toml file.

SSH Configuration

Adding and removing ssh configurations can be managed with 1Password. To add a new ssh configuration, follow these steps:

  1. Add an SSH Key to 1Password and add the following fields:
    • ssh_key: The private key
    • ssh_key.pub: The public key
    • user: The username for the ssh connection
    • hostname: The hostname for the ssh connection
    • port: The port for the ssh connection (optional)
  2. Copy the UUID of the new 1Password item.
  3. Add the server's configuration to .../dotfiles/.chezmoidata/remote_servers.toml

To remove an ssh configuration, delete the server's configuration from .../dotfiles/.chezmoidata/remote_servers.toml and delete the 1Password item.

MacOS Application Preferences

Certain MacOS applications need manual configuration.

iTerm2

iTerm2 Configurations and profiles are synced to ~/.config/applications/iterm2.

The configuration file should be synced automatically. If it is not, Preferences > General > Preferences and select the Load preferences from a custom folder or URL option. Then select the ~/.config/applications/iterm2 directory.

Profiles are not synced automatically. Import the profiles by going to Profiles > Other Actions > Import JSON Profiles and import them from ~/.config/applications/iterm2/.

Terminal

Custom terminal configurations are stored in ~/.config/applications/terminal. Import them with Terminal > Preferences > Profiles > Import.

Editing Dotfiles

Setup

  1. Install Python and Poetry
  2. cd into the dotfiles directory with chezmoi cd
  3. Run poetry install to install the development dependencies
  4. Activate the Poetry virtual environment with poetry shell.
  5. Install the pre-commit hooks with pre-commit install --install-hooks.

Committing changes

  1. Activate your Poetry environment with poetry shell
  2. Add changed files to the staging area with git add .
  3. Run cz c to commit changes
  4. Push to remote repository

Updating dotfiles

Run chezmoi update to apply changes to the dotfiles on other machines.

dotfiles's People

Contributors

natelandau avatar escozul avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.