{"id":13895856,"url":"https://github.com/anuvyklack/dotfiles","last_synced_at":"2026-03-08T15:31:38.046Z","repository":{"id":279624139,"uuid":"933209763","full_name":"anuvyklack/dotfiles","owner":"anuvyklack","description":"My chezmoi driven dotfiles","archived":false,"fork":false,"pushed_at":"2025-03-18T18:22:49.000Z","size":649,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T19:40:48.283Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/anuvyklack.png","metadata":{"files":{"readme":null,"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}},"created_at":"2025-02-15T12:22:15.000Z","updated_at":"2025-03-18T18:22:53.000Z","dependencies_parsed_at":"2025-02-26T15:25:19.067Z","dependency_job_id":"6a21f408-899f-462e-a70d-921aceb2cea7","html_url":"https://github.com/anuvyklack/dotfiles","commit_stats":null,"previous_names":["anuvyklack/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuvyklack%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuvyklack%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuvyklack%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anuvyklack%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anuvyklack","download_url":"https://codeload.github.com/anuvyklack/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245576526,"owners_count":20638125,"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":[],"created_at":"2024-08-06T18:02:31.847Z","updated_at":"2026-03-08T15:31:38.030Z","avatar_url":"https://github.com/anuvyklack.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"This is mine Ansible driven dotfiles.  I use them on Ubuntu and Fedora. \nTo install them, clone this repo and run `./setup` from the root of this repo.\n\nBut I don't recommend installing them direct with install script: they are\ntailored for me and constantly changing. Instead, you can use them as\ninspiration.\n\n## zsh\n\nEnvironment variables are in the `.zprofile` file. \n\nLogin shell settings are in `.zshrc` file.\nI use [zsh-snap](https://github.com/marlonrichert/zsh-snap) plugin mamager with\n[powerlevel10k](https://github.com/romkatv/powerlevel10k) prompt theme framework.\n\nIn `.zlogin` file is a code, that byte-compiles into a background all zsh\nscripts.  All custom zsh functions are compiles into single library file.\nBinary files automatically recompiles when source code changes.\n\n### zsh plugins\n\n#### completion\n\nI simluteniously use built-in zsh completion along with [fzf-tab](https://github.com/Aloxaf/fzf-tab)\nplugin and switch thwm in place with a `Shift + Tab` keymap (search `completion-switch` in\n`zshrc` file).\n\n| compsys | fzf-tab |\n| ------- | ------- |\n| ![](https://user-images.githubusercontent.com/13056013/194636968-6e924d76-d879-491f-85f4-7a3f1082798f.png) | ![](https://user-images.githubusercontent.com/13056013/194620767-af75162d-73ed-4fd4-8a32-254591563d42.png) |\n\n#### vi mode\n\nFor better Vi mode emulating in zsh prompt I use [zsh-vi-mode](https://github.com/jeffreytse/zsh-vi-mode).\n\n#### fzf\n\nI use custom `CTRL-T` command: it returns the selected file with absolute path\nrelevant to home directory, if the file is inside home directory, and relative\nto root in other cases, instead of returning relative path to present directory\nas `CTRL-T` does by default.\n\n\n#### man\n\nThe `man` binary is replaced with the [wrapper function](https://github.com/anuvyklack/dotfiles/blob/docs/roles/zsh/files/functions/man).\nAlong with `MANWIDTH` env variables, wraps manuals content into 80 character\ncolumn and center it in a terminal.\n\n\u003c!-- \u003cimg src=\"https://user-images.githubusercontent.com/13056013/194579745-9e4f51d9-6302-4319-898c-2f4708267f49.png\" width=\"400\" height=\"200\" /\u003e --\u003e\n\u003cimg width=\"400\" src=\"https://user-images.githubusercontent.com/13056013/194579745-9e4f51d9-6302-4319-898c-2f4708267f49.png\" /\u003e\n\n### Installing CLI tools\n\nNot all packages are present in the Ubuntu repositories, and those that are\npresent often are outdated and I like to use the lates programs versions. So\nI come to a platform independent way:\nMost of the CLI utils that I use: fzf, zoxide, exa, rg, etc, I install \ndirectly from github releases with [bin](https://github.com/marcosnils/bin)\nbinary manager.\nSee [install_missing_programs](https://github.com/anuvyklack/dotfiles/blob/main/roles/zsh/files/functions/install_missing_programs)\nfile.\n\nTo install completion files for such programs without clonning the whole repo and\nsymlink targer files, I download them directly from github repos with `curl`.\nSee [github_completion](https://github.com/anuvyklack/dotfiles/blob/main/roles/zsh/files/functions/github_completion)\nfile.\n\n#### tmux\n\nIn Ubuntu repos tmux is outdated and I use the floating window feature,\nso I make [build-tmux](https://github.com/anuvyklack/dotfiles/blob/main/roles/tmux/tasks/build-tmux.yaml)\ntask that compiles tmux from source.\n\n## keybindings\n\nFor convenience I rebind some keys using\n[dual function keys](https://gitlab.com/interception/linux/plugins/dual-function-keys)\n(see `dual-function-keys` role):\n\n* `Caps Lock` to `Esc` on tap, and to `Ctrl` when another key pressed  while\n  holding `Caps Lock`;\n\n* `Space` to `Space` on tap and to `Ctrl` on hold;\n\n* Left and right `Shift`-s to `(` and `)` on tap correspondingly, and to `Shift`\n  on hold.\n\n## neovim\n\nI'm a big fun of Neovim and my Neovim config is a whole big story.\n\n![](https://user-images.githubusercontent.com/13056013/194704141-13227c6e-8a3b-4525-a915-33aaaea29f22.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanuvyklack%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanuvyklack%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanuvyklack%2Fdotfiles/lists"}