{"id":19478543,"url":"https://github.com/deomorxsy/deorice","last_synced_at":"2026-04-09T08:04:12.635Z","repository":{"id":198013296,"uuid":"160373421","full_name":"deomorxsy/deorice","owner":"deomorxsy","description":"Ricing dotfiles","archived":false,"fork":false,"pushed_at":"2025-10-29T04:00:17.000Z","size":163,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-29T05:41:49.110Z","etag":null,"topics":["dotfiles","dwm","i3wm","lua","neovim","nix","vim"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deomorxsy.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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-12-04T14:51:32.000Z","updated_at":"2025-10-29T04:00:20.000Z","dependencies_parsed_at":"2023-11-07T19:33:27.822Z","dependency_job_id":"b9e4ded9-c10c-46c0-87e6-26b1bbe48550","html_url":"https://github.com/deomorxsy/deorice","commit_stats":null,"previous_names":["deomorxsy/deorice"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deomorxsy/deorice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fdeorice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fdeorice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fdeorice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fdeorice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deomorxsy","download_url":"https://codeload.github.com/deomorxsy/deorice/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fdeorice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285207643,"owners_count":27132524,"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-11-19T02:00:05.673Z","response_time":65,"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":["dotfiles","dwm","i3wm","lua","neovim","nix","vim"],"created_at":"2024-11-10T19:50:24.268Z","updated_at":"2026-04-09T08:04:12.628Z","avatar_url":"https://github.com/deomorxsy.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## deorice\n\u003e dotfiles for \\*nix setup ricing\n\n\n\n\n| **Category** | **CI** |\n|:-------------|:-------|\n| **WMs**      |  [![xmonad](https://github.com/deomorxsy/deorice/actions/workflows/xmonad.yml/badge.svg)](https://github.com/deomorxsy/deorice/actions/workflows/xmonad.yml)       |\n| **Editor plugins** | [![vimtex](https://github.com/deomorxsy/deorice/actions/workflows/vimtex.yml/badge.svg)](https://github.com/deomorxsy/deorice/actions/workflows/vimtex.yml)    |\n\n\n\u003cdiv align=\"center\"\u003e\n\n[![Lua](https://img.shields.io/badge/Lua-blue.svg?style=for-the-badge\u0026logo=lua)](http://www.lua.org)\n[![Neovim](https://img.shields.io/badge/Neovim%200.5+-green.svg?style=for-the-badge\u0026logo=neovim)](https://neovim.io)\n\u003c/div\u003e\n\n- PS: For any interested readers, try to create your own configuration based on these dotfiles.\n- PS2: Some of these are related with neovim running under tmux.\n\n## Editors\n\n### vim\n\nThe config is pretty straight-forward: just edit the ```~/.vimrc``` with vimscript/vimL syntax, place it in $HOME and next time you open vim it is already working. Search for the basics: the 7 vim modes, vimscript syntax, commands, etc. Read the errors and try to find the root cause. It's the best way to get out of future possible circles of the dependency hell.\n\n### neovim\n\nNeovim adopts the ```~/.config/nvim/init.vim``` or ```~/.config/nvim/init.lua``` file as the default config file. It is also compatible with the vimrc; that explains the [source](https://github.com/deomorxsy/deorice/blob/main/.config/nvim/init.vim.old#L3). It means these are the files neovim uses for configuration lookups every time the editor starts.\n\nThis repository in specific migrates from the vimrc, used in vim, directly to the init.lua that uses the syntax of the [language lua](https://www.lua.org/docs.html) to program the editor. The runtime is the [LuaJIT](https://luajit.org/) embedded in neovim and you can learn more in the [docs](https://neovim.io/doc/user/lua.html).\n\nTo handle LSP, DAP, linters and formatters you can use [mason-nvim](https://github.com/williamboman/mason.nvim). You can also integrate its functionality with [lsp-zero](https://github.com/VonHeikemen/lsp-zero.nvim) into a not-bloated, fast [gattai-mecha](https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guides/integrate-with-mason-nvim.md) for completion.\n\nBe sure to set a mapleader. Check with ```:echo mapleader``` (\" \" means space). If it isn't already set, do it with ```vim.g.mapleader = \"\u003cyour-map-leader-key\u003e\"```.\n\nTo use the base configuration, run the [playbooks](./scripts/playbooks/), execute the [scripts](./scripts/) or do it manually:\n\n1. Clone this repository:\n```sh\ngit clone git@github.com:deomorxsy/deorice.git\ncd ./deorice/\n```\n\n2. Copy nvim to the $HOME config dotfile:\n```sh\ncp -r ./.config/nvim/ ~/.config/\n```\n\n3. Clone [packer](https://github.com/wbthomason/packer.nvim#quickstart).\n```sh\ngit clone --depth 1 https://github.com/wbthomason/packer.nvim \\\n ~/.local/share/nvim/site/pack/packer/start/packer.nvim\n```\n\n\n4. To avoid [provider-related](https://neovim.io/doc/user/provider.html) errors, specifically about python (ultisnips), you can use the script [neovim-setup.sh](./scripts/neovim-setup.sh), ```./scripts/neovim-setup.sh```, which sets up the python provider ```$PATH``` based in the hack path that python uses with the virtualenv, [adapted from the docs](https://neovim.io/doc/user/provider.html#python-virtualenv) ;)\n```sh\ncat \u003e ./scripts/neovim-setup.sh \u003c\u003c \"EOF\"\n#!/usr/bin/sh\n#\n# packer plugin manager setup\ngit clone --depth 1 https://github.com/wbthomason/packer.nvim \\\n ~/.local/share/nvim/site/pack/packer/start/packer.nvim\n\n# setup python venv\npython3 -m venv ~/.config/nvim/venv_nvim/neovim3\n\n# source the venv activate binary\n. ~/.config/nvim/venv_nvim/neovim3/bin/activate\npython3 -m pip install --upgrade pynvim==0.5.0\n\n# returns the relative $PATH of the python binary installed on the virtualenv\npyvm=$(which python)\n\n# checks if the placeholder exists on file\nroco=$(awk 'FNR==14 \u0026\u0026 $3==p3hp_placeholder' \"$HOME/.config/nvim/init.lua\")\n\n# using @ as sed delimiter since the bash variable expansion already uses\n# the slash \"/\" character for the path\n[ -n \"$roco\" ] \u0026\u0026 sed -e \"s@p3hp_placeholder@$pyvm@g\" \"$HOME/.config/nvim/init.lua\"\n\n# deactivate virtualenv\ndeactivate\nEOF\n\nchmod +x ./scripts/neovim-setup.sh\n. ./scripts/neovim-setup.sh\n```\n\n5. Set the python provider path\n```sh\nlet g:python3_host_prog = \"${HOME}/.config/nvim/venv_nvim/neovim3/bin/python\"\n```\n\n6. Source the packer.lua file to finish installing packer. Then, also in command line, synchronize plugins in the configuration with packer.  I like the [headless flag](https://neovim.io/doc/user/starting.html#--headless) for this, otherwise just open the specific ```packer.lua``` file for sourcing, enter Terminal Mode and type ```:so```. Synchronize with ```PackerSync``` in any context.\n```sh\nnvim --headless -c 'so' -c 'PackerSync' \"${HOME}/.config/nvim/lua/user/packer.lua\"\n```\n\n### emacs\nbased on MELPA elisp rice, it follows the XDG spec.\n\n### Plugins\nMain plugins used in this vim/neovim rice, not ordered:\n- [telescope](https://github.com/nvim-telescope/telescope.nvim) or [chadtree](https://github.com/ms-jpq/chadtree) for fuzzy search. The second is a whole [completion client](https://www.reddit.com/r/neovim/comments/p4m8vt/i_spent_1_year_of_my_life_on_making_a_fast_as/) spawning sqlite vms in memory and integrating with other external programs;\n- [nvim-R](https://github.com/jalvesaq/Nvim-R) to run a R interpreter inside neovim (checkout the tmux integration);\n- [vimtex](https://github.com/lervag/vimtex) for latex local editions;\n- [lsp-zero](https://github.com/VonHeikemen/lsp-zero.nvim) as a Language Server Protocols manager (literally acts as a package manager), which are external to neovim;\n- [mason.nvim](https://github.com/williamboman/mason.nvim) as a package manager for LSP servers, DAP servers, linters, and formatters;\n- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) to parse all the code in the editor. It builds an incremental parsing tree that is useful for a bunch of tasks related to programming language constructs, like highlighting, indenting, folding of these constructs, text-object manipulation and [others](https://tree-sitter.github.io/tree-sitter/). Also fast af;\n- [presence.nvim](https://github.com/andweeb/presence.nvim/) is a cool way to understand how activity logic SDKs such as discord presence works, and also lua dotfile config for other apps.\n- [pio](https://docs.platformio.org/en/latest/core/installation/index.html) for espressif development. Install it also on the virtualenv, use it inside nvim or source outside while multiplexing with tmux. Also check [xtensa-qemetsu](https://github.com/deomorxsy/xtensa-qemetsu) for a CI/CD, qemu-based environment setup.\n- [lean.nvim](https://github.com/Julian/lean.nvim?tab=readme-ov-file), the neovim support for the Lean4 programming language and theorem prover\n\n\n### Breaking changes + Changelog\n\nThe previous architecture was highly dependant on neovim/nvim-lspconfig under lsp-zero, which got a \"dead project status\".\nThis repository is currently changing from require('nvim-lspconfig') to the vim.lsp.config syntax, which also replaces the lsp-zero method and make each component more modular [1/n].\n\n#### Plugins\n\n- [VonHeikemen/lsp-zero.nvim](https://github.com/VonHeikemen/lsp-zero.nvim) - project status: dead. \"It took about 3 years but finally Neovim has solved all the issues that led to the creation of this plugin. Neovim v0.11 can provide everything you need without installing extra plugins. For those of you that still use Neovim v0.9 or v0.10, this blog post will show you a simple setup you can use as your base: [Getting started with Neovim's LSP client](https://vonheikemen.github.io/learn-nvim/feature/lsp-setup.html).\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeomorxsy%2Fdeorice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeomorxsy%2Fdeorice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeomorxsy%2Fdeorice/lists"}