{"id":15798186,"url":"https://github.com/thomascode92/dotfiles","last_synced_at":"2026-04-11T19:32:56.078Z","repository":{"id":227863319,"uuid":"772544413","full_name":"ThomasCode92/dotfiles","owner":"ThomasCode92","description":"Repository that contains my personal dotfiles, optimized for a productive and visually appealing terminal experience. 🎨 ⚙️","archived":false,"fork":false,"pushed_at":"2026-04-09T19:59:48.000Z","size":967,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-09T21:34:33.823Z","etag":null,"topics":["catpuccin","chezmoi","development-environment","dotfiles","fish","ghostty","lazyvim","linux","neovim","setuptools","starship","tmux","ubuntu"],"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/ThomasCode92.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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-03-15T12:01:59.000Z","updated_at":"2026-04-09T19:59:52.000Z","dependencies_parsed_at":"2024-10-26T07:21:15.665Z","dependency_job_id":"aa591af9-37ea-4f5b-b2aa-1d65afc3f49e","html_url":"https://github.com/ThomasCode92/dotfiles","commit_stats":{"total_commits":51,"total_committers":1,"mean_commits":51.0,"dds":0.0,"last_synced_commit":"85d4155f378a764f4438ded9adaf98aaf21410af"},"previous_names":["thomascode92/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ThomasCode92/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasCode92%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasCode92%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasCode92%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasCode92%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThomasCode92","download_url":"https://codeload.github.com/ThomasCode92/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThomasCode92%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31693272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["catpuccin","chezmoi","development-environment","dotfiles","fish","ghostty","lazyvim","linux","neovim","setuptools","starship","tmux","ubuntu"],"created_at":"2024-10-05T00:23:57.217Z","updated_at":"2026-04-11T19:32:56.070Z","avatar_url":"https://github.com/ThomasCode92.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles - Fishy Terminal Setup\n\nRepository to manage dotfiles with [chezmoi](https://www.chezmoi.io/).\n\n## Introduction ✨🎨\n\nThis repository contains my personal dotfiles, optimized for a productive and\nvisually appealing terminal experience. It features\n[Fish shell](https://fishshell.com/) paired with the\n[Starship prompt](https://starship.rs/), a fast, customizable, and minimalistic\nprompt for any shell.\n\n## Setup ⚙️🔧\n\nThis section covers how to set up and sync these dotfiles to your system. Follow\nthe steps below to get started.\n\n### Prerequisites 🛠️📦\n\n\u003e **Fish and Fisher are installed automatically** by chezmoi scripts — no\n\u003e manual steps needed for those.\n\n```bash\n## install rustup, needed for Yazi\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nrustup update\n```\n\n#### Password Manager Setup 🔐🗝️\n\nA _password manager_, called [`pass`](https://www.passwordstore.org/), will be\nused to manage encrypted passwords and API keys. These will be stored in a local\ndirectory at `~/.password-store`. The password store will be initialized during\n`chezmoi init`, but GPG keys must be imported beforehand. To handle GPG keys,\ncreate a `backup-keys` folder in the directory. Save the private and public keys\nas `private-key.asc` and `public-key.asc`, respectively. Then, import the keys\ninto your GPG keyring using the following commands:\n\n```bash\n# Import GPG keys\ngpg --import ~/backup-keys/private-key.asc\ngpg --import ~/backup-keys/public-key.asc\n\n# Export the key ID for initial setup\ngpg -K  # Locate and copy the key ID for password management\nexport PASS_GPG_KEY=\u003cPASS_GPG_KEY\u003e\n```\n\nReplace `\u003cPASS_GPG_KEY\u003e` with the actual key ID copied from the previous\ncommand.\n\n### Syncing Dotfiles with Chezmoi 🔄📁\n\n```bash\n## install and init chezmoi\nsh -c \"$(curl -fsLS get.chezmoi.io)\" -- init --apply ThomasCode92\n```\n\n## Fish and Fisher 🐟🪝\n\n_coming soon_\n\n### Tools, Plugins and Commands ⚡⌨️\n\nTo install a new plugin (e.g.\n[autopair.fish](https://github.com/jorgebucaran/autopair.fish)), simply follow\nthese steps:\n\n```bash\nchezmoi edit $__fish_config_dir/fish_plugins --apply # add jorgebucaran/autopair.fish\nchezmoi apply\n```\n\n### Terminal - Ghostty 🖥️👻\n\n[Ghostty](https://ghostty.org/) is a fast, feature-rich, and cross-platform\nterminal emulator that uses platform-native UI and GPU acceleration.\n\n## GNOME Extensions 🐧🧩\n\nThe GNOME Shell extension settings can be managed with `dconf`:\n\n```bash\n# Load extensions from config\ndconf load /org/gnome/shell/extensions/ \u003c gnome_extensions.txt\n\n# Save current extensions to config\ndconf dump /org/gnome/shell/extensions/ \u003e gnome_extensions.txt # save current config\n```\n\n## Keyboard Remapping ⌨️🔄\n\nThis setup uses a custom keyboard remapping configuration to enhance\nproductivity by modifying the behavior of the Caps Lock key to function as an\nadditional escape key and left control key. This is done with the help of\n[Kanata](https://github.com/jtroo/kanata).\n\n### Running Kanata as a Service\n\nCreate a _systemd_ service file at `~/.config/systemd/user/kanata.service` and\nplace the following content in it:\n\n```ini\n  [Unit]\n  Description=Kanata keyboard remapper\n  Documentation=\u003chttps://github.com/jtroo/kanata\u003e\n\n  [Service]\n  Type=simple ExecStart=/home/%u/.local/share/bin/kanata Restart=no\n\n  [Install] WantedBy=default.target \u003c/code\u003e\n```\n\nTo enable the service, run:\n\n```bash\nsystemctl --user enable kanata.service\nsystemctl --user start kanata.service\n```\n\n## Neovim and tmux 📜🌀\n\n### LazyVim 💤\n\nThis setup includes [LazyVim](https://www.lazyvim.org/) , a Neovim distribution\nthat enhances the editing experience with smart defaults, performance\noptimizations, and a modular plugin system. By leveraging _lazy-loading_, it\nensures minimal startup times while delivering a powerful, IDE-like environment.\n\n### 📟 Tmux\n\n[Tmux](https://github.com/tmux/tmux/wiki) is a terminal multiplexer for managing\nmultiple terminal sessions within a single window. It supports split panes,\npersistent sessions, and efficient task switching. Often paired with Neovim, it\nenables smooth navigation between tools and can be customized with themes,\nkeybindings, and a status bar.\n\n## 🎨 Catppuccin Theme\n\nThis setup is styled with [Catppuccin](https://catppuccin.com/)'s Mocha theme.\nIt offers broad support across editors, terminals, and browsers for a cohesive\nvisual experience. Designed for easy customization, it is actively maintained\nand widely adopted in modern development environments.\n\n## Resources 📚🔗\n\n- **Chezmoi**: [Official Website](https://www.chezmoi.io/) -\n  [GitHub Repository](https://github.com/twpayne/chezmoi)\n- **Fish Shell**: [Official Website](https://fishshell.com/) -\n  [Documentation](https://fishshell.com/docs/current/)\n- **Starship**: [Official Website](https://starship.rs/) -\n  [Configuration](https://starship.rs/config/)\n- **Fisher**: [Fisher GitHub](https://github.com/jorgebucaran/fisher)\n\n### Kanata Specific Resources\n\n- [escapecontrol: Kanata config for Linux](https://github.com/dreamsofcode-io/escapecontrol/blob/main/linux/kanata/README.md)\n- [Using Kanata to Remap Any Keyboard – shom.dev](https://shom.dev/start/using-kanata-to-remap-any-keyboard/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomascode92%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomascode92%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomascode92%2Fdotfiles/lists"}