├── nvim ├── lua │ ├── autocmds.lua │ ├── configs │ │ ├── lspconfig.lua │ │ ├── mywpm.lua │ │ ├── chunk.lua │ │ ├── conform.lua │ │ ├── lazy.lua │ │ ├── triforce.lua │ │ ├── todo.lua │ │ └── discord.lua │ ├── mappings.lua │ ├── chadrc.lua │ ├── plugins │ │ └── init.lua │ └── options.lua ├── .stylua.toml ├── README.md ├── init.lua ├── LICENSE └── lazy-lock.json ├── .github ├── atuin.png ├── banner.png ├── hlchunk.png ├── kitty.png ├── neocord.png ├── rxfetch.png ├── winbar.png ├── starship.png └── wakatime.png ├── starship.toml └── README.md /nvim/lua/autocmds.lua: -------------------------------------------------------------------------------- 1 | require "nvchad.autocmds" 2 | -------------------------------------------------------------------------------- /.github/atuin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/atuin.png -------------------------------------------------------------------------------- /.github/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/banner.png -------------------------------------------------------------------------------- /.github/hlchunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/hlchunk.png -------------------------------------------------------------------------------- /.github/kitty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/kitty.png -------------------------------------------------------------------------------- /.github/neocord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/neocord.png -------------------------------------------------------------------------------- /.github/rxfetch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/rxfetch.png -------------------------------------------------------------------------------- /.github/winbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/winbar.png -------------------------------------------------------------------------------- /.github/starship.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/starship.png -------------------------------------------------------------------------------- /.github/wakatime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/slowy07/my-dotfiles/HEAD/.github/wakatime.png -------------------------------------------------------------------------------- /nvim/.stylua.toml: -------------------------------------------------------------------------------- 1 | column_width = 120 2 | line_endings = "Unix" 3 | indent_type = "Spaces" 4 | indent_width = 2 5 | quote_style = "AutoPreferDouble" 6 | call_parentheses = "None" 7 | -------------------------------------------------------------------------------- /nvim/lua/configs/lspconfig.lua: -------------------------------------------------------------------------------- 1 | require("nvchad.configs.lspconfig").defaults() 2 | 3 | local servers = { "html", "cssls", "clangd", "pyright", "gopls", "ts_ls"} 4 | vim.lsp.enable(servers) 5 | 6 | -- read :h vim.lsp.config for changing options of lsp servers 7 | -------------------------------------------------------------------------------- /nvim/lua/configs/mywpm.lua: -------------------------------------------------------------------------------- 1 | require("mywpm").setup({ 2 | notify = false, 3 | show_virtual_text = true, 4 | follow_cursor = true, 5 | virt_wpm_pos = "eol", 6 | virt_wpm = function(wpm) 7 | return ("👨‍💻 speed: %0.f"):format(wpm) 8 | end 9 | }) 10 | -------------------------------------------------------------------------------- /nvim/lua/configs/chunk.lua: -------------------------------------------------------------------------------- 1 | require("hlchunk").setup({ 2 | chunk = { 3 | enable = true, 4 | chars = { 5 | horizontal_line = "─", 6 | vertical_line = "│", 7 | left_top = "┌", 8 | left_bottom = "└", 9 | right_arrow = "─", 10 | }, 11 | } 12 | }) 13 | -------------------------------------------------------------------------------- /nvim/lua/configs/conform.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | formatters_by_ft = { 3 | lua = { "stylua" }, 4 | -- css = { "prettier" }, 5 | -- html = { "prettier" }, 6 | python = {"black"}, 7 | C = {"clang-format"}, 8 | cpp = {"clang-format"}, 9 | }, 10 | 11 | -- format_on_save = { 12 | -- -- These options will be passed to conform.format() 13 | -- timeout_ms = 500, 14 | -- lsp_fallback = true, 15 | -- }, 16 | } 17 | 18 | return options 19 | -------------------------------------------------------------------------------- /nvim/README.md: -------------------------------------------------------------------------------- 1 | **This repo is supposed to be used as config by NvChad users!** 2 | 3 | - The main nvchad repo (NvChad/NvChad) is used as a plugin by this repo. 4 | - So you just import its modules , like `require "nvchad.options" , require "nvchad.mappings"` 5 | - So you can delete the .git from this repo ( when you clone it locally ) or fork it :) 6 | 7 | # Credits 8 | 9 | 1) Lazyvim starter https://github.com/LazyVim/starter as nvchad's starter was inspired by Lazyvim's . It made a lot of things easier! 10 | -------------------------------------------------------------------------------- /nvim/init.lua: -------------------------------------------------------------------------------- 1 | vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/" 2 | vim.g.mapleader = " " 3 | 4 | -- bootstrap lazy and all plugins 5 | local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" 6 | 7 | if not vim.uv.fs_stat(lazypath) then 8 | local repo = "https://github.com/folke/lazy.nvim.git" 9 | vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath } 10 | end 11 | 12 | vim.opt.rtp:prepend(lazypath) 13 | 14 | local lazy_config = require "configs.lazy" 15 | 16 | -- load plugins 17 | require("lazy").setup({ 18 | { 19 | "NvChad/NvChad", 20 | lazy = false, 21 | branch = "v2.5", 22 | import = "nvchad.plugins", 23 | }, 24 | 25 | { import = "plugins" }, 26 | }, lazy_config) 27 | 28 | -- load theme 29 | dofile(vim.g.base46_cache .. "defaults") 30 | dofile(vim.g.base46_cache .. "statusline") 31 | 32 | require "options" 33 | require "autocmds" 34 | 35 | vim.schedule(function() 36 | require "mappings" 37 | end) 38 | -------------------------------------------------------------------------------- /nvim/lua/configs/lazy.lua: -------------------------------------------------------------------------------- 1 | return { 2 | defaults = { lazy = true }, 3 | install = { colorscheme = { "nvchad" } }, 4 | 5 | ui = { 6 | icons = { 7 | ft = "", 8 | lazy = "󰂠 ", 9 | loaded = "", 10 | not_loaded = "", 11 | }, 12 | }, 13 | 14 | performance = { 15 | rtp = { 16 | disabled_plugins = { 17 | "2html_plugin", 18 | "tohtml", 19 | "getscript", 20 | "getscriptPlugin", 21 | "gzip", 22 | "logipat", 23 | "netrw", 24 | "netrwPlugin", 25 | "netrwSettings", 26 | "netrwFileHandlers", 27 | "matchit", 28 | "tar", 29 | "tarPlugin", 30 | "rrhelper", 31 | "spellfile_plugin", 32 | "vimball", 33 | "vimballPlugin", 34 | "zip", 35 | "zipPlugin", 36 | "tutor", 37 | "rplugin", 38 | "syntax", 39 | "synmenu", 40 | "optwin", 41 | "compiler", 42 | "bugreport", 43 | "ftplugin", 44 | }, 45 | }, 46 | }, 47 | } 48 | -------------------------------------------------------------------------------- /nvim/LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /nvim/lua/mappings.lua: -------------------------------------------------------------------------------- 1 | require "nvchad.mappings" 2 | 3 | -- add yours here 4 | 5 | local map = vim.keymap.set 6 | 7 | map("n", ";", ":", { desc = "CMD enter command mode" }) 8 | map("i", "jk", "") 9 | 10 | map("n", "", function() 11 | require("minty.shades").open({ border = false }) 12 | end, {}) 13 | 14 | vim.keymap.set("n", "", ":FloatermToggle", { silent = true }) 15 | vim.keymap.set("n", "mt", ":Markview toggle", { silent = true }, { desc = "markdown preview" }) 16 | 17 | vim.keymap.set("n", "", function() 18 | require("triforce").show_profile() 19 | end, { desc = "tampilkan triforce statsnya" }) 20 | 21 | vim.keymap.set({ "n", "v" }, "", function() 22 | require('menu.utils').delete_old_menus() 23 | 24 | vim.cmd.exec '"normal! \\"' 25 | 26 | -- clicked buf 27 | local buf = vim.api.nvim_win_get_buf(vim.fn.getmousepos().winid) 28 | local options = vim.bo[buf].ft == "NvimTree" and "nvimtree" or "default" 29 | 30 | require("menu").open(options, { mouse = true }) 31 | end, {}) 32 | 33 | -- map({ "n", "i", "v" }, "", " w ") 34 | 35 | -- trouble mappings 36 | vim.keymap.set("n", "td", "Trouble diagnostics filter.buf = 0 win.type = split win.position=right", {desc = "Diagnostics (Trouble)"}) 37 | vim.keymap.set("n", "tl", "Trouble loclist toggle", {desc = "Location list (Trouble)"}) 38 | -------------------------------------------------------------------------------- /nvim/lua/chadrc.lua: -------------------------------------------------------------------------------- 1 | -- This file needs to have same structure as nvconfig.lua 2 | -- https://github.com/NvChad/ui/blob/v3.0/lua/nvconfig.lua 3 | -- Please read that file to know all available options :( 4 | 5 | ---@type ChadrcConfig 6 | local M = {} 7 | 8 | vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { 9 | virtual_text = false, 10 | }) 11 | 12 | vim.filetype.add({ 13 | extension = { 14 | xvr = "xvr", 15 | } 16 | }) 17 | 18 | M.base46 = { 19 | theme = "everblush", 20 | 21 | hl_override = { 22 | Comment = { italic = true }, 23 | ["@comment"] = { italic = true }, 24 | }, 25 | } 26 | 27 | 28 | M.nvdash = { 29 | load_on_startup = true, 30 | header = { 31 | " ▄ ▄ ", 32 | " ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ ", 33 | " █ ▄ █▄█ ▄▄▄ █ █▄█ █ █ ", 34 | " ▄▄ █▄█▄▄▄█ █▄█▄█▄▄█▄▄█ █ ", 35 | " ▄ █▄▄█ ▄ ▄▄ ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ", 36 | " █▄▄▄▄ ▄▄▄ █ ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ █ ▄", 37 | "▄ █ █▄█ █▄█ █ █ █▄█ █ █▄█ ▄▄▄ █ █", 38 | "█▄█ ▄ █▄▄█▄▄█ █ ▄▄█ █ ▄ █ █▄█▄█ █", 39 | " █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄█▄▄▄█ ", 40 | "", 41 | "", 42 | }, 43 | } 44 | M.ui = { 45 | tabufline = { 46 | enabled = false, 47 | }, 48 | statusline = { 49 | theme = "minimal", 50 | separator_style = "round", 51 | }, 52 | cmp = { 53 | style = "atom" 54 | } 55 | } 56 | 57 | return M 58 | -------------------------------------------------------------------------------- /nvim/lua/configs/triforce.lua: -------------------------------------------------------------------------------- 1 | require("triforce").setup({ 2 | enabled = true, -- Enable/disable the entire plugin 3 | gamification_enabled = true, -- Enable XP, levels, achievements 4 | 5 | -- Notification settings 6 | notifications = { 7 | enabled = true, -- Master toggle for all notifications 8 | level_up = true, -- Show level up notifications 9 | achievements = true, -- Show achievement unlock notifications 10 | }, 11 | 12 | -- Keymap configuration 13 | keymap = { 14 | show_profile = "tp", -- Set to nil to disable default keymap 15 | }, 16 | 17 | -- Auto-save interval (in seconds) 18 | auto_save_interval = 300, -- Save stats every 5 minutes 19 | 20 | -- Add custom language support 21 | custom_languages = { 22 | gleam = { icon = "✨", name = "Gleam" }, 23 | odin = { icon = "🔷", name = "Odin" }, 24 | -- Add more languages... 25 | }, 26 | 27 | -- Customize level progression (optional) 28 | level_progression = { 29 | tier_1 = { min_level = 1, max_level = 10, xp_per_level = 300 }, -- Levels 1-10 30 | tier_2 = { min_level = 11, max_level = 20, xp_per_level = 500 }, -- Levels 11-20 31 | tier_3 = { min_level = 21, max_level = math.huge, xp_per_level = 1000 }, -- Levels 21+ 32 | }, 33 | 34 | -- Customize XP rewards (optional) 35 | xp_rewards = { 36 | char = 1, -- XP per character typed 37 | line = 1, -- XP per new line 38 | save = 50, -- XP per file save 39 | }, 40 | }) 41 | -------------------------------------------------------------------------------- /starship.toml: -------------------------------------------------------------------------------- 1 | "$schema" = 'https://starship.rs/config-schema.json' 2 | 3 | # format = """ 4 | # $username\ 5 | # $directory\ 6 | # $c\ 7 | # $cpp\ 8 | # $python\ 9 | # $rust\ 10 | # $shell\ 11 | # $git_branch\ 12 | # $package\ 13 | # $battery\ 14 | # $cmd_duration \ 15 | # $character\ 16 | # """ 17 | 18 | format = """ 19 | $shell \ 20 | $directory \ 21 | $git_branch \ 22 | $character\ 23 | """ 24 | 25 | # Inserts a blank line between shell prompts 26 | add_newline = false 27 | 28 | # Replace the '❯' symbol in the prompt with '➜' 29 | [character] # The name of the module we are configuring is 'character' 30 | success_symbol = '[](bold green) [](bold yellow) [ ](bold green)' # The 'success_symbol' segment is being set to '➜' with the color 'bold green' 31 | error_symbol = '[ ✗](bold red) ' 32 | 33 | [custom.ghost_pertama] 34 | format = '(bold green)' 35 | 36 | # Disable the package module, hiding it from the prompt completely 37 | [package] 38 | disabled = true 39 | 40 | [c] 41 | format = 'via [$name $version]($style)' 42 | 43 | [cpp] 44 | disabled = false 45 | format = 'via [$name $version]($style)' 46 | 47 | [cmd_duration] 48 | min_time = 500 49 | format = 'on [$duration](bold yellow)' 50 | 51 | [python] 52 | symbol = '🐍 ' 53 | pyenv_version_name = true 54 | 55 | [shell] 56 | fish_indicator = '󰈺 ' 57 | zsh_indicator = '' 58 | powershell_indicator = '_' 59 | unknown_indicator = '_' 60 | style = 'cyan bold' 61 | disabled = false 62 | 63 | [rust] 64 | format = 'via [⚙️ $version](red bold)' 65 | 66 | [battery] 67 | full_symbol = '🔋 ' 68 | charging_symbol = '⚡️ ' 69 | discharging_symbol = '💀 ' 70 | 71 | 72 | [username] 73 | style_user = 'white bold' 74 | style_root = 'black bold' 75 | format = '[$user]($style) ' 76 | disabled = false 77 | show_always = true 78 | aliases = { "corpuser034g" = "matchai" } 79 | 80 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | im using everblush for my current theme cause so calm and aesthetic. you can check on this [repository](https://github.com/Everblush) 3 | 4 | ## zsh 5 | 6 | im using framework ohmyzsh for manage zsh configuration. for installation you can check [this website](https://ohmyz.sh/) 7 | 8 | ## Neovim 9 | 10 | im using nvchad for nvim configuration, you can check on [nvchad.com](https://nvchad.com/) for installation. 11 | after installing, you can copy and paste the configuration to ``.config/nvim`` 12 | 13 | other plugin are used 14 | - indent blankline 15 | - neocord 16 | - wakatime 17 | - markview 18 | - triforce 19 | - todo.nvim 20 | - trouble 21 | - timerly 22 | - floatterm 23 | - mywpm 24 | - hlchunk 25 | - typr 26 | - showkeys 27 | - minty 28 | 29 | > this are used for daily driver and content creation 30 | 31 | ``` 32 | cp nvim ~/.config/ 33 | ``` 34 | for additional plugin you can check on [`README.md`](nvim/README.md) and use default configuration for ``chadrc.lua``. 35 | 36 | 37 | ## shell prompt 38 | 39 | ![starship_shell_prompt_image](.github/starship.png) 40 | 41 | 42 | im using starship for configuration prompt, you can used other one like ohmyzsh as default, powerlevel10k, or this one, but for starship i recode for device detect. for installation you can out on [starship.rs](https://starship.rs/guide/#%F0%9F%9A%80-installation) 43 | 44 | ## sysinfo 45 | 46 | ![rxfetch_images](.github/rxfetch.png) 47 | 48 | im using rxfetch for fetch all information about my sys, you can check [here](https://github.com/Mangeshrex/rxfetch) 49 | 50 | ## other 51 | 52 | **Fonts** 53 | its highly recommended using nerd fonts for this dots, cause many support any icon including font awesome icon. you can download and check on [nerdfonts.com](https://www.nerdfonts.com/), more information: 54 | 55 | - Nitrogen - Wallpaper Selector 56 | 57 | 58 | # installation 59 | 60 | - clone this repository 61 | ``` 62 | git clone https://slowy07/my-dotfiles 63 | ``` 64 | -------------------------------------------------------------------------------- /nvim/lua/configs/todo.lua: -------------------------------------------------------------------------------- 1 | require("todo-comments").setup({ 2 | signs = true, -- show icons in the signs column 3 | sign_priority = 8, -- sign priority 4 | -- keywords recognized as todo comments 5 | keywords = { 6 | FIX = { 7 | icon = " ", -- icon used for the sign, and in search results 8 | color = "error", -- can be a hex color, or a named color (see below) 9 | alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords 10 | -- signs = false, -- configure signs for some keywords individually 11 | }, 12 | TODO = { icon = " ", color = "info" }, 13 | HACK = { icon = " ", color = "warning" }, 14 | WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, 15 | PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, 16 | NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, 17 | TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } }, 18 | }, 19 | gui_style = { 20 | fg = "NONE", -- The gui style to use for the fg highlight group. 21 | bg = "BOLD", -- The gui style to use for the bg highlight group. 22 | }, 23 | merge_keywords = true, -- when true, custom keywords will be merged with the defaults 24 | -- highlighting of the line containing the todo comment 25 | -- * before: highlights before the keyword (typically comment characters) 26 | -- * keyword: highlights of the keyword 27 | -- * after: highlights after the keyword (todo text) 28 | highlight = { 29 | multiline = true, -- enable multine todo comments 30 | multiline_pattern = "^.", -- lua pattern to match the next multiline from the start of the matched keyword 31 | multiline_context = 10, -- extra lines that will be re-evaluated when changing a line 32 | before = "", -- "fg" or "bg" or empty 33 | keyword = "wide", -- "fg", "bg", "wide", "wide_bg", "wide_fg" or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg) 34 | after = "fg", -- "fg" or "bg" or empty 35 | pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlighting (vim regex) 36 | comments_only = true, -- uses treesitter to match keywords in comments only 37 | max_line_len = 400, -- ignore lines longer than this 38 | exclude = {}, -- list of file types to exclude highlighting 39 | }, 40 | -- list of named colors where we try to extract the guifg from the 41 | -- list of highlight groups or use the hex color if hl not found as a fallback 42 | colors = { 43 | error = { "DiagnosticError", "ErrorMsg", "#DC2626" }, 44 | warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" }, 45 | info = { "DiagnosticInfo", "#2563EB" }, 46 | hint = { "DiagnosticHint", "#10B981" }, 47 | default = { "Identifier", "#7C3AED" }, 48 | test = { "Identifier", "#FF00FF" } 49 | }, 50 | search = { 51 | command = "rg", 52 | args = { 53 | "--color=never", 54 | "--no-heading", 55 | "--with-filename", 56 | "--line-number", 57 | "--column", 58 | }, 59 | -- regex that will be used to match keywords. 60 | -- don't replace the (KEYWORDS) placeholder 61 | pattern = [[\b(KEYWORDS):]], -- ripgrep regex 62 | -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives 63 | }, 64 | }) 65 | -------------------------------------------------------------------------------- /nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "LuaSnip": { "branch": "master", "commit": "3732756842a2f7e0e76a7b0487e9692072857277" }, 3 | "NvChad": { "branch": "v2.5", "commit": "eb209a4a82aecabe609d8206b865e00a760fb644" }, 4 | "base46": { "branch": "v3.0", "commit": "45b336ec52615dd1a3aa47848d894616dd6293a5" }, 5 | "cmake-tools.nvim": { "branch": "master", "commit": "87944a5d79b4da7458145d7476d5336557e11911" }, 6 | "cmp-async-path": { "branch": "main", "commit": "b8aade3a0626f2bc1d3cd79affcd7da9f47f7ab1" }, 7 | "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, 8 | "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, 9 | "cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" }, 10 | "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, 11 | "conform.nvim": { "branch": "master", "commit": "6208aefd675939cc7c8f1a57176135974dad269f" }, 12 | "floaterm": { "branch": "main", "commit": "fc2efaf25eeefcb33177d5807c0c745e125cf293" }, 13 | "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, 14 | "gitsigns.nvim": { "branch": "main", "commit": "cdafc320f03f2572c40ab93a4eecb733d4016d07" }, 15 | "hlchunk.nvim": { "branch": "main", "commit": "937135185f99a30cb1413fff76a5c971f250b1a7" }, 16 | "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, 17 | "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, 18 | "markview.nvim": { "branch": "main", "commit": "1cc5d64dc0b9f80a23ea9aaa75359659fea126a8" }, 19 | "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, 20 | "menu": { "branch": "main", "commit": "7a0a4a2896b715c066cfbe320bdc048091874cc6" }, 21 | "minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" }, 22 | "mywpm.nvim": { "branch": "main", "commit": "509e8f7a0b730e15aab366d82744e41319b41fdf" }, 23 | "neocord": { "branch": "main", "commit": "2ebf3792a8100376bb65fd66d5dbf60f50af7529" }, 24 | "nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" }, 25 | "nvim-cmp": { "branch": "main", "commit": "d97d85e01339f01b842e6ec1502f639b080cb0fc" }, 26 | "nvim-lspconfig": { "branch": "master", "commit": "30a2b191bccf541ce1797946324c9329e90ec448" }, 27 | "nvim-tree.lua": { "branch": "master", "commit": "3fb91e18a727ecc0385637895ec397dea90be42a" }, 28 | "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, 29 | "nvim-web-devicons": { "branch": "master", "commit": "8dcb311b0c92d460fac00eac706abd43d94d68af" }, 30 | "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, 31 | "showkeys": { "branch": "main", "commit": "cb0a50296f11f1e585acffba8c253b9e8afc1f84" }, 32 | "telescope.nvim": { "branch": "master", "commit": "83a3a713d6b2d2a408491a1b959e55a7fa8678e8" }, 33 | "timerly": { "branch": "main", "commit": "1c78999480af0e4f8201fe6bfa1e5e0b70a59acf" }, 34 | "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, 35 | "triforce.nvim": { "branch": "main", "commit": "4ce2ee1f29cd40312df0deed60f76b7d9a42ab51" }, 36 | "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, 37 | "typr": { "branch": "main", "commit": "584e4ef34dea25a4035627794322f315b22d1253" }, 38 | "ui": { "branch": "v3.0", "commit": "bea2af0a76c1098fac0988ad296aa028cad2a333" }, 39 | "vim-wakatime": { "branch": "master", "commit": "d7973b157a632d1edeff01818f18d67e584eeaff" }, 40 | "volt": { "branch": "main", "commit": "620de1321f275ec9d80028c68d1b88b409c0c8b1" }, 41 | "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" } 42 | } 43 | -------------------------------------------------------------------------------- /nvim/lua/configs/discord.lua: -------------------------------------------------------------------------------- 1 | -- The setup config table shows all available config options with their default values: 2 | require("neocord").setup({ 3 | -- General options 4 | logo = 5 | "https://yt3.googleusercontent.com/owRprEUEOZmPE5fK7VnrGTVjzFNKrAYSjI5vqcktx90NbbuoPi3tK6Ss-PHIa2styxXlho5w7g=s160-c-k-c0x00ffffff-no-rj", -- "auto" or url 6 | logo_tooltip = "vscode, jetbrains killers!", -- nil or string 7 | main_image = "logo", -- "language" or "logo" 8 | client_id = "1157438221865717891", -- Use your own Discord application client id (not recommended) 9 | log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error") 10 | debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(, true)`) 11 | blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches 12 | file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference) 13 | show_time = false, -- Show the timer 14 | global_timer = false, -- if set true, timer won't update when any event are triggered 15 | 16 | -- Rich Presence text options 17 | editing_text = "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string) 18 | file_explorer_text = "Browsing %s", -- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string) 19 | git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string) 20 | plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string) 21 | reading_text = "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string) 22 | workspace_text = "Working on %s", -- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string) 23 | line_number_text = "Line %s out of %s", -- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string) 24 | terminal_text = "Using Terminal", -- Format string rendered when in terminal mode. 25 | }) 26 | -------------------------------------------------------------------------------- /nvim/lua/plugins/init.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "stevearc/conform.nvim", 4 | -- event = 'BufWritePre', -- uncomment for format on save 5 | opts = require "configs.conform", 6 | }, 7 | 8 | -- These are some examples, uncomment them if you want to see them work! 9 | { 10 | "neovim/nvim-lspconfig", 11 | config = function() 12 | require "configs.lspconfig" 13 | end, 14 | }, 15 | 16 | { 17 | "wakatime/vim-wakatime", 18 | lazy = false, 19 | }, 20 | 21 | { 22 | "lukas-reineke/indent-blankline.nvim", 23 | main = "ibl", 24 | ---@module "ibl" 25 | ---@type ibl.config 26 | opts = {}, 27 | enabled = false, 28 | }, 29 | 30 | { 31 | "IogaMaster/neocord", 32 | event = "VeryLazy", 33 | config = function() 34 | require "configs.discord" 35 | end, 36 | }, 37 | { 38 | "nvchad/minty", 39 | lazy = true, 40 | config = function() 41 | require "configs.minty" 42 | end, 43 | }, 44 | 45 | { "nvchad/showkeys", cmd = "ShowkeysToggle", opts = { position = "top-center" } }, 46 | { 47 | "nvzone/typr", 48 | dependencies = "nvzone/volt", 49 | opts = {}, 50 | cmd = { "Typr", "TyprStats" }, 51 | }, 52 | 53 | { 54 | "shellRaining/hlchunk.nvim", 55 | event = { "BufReadPre", "BufNewFile" }, 56 | config = function() 57 | require "configs.chunk" 58 | end 59 | }, 60 | 61 | { "nvzone/volt", lazy = true }, 62 | { "nvzone/menu", lazy = true }, 63 | 64 | { 65 | "nvzone/timerly", 66 | dependencies = 'nvzone/volt', 67 | cmd = "TimerlyToggle", 68 | opts = {} -- optional 69 | }, 70 | 71 | { 72 | "nvzone/floaterm", 73 | dependencies = "nvzone/volt", 74 | opts = {}, 75 | cmd = "FloatermToggle", 76 | }, 77 | 78 | { 'Civitasv/cmake-tools.nvim', opts = {} }, 79 | 80 | { 81 | "slowy07/mywpm.nvim", 82 | event = "VeryLazy", 83 | config = function() 84 | require "configs.mywpm" 85 | end 86 | }, 87 | 88 | -- test new blink 89 | -- { import = "nvchad.blink.lazyspec" }, 90 | 91 | { 92 | "nvim-treesitter/nvim-treesitter", 93 | opts = { 94 | ensure_installed = { 95 | "vim", "lua", "vimdoc", 96 | "html", "css", 97 | }, 98 | highlight = { 99 | enable = true, 100 | } 101 | }, 102 | 103 | config = function(_, opts) 104 | local parser_config = require("nvim-treesitter.parsers").get_parser_configs() 105 | parser_config.xvrlang = { 106 | install_info = { 107 | -- url = "https://github.com/WargaSlowy/xvrlang-treesitter", 108 | url = "~/Documents/project/xvrlang-treesitter", 109 | files = { "src/parser.c" }, 110 | branch = "main", 111 | generate_requires_npm = false, 112 | requires_generate_from_grammar = false, 113 | }, 114 | filetype = "xvr", 115 | vim.filetype.add({ 116 | extension = { 117 | xvrlang = "xvr", 118 | } 119 | }) 120 | } 121 | 122 | require("nvim-treesitter.configs").setup(opts) 123 | end 124 | }, 125 | 126 | { 127 | "gisketch/triforce.nvim", 128 | dependencies = { 129 | "nvzone/volt", 130 | }, 131 | config = function() 132 | require "configs.triforce" 133 | end, 134 | }, 135 | 136 | -- markdown preview 137 | { 138 | "OXY2DEV/markview.nvim", 139 | lazy = false, 140 | preview = { 141 | icon_provider = "internal", 142 | } 143 | }, 144 | 145 | -- todo nvim 146 | { 147 | "folke/todo-comments.nvim", 148 | dependencies = { "nvim-lua/plenary.nvim" }, 149 | lazy = false, 150 | config = function() 151 | require "configs.todo" 152 | end 153 | }, 154 | 155 | -- trouble nvim 156 | { 157 | "folke/trouble.nvim", 158 | opts = {}, 159 | lazy = false, 160 | cmd = "Trouble", 161 | } 162 | 163 | } 164 | -------------------------------------------------------------------------------- /nvim/lua/options.lua: -------------------------------------------------------------------------------- 1 | require "nvchad.options" 2 | 3 | local M = {} 4 | 5 | 6 | 7 | M.stbufnr = function() 8 | return vim.api.nvim_win_get_buf(vim.g.statusline_winid or 0) 9 | end 10 | 11 | -- add yours here! 12 | 13 | local o = vim.o 14 | o.cursorlineopt = "both" -- to enable cursorline! 15 | o.background = "dark" 16 | vim.opt.relativenumber = true 17 | vim.opt.list = true 18 | vim.opt.listchars = { 19 | eol = '↴', 20 | } 21 | 22 | local highlights = { 23 | Normal = { fg = "#f4f4f4", bg = "#141b1e" }, 24 | Separator = { fg = "#232a2d", bg = "#141b1e" }, 25 | Separator2 = { fg = "#3a435a", bg = "#232a2d" }, 26 | ModeText = { fg = "#956dca", bg = "#232a2d" }, 27 | PathText = { fg = "#956dca", bg = "#232a2d" }, 28 | FileText = { fg = "#f4f3ee", bg = "#232a2d" }, 29 | FileType = { fg = "#e37e4f", bg = "#232a2d" }, 30 | BranchName = { fg = "#69bfce", bg = "#232a2d" }, 31 | LineText = { fg = "#e34f4f", bg = "#232a2d" }, 32 | ColumnText = { fg = "#5679e3", bg = "#232a2d" }, 33 | PercentageText = { fg = "#5599e2", bg = "#232a2d" }, 34 | TotalLineText = { fg = "#956dca", bg = "#232a2d" }, 35 | DiagnosticsText = { fg = "#67b0e8", bg = "#232a2d" }, 36 | LSPColor = { fg = "#8ccf7e", bg = "#232a2d" }, 37 | 38 | DiagError = { fg = "#e06c75", bg = "#232a2d" }, 39 | DiagWarn = { fg = "#e5c07b", bg = "#232a2d" }, 40 | DiagInfo = { fg = "#61afef", bg = "#232a2d" }, 41 | DiagHint = { fg = "#98c379", bg = "#232a2d" }, 42 | } 43 | 44 | for group, opts in pairs(highlights) do 45 | vim.api.nvim_set_hl(0, group, opts) 46 | end 47 | 48 | _G.RecolorMode = function() 49 | local mode = vim.fn.mode() 50 | local color_map = { 51 | n = { fg = "#5599e2", bg = "#232a2d" }, 52 | i = { fg = "#e34f4f", bg = "#232a2d" }, 53 | R = { fg = "#69bfce", bg = "#141b1e" }, 54 | v = { fg = "#e37e4f", bg = "#232a2d" }, 55 | V = { fg = "#e37e4f", bg = "#141b1e" }, 56 | ["V"] = { fg = "#e37e4f", bg = "#141b1e" }, 57 | c = { fg = "#5679e3", bg = "#232a2d" }, 58 | t = { fg = "#5679e3", bg = "#141b1e" }, 59 | } 60 | 61 | local hl = color_map[mode] 62 | if hl then 63 | vim.api.nvim_set_hl(0, "ModeText", hl) 64 | end 65 | return "" 66 | end 67 | 68 | _G.wpm_status = function() 69 | local ok, wpmkita = pcall(require, "mywpm") 70 | if not ok then 71 | return "WPM: not ok" 72 | end 73 | 74 | local wpm = wpmkita.get_wpm() 75 | if type(wpm) == "number" and wpm > 0 then 76 | if wpm > 45 then 77 | return ("󰈸 : %.0f WPM"):format(wpm) 78 | else 79 | return ("󰌌 : %.0f WPM"):format(wpm) 80 | end 81 | else 82 | return "󰌌" 83 | end 84 | end 85 | 86 | _G.SetFiletype = function(filetype) 87 | return (filetype == nil or filetype == "") and "unknown" or filetype 88 | end 89 | 90 | _G.file = function() 91 | local icon = "󰈤" 92 | local path = vim.api.nvim_buf_get_name(M.stbufnr()) 93 | local name = (path == "" and "Empty") or path:match "([^/\\]+)[/\\]*$" 94 | 95 | if name ~= "Empty" then 96 | local devicons_present, devicons = pcall(require, "nvim-web-devicons") 97 | 98 | if devicons_present then 99 | local ft_icon = devicons.get_icon(name) 100 | icon = (ft_icon ~= nil and ft_icon) or icon 101 | end 102 | end 103 | 104 | return " " .. icon .. " " .. name 105 | end 106 | 107 | _G.git = function() 108 | if not vim.b[M.stbufnr()].gitsigns_head or vim.b[M.stbufnr()].gitsigns_git_status then 109 | return " no repo" 110 | end 111 | 112 | local git_status = vim.b[M.stbufnr()].gitsigns_status_dict 113 | 114 | local added = (git_status.added and git_status.added ~= 0) and ("  " .. git_status.added) or "" 115 | local changed = (git_status.changed and git_status.changed ~= 0) and ("  " .. git_status.changed) or "" 116 | local removed = (git_status.removed and git_status.removed ~= 0) and ("  " .. git_status.removed) or "" 117 | local branch_name = " " .. git_status.head 118 | 119 | return " " .. branch_name .. added .. changed .. removed .. " " 120 | end 121 | 122 | _G.diagnostics_color = function() 123 | if not rawget(vim, "lsp") then 124 | return "%#DiagnosticsText#󰞇 %*" 125 | end 126 | 127 | local err = #vim.diagnostic.get(M.stbufnr(), { severity = vim.diagnostic.severity.ERROR }) 128 | local warn = #vim.diagnostic.get(M.stbufnr(), { severity = vim.diagnostic.severity.WARN }) 129 | local info = #vim.diagnostic.get(M.stbufnr(), { severity = vim.diagnostic.severity.INFO }) 130 | local hints = #vim.diagnostic.get(M.stbufnr(), { severity = vim.diagnostic.severity.HINT }) 131 | 132 | local parts = {} 133 | if err > 0 then 134 | table.insert(parts, "%#DiagError# " .. err .. " %*") 135 | end 136 | if warn > 0 then 137 | table.insert(parts, "%#DiagWarn# " .. warn .. " %*") 138 | end 139 | if info > 0 then 140 | table.insert(parts, "%#DiagInfo#󰋼 " .. info .. " %*") 141 | end 142 | if hints > 0 then 143 | table.insert(parts, "%#DiagHint#󰛩 " .. hints .. " %*") 144 | end 145 | 146 | if #parts == 0 then 147 | return "%#DiagnosticsText#󰞇 %*" 148 | else 149 | return table.concat(parts, "") 150 | end 151 | end 152 | 153 | _G.lsp = function() 154 | if rawget(vim, "lsp") then 155 | for _, client in ipairs(vim.lsp.get_clients()) do 156 | if client.attached_buffers[M.stbufnr()] then 157 | return (vim.o.columns > 100 and "  LSP ~ " .. client.name .. " ") or "  LSP " 158 | end 159 | end 160 | end 161 | 162 | return "" 163 | end 164 | 165 | _G.HandleColumnGap = function() 166 | local col = vim.fn.col(".") 167 | return col > 9 and " " or " " 168 | end 169 | 170 | vim.opt.statusline = table.concat({ 171 | "%{%v:lua.RecolorMode()%}", 172 | 173 | "%#Separator#█", 174 | "%#ModeText#", 175 | "%#Separator#██", 176 | 177 | "%#PathText#%{expand('%:p:h:t')}", 178 | "%#Separator#██", 179 | "%{%v:lua.diagnostics_color()%}", 180 | "%#Separator#", 181 | 182 | "%=", 183 | 184 | "%=", 185 | "%#Separator#", 186 | "%#FileType#%{v:lua.file()}", 187 | "%#Separator# ", 188 | 189 | "%#Separator#", 190 | "%#TotalLineText#%{v:lua.wpm_status()}", 191 | "%#Separator# ", 192 | 193 | "%#Separator#", 194 | "%#BranchName#%{v:lua.git()}", 195 | "%#Separator# ", 196 | 197 | "%#Separator#", 198 | "%#LSPColor#%{v:lua.lsp()}", 199 | "%#Separator#█", 200 | "%#BranchName#%{v:lua.HandleColumnGap()}", 201 | "%#ColumnText#%2c", 202 | 203 | "%#Separator2#", 204 | "%#Separator#██", 205 | "%#PercentageText#%p%%", 206 | "%#Separator#█", 207 | "%#Separator2#", 208 | "%#Separator#█", 209 | "%#TotalLineText#%L", 210 | "%#Separator#█", 211 | }) 212 | --------------------------------------------------------------------------------