diff --git a/home/.chezmoidata.yaml b/home/.chezmoidata.yaml index 7bab7df1..d8792c2f 100644 --- a/home/.chezmoidata.yaml +++ b/home/.chezmoidata.yaml @@ -613,6 +613,7 @@ softwareGroups: - kdash - kn # TODO: Check if some of these are installed by Krew and remove if they are + - krew - kubectx - kubekey - kubenav diff --git a/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-nvim.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-nvim.tmpl index 374b029f..34c9315e 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-nvim.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_11-symlink-nvim.tmpl @@ -3,9 +3,8 @@ # @file Neovim Configuration # @brief This script configures Neovim by applying the configuration stored in `${XDG_DATA_HOME:-$HOME/.config}/nvim-custom/init.lua` if the `nvim` application is available # @description -# This script applies the Neovim configuration stored in `${XDG_DATA_HOME:-$HOME/.config}/nvim-custom/init.lua` if nvim is installed. -# The custom init configuration provides compatiblity between Volta and Neovim. This allows neovim to discover node modules installed by Volta. This script sets up -# init in such a way that the compatibility setting is applied even when Neovim is installed using Flatpak +# This script applies the Neovim configuration stored in `${XDG_DATA_HOME:-$HOME/.local/share}/nvchad/init.lua` if nvim is installed. +# The custom configuration was adapted from [linuxmobile/nvchad-v2](https://github.com/linuxmobile/nvchad-v2). # # ## Links # @@ -16,15 +15,17 @@ ### Symlink custom code for Neovim configuration if [ ! -d "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom" ]; then - logg info "Linking ${XDG_CONFIG_HOME:-$HOME/.config}/nvim-custom to ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom" - logg info "Changes should go in ${XDG_CONFIG_HOME:-$HOME/.config}/nvim-custom" - ln -s "${XDG_CONFIG_HOME:-$HOME/.config}/nvim-custom" "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom" + logg info "Changes should go in ${XDG_DATA_HOME:-$HOME/.local/share}/nvchad" + mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua" + logg info "Linking ${XDG_DATA_HOME:-$HOME/.local/share}/nvchad to ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom" + ln -s "${XDG_DATA_HOME:-$HOME/.local/share}/nvchad" "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom" elif command -v flatpak && flatpak list | grep 'io.neovim.nvim' > /dev/null && [ ! -d "~/.var/app/io.neovim.nvim/config/nvim/lua/custom" ]; then - logg info "Linking ${XDG_CONFIG_HOME:-$HOME/.config}/nvim-custom to ~/.var/app/io.neovim.nvim/config/nvim/lua/custom" - logg info "Changes should go in ${XDG_CONFIG_HOME:-$HOME/.config}/nvim-custom" - ln -s "${XDG_CONFIG_HOME:-$HOME/.config}/nvim-custom" "~/.var/app/io.neovim.nvim/config/nvim/lua/custom" + logg info "Changes should go in ${XDG_DATA_HOME:-$HOME/.local/share}/nvchad" + mkdir -p "$HOME/.var/app/io.neovim.nvim/config/nvim/lua" + logg info "Linking ${XDG_DATA_HOME:-$HOME/.local/share}/nvchad to ~/.var/app/io.neovim.nvim/config/nvim/lua/custom" + ln -s "${XDG_DATA_HOME:-$HOME/.local/share}/nvchad" "$HOME/.var/app/io.neovim.nvim/config/nvim/lua/custom" else - logg info "${XDG_CONFIG_HOME:-$HOME/.config}/nvim-custom appears to already be symlinked to ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom" + logg info "${XDG_DATA_HOME:-$HOME/.local/share}/nvchad appears to already be symlinked to ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom" fi {{ end -}} diff --git a/home/.chezmoiscripts/universal/run_onchange_after_57-netdata.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_57-netdata.sh.tmpl index 6efada27..d70a294f 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_57-netdata.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_57-netdata.sh.tmpl @@ -21,7 +21,18 @@ if command -v netdata-claim.sh > /dev/null; then if command -v add-user > /dev/null; then sudo add-user netdata fi + + ### Ensure /usr/local/var/lib/netdata/cloud.d is owned by user + if [ -d /usr/local/var/lib/netdata/cloud.d ]; then + logg info 'Ensuring permissions are correct on /usr/local/var/lib/netdata/cloud.d' + sudo chown -Rf $USER /usr/local/var/lib/netdata/cloud.d + elif [ -d /var/lib/netdata/cloud.d ]; then + logg info 'Ensuring permissions are correct on /var/lib/netdata/cloud.d' + sudo chown -Rf $USER /var/lib/netdata/cloud.d + fi + # netdata-claim.sh must be run as netdata user + logg info "Netdata room: $NETDATA_ROOM" sudo -H -u netdata bash -c 'netdata-claim.sh -token="$NETDATA_TOKEN" -rooms="$NETDATA_ROOM" -url="{{ .netdataClaimURL }}"' # Kernel optimizations diff --git a/home/.chezmoiscripts/universal/run_onchange_after_94-bash-it.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_94-bash-it.sh.tmpl index 2a697063..239b68db 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_94-bash-it.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_94-bash-it.sh.tmpl @@ -1,5 +1,5 @@ {{- if (ne .host.distro.family "windows") -}} -#!/usr/bin/env bash +#!/usr/bin/env -S bash -i # @file Bash It! # @brief Ensures Bash is configured to use Bash It! # @description diff --git a/home/.chezmoiscripts/universal/run_onchange_after_97-cloudflare.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_97-cloudflare.sh.tmpl index 2cd3bba6..d574d0ef 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_97-cloudflare.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_97-cloudflare.sh.tmpl @@ -116,13 +116,13 @@ if [ -d /System ] && [ -d /Applications ] && command -v warp-cli > /dev/null; th logg info 'Adding Cloudflare certificate to `/usr/local/etc/openssl@3/certs/Cloudflare_CA.pem`' echo | sudo cat - "${XDG_DATA_HOME:-$HOME/.local/share}/warp/Cloudflare_CA.pem" >> /usr/local/etc/openssl@3/certs/Cloudflare_CA.pem logg info 'Running `/usr/local/opt/openssl@3/bin/c_rehash`' - /usr/local/opt/openssl@3/bin/c_rehash > /dev/null && logg success 'rehash successful' + /usr/local/opt/openssl@3/bin/c_rehash > /dev/null && logg success 'OpenSSL certificate rehash successful' elif [ -d "/opt/homebrew/etc/openssl@3/certs" ]; then # Location on arm64 macOS logg info 'Adding Cloudflare certificate to `/opt/homebrew/etc/openssl@3/certs/Cloudflare_CA.pem`' echo | sudo cat - "${XDG_DATA_HOME:-$HOME/.local/share}/warp/Cloudflare_CA.pem" >> /opt/homebrew/etc/openssl@3/certs/Cloudflare_CA.pem logg info 'Running `/opt/homebrew/opt/openssl@3/bin/c_rehash`' - /opt/homebrew/opt/openssl@3/bin/c_rehash > /dev/null && logg success 'rehash successful' + /opt/homebrew/opt/openssl@3/bin/c_rehash > /dev/null && logg success 'OpenSSL certificate rehash successful' else logg warn 'Unable to add `Cloudflare_CA.pem` because `/usr/local/etc/openssl@3/certs` and `/opt/homebrew/etc/openssl@3/certs` do not exist!' fi @@ -223,7 +223,7 @@ if command -v warp-cli > /dev/null; then ### Connect CloudFlare WARP if warp-cli --accept-tos status | grep 'Disconnected' > /dev/null; then logg info 'Connecting to CloudFlare WARP' - warp-cli --accept-tos connect + warp-cli --accept-tos connect > /dev/null && logg success 'Connected to CloudFlare WARP' else logg info 'Either there is a misconfiguration or the device is already connected with CloudFlare WARP' fi @@ -245,7 +245,7 @@ if command -v cloudflared > /dev/null && [ -d "$HOME/.local/etc/cloudflared" ]; # Copy over configuration files logg info 'Copying over configuration files from ~/.local/etc/cloudflared to /usr/local/etc/cloudflared' sudo cp -f "$HOME/.local/etc/cloudflared/cert.pem" /usr/local/etc/cloudflared/cert.pem - sudo cp -f "$HOME/.local/etc/cloudflared/config.yml /usr/local/etc/cloudflared/config.yml + sudo cp -f "$HOME/.local/etc/cloudflared/config.yml" /usr/local/etc/cloudflared/config.yml # Register tunnel (if not already registered) if cloudflared tunnel list | grep "host-{{ .host.hostname }}"; then diff --git a/home/dot_config/npm/npmrc.tmpl b/home/dot_config/npm/npmrc.tmpl index 60b80fed..3bff1901 100644 --- a/home/dot_config/npm/npmrc.tmpl +++ b/home/dot_config/npm/npmrc.tmpl @@ -1,7 +1,7 @@ cache={{ .chezmoi.homeDir }}/.cache/npm init-author-email={{ .user.email }} init-author-name="{{ .user.name }} <{{ .user.email }}> ({{ .user.domain }})" -init-author-url="{{ .user.domain }}" +init-author-url="https://{{ .user.domain }}" init-license=MIT init-module={{ .chezmoi.homeDir }}/.config/npm/config/npm-init.js init-version=0.0.1 diff --git a/home/dot_config/nvim-custom/init.lua b/home/dot_config/nvim-custom/init.lua index 5588f26b..e7c0a38a 100644 --- a/home/dot_config/nvim-custom/init.lua +++ b/home/dot_config/nvim-custom/init.lua @@ -1,3 +1,3 @@ -if executable('volta') then +if executable('volta') let g:node_host_prog = trim(system("volta which neovim-node-host")) -endif +endif \ No newline at end of file diff --git a/home/dot_local/bin/executable_install-program b/home/dot_local/bin/executable_install-program index a2d4d85a..95524ded 100644 --- a/home/dot_local/bin/executable_install-program +++ b/home/dot_local/bin/executable_install-program @@ -1716,7 +1716,9 @@ async function pruneInstallOrders(installOrders) { for (const pkg of newOrders[pkgManager]) { try { await $`cat ${pkgTmp} | grep '^${pkg}$'` + log('info', 'Filter', 'Filtering list') newVal = newVal.filter((x) => x === pkg) + console.log('New list', newVal) } catch (e) { // Do nothing } diff --git a/home/dot_local/share/nvchad/chadrc.lua b/home/dot_local/share/nvchad/chadrc.lua new file mode 100644 index 00000000..af172371 --- /dev/null +++ b/home/dot_local/share/nvchad/chadrc.lua @@ -0,0 +1,78 @@ +---Make changes to default lua table of nvchad +local M = {} + +-- Path to overriding theme and highlights files +local highlights = require "custom.configs.highlights" + +M.ui = { + + theme = "rxyhn", + transparency = true, + + statusline = { + theme = "minimal", -- default/vscode/vscode_colored/minimal + separator_style = "round", -- default/round/block/arrow + overriden_modules = nil, + }, + + -- lazyload it when there are 1+ buffers + tabufline = { + show_numbers = false, + enabled = true, + lazyload = true, + overriden_modules = nil, + }, + + cmp = { + icons = true, + lspkind_text = true, + style = "default", -- default/flat_light/flat_dark/atom/atom_colored + border_color = "default", -- only applicable for "default" style, use color names from base30 variables + selected_item_bg = "colored", -- colored / simple + }, + + hl_override = highlights.override, + hl_add = highlights.add, + + telescope = { + style = "bordered", + }, -- borderless / bordered + + nvdash = { + load_on_startup = true, + header = { + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠓⠒⠤⢤⣤⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⣀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣷⣶⣶⣦⣭⣓⢟⢻⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⡟⠽⣿⡍⡇⠀⠉⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀⠉⠙⠛⠡⠀⠘⢟⠀⠀⠀⠀⠈⠉⠙⠘⠻⣿⠇⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⣲⣖⣒⢄⠻⣿", + "⣿⣿⣿⣿⣿⣿⣿⡏⢃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣷⣼", + "⣿⣿⣿⣿⣿⣿⡏⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠙⠻⡟⠙⢿⣿⣿", + "⣿⣿⣿⣿⣿⣿⡇⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠇⠀⠀⠈⠲⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⡇⡇⠀⠀⠀⠀⠀⠒⢤⣀⡀⠀⠀⠀⠀⠈⠀⠀⠀⠀⣸⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⡇⡇⠀⠀⠀⠀⠀⠀⠀⠈⠂⠌⡑⠄⠀⠀⠀⠀⢀⢊⣾⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⡇⡿⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣾⣿⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⣇⡇⠈⢻⣦⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣏⣿⣿⣿⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿", + "⣿⣿git@github.com:linuxmobile⣿⣿", + "⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿", + } + }, + + lsp = { + -- show function signatures i.e args as you type + signature = { + disabled = false, + silent = true, -- silences 'no signature help available' message from appearing + }, + }, +} + +M.plugins = "custom.plugins" +M.mappings = require "custom.mappings" +M.settings = "custom.extras" + +return M \ No newline at end of file diff --git a/home/dot_local/share/nvchad/config.lua b/home/dot_local/share/nvchad/config.lua new file mode 100644 index 00000000..2752a260 --- /dev/null +++ b/home/dot_local/share/nvchad/config.lua @@ -0,0 +1,21 @@ +-- This file contains changable values for custom functions + +local M = {} + +M.settings = { + cc_size = "80", -- Color column neither pass list or string + so_size = 10, -- Scrolloff amount + + blacklist = { + "NvimTree", + "nvdash", + "nvcheatsheet", + "terminal", + "Trouble", + "help", + }, -- Where to disable scrolloff and colorcolumn + + discord_rpc = 2, -- Value on how many nvim processes load presence.lua (1 - neovide, 2 - neovim) +} + +return M \ No newline at end of file diff --git a/home/dot_local/share/nvchad/configs/copilot.lua b/home/dot_local/share/nvchad/configs/copilot.lua new file mode 100644 index 00000000..f2fcbcb0 --- /dev/null +++ b/home/dot_local/share/nvchad/configs/copilot.lua @@ -0,0 +1,43 @@ +require('copilot').setup({ + panel = { + enabled = true, + auto_refresh = false, + keymap = { + jump_prev = "[[", + jump_next = "]]", + accept = "", + refresh = "gr", + open = "" + }, + layout = { + position = "bottom", -- | top | left | right + ratio = 0.4 + }, + }, + suggestion = { + enabled = true, + auto_trigger = true, + debounce = 75, + keymap = { + accept = "", + accept_word = false, + accept_line = false, + next = "", + prev = "", + dismiss = "", + }, + }, + filetypes = { + yaml = false, + markdown = false, + help = false, + gitcommit = false, + gitrebase = false, + hgcommit = false, + svn = false, + cvs = false, + ["."] = false, + }, + copilot_node_command = 'node', -- Node.js version must be > 16.x + server_opts_overrides = {}, + }) \ No newline at end of file diff --git a/home/dot_local/share/nvchad/configs/highlights.lua b/home/dot_local/share/nvchad/configs/highlights.lua new file mode 100644 index 00000000..cfc58881 --- /dev/null +++ b/home/dot_local/share/nvchad/configs/highlights.lua @@ -0,0 +1,35 @@ +-- To find any highlight groups: " Telescope highlights" +-- Each highlight group can take a table with variables fg, bg, bold, italic, etc +-- base30 variable names can also be used as colors + +local M = {} + +---@type Base46HLGroupsList +M.override = { + Visual = { + bg = "one_bg", + }, + Comment = { + italic = true, + }, + NvDashAscii = { + bg = "none", + fg = "blue", + }, + NvDashButtons = { + fg = "grey_fg", + bg = "none", + }, + ColorColumn = { + bg = "NONE", + }, + NvimTreeRootFolder = { + fg = "darker_black", + bg = "darker_black", + }, + TBTabTitle = { + bg = "darker_black", + }, +} + +return M \ No newline at end of file diff --git a/home/dot_local/share/nvchad/configs/lspconfig.lua b/home/dot_local/share/nvchad/configs/lspconfig.lua new file mode 100644 index 00000000..2cd6ed67 --- /dev/null +++ b/home/dot_local/share/nvchad/configs/lspconfig.lua @@ -0,0 +1,13 @@ +local on_attach = require("plugins.configs.lspconfig").on_attach +local capabilities = require("plugins.configs.lspconfig").capabilities + +local lspconfig = require "lspconfig" + +local servers = { "html", "cssls", "tsserver", "astro", "tailwindcss" } + +for _, lsp in ipairs(servers) do + lspconfig[lsp].setup { + on_attach = on_attach, + capabilities = capabilities, + } +end \ No newline at end of file diff --git a/home/dot_local/share/nvchad/configs/null-ls.lua b/home/dot_local/share/nvchad/configs/null-ls.lua new file mode 100644 index 00000000..65961a03 --- /dev/null +++ b/home/dot_local/share/nvchad/configs/null-ls.lua @@ -0,0 +1,18 @@ +local null_ls = require "null-ls" +local format = null_ls.builtins.formatting +local lint = null_ls.builtins.diagnostics + +local sources = { + + -- webdev stuff + format.deno_fmt, -- choosed deno for ts/js files cuz its very fast! + format.prettier.with { filetypes = { "html", "markdown", "css", "astro" } }, -- so prettier works only on these filetypes + + -- Lua + format.stylua, +} + +null_ls.setup { + debug = true, + sources = sources, +} \ No newline at end of file diff --git a/home/dot_local/share/nvchad/configs/overrides.lua b/home/dot_local/share/nvchad/configs/overrides.lua new file mode 100644 index 00000000..f1feb4b6 --- /dev/null +++ b/home/dot_local/share/nvchad/configs/overrides.lua @@ -0,0 +1,67 @@ +local M = {} + +M.treesitter = { + ensure_installed = { + "vim", + "lua", + "html", + "css", + "javascript", + "astro", + "tsx", + "typescript", + "markdown", + "markdown_inline", + }, +} + +M.mason = { + ensure_installed = { + -- lua stuff + "lua-language-server", + "stylua", + + -- web dev stuff + "css-lsp", + "html-lsp", + "astro-language-server", + "tailwindcss-language-server", + "typescript-language-server", + "deno", + "prettier", + "json-lsp", + "marksman", + }, +} + +-- git support in nvimtree +M.nvimtree = { + filters = { + dotfiles = true, + custom = { "node_modules" }, + }, + git = { + enable = true, + }, + + renderer = { + highlight_git = true, + icons = { + show = { + git = true, + }, + }, + }, +} + +M.cmp = { + sources = { + name = "nvim_lsp", + priority = 10, + keyword_length = 6, + group_index = 1, + max_item_count = 15, + }, +} + +return M \ No newline at end of file diff --git a/home/dot_local/share/nvchad/configs/presence.lua b/home/dot_local/share/nvchad/configs/presence.lua new file mode 100644 index 00000000..2bf192cb --- /dev/null +++ b/home/dot_local/share/nvchad/configs/presence.lua @@ -0,0 +1,253 @@ +local present, presence = pcall(require, "presence") + +if not present then + return +end + +presence.setup { + auto_update = true, + neovim_image_text = "NvChad", + main_image = "file", + client_id = "793271441293967371", + log_level = nil, + debounce_timeout = 10, + enable_line_number = false, + blacklist = {}, + buttons = true, + show_time = true, + editing_text = "Editing %s", + file_explorer_text = "Browsing %s", + git_commit_text = "Committing changes", + plugin_manager_text = "Managing plugins", + reading_text = "Reading %s", + line_number_text = "Line %s out of %s", + file_assets = { + c = { "C ", "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/c.png" }, + cpp = { + "C++", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/cpp.png", + }, + rust = { + "Rust", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/rust.png", + }, + html = { + "HTML", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/html.png", + }, + css = { + "CSS", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/css.png", + }, + scss = { + "Sass", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/scss.png", + }, + js = { + "JavaScript", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/js.png", + }, + ts = { + "TypeScript", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/ts.png", + }, + jsx = { + "React", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/jsx.png", + }, + tsx = { + "React", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/tsx.png", + }, + npm = { + "NPM", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/npm.png", + }, + debugging = { + "Debugging", + "https://github.com/leonardssh/vscord/blob/main/assets/icons/debugging.png?raw=true", + }, + docker = { + "Docker", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/docker.png", + }, + cl = { "Common Lisp", "lisp" }, + clj = { + "Clojure", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/clojure.png", + }, + cljs = { "ClojureScript", "clojurescript" }, + ex = { + "Elixir", + "https://github.com/leonardssh/vscord/blob/main/assets/icons/elixir.png", + }, + exs = { + "Elixir", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/elixir.png", + }, + go = { + "Go", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/go.png", + }, + lua = { + "Lua", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/lua.png", + }, + py = { + "Python", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/python.png", + }, + yaml = { "YAML", "https://avatars.githubusercontent.com/u/70907734?v=4" }, + nix = { + "Nix", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/nix.png", + }, + norg = { + "Neorg", + "neorg", + }, + md = { + "Markdown", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/markdown.png", + }, + ["zshrc"] = { + "zsh", + "https://avatars.githubusercontent.com/u/70907734?v=4", + }, + json = { "JSON", "https://avatars.githubusercontent.com/u/70907734?v=4" }, + conf = { + "configuration file", + "https://avatars.githubusercontent.com/u/70907734?v=4", + }, + config = { + "Configuration file", + "https://avatars.githubusercontent.com/u/70907734?v=4", + }, + sql = { + "SQL", + "https://raw.githubusercontent.com/leonardssh/vscord/main/assets/icons/sql.png", + }, + shell = { + "Shell", + "https://avatars.githubusercontent.com/u/70907734?v=4", + }, + [".aliases"] = { ".aliases", "shell" }, + [".appveyor.yml"] = { "AppVeyor config", "appveyor" }, + [".babelrc"] = { "Babel config", "babel" }, + [".babelrc.cjs"] = { "Babel config", "babel" }, + [".babelrc.js"] = { "Babel config", "babel" }, + [".babelrc.json"] = { "Babel config", "babel" }, + [".babelrc.mjs"] = { "Babel config", "babel" }, + [".bash_login"] = { ".bash_login", "shell" }, + [".bash_logout"] = { ".bash_logout", "shell" }, + [".bash_profile"] = { ".bash_profile", "shell" }, + [".bash_prompt"] = { ".bash_prompt", "shell" }, + [".bashrc"] = { ".bashrc", "shell" }, + [".cshrc"] = { ".cshrc", "shell" }, + [".dockercfg"] = { "Docker", "docker" }, + [".dockerfile"] = { "Docker", "docker" }, + [".dockerignore"] = { "Docker", "docker" }, + [".editorconfig"] = { "EditorConfig", "editorconfig" }, + [".eslintignore"] = { "ESLint", "eslint" }, + [".eslintrc"] = { "ESLint", "eslint" }, + [".eslintrc.cjs"] = { "ESLint", "eslint" }, + [".eslintrc.js"] = { "ESLint", "eslint" }, + [".eslintrc.json"] = { "ESLint", "eslint" }, + [".eslintrc.yaml"] = { "ESLint", "eslint" }, + [".eslintrc.yml"] = { "ESLint", "eslint" }, + [".gitattributes"] = { "git", "git" }, + [".gitconfig"] = { "git", "git" }, + [".gitignore"] = { "git", "git" }, + [".gitlab-ci.yaml"] = { "GitLab CI", "gitlab" }, + [".gitlab-ci.yml"] = { "GitLab CI", "gitlab" }, + [".gitmodules"] = { "git", "git" }, + [".login"] = { ".login", "shell" }, + [".logout"] = { ".login", "shell" }, + [".luacheckrc"] = { ".luacheckrc", "lua" }, + [".npmignore"] = { "npm config", "npm" }, + [".npmrc"] = { "npm config", "npm" }, + [".nvmrc"] = { ".nvmrc", "nodejs" }, + [".prettierrc"] = { "Prettier", "prettier" }, + [".prettierrc.cjs"] = { "Prettier", "prettier" }, + [".prettierrc.js"] = { "Prettier", "prettier" }, + [".prettierrc.json"] = { "Prettier", "prettier" }, + [".prettierrc.json5"] = { "Prettier", "prettier" }, + [".prettierrc.toml"] = { "Prettier", "prettier" }, + [".prettierrc.yaml"] = { "Prettier", "prettier" }, + [".prettierrc.yml"] = { "Prettier", "prettier" }, + [".profile"] = { ".profile", "shell" }, + [".tcshrc"] = { ".tcshrc", "shell" }, + [".terraformrc"] = { "Terraform config", "terraform" }, + [".tmux.conf"] = { "tmux", "tmux" }, + [".travis.yml"] = { "Travis CI", "travis" }, + [".vimrc"] = { ".vimrc", "vim" }, + [".watchmanconfig"] = { "Watchman config", "watchman" }, + [".yarnrc"] = { "Yarn config", "yarn" }, + [".zlogin"] = { ".zlogin", "shell" }, + [".zprofile"] = { ".zprofile", "shell" }, + [".zshenv"] = { ".zshenv", "shell" }, + [".zshrc"] = { ".zshrc", "shell" }, + ["Brewfile"] = { "Brewfile", "homebrew" }, + ["Brewfile.lock.json"] = { "Brewfile.lock.json", "homebrew" }, + ["CHANGELOG"] = { "CHANGELOG", "text" }, + ["CODE_OF_CONDUCT"] = { "Code of Conduct", "text" }, + ["COMMIT_EDITMSG"] = { "git", "git" }, + ["CONTRIBUTING"] = { "CONTRIBUTING", "text" }, + ["Cargo.lock"] = { "Cargo lockfile", "cargo" }, + ["Cargo.toml"] = { "Cargo.toml", "cargo" }, + ["Dockerfile"] = { "Docker", "docker" }, + ["Gemfile"] = { "Gemfile", "ruby" }, + ["Gemfile.lock"] = { "Gemfile lockfile", "ruby" }, + ["LICENSE"] = { "LICENSE", "text" }, + ["Makefile"] = { "Makefile", "code" }, + ["Rakefile"] = { "Rakefile", "ruby" }, + ["abookrc"] = { "abook", "abook" }, + ["alacritty.yaml"] = { "Alacritty config", "alacritty" }, + ["alacritty.yml"] = { "Alacritty config", "alacritty" }, + ["appveyor.yml"] = { "AppVeyor config", "appveyor" }, + ["babel.config.cjs"] = { "Babel config", "babel" }, + ["babel.config.js"] = { "Babel config", "babel" }, + ["babel.config.json"] = { "Babel config", "babel" }, + ["babel.config.mjs"] = { "Babel config", "babel" }, + ["brew.sh"] = { "brew.sh", "homebrew" }, + ["docker-compose.yaml"] = { "Docker", "docker" }, + ["docker-compose.yml"] = { "Docker", "docker" }, + ["gitconfig"] = { "git", "git" }, + ["gitlab.rb"] = { "GitLab config", "gitlab" }, + ["gitlab.yml"] = { "GitLab config", "gitlab" }, + ["go.mod"] = { "go.mod", "go" }, + ["go.sum"] = { "go.sum", "go" }, + ["jest.config.js"] = { "Jest config", "jest" }, + ["jest.setup.js"] = { "Jest config", "jest" }, + ["jest.setup.ts"] = { "Jest config", "jest" }, + ["kitty.conf"] = { "Kitty config", "kitty" }, + ["next-env.d.ts"] = { "Next.js config", "nextjs" }, + ["next.config.js"] = { "Next.js config", "nextjs" }, + ["nginx"] = { "NGINX", "nginx" }, + ["nginx.conf"] = { "NGINX", "nginx" }, + ["nuxt.config.js"] = { "Nuxt config", "nuxtjs" }, + ["prettier.config.cjs"] = { "Prettier", "prettier" }, + ["prettier.config.js"] = { "Prettier", "prettier" }, + ["profile"] = { "profile", "shell" }, + ["renovate.json"] = { "Renovate config", "renovate" }, + ["requirements.txt"] = { "requirements.txt", "python" }, + ["tailwind.config.js"] = { "Tailwind", "tailwind" }, + ["terraform.rc"] = { "Terraform config", "terraform" }, + ["v.mod"] = { "v.mod", "vlang" }, + ["watchman.json"] = { "Watchman config", "watchman" }, + ["webpack.config.js"] = { "Webpack", "webpack" }, + ["webpack.config.ts"] = { "Webpack", "webpack" }, + ["yarn.lock"] = { "Yarn lockfile", "yarn" }, + ["zlogin"] = { "zlogin", "shell" }, + ["zlogout"] = { "zlogout", "shell" }, + ["zprofile"] = { "zprofile", "shell" }, + ["zshenv"] = { "zshenv", "shell" }, + ["zshrc"] = { "zshrc", "shell" }, + }, + workspace_text = function() + return "afk lul" + end, + + -- main_image = "https://static-00.iconduck.com/assets.00/apps-neovim-icon-512x512-w4ecv3uh.png", + -- main_image = "https://camo.githubusercontent.com/7ef2897c4de6940f119595f50119a887b538d42d4a0b65a15bd0148e2b6bec5b/68747470733a2f2f692e696d6775722e636f6d2f654e62643975442e706e67", +} \ No newline at end of file diff --git a/home/dot_local/share/nvchad/extras.lua b/home/dot_local/share/nvchad/extras.lua new file mode 100644 index 00000000..f1c16a04 --- /dev/null +++ b/home/dot_local/share/nvchad/extras.lua @@ -0,0 +1,21 @@ +---@diagnostic disable: need-check-nil +local create_cmd = vim.api.nvim_create_user_command +local create_autocmd = vim.api.nvim_create_autocmd + +local settings = require("custom.config").settings + +create_autocmd({ "UIEnter" }, { + once = true, + callback = function() + local function getcmd_output() + local handle = io.popen "pgrep nvim | wc -l" + local output = handle:read "*a" + handle:close() + return output + end + + if tonumber(getcmd_output()) == settings.discord_rpc then + require("lazy").load { plugins = { "presence.nvim" } } + end + end, +}) \ No newline at end of file diff --git a/home/dot_local/share/nvchad/highlights.lua b/home/dot_local/share/nvchad/highlights.lua new file mode 100644 index 00000000..2b352a10 --- /dev/null +++ b/home/dot_local/share/nvchad/highlights.lua @@ -0,0 +1,22 @@ +-- To find any highlight groups: " Telescope highlights" +-- Each highlight group can take a table with variables fg, bg, bold, italic, etc +-- base30 variable names can also be used as colors + +local M = {} + +---@type Base46HLGroupsList +M.override = { + CursorLine = { + bg = "black2", + }, + Comment = { + italic = true, + }, +} + +---@type HLTable +M.add = { + NvimTreeOpenedFolderName = { fg = "green", bold = true }, +} + +return M \ No newline at end of file diff --git a/home/dot_local/share/nvchad/init.lua b/home/dot_local/share/nvchad/init.lua new file mode 100644 index 00000000..54c94672 --- /dev/null +++ b/home/dot_local/share/nvchad/init.lua @@ -0,0 +1,12 @@ +require "custom.extras" + +local opt = vim.opt +local g = vim.g + +-- Vim options +-- opt.timeoutlen = 10 -- Which-key timeout in ms +opt.backup = false +opt.swapfile = false +opt.encoding = "utf-8" +opt.fileencoding = "utf-8" +opt.shiftwidth = 2 \ No newline at end of file diff --git a/home/dot_local/share/nvchad/mappings.lua b/home/dot_local/share/nvchad/mappings.lua new file mode 100644 index 00000000..4ad4160f --- /dev/null +++ b/home/dot_local/share/nvchad/mappings.lua @@ -0,0 +1,28 @@ +---@type MappingsTable +local M = {} + +M.general = { + n = { + [";"] = { ":", "enter command mode", opts = { nowait = true } }, + }, +} + +M.nvimtree = { + n = { + -- toggle + ["n"] = { " NvimTreeToggle ", "toggle nvimtree" }, + + -- focus + ["e"] = { " NvimTreeFocus ", "focus nvimtree" }, + }, +} + +M.twilight = { + n = { + ["tw"] = { "Twilight", "toggle twilight" }, + }, +} + +-- more keybinds! + +return M \ No newline at end of file diff --git a/home/dot_local/share/nvchad/plugins.lua b/home/dot_local/share/nvchad/plugins.lua new file mode 100644 index 00000000..4b740076 --- /dev/null +++ b/home/dot_local/share/nvchad/plugins.lua @@ -0,0 +1,109 @@ +---@diagnostic disable: different-requires +local overrides = require "custom.configs.overrides" + +---@type NvPluginSpec[] +local plugins = { + + -- Override plugin definition options + { + "neovim/nvim-lspconfig", + event = "VeryLazy", + dependencies = { + -- format & linting + { + "jose-elias-alvarez/null-ls.nvim", + config = function() + require "custom.configs.null-ls" + end, + }, + }, + config = function() + require "plugins.configs.lspconfig" + require "custom.configs.lspconfig" + end, + }, + + { + "lewis6991/gitsigns.nvim", + { + "glepnir/lspsaga.nvim", + opts = { + lightbulb = { enable = false }, + symbol_in_winbar = { enable = false }, + }, + config = true, + }, + }, + + { + "kylechui/nvim-surround", + event = "VeryLazy", + ft = { "markdown", "lua", "javascript", "typescript", "typescriptreact", "javascriptreact", "html", "css", "astro" }, + config = function() + require("nvim-surround").setup {} + end, + }, + + { + "nvim-treesitter/nvim-treesitter", + opts = overrides.treesitter, + }, + + { + "williamboman/mason.nvim", + opts = overrides.mason, + }, + + { + "nvim-tree/nvim-tree.lua", + opts = overrides.nvimtree, + }, + + -- Install a plugin + { + "max397574/better-escape.nvim", + event = "InsertEnter", + config = function() + require("better_escape").setup() + end, + }, + + { + "folke/twilight.nvim", + event = "VeryLazy", + ft = { "markdown", "lua", "javascript", "typescript", "typescriptreact", "javascriptreact", "html", "css", "astro" }, + treesitter = true, + dimming = { + alpha = 0.25, + }, + }, + + { + "zbirenbaum/copilot.lua", + cmd = "Copilot", + event = "InsertEnter", + config = function() + require "custom.configs.copilot" + end, + }, + + { + "iamcco/markdown-preview.nvim", + event = "VeryLazy", + run = "cd app && pnpm install", + setup = function() + vim.g.mkdp_filetypes = { "markdown" } + end, + ft = { "markdown" }, + }, + + { + "andweeb/presence.nvim", + event = "VeryLazy", + config = function() + require "custom.configs.presence" + end, + }, +} + +return plugins \ No newline at end of file diff --git a/home/dot_local/share/nvchad/themes/jabuti.lua b/home/dot_local/share/nvchad/themes/jabuti.lua new file mode 100644 index 00000000..c45d41d1 --- /dev/null +++ b/home/dot_local/share/nvchad/themes/jabuti.lua @@ -0,0 +1,73 @@ +-- Credits to original theme for existing https://github.com/shaunsingh/oxocarbon.nvim +-- this is a modified version of it + +local M = {} + +M.base_30 = { + white = "#d9e0ee", -- original + darker_black = "#252632", + black = "#292A37", + black2 = "#252632", + one_bg = "#292a37", + one_bg2 = "#2e303e", + one_bg3 = "#303241", + grey = "#393a4d", + grey_fg = "#44465c", + grey_fg2 = "#9699b7", + light_grey = "#44465c", + red = "#ec6a88", + baby_pink = "#ff7eb6", + pink = "#be95ff", + line = "#383747", + green = "#3FC6DE", + vibrant_green = "#08bdba", + nord_blue = "#78a9ff", + blue = "#78a9ff", + yellow = "#efb993", + sun = "#efb993", + purple = "#936FDC", + dark_purple = "#936FDC", + teal = "#B5E8E0", + orange = "#efb993", + cyan = "#6be6e6", + statusline_bg = "#292A37", + lightbg = "#292A37", + pmenu_bg = "#6be6e6", + folder_bg = "#78a9ff", + lavender = "#c7d1ff", +} + +M.base_16 = { + base00 = "#292A37", + base01 = "#252632", + base02 = "#393a4d", + base03 = "#44465c", + base04 = "#dde1e6", + base05 = "#6be6e6", + base06 = "#ffffff", + base07 = "#08bdba", + base08 = "#ec6a88", + base09 = "#efb993", + base0A = "#ec6a88", + base0B = "#3FDAA4", + base0C = "#ff7eb6", + base0D = "#3FC6DE", + base0E = "#936FDC", + base0F = "#d9e0ee", +} + +M.polish_hl = { + Conditional = { + fg = M.base_30.nord_blue, + }, + + Tag = { + fg = M.base_30.red, + }, +} + +M.type = "dark" + +M = require("base46").override_theme(M, "jabuti") + +return M \ No newline at end of file diff --git a/home/dot_zshrc b/home/dot_zshrc index d5057706..7d37e356 100644 --- a/home/dot_zshrc +++ b/home/dot_zshrc @@ -393,7 +393,7 @@ fi FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:${FPATH}" ### ZSH compinit -autoload -Uz +X compinit && compinit -d "$XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION" +autoload -Uz +X compinit && compinit -d "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompdump-$ZSH_VERSION" ### Bash Completions autoload -U +X bashcompinit && bashcompinit diff --git a/software.yml b/software.yml index 72691bbb..3ae8bb40 100644 --- a/software.yml +++ b/software.yml @@ -5918,6 +5918,11 @@ softwarePackages: _home: https://nectar.js.org/ _name: nerctarjs npm: nectarjs + neovim-node-host: + _bin: neovim-node-host + _github: https://github.com/neovim/node-client + _name: Neovim Node Host + npm: neovim neovim: _bin: nvim _desc: '[neovim](https://neovim.io/) is Vim-fork focused on extensibility and usability' @@ -5928,6 +5933,7 @@ softwarePackages: _deps: - clangd - terraform-ls + - neovim-node-host apk: neovim apt: - neovim @@ -10191,7 +10197,7 @@ softwarePlugins: plugins: - https://github.com/BalliAsghar/mailsy-alfred/releases/download/2.0.0/Mailsy.alfredworkflow android-studio: - cmd: bash -c 'if ! sdkmanager --list_installed | grep " {PLUGIN}" > /dev/null; then sdkmanager --install "{PLUGIN}" > /dev/null; fi' + cmd: bash -c 'if ! sdkmanager --list_installed | grep "{PLUGIN}"; then sdkmanager --install "{PLUGIN}"; fi' plugins: - add-ons;addon-google_apis-google-24 - build-tools;33.0.0 @@ -10229,7 +10235,7 @@ softwarePlugins: plugins: - deployer/deployer docker: - cmd: bash -c 'if ! docker extension list | grep "{PLUGIN}" > /dev/null; then echo y | docker extension install "{PLUGIN}"; fi' + cmd: bash -c 'if ! docker extension list | grep "$(echo "{PLUGIN}" | sed 's/\:.*//')" > /dev/null; then echo y | docker extension install "{PLUGIN}"; fi' plugins: - ambassador/telepresence-docker-extension:1.0.13 - docker/disk-usage-extension:0.2.7 @@ -10253,7 +10259,7 @@ softwarePlugins: - dotnet-format - git-credential-manager gcloud: - cmd: bash -c 'if ! gcloud components list | grep "Installed.*{PLUGIN}" &> /dev/null; then gcloud components install "{PLUGIN}"; fi' + cmd: bash -c 'if ! gcloud components list | grep "Installed.*{PLUGIN}" > /dev/null; then gcloud components install "{PLUGIN}"; fi' plugins: - app-engine-go - cloud-datastore-emulator @@ -10377,7 +10383,7 @@ softwarePlugins: - name: Pieces plugin: https://teams.microsoft.com/l/app/789f23b3-d882-45ca-b3a3-de7f850656ea vagrant: - cmd: bash -c 'if ! vagrant plugin list | grep "{PLUGIN}"; then vagrant plugin install "{PLUGIN}"; fi' + cmd: bash -c 'if ! vagrant plugin list | grep "{PLUGIN}" > /dev/null; then vagrant plugin install "{PLUGIN}"; fi' plugins: - vagrant-bindfs - vagrant-digitalocean