Convert Figma logo to code with AI

andsens logohomeshick

git dotfiles synchronizer written in bash

2,073
147
2,073
14

Top Related Projects

12,818

Manage your dotfiles across multiple diverse machines, securely.

3,121

rc file (dotfile) management

2,189

config manager based on Git

Quick Overview

Homeshick is a Git-based dotfiles manager that allows you to easily manage and synchronize your dotfiles across multiple machines. It provides a simple and efficient way to manage your personal configuration files, making it easier to set up new environments and keep your settings consistent across different systems.

Pros

  • Portable and Cross-platform: Homeshick works on various operating systems, including Linux, macOS, and Windows (with WSL).
  • Git-based: Homeshick uses Git to manage your dotfiles, allowing you to easily track changes, collaborate, and share your configurations.
  • Modular and Extensible: Homeshick allows you to organize your dotfiles into separate "castles", making it easier to manage and maintain your configurations.
  • Automatic Symlinking: Homeshick automatically creates symlinks for your dotfiles, ensuring that your changes are reflected across all your systems.

Cons

  • Learning Curve: While Homeshick is relatively straightforward to use, it may have a slight learning curve for users who are not familiar with Git or dotfile management.
  • Dependency on Git: Homeshick relies on Git, which means that users must have Git installed and configured on their systems.
  • Limited Customization: Homeshick provides a basic set of features, and users who require more advanced customization or integration with other tools may need to look for alternative solutions.
  • Potential Conflicts: If you have existing dotfiles or configurations, Homeshick may create conflicts that require manual resolution.

Getting Started

To get started with Homeshick, follow these steps:

  1. Clone the Homeshick repository:
git clone git://github.com/andsens/homeshick.git $HOME/.homesick/repos/homeshick
  1. Source the Homeshick script in your shell configuration file (e.g., .bashrc, .zshrc):
source "$HOME/.homesick/repos/homeshick/homeshick.sh"
  1. Create a new castle (a repository for your dotfiles):
homeshick clone andsens/dotfiles
  1. Symlink your dotfiles:
homeshick link
  1. Manage your dotfiles using Homeshick commands:
# Pull the latest changes from your castle
homeshick pull

# Add a new file to your castle
homeshick add ~/.vimrc

# Commit and push your changes
homeshick commit -m "Added .vimrc"
homeshick push

That's it! You're now ready to start managing your dotfiles with Homeshick.

Competitor Comparisons

12,818

Manage your dotfiles across multiple diverse machines, securely.

Pros of chezmoi

  • Written in Go, offering cross-platform support and easy installation
  • Supports encrypted secrets management
  • Provides a template system for dynamic configuration

Cons of chezmoi

  • Steeper learning curve due to more advanced features
  • Requires separate installation of Go runtime

Code comparison

homeshick:

homeshick clone dotfiles
homeshick link dotfiles

chezmoi:

chezmoi init https://github.com/username/dotfiles.git
chezmoi apply

Key differences

  • homeshick is a bash script, while chezmoi is a compiled Go binary
  • chezmoi offers more advanced features like templating and encryption
  • homeshick uses symlinks, while chezmoi copies files by default

Use cases

  • homeshick: Simpler setups, users comfortable with bash
  • chezmoi: Complex configurations, need for encrypted secrets, cross-platform support

Community and maintenance

  • Both projects are actively maintained
  • chezmoi has a larger community and more frequent updates

Documentation

  • chezmoi provides more extensive documentation and examples
  • homeshick documentation is concise but sufficient for its feature set
3,121

rc file (dotfile) management

Pros of rcm

  • Written in pure shell script, making it more portable and easier to install
  • Offers a more straightforward and intuitive command-line interface
  • Provides built-in support for host-specific configurations

Cons of rcm

  • Lacks built-in version control system integration
  • Does not support automatic updates or synchronization of dotfiles
  • Limited functionality compared to more feature-rich alternatives

Code Comparison

homeshick:

castle="dotfiles"
homeshick clone https://github.com/username/dotfiles.git
homeshick link $castle

rcm:

rcup -d ~/dotfiles -v
mkrc ~/.vimrc
lsrc

Both tools aim to simplify dotfile management, but they approach the task differently. homeshick uses a castle metaphor and provides more advanced features like Git integration, while rcm focuses on simplicity and ease of use with a more traditional approach to symlink management.

homeshick offers more robust version control integration and synchronization capabilities, making it easier to manage dotfiles across multiple machines. However, rcm's simplicity and straightforward command structure may be preferable for users who don't need advanced features and prefer a more lightweight solution.

Ultimately, the choice between homeshick and rcm depends on individual needs and preferences, with homeshick being more suitable for power users and rcm appealing to those seeking a simpler, more streamlined experience.

2,189

config manager based on Git

Pros of vcsh

  • Lightweight and minimalistic approach, using only Git and standard Unix tools
  • Allows managing multiple repositories independently, providing more granular control
  • Doesn't require additional dependencies beyond Git

Cons of vcsh

  • Steeper learning curve, especially for users less familiar with Git
  • Lacks built-in features like automatic backups or easy bootstrapping
  • Requires manual setup and configuration for each repository

Code Comparison

vcsh:

vcsh init dotfiles
vcsh dotfiles add ~/.vimrc
vcsh dotfiles commit -m "Add vimrc"
vcsh dotfiles push

homeshick:

homeshick clone https://github.com/username/dotfiles.git
homeshick link dotfiles
homeshick track dotfiles ~/.vimrc
homeshick commit dotfiles
homeshick push dotfiles

Key Differences

  • vcsh operates directly with Git commands, while homeshick provides a more user-friendly interface
  • homeshick offers additional features like castle management and easy bootstrapping
  • vcsh allows for more fine-grained control over individual dotfiles and configurations
  • homeshick provides a more structured approach to dotfile management, which can be easier for beginners
  • vcsh requires more manual setup but offers greater flexibility for advanced users

Both tools aim to solve the problem of dotfile management, but they cater to different user preferences and skill levels. vcsh is more suitable for users comfortable with Git and seeking granular control, while homeshick offers a more streamlined experience with additional features.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

homeshick Lint & test

In Unix, configuration files are king.
Tailoring tools to suit your needs through configuration can be empowering.
An immense number of hours is spent on getting these adjustments just right, but once you leave the confines of your own computer, these local optimizations are left behind.

By the power of git, homeshick enables you to bring the symphony of settings you have poured your heart into with you to remote computers. With it you can begin to focus even more energy on bettering your work environment since the benefits are reaped on whichever machine you are using.

However bare bones these machines are, provided that at least Bash 3 and Git 1.5 are available you can use homeshick. homeshick can handle multiple dotfile repositories. This means that you can install larger frameworks like oh-my-zsh or a multitude of emacs or vim plugins alongside your own customizations without clutter.

For detailed installation instructions, tutorials and tips & tricks have a look at the wiki.

Quick install

homeshick is installed to your own home directory and does not require root privileges to be installed.

git clone https://github.com/andsens/homeshick.git $HOME/.homesick/repos/homeshick

Note: If you'd like to help testing new features before they are released use git clone --branch testing https://...

To invoke homeshick, source the homeshick.sh script from your rc-script:

# from sh and its derivates (bash, dash, ksh, zsh etc.)
printf '\nsource "$HOME/.homesick/repos/homeshick/homeshick.sh"' >> $HOME/.bashrc
# csh and derivatives (i.e. tcsh)
printf '\nalias homeshick source "$HOME/.homesick/repos/homeshick/homeshick.csh"\n' >> $HOME/.cshrc
# fish shell
echo \n'source "$HOME/.homesick/repos/homeshick/homeshick.fish"' >> "$HOME/.config/fish/config.fish"

Contributing

Before submitting pull requests or reporting bugs, please make sure to read the contribution guidelines.