{"id":24719164,"url":"https://github.com/Piotr1215/dotfiles","last_synced_at":"2025-10-09T16:31:45.703Z","repository":{"id":50513474,"uuid":"311976442","full_name":"Piotr1215/dotfiles","owner":"Piotr1215","description":"Pop_OS! dotfiles with install script","archived":false,"fork":false,"pushed_at":"2025-10-01T06:24:13.000Z","size":4956,"stargazers_count":108,"open_issues_count":1,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-01T08:35:27.274Z","etag":null,"topics":["bash","dotfiles","shell","tmux","vim","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Piotr1215.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-11-11T13:18:49.000Z","updated_at":"2025-10-01T06:24:16.000Z","dependencies_parsed_at":"2023-09-26T00:36:47.597Z","dependency_job_id":"5c50868b-763e-4e00-ae58-384d6726b243","html_url":"https://github.com/Piotr1215/dotfiles","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Piotr1215/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piotr1215%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piotr1215%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piotr1215%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piotr1215%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Piotr1215","download_url":"https://codeload.github.com/Piotr1215/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piotr1215%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001766,"owners_count":26083171,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bash","dotfiles","shell","tmux","vim","zsh"],"created_at":"2025-01-27T11:16:53.175Z","updated_at":"2025-10-09T16:31:45.692Z","avatar_url":"https://github.com/Piotr1215.png","language":"Shell","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Dotfiles Repo\n\nSimple dotfiles with an installation script.\n\n[![Video Thumbnail](https://img.youtube.com/vi/_ttF5InNuMI/0.jpg)](https://www.youtube.com/watch?v=_ttF5InNuMI)\n\n## Encrypted Files\n\nThis repository uses git-crypt for encrypting sensitive files. The following files are encrypted:\n\n- `.vsnip/global.json` - VSCode snippets file\n\n### Setting up git-crypt for new devices\n\nAfter cloning the repository, you'll need the encryption key to decrypt these files:\n\n```bash\n# Install git-crypt\nsudo apt install git-crypt\n\n# Copy the encryption key to your new machine\n# (securely transfer the .keys/git-crypt-key file)\n\n# Unlock the repository with the key\ngit-crypt unlock /path/to/git-crypt-key\n```\n\nOnce unlocked, encrypted files will automatically be decrypted when checked out and encrypted when committed.\n\n## Installation\n\nInstallation steps for Ubuntu/Pop!_OS:\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/Piotr1215/dotfiles.git\ncd dotfiles/install\n```\n\n2. Run the installation:\n```bash\nchmod +x install.sh\n./install.sh\n```\n\nThe installation script will:\n1. Install Ansible if not present\n2. Run the ansible playbook which will:\n   - Configure git with your credentials\n   - Install and configure all necessary tools and programs\n   - Set up development environment (neovim, tmux, etc.)\n   - Configure shell environment (zsh, oh-my-zsh)\n   - Install DevOps tools (kubectl, helm, etc.)\n\n### Advanced Usage\n\nYou can run specific parts of the installation using Ansible tags:\n```bash\n# List all available tasks\nansible-playbook install.yml --list-tasks\n\n# Install specific components (e.g., just Alacritty)\nansible-playbook install.yml --tags \"alacritty\"\n```\n\nOr run remotely:\n\n- `bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Piotr1215/dotfiles/master/install.sh)\"`\n\n- `curl https://raw.githubusercontent.com/Piotr1215/dotfiles/master/install.sh | bash -s -- ${GIT_USERNAME} ${GIT_EMAIL} ${GPG_KEY}`\n\n### Runing `./install` will\n\n- configure git with given user and email (default values point to my user)\n- install bunch of programs and symlink them using stow\n- most notably, install neovim and configure its plugins\n\n\u003e [!NOTE]\n\u003e Symlinks:\n\nAny existing dotfiles will be pulled into the dotfiles repo, please make sure that you are not overwriting anything you don't want to. Check git status before committing.\n\nThe install script is using `stow` to symlink whole directories and exclude others.\nYou can symlink additional directories like so:\n\n```bash\nstow --target=/home/decoder/.config/tmuxinator tmuxinator\n```\n\nAdding new directory or file to the dotfiles repo can be done with the [__dotfiles_adder.sh](./scripts/__dotfiles_adder.sh) script\n\n## Auto-config commit\n\nOnce the dotfiles are symlinked, it is easy to forget to commit them do the repo\n(there is no indicator on the symlinked file).\n\n\u003e [!IMPORTANT]\n\u003e Once a file is added to the repo folder, it will be auto-committed.\n\nUse this systemd service to automate this process\n\n### Create a service\n\n```bash\ntouch ~/.config/systemd/user/checkfile.service\nvim ~/.config/systemd/user/checkfile.service\n\n[Unit]\nDescription = Run inotify-hookable in background to always sync my dotfiles with github repo\n\n[Service]\nUser=decoder\nGroup=decoder\nExecStart=/bin/bash /home/decoder/dev/dotfiles/scripts/__zshsync.sh\nRestartSec=10\n\n[Install]\nWantedBy=default.target\n```\n\n### Install inotify-hookable\n\nsudo apt install inotify-hookable -y\n\n### Write script\n\nThis script watches a folder with dotfiles and every time a change to a file is\nmade or a new file is created, commits everything and pushes to git. This also\nworks of course if the changes are made on the symlinked files.\n\n```bash\ncd /home/decoder/dev/dotfiles\nwhile true; do\n    inotify-hookable \\\n     --watch-files ./ \\\n     --on-modify-command \"git add . \u0026\u0026 git commit -m 'auto commit' \u0026\u0026 git push origin master\"\ndone\n```\n\n### Enable and start the service\n\n- `systemctl --user daemon-reload`\n- `systemctl --user enable checkfile`\n- `systemctl --user start checkfile`\n\n### Monitor the service\n\n`journalctl -fu checkfile.service`\n\n\n## Testing\n\nCreating user is only required for testing, in real installation you should already have a user (the script assumes you are running as a user).\n\nCreate a user, in my case user name is `decoder`, and switch to the user\ndirectory.\n\nFor testing purposes, password is \"test\", use real password for real\ninstallation ofc :)\n\n```bash\nwget https://raw.githubusercontent.com/Piotr1215/dotfiles/master/create-test-user.sh\n```\n\n```bash\nsudo chmod +x chreate-test-user.sh\n./create-test-user.sh -u \"decoder\" -p \"testingme\"\nsudo passwd decoder\nsu decoder\ncd\n```\nThe setup was tested on:\n\nLast test date: 2024-12-29\n\n- Ubuntu 20.04 vm\n\n---\n\n## License\n\n\u003cimg src=\"https://kopimi.com/badges/modern-kopimi-logo.png\" alt=\"kopimi_logo\" style=\"width: 25%;\"\u003e\n\nAll files and scripts in this repo are released [CC0](https://creativecommons.org/publicdomain/zero/1.0/) / [kopimi](https://kopimi.com)! in the spirit of _freedom of information_, i encourage you to fork, modify, change, share, or do whatever you like with this project!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPiotr1215%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPiotr1215%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPiotr1215%2Fdotfiles/lists"}