{"id":16646440,"url":"https://github.com/coffebar/dotfiles","last_synced_at":"2025-04-04T16:15:40.892Z","repository":{"id":61855825,"uuid":"238180760","full_name":"coffebar/dotfiles","owner":"coffebar","description":"Coffebar's personal dotfiles repo for Arch Linux daily driver with tiling window managers and Neovim","archived":false,"fork":false,"pushed_at":"2025-03-20T14:22:51.000Z","size":39505,"stargazers_count":175,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-28T15:09:24.566Z","etag":null,"topics":["archlinux","dotfiles","hyprland","i3wm","linux","neovim","nvim"],"latest_commit_sha":null,"homepage":"https://www.buymeacoffee.com/coffebar","language":"Lua","has_issues":false,"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/coffebar.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}},"created_at":"2020-02-04T10:34:44.000Z","updated_at":"2025-03-20T14:22:56.000Z","dependencies_parsed_at":"2024-06-26T17:17:22.982Z","dependency_job_id":"77c3e176-d2dd-4178-80af-cd4d674eee04","html_url":"https://github.com/coffebar/dotfiles","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coffebar%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coffebar%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coffebar%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coffebar%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coffebar","download_url":"https://codeload.github.com/coffebar/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208178,"owners_count":20901570,"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":["archlinux","dotfiles","hyprland","i3wm","linux","neovim","nvim"],"created_at":"2024-10-12T08:27:39.653Z","updated_at":"2025-04-04T16:15:40.871Z","avatar_url":"https://github.com/coffebar.png","language":"Lua","readme":"![Screenshot](/screenshot.png)\n\n\u003cdiv align=\"center\"\u003e\n\n![](https://img.shields.io/github/last-commit/coffebar/dotfiles?style=flat-square\u0026logo=)\n![](https://img.shields.io/github/stars/coffebar/dotfiles?style=flat-square\u0026logo=)\n[![](https://img.shields.io/github/repo-size/coffebar/dotfiles?style=flat-square\u0026logo=)](https://github.com/iamverysimp1e/dots)\n\n\u003c/div\u003e\n\n# dotfiles backup\n\n## Overview\n\n- [🌿 Window Managers / Compositors](https://github.com/coffebar/dotfiles#overview):\n  - [🍚 Hyprland](https://github.com/hyprwm/Hyprland)\n  - [🍙 i3](https://i3wm.org/) as fallback\n- [👽 Terminal](https://github.com/coffebar/dotfiles#overview):\n  - :robot: Emulator: [Alacritty](https://alacritty.org/) with [_JetBrains Mono_](https://www.jetbrains.com/lp/mono/) font (use Nerd Fonts)\n  - [🌌 Shell](https://github.com/coffebar/dotfiles#overview): Zsh with [OhMyZsh](https://github.com/ohmyzsh/ohmyzsh) and `robbyrussell` theme\n- [✏️ Editors](https://github.com/coffebar/dotfiles#overview):\n  - [:green_heart: neovim](https://neovim.io/) :green_heart:\n  - 🦍 obsidian\n- [:art: Themes](https://github.com/coffebar/dotfiles#overview):\n\n  - :desktop_computer: [Arc-Dark](https://github.com/horst3180/arc-theme) GTK theme\n  - :basecamp: [bloom-classic](https://github.com/linuxdeepin/deepin-icon-theme) Icons and [RosePine](https://github.com/rose-pine/cursor) cursor\n  - :new_moon_with_face: Telegram theme: [ArcDarkGrey](https://t.me/addtheme/arcdarkgrey)\n  - :robot: Terminal colors: mix of the OneDark, Arc-Dark and PopOS\n  - :green_heart: Neovim:\n  - [onedark](https://github.com/navarasu/onedark.nvim) with background color from Arc-Dark\n  - [gruvbox](https://github.com/gruvbox-community/gruvbox) - only in TTY\n\n- [:pushpin: Bars](https://github.com/coffebar/dotfiles#overview):\n  - :womans_hat: [waybar](https://github.com/Alexays/Waybar) on Hyprland\n  - :tophat: [polybar](https://github.com/polybar/polybar) on i3\n- [:brain: Task manager](https://github.com/coffebar/dotfiles#overview):\n  - [:bookmark_tabs: Taskwarrior-tui](https://github.com/kdheepak/taskwarrior-tui) dark themed and configured as floating modal\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Interesting features](#interesting-features)\n- [Neovim plugins full list](#neovim-plugins-full-list)\n- [Restore Neovim config and install dependencies on Arch](#restore-neovim-config)\n  - [Preview Neovim setup in Docker](#preview-neovim-setup-in-docker)\n  - [Replace config on your machine](#replace-config-on-your-machine)\n- [Install dotfiles](#install-dotfiles)\n\n## Interesting features\n\n#### Neovim\n\n- PDE with code completion from many sources (including ripgrep, LSP, path and copilot), a bunch of LSP servers, autosave sessions and files, clipboard history, code formatting, color picker, fuzzy finder, git integration, incremental selection, quick project switching, code snippets, syncing of everything across devices.\n\n- `Super + F` quick search files inside $HOME using ripgrep with a custom ignore file.\n\n- Neo-tree has custom mappings: `Y` Copy absolute path, `t` Open directory in Thunar, `\u003cc-r\u003e` Replace in folder via Spectre, `\u003cc-f\u003e` Search with Telescope live grep.\n\n- dotfiles bare repository will be detected by vim-fugitive, because my config updates environment variables on DirChanged event.\n\n- `Super + er` open Telescope to select \\*.sh script inside project and run it. Useful for build, run, deploy, any automation. Output will be shown in the quickfix window and hidden after timeout.\n\n- `Super + t` opens Neovim's builtin Terminal. `Super + sa` opens external Alacritty in the current working directory.\n\n- `Super + b` close editor's buffer or `q` - close any other window (help, fugitive, spectre)\n\n- Different colorscheme and options for TTY.\n\n- Automated [setup with all dependencies](#replace-config-on-your-machine) from scratch in 10 minutes.\n\n- Neovim opens images in the external viewer instead of binary view.\n\n- Extra keybindings for copy-pasting: file path, current line, entire file contents.\n\n- And a bunch of other useful plugins. See [Neovim plugins full list](#neovim-plugins-full-list).\n\n#### Common for Window managers\n\n- Notifications when the battery level is low or fully charged.\n\n- `Alt + f` opens a file manager in the directory found in the clipboard. For example, if you copied a file from some program, you can open its directory by pressing this shortcut.\n\n- Partially different config for each machine depending on hostname.\n\n- CapsLock's behavior is changed to Backspace.\n\n- `Super + P` pull dotfiles from this repo and shows a notification with an icon.\n\n- ``Super + ` `` open ssh servers menu to connect.\n\n- No Display Managers (LightDM or GDM).\n\n#### i3\n\n- Automatic tiling via [autotiling](https://github.com/nwg-piotr/autotiling) script. Split direction depends on the currently focused window dimensions. I'm using vim-style HJKL to navigate inside WM.\n\n- Some of wm's binds were improved by Lua script. Lua has more flexibility than i3config syntax. I like to switch automatically to the appropriate workspace after opening programs using a keyboard shortcut.\n\n#### Terminal\n\n- ``Alt + e`` execute suggested command from zsh-autosuggestions.\n\n- ``Ctrl + x`` after typing `# comment question` provides OpenAI generated suggestion.\n\n- ``Command + c`` ``Command + v`` copy \u0026 paste. `Ctrl + c` and `Ctrl + p` in neovim.\n\n- Nice aliases: **i** to install package, **md2pdf** to convert markdown file to pdf, **v** to open Neovim, **yy** to perform system upgrade. \n\n- Custom pacman hook updates the list of explicitly installed packages (pkglist-intel.txt) when install or remove something.\n\n\n#### Neovim project management\n\nhttps://github.com/coffebar/neovim-project/assets/3100053/e88ae41a-5606-46c4-a287-4c476ed97ccc\n\n📦 [neovim-project](https://github.com/coffebar/neovim-project) plugin\n\n\n## Neovim plugins full list\n\n\u003c!-- plugins list start --\u003e\n- [0oAstro/dim.lua](https://github.com/0oAstro/dim.lua)  Dim unused words in neovim\n- [AckslD/nvim-neoclip.lua](https://github.com/AckslD/nvim-neoclip.lua)  Clipboard manager neovim plugin with telescope integration\n- [HallerPatrick/py_lsp.nvim](https://github.com/HallerPatrick/py_lsp.nvim)  Lsp Plugin for working with Python virtual environments\n- [L3MON4D3/LuaSnip](https://github.com/L3MON4D3/LuaSnip)  Snippet Engine for Neovim written in Lua.\n- [Mofiqul/dracula.nvim](https://github.com/Mofiqul/dracula.nvim)  Dracula colorscheme for neovim written in Lua\n- [MunifTanjim/nui.nvim](https://github.com/MunifTanjim/nui.nvim)  UI Component Library for Neovim.\n- [NeogitOrg/neogit](https://github.com/NeogitOrg/neogit)  An interactive and powerful Git interface for Neovim, inspired by Magit\n- [NvChad/nvim-colorizer.lua](https://github.com/NvChad/nvim-colorizer.lua)  The fastest Neovim colorizer\n- [Pocco81/AutoSave.nvim](https://github.com/Pocco81/AutoSave.nvim)  🧶 Automatically save your changes in NeoVim\n- [RRethy/vim-illuminate](https://github.com/RRethy/vim-illuminate)  illuminate.vim - (Neo)Vim plugin for automatically highlighting other uses of the word under the cursor using either LSP, Tree-sitter, or regex matching.\n- [Shatur/neovim-session-manager](https://github.com/Shatur/neovim-session-manager)  A simple wrapper around :mksession.\n- [adalessa/laravel.nvim](https://github.com/adalessa/laravel.nvim)  Plugin for Nvim to work with laravel projects.\n- [akinsho/toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim)  A neovim lua plugin to help easily manage multiple terminal windows\n- [bloznelis/before.nvim](https://github.com/bloznelis/before.nvim)  Jump to the last edit in Neovim\n- [ckipp01/stylua-nvim](https://github.com/ckipp01/stylua-nvim)  Let\u0026#39;s just use a formatter and never discuss formatting again.\n- [coffebar/crowtranslate.nvim](https://github.com/coffebar/crowtranslate.nvim)  Translate the visually selected text in Neovim.\n- [coffebar/neovim-project](https://github.com/coffebar/neovim-project)  Neovim project plugin simplifies project management by maintaining project history and providing quick access to projects via Telescope or fzf-lua..\n- [coffebar/transfer.nvim](https://github.com/coffebar/transfer.nvim)  Syncing files with remote server using rsync and OpenSSH\n- [cohama/lexima.vim](https://github.com/cohama/lexima.vim)  Auto close parentheses and repeat by dot dot dot...\n- [elihunter173/dirbuf.nvim](https://github.com/elihunter173/dirbuf.nvim)  A file manager for Neovim which lets you edit your filesystem like you edit text\n- [folke/trouble.nvim](https://github.com/folke/trouble.nvim)  🚦 A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing.\n- [folke/which-key.nvim](https://github.com/folke/which-key.nvim)  💥   Create key bindings that stick. WhichKey helps you remember your Neovim keymaps, by showing available keybindings in a popup as you type.\n- [github/copilot.vim](https://github.com/github/copilot.vim)  Neovim plugin for GitHub Copilot\n- [glepnir/lspsaga.nvim](https://github.com/glepnir/lspsaga.nvim)  improve neovim lsp experience\n- [google/vim-searchindex](https://github.com/google/vim-searchindex)  vim-searchindex: display number of search matches \u0026amp; index of a current match\n- [gruvbox-community/gruvbox](https://github.com/gruvbox-community/gruvbox)  Retro groove color scheme for Vim - community maintained edition\n- [hrsh7th/cmp-buffer](https://github.com/hrsh7th/cmp-buffer)  nvim-cmp source for buffer words\n- [hrsh7th/cmp-calc](https://github.com/hrsh7th/cmp-calc)  nvim-cmp source for math calculation\n- [hrsh7th/cmp-cmdline](https://github.com/hrsh7th/cmp-cmdline)  nvim-cmp source for vim\u0026#39;s cmdline\n- [hrsh7th/cmp-emoji](https://github.com/hrsh7th/cmp-emoji)  nvim-cmp source for emoji\n- [hrsh7th/cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp)  nvim-cmp source for neovim builtin LSP client\n- [hrsh7th/cmp-nvim-lsp-signature-help](https://github.com/hrsh7th/cmp-nvim-lsp-signature-help)  cmp-nvim-lsp-signature-help\n- [hrsh7th/cmp-nvim-lua](https://github.com/hrsh7th/cmp-nvim-lua)  nvim-cmp source for nvim lua\n- [hrsh7th/cmp-path](https://github.com/hrsh7th/cmp-path)  nvim-cmp source for path\n- [hrsh7th/nvim-cmp](https://github.com/hrsh7th/nvim-cmp)  A completion plugin for neovim coded in Lua.\n- [iamcco/markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim)  markdown preview plugin for (neo)vim\n- [ibutra/checkbox.nvim](https://github.com/ibutra/checkbox.nvim)  Simple checkbox handling for neovim\n- [j-hui/fidget.nvim](https://github.com/j-hui/fidget.nvim)  💫  Extensible UI for Neovim notifications and LSP progress messages.\n- [johmsalas/text-case.nvim](https://github.com/johmsalas/text-case.nvim)  An all in one plugin for converting text case in Neovim\n- [justinmk/vim-sneak](https://github.com/justinmk/vim-sneak)  The missing motion for Vim :athletic_shoe:\n- [klen/nvim-test](https://github.com/klen/nvim-test)  A Neovim wrapper for running tests\n- [kylechui/nvim-surround](https://github.com/kylechui/nvim-surround)  Add/change/delete surrounding delimiter pairs with ease. Written with in Lua.\n- [lewis6991/gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)  Git integration for buffers\n- [lukas-reineke/cmp-rg](https://github.com/lukas-reineke/cmp-rg)  ripgrep source for nvim-cmp\n- [lukas-reineke/indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim)  Indent guides  for Neovim\n- [m-demare/hlargs.nvim](https://github.com/m-demare/hlargs.nvim)  Highlight arguments\u0026#39; definitions and usages, using Treesitter\n- [mawkler/modicator.nvim](https://github.com/mawkler/modicator.nvim)  Cursor line number mode indicator plugin for Neovim\n- [mboughaba/i3config.vim](https://github.com/mboughaba/i3config.vim)  Vim syntax highlighting for i3 config :point_left:\n- [mhartington/formatter.nvim](https://github.com/mhartington/formatter.nvim) mhartington/formatter.nvim\n- [moll/vim-bbye](https://github.com/moll/vim-bbye)  Delete buffers and close files in Vim without closing your windows or messing up your layout. Like Bclose.vim, but rewritten and well maintained.\n- [navarasu/onedark.nvim](https://github.com/navarasu/onedark.nvim)  One dark and light colorscheme for neovim \u0026gt;= 0.5.0 written in lua based on Atom\u0026#39;s One Dark and Light theme. Additionally, it comes with 5 color variant styles\n- [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)  Quickstart configs for Nvim LSP\n- [nguyenvukhang/nvim-toggler](https://github.com/nguyenvukhang/nvim-toggler)  invert text in vim, purely with lua.\n- [numToStr/Comment.nvim](https://github.com/numToStr/Comment.nvim)  :brain: // Smart and powerful comment plugin for neovim. Supports treesitter, dot repeat, left-right/up-down motions, hooks, and more\n- [nvim-lua/plenary.nvim](https://github.com/nvim-lua/plenary.nvim)  plenary: full; complete; entire; absolute; unqualified. All the lua functions I don\u0026#39;t want to write twice.\n- [nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim)  A blazing fast and easy to configure neovim statusline plugin written in pure lua.\n- [nvim-neo-tree/neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim)  Neovim plugin to manage the file system and other tree like structures.\n- [nvim-pack/nvim-spectre](https://github.com/nvim-pack/nvim-spectre)  Find the enemy and replace them with dark power.\n- [nvim-telescope/telescope-live-grep-args.nvim](https://github.com/nvim-telescope/telescope-live-grep-args.nvim)  Live grep with args\n- [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)  Find, Filter, Preview, Pick. All lua, all the time.\n- [nvim-tree/nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons)  Provides Nerd Font icons (glyphs) for use by neovim plugins\n- [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)  Nvim Treesitter configurations and abstraction layer\n- [nvimtools/none-ls.nvim](https://github.com/nvimtools/none-ls.nvim)  null-ls.nvim reloaded / Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.\n- [petertriho/cmp-git](https://github.com/petertriho/cmp-git)  Git source for nvim-cmp\n- [phelipetls/vim-hugo](https://github.com/phelipetls/vim-hugo)  Vim plugin for web development with static site generator Hugo\n- [rafamadriz/friendly-snippets](https://github.com/rafamadriz/friendly-snippets)  Set of preconfigured snippets for different languages.\n- [rafcamlet/nvim-luapad](https://github.com/rafcamlet/nvim-luapad)  Interactive real time neovim scratchpad for embedded lua engine - type and watch!\n- [rbong/vim-flog](https://github.com/rbong/vim-flog)  A blazingly fast, stunningly beautiful, exceptionally powerful git branch viewer for Vim/Neovim.\n- [rcarriga/nvim-notify](https://github.com/rcarriga/nvim-notify)  A fancy, configurable, notification manager for NeoVim\n- [romainl/vim-cool](https://github.com/romainl/vim-cool)  A very simple plugin that makes hlsearch more useful.\n- [romgrk/barbar.nvim](https://github.com/romgrk/barbar.nvim)  The neovim tabline plugin.\n- [romgrk/nvim-treesitter-context](https://github.com/romgrk/nvim-treesitter-context)  Show code context\n- [saadparwaiz1/cmp_luasnip](https://github.com/saadparwaiz1/cmp_luasnip)  luasnip completion source for nvim-cmp\n- [sindrets/diffview.nvim](https://github.com/sindrets/diffview.nvim)  Single tabpage interface for easily cycling through diffs for all modified files for any git rev.\n- [skywind3000/asyncrun.vim](https://github.com/skywind3000/asyncrun.vim)  :rocket: Run Async Shell Commands in Vim 8.0 / NeoVim and Output to the Quickfix Window !!\n- [skywind3000/asynctasks.vim](https://github.com/skywind3000/asynctasks.vim)  :rocket: Modern Task System for Project Building, Testing and Deploying !!\n- [tpope/vim-dotenv](https://github.com/tpope/vim-dotenv)  dotenv.vim: Basic support for .env and Procfile\n- [tpope/vim-fugitive](https://github.com/tpope/vim-fugitive)  fugitive.vim: A Git wrapper so awesome, it should be illegal\n- [tzachar/highlight-undo.nvim](https://github.com/tzachar/highlight-undo.nvim)  Highlight changed text after any text changing operation\n- [windwp/nvim-ts-autotag](https://github.com/windwp/nvim-ts-autotag)  Use treesitter to auto close and auto rename html tag\n\u003c!-- plugins list end --\u003e\n\n\n\n## Restore Neovim config\n\n### Preview Neovim setup in Docker\n\nFull Neovim setup can be tested inside docker container.\n\n```bash\ngit clone https://github.com/coffebar/docker-test-fetch-nvim-conf.git\ncd docker-test-fetch-nvim-conf \u0026\u0026 sh ./build.sh\n```\n\nSee [docker-test-fetch-nvim-conf](https://github.com/coffebar/docker-test-fetch-nvim-conf) repo for more details.\n\n### Replace config on your machine\n\n`fetch-nvim-conf.sh` script helps me to get my full Neovim config installed on any Arch Linux machine with all dependencies.  \nIt's not just clone repo. This script requires Arch Linux with **pacman**, **sudo** and **git** installed. It will install required packages, **pnpm** package manager and node modules for LSP \u0026 formatting.\n\nIt will overwrite the entire `~/.config/nvim` folder!\n\n[Review source](https://github.com/coffebar/dotfiles/blob/main/fetch-nvim-conf.sh)\n\n```bash\n# export PATH=\"$PATH:$HOME/.local/share/pnpm:$HOME/.node_modules/bin\"\nsh -c \"$(wget -O- https://raw.githubusercontent.com/coffebar/dotfiles/main/fetch-nvim-conf.sh)\"\n```\n\n\u003cdetails\u003e\u003csummary\u003e\n\u003ch2\u003eInstall dotfiles\u003c/h2\u003e\n\u003c/summary\u003e\n\n**Please don't do this if you're not me**\n\n**This instruction will work as is for coffebar only!**\n\n1. Before proceeding you need to restore SSH and GPG keys.\n\n2. SSH config must point to the GitHub's private key.\n\n[Review source](https://github.com/coffebar/dotfiles/blob/main/dotfiles-restore.sh)\n\n```bash\nsh -c \"$(wget -O- https://raw.githubusercontent.com/coffebar/dotfiles/main/dotfiles-restore.sh)\"\n```\n\n\u003c/details\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoffebar%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoffebar%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoffebar%2Fdotfiles/lists"}