{"id":25837070,"url":"https://github.com/ragu-manjegowda/config","last_synced_at":"2026-04-11T01:12:43.669Z","repository":{"id":37353977,"uuid":"264384099","full_name":"ragu-manjegowda/config","owner":"ragu-manjegowda","description":"Profile Management with Git and Github","archived":false,"fork":false,"pushed_at":"2024-04-09T04:05:48.000Z","size":235842,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-09T07:49:41.356Z","etag":null,"topics":["alacritty","archlinux-dotfiles","awesomewm","dotfiles","git","gpg","mac-dotfiles","neomutt","neovim","ranger-fm","solarized-theme","tmux","zathura","zsh"],"latest_commit_sha":null,"homepage":"https://www.sewell.org/blog/2009/03/08/profile-management-with-git-and-github/index.html","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ragu-manjegowda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-05-16T07:34:36.000Z","updated_at":"2024-04-15T00:34:55.410Z","dependencies_parsed_at":"2023-02-15T13:00:46.478Z","dependency_job_id":"b1bc278b-4ad2-45a7-ae36-29c02ab447c7","html_url":"https://github.com/ragu-manjegowda/config","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragu-manjegowda%2Fconfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragu-manjegowda%2Fconfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragu-manjegowda%2Fconfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragu-manjegowda%2Fconfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ragu-manjegowda","download_url":"https://codeload.github.com/ragu-manjegowda/config/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241309104,"owners_count":19941725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alacritty","archlinux-dotfiles","awesomewm","dotfiles","git","gpg","mac-dotfiles","neomutt","neovim","ranger-fm","solarized-theme","tmux","zathura","zsh"],"created_at":"2025-03-01T02:47:35.677Z","updated_at":"2026-04-11T01:12:43.658Z","avatar_url":"https://github.com/ragu-manjegowda.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Profile Management with Git and GitHub\n\n## Screenshots\n\n### [rEFInd](.config/rEFInd)\n\n| ![image](man/figures/rEFInd.png) |\n|:--:|\n| ***EFI boot picker screen*** |\n\n| ![image](man/figures/rEFInd-menu-options.png) |\n|:--:|\n| ***EFI menu screen*** |\n\n### [ZSH](.config/zsh)\n\n| ![image](man/figures/zsh.png) |\n|:--:|\n| ***ZSH command prompt with powerlevel9k theme*** |\n\n| ![image](man/figures/zsh02.png) |\n|:--:|\n| ***ZSH command prompt with auto-suggestions*** |\n\n### [Tmux](.config/tmux)\n\n| ![image](man/figures/tmux.png) |\n|:--:|\n| ***TMUX status line showing host OS, session name and other things*** |\n\n### [Nvim](.config/nvim)\n\n| ![image](man/figures/nvim.jpg) |\n|:--:|\n| ***Neovim setup, customized for C++ developement*** |\n\n### [Neomutt](.config/neomutt)\n\n| ![image](man/figures/neomutt.jpg) |\n|:--:|\n| ***Neomutt setup, terminal based email utility*** |\n\n### [AwesomeWM](.config/awesome)\n\n| ![image](man/figures/awesome.jpg) |\n|:--:|\n| ***AweomeWM - Alacritty, Zim, Zathura and notifications panel*** |\n\n| ![image](man/figures/firefox.jpg) |\n|:--:|\n| ***AweomeWM - firefox*** |\n\n## Setup/Install\n\n### Run the bootstrap script\n`$ bash -c \"$(curl -fsSL https://raw.githubusercontent.com/ragu-manjegowda/config/master/.config/scripts/bootstrap.sh)\"`\n\n\n## The following describes a simple way to manage profile configuration files using GitHub.\n\n### Features\n\n*   Centralized configuration management\n*   Files live in their native locations (no symbolic linking)\n*   Home directory is not a Git repository\n*   All the power of git with a simple alias\n\n### Setup Repository\n\n*   Log into [GitHub](https://github.com/ \"GitHub\") and create a repository named config\n*   Add your [public keys to GitHub](https://github.com/guides/providing-your-ssh-key \"Public Keys to GithHub\") (if you haven’t done so already)\n*   Open a terminal and switch to your home directory\n    `$ cd ~`\n*   Create a configuration directory\n    `$ mkdir .config.git`\n*   Add the following alias to your `.bashrc` and/or your `.bash_profile`\n    `alias config='git --git-dir=$HOME/.config.git/ --work-tree=$HOME'`\n*   Add your `.bash_profile` to the configuration repository\n    `$ config add .bash_profile`\n*   Commit the changes\n    `$ config commit -m 'Initial commit'`\n*   Change the origin to GitHub\n    `$ config remote add origin git@github.com:GITHUB_USERNAME/config.git`\n*   Push the changes\n    `config push origin master`\n\nIf you get an error when running `config pull` to the effect of `You asked me to pull without...` run the follow:\n\n```\n$ echo -e '[branch \"master\"]\\n  remote = origin\\n  merge = refs/heads/master' \u003e\u003e ~/.config.git/config\n```\n\n### Setup Configuration Management on a Different System\n1.  Add your [public keys to GitHub](https://github.com/guides/providing-your-ssh-key \"Public Keys to GithHub\") (if you haven’t done so already)\n2.  Switch to your home directory\n    `$ cd ~`\n3.  Backup your local configuration files, example:\n    `$ mv .bash_profile .bash_profile.bk`\n    `$ mv .bashrc .bashrc.bk`\n4.  Clone your configuration repository\n    `$ git clone git@github.com:GITHUB_USERNAME/config.git config.git`\n5.  Move the git metadata to `~/.config.git`\n    `$ mv config.git/.git .config.git`\n6.  Enable dotglob\n    `$ shopt -s dotglob`\n7.  Move your configuration files to your home directory\n    `$ mv -i config.git/* .`\n8.  Delete the `config.git` directory\n    `$ rmdir config.git`\n9.  Logout and log back in\n10. ***Note: Sub-modules needs to be updated***\n    `$ git submodule update --remote --rebase`\n\n### Git tracking using vim plugins\n1.  Set `core.worktree` like the following\n    `$ git --git-dir=$HOME/.config.git --work-tree=$HOME config --local core.worktree $HOME`\n2.  open files of this repository with the alias `cvim`\n\n\n### Basic Usage\n*   `config pull` - get latest configuration changes\n*   `config add FILENAME` - add a configuration file\n*   `config commit -a` - save all configuration changes\n*   `config push` - push configuration changes to GitHub\n*   and any other `config GIT_OPTION`\n\n### Reference\n\n* [http://github.com/silas/config](https://github.com/silas/config \"config\").\n* Source: [Manage your $HOME with git](http://robescriva.com/2009/01/manage-your-home-with-git/ \"source\") by Robert Escriva\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragu-manjegowda%2Fconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fragu-manjegowda%2Fconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragu-manjegowda%2Fconfig/lists"}