diff --git a/README.md b/README.md index f75a74d9..af9dc01c 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ git clone https://aur.archlinux.org/paru-bin.git Install Dependencies / Packages ``` -paru -S fnm hyprland wlsunset keyb rofi-file-browser-extended-git imv brightnessctl neofetch yazi waybar playerctl wf-recorder kvantum swaylock-effects-git qt5ct qt6ct nwg-look mpv-mpris pacman-contrib swayidle pavucontrol pamixer file-roller htop adobe-source-code-pro-fonts ttf-fira-code ttf-jetbrains-mono-nerd ttf-jetbrains-mono noto-fonts-emoji ttf-droid otf-font-awesome ttf-cascadia-code-nerd ttf-bitstream-vera ttf-croscore ttf-dejavu ttf-droid ttf-ibm-plex ttf-liberation noto-fonts gnu-free-fonts linux-headers alsa-utils less wlroots vlc thunar thunar-volman thunar-archive-plugin udiskie mtpfs jmtpfs gvfs-gphoto2 gvfs-mtp mousepad rofi-lbonn-wayland-git network-manager-applet lsd cava geany geany-plugin swaync tumbler unzip zip unrar polkit-gnome xdg-user-dirs grim slurp gnome-system-monitor jq blueberyy-wayland polkit-kde-agent cbonsai zathura-pdf-mupdf zathura yt-dlp ffmpegthumbnailer xdotool wmctrl zsh lazygit xdg-desktop-portal-gtk gtk-engine-murrine +paru -S fnm hyprland keyb rofi-file-browser-extended-git imv brightnessctl neofetch yazi waybar playerctl wf-recorder kvantum swaylock-effects-git qt5ct qt6ct nwg-look mpv-mpris pacman-contrib swayidle pavucontrol pamixer file-roller htop adobe-source-code-pro-fonts ttf-fira-code ttf-jetbrains-mono-nerd ttf-jetbrains-mono noto-fonts-emoji ttf-droid otf-font-awesome ttf-cascadia-code-nerd ttf-bitstream-vera ttf-croscore ttf-dejavu ttf-droid ttf-ibm-plex ttf-liberation noto-fonts gnu-free-fonts linux-headers alsa-utils less wlroots vlc thunar thunar-volman thunar-archive-plugin udiskie mtpfs jmtpfs gvfs-gphoto2 gvfs-mtp mousepad rofi-lbonn-wayland-git network-manager-applet lsd cava geany geany-plugin swaync tumbler unzip zip unrar polkit-gnome xdg-user-dirs grim slurp gnome-system-monitor jq blueberyy-wayland polkit-kde-agent cbonsai zathura-pdf-mupdf zathura yt-dlp ffmpegthumbnailer xdotool wmctrl zsh lazygit xdg-desktop-portal-gtk gtk-engine-murrine ``` > **Warning** diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf index cfbb4488..f61e1912 100644 --- a/config/hypr/UserConfigs/Startup_Apps.conf +++ b/config/hypr/UserConfigs/Startup_Apps.conf @@ -46,5 +46,3 @@ exec-once = $UserScripts/RainbowBorders.sh ## Here are list of features available but disabled by default #exec-once = swww query || swww init && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper -# wlsunset - for automatic gamma adjustment. Default is 1900 to 0700 (7pm to 7am). Edit Sunset.sh accordingly -# exec-once = $UserScriptsDir/Sunset.sh diff --git a/config/hypr/UserScripts/Sunset.sh b/config/hypr/UserScripts/Sunset.sh deleted file mode 100755 index 40891105..00000000 --- a/config/hypr/UserScripts/Sunset.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -# wlsunset project page -# https://sr.ht/~kennylevinsen/wlsunset/ - -wlsunset -t 4000 -T 6500 -d 900 -S 07:00 -s 19:00 diff --git a/config/nvim/.github/README.md b/config/nvim/.github/README.md index f1f01bce..e250f9a6 100644 --- a/config/nvim/.github/README.md +++ b/config/nvim/.github/README.md @@ -1,4 +1,5 @@ + # :herb: ‎ About @@ -452,6 +453,7 @@ - [nvim-neotest/neotest-python](https://github.com/nvim-neotest/neotest-python) - [olimorris/neotest-rspec](https://github.com/olimorris/neotest-rspec) - [rouge8/neotest-rust](https://github.com/rouge8/neotest-rust) +- [lawrence-laz/neotest-zig](https://github.com/lawrence-laz/neotest-zig) @@ -523,6 +525,7 @@ - vue - xml - yaml +- zig ### Language Servers @@ -532,6 +535,7 @@ - clangd - css - cssmodules +- deno - docker - elixir - emmet @@ -560,8 +564,9 @@ - terraform - texlab - tsserver -- vue +- volar - yaml +- zig ### Linters @@ -577,6 +582,7 @@ - pylint - ruff - shellcheck +- sqlfluff - stylelint - terraform_validate - typos @@ -598,6 +604,7 @@ - terraform_fmt - trim_newlines - trim_whitespace +- zigfmt # :gear: ‎ Config diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json index f583546a..52fa63d8 100644 --- a/config/nvim/lazy-lock.json +++ b/config/nvim/lazy-lock.json @@ -40,7 +40,7 @@ "icon-picker.nvim": { "branch": "master", "commit": "b94b9d30f2bf31ec3b35e15d778c1707c24ff9bf" }, "inc-rename.nvim": { "branch": "main", "commit": "6f9b5f9cb237e12935144cdc535322b8c93c1b25" }, "indent-blankline.nvim": { "branch": "master", "commit": "3c8a185da4b8ab7aef487219f5e001b11d4b6aaf" }, - "kitty-scrollback.nvim": { "branch": "main", "commit": "b37611b5bfc657c5a68de73195f2406e432a5ea2" }, + "kitty-scrollback.nvim": { "branch": "main", "commit": "746a3a72cec5a0214ecaed386db500565df7aef6" }, "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, "live-server.nvim": { "branch": "main", "commit": "f6f00a3f541251f0320910bb0d03c4ae14ee6d10" }, "lsp-lens.nvim": { "branch": "main", "commit": "48bb1a7e271424c15f3d588d54adc9b7c319d977" }, @@ -59,7 +59,7 @@ "multicursors.nvim": { "branch": "main", "commit": "8e876fe9db46c1b76c151202b418df21eca07bad" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "77d9f484b88fd380386b46ed9206e5374d69d9d8" }, "neoconf.nvim": { "branch": "main", "commit": "64437787dba70fce50dad7bfbb97d184c5bc340f" }, - "neodev.nvim": { "branch": "main", "commit": "be8d4d4cab6c13c6a572269c9d6a63774baba9a0" }, + "neodev.nvim": { "branch": "main", "commit": "34b93b809b781b8a1ad862142e40b11bae1dc0e9" }, "neogen": { "branch": "main", "commit": "70127baaff25611deaf1a29d801fc054ad9d2dc1" }, "neotest": { "branch": "master", "commit": "1ee3fcc150207f33dba8c9b3f478e5a0148d661d" }, "neotest-bash": { "branch": "main", "commit": "2eaad2ae4577fadf4af1eec32ec169d0fb2698bb" }, @@ -84,6 +84,7 @@ "nvim-lspconfig": { "branch": "master", "commit": "796394fd19fb878e8dbc4fd1e9c9c186ed07a5f4" }, "nvim-notify": { "branch": "master", "commit": "1576123bff3bed67bc673a3076e591abfe5d8ca9" }, "nvim-numbertoggle": { "branch": "main", "commit": "9ab95e60ea5ec138e1b2332e0fc18b8e5de464c6" }, + "nvim-origami": { "branch": "main", "commit": "4ec426ce4b0aad0303af44909f86e075dd65c615" }, "nvim-puppeteer": { "branch": "main", "commit": "d7e1b2d67c89d32b6ecada88ff67b539ba09f2d7" }, "nvim-recorder": { "branch": "main", "commit": "daaae505862e816a7efe578e22d6f3d10cd7a2e6" }, "nvim-scissors": { "branch": "main", "commit": "221c07c7be7e6752518792016b3dc60140bd3533" }, @@ -94,11 +95,11 @@ "nvim-treesitter-textobjects": { "branch": "master", "commit": "85b9d0cbd4ff901abcda862b50dbb34e0901848b" }, "nvim-ts-autotag": { "branch": "main", "commit": "8515e48a277a2f4947d91004d9aa92c29fdc5e18" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "1277b4a1f451b0f18c0790e1a7f12e1e5fdebfee" }, + "nvim-ufo": { "branch": "main", "commit": "35089d4bf300943f1ab04c631d9b8a44ebbfc174" }, "nvim-various-textobjs": { "branch": "main", "commit": "779dd981e55d534a4234d9650c9cbb39e4663c9a" }, "nvim-web-devicons": { "branch": "master", "commit": "db0c864375c198cacc171ff373e76bfce2a85045" }, "nvim_context_vt": { "branch": "master", "commit": "a14f9292b4bd68ceed433fc513f287641816dc6d" }, "octo.nvim": { "branch": "master", "commit": "b5371003f209764c9d1cc43cf20b6dc52961f0e8" }, - "oil.nvim": { "branch": "master", "commit": "c4cc8240f1c71defcb67c45da96e44b968d29e5f" }, "openingh.nvim": { "branch": "main", "commit": "5c9e851d7c26fdb236dfea8866b71fefe7ddeffc" }, "outline.nvim": { "branch": "main", "commit": "8c6b11e4c27bca690bfde0c6ce35ba66a805dfa3" }, "overseer.nvim": { "branch": "master", "commit": "68a2d344cea4a2e11acfb5690dc8ecd1a1ec0ce0" }, @@ -107,14 +108,14 @@ "persistent-breakpoints.nvim": { "branch": "main", "commit": "db2ad5974b0435cb806cd287e7525219d6ac4bd3" }, "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" }, "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, + "promise-async": { "branch": "main", "commit": "94f6f03c6c1e2aab551aacdf0c1e597a7269abb6" }, "rainbow-delimiters.nvim": { "branch": "master", "commit": "739a034046465d2b100151037401c24c42cb09cf" }, "refactoring.nvim": { "branch": "master", "commit": "c067e44b8171494fc1b5206ab4c267cd74c043b1" }, - "rustaceanvim": { "branch": "master", "commit": "e4020e72a5562b9e7cd09e9cd025467f7b0ea76a" }, + "rustaceanvim": { "branch": "master", "commit": "d03f72788b81cb311250d9fe0692f3435d609b5a" }, "satellite.nvim": { "branch": "main", "commit": "1a20861227eba8bf2d8282ab4ec5fc071e8b20e2" }, "search-replace.nvim": { "branch": "main", "commit": "d92290a02d97f4e9b8cd60d28b56b403432158d5" }, "semshi": { "branch": "master", "commit": "0182447e2ff4dfa04cd2dfe5f189e012c581ca45" }, "smart-splits.nvim": { "branch": "master", "commit": "2009a38ac44ec7afa1a001e0dfa8358441510a64" }, - "sniprun": { "branch": "master", "commit": "551f5839c1ccc8b4d3143ae03f58757d3047e391" }, "sqlite.lua": { "branch": "master", "commit": "b7e28c8463254c46a8e61c52d27d6a2040492fc3" }, "suda.vim": { "branch": "master", "commit": "8b0fc3711760195aba104e2d190cff9af8267052" }, "telescope-all-recent.nvim": { "branch": "main", "commit": "bfd8bb3b9c43bf0d09c2a77f3a5fcbecddbf9908" }, @@ -125,7 +126,7 @@ "telescope-luasnip.nvim": { "branch": "master", "commit": "2ef7da3a363890686dbaad18ddbf59177cfe4f78" }, "telescope-undo.nvim": { "branch": "main", "commit": "d3afc1c105535a90caec092ce27a113f77ba7b84" }, "telescope-zoxide": { "branch": "main", "commit": "68966349aa1b8e9ade403e18479ecf79447389a7" }, - "telescope.nvim": { "branch": "master", "commit": "4367e05c06d19f28c514e1498bcd9410f4bc65b2" }, + "telescope.nvim": { "branch": "master", "commit": "b3ff5f33201f474d58f5be96244869f189bbc091" }, "text-case.nvim": { "branch": "main", "commit": "d65b8ade26ef442d11cbf4719bb9830916a492c1" }, "theme-loader.nvim": { "branch": "master", "commit": "ad8774ec8267a447d469b4e6603b43f49b946e53" }, "todo-comments.nvim": { "branch": "main", "commit": "4a6737a8d70fe1ac55c64dfa47fcb189ca431872" }, diff --git a/config/nvim/lazyvim.json b/config/nvim/lazyvim.json index dc5f28b8..b66e816f 100644 --- a/config/nvim/lazyvim.json +++ b/config/nvim/lazyvim.json @@ -13,7 +13,6 @@ "plugins.extras.coding.recorder", "plugins.extras.coding.refactoring", "plugins.extras.coding.snippets", - "plugins.extras.coding.sniprun", "plugins.extras.coding.treesitter.endwise", "plugins.extras.coding.treesitter.mini-align", "plugins.extras.coding.treesitter.node-action", @@ -26,6 +25,7 @@ "plugins.extras.editor.color", "plugins.extras.editor.compiler", "plugins.extras.editor.docs.devdocs", + "plugins.extras.editor.fold", "plugins.extras.editor.git.diffview", "plugins.extras.editor.git.github", "plugins.extras.editor.git.worktree", diff --git a/config/nvim/lua/config/keymaps.lua b/config/nvim/lua/config/keymaps.lua index f8fba0a9..ddff65ac 100644 --- a/config/nvim/lua/config/keymaps.lua +++ b/config/nvim/lua/config/keymaps.lua @@ -6,8 +6,9 @@ local map = vim.keymap.set local Util = require("lazyvim.util") -- Search current word --- stylua: ignore -local searching_brave = [[:lua vim.fn.system({'xdg-open', 'https://search.brave.com/search?q=' .. vim.fn.expand("")})]] +local searching_brave = function() + vim.fn.system({ "xdg-open", "https://search.brave.com/search?q=" .. vim.fn.expand("") }) +end map("n", "?", searching_brave, { noremap = true, silent = true, desc = "Search current word on brave search" }) -- Toggle background diff --git a/config/nvim/lua/plugins/extras/editor/fold.lua b/config/nvim/lua/plugins/extras/editor/fold.lua index cbdbd223..e510503c 100644 --- a/config/nvim/lua/plugins/extras/editor/fold.lua +++ b/config/nvim/lua/plugins/extras/editor/fold.lua @@ -60,6 +60,18 @@ return { config = function(_, opts) require("ufo").setup(opts) end, + keys = { + { + "zp", + function() + local winid = require("ufo").peekFoldedLinesUnderCursor() + if not winid then + vim.lsp.buf.hover() + end + end, + desc = "Peek folded line", + }, + }, }, { "chrisgrieser/nvim-origami", diff --git a/config/nvim/lua/plugins/extras/editor/terminal/floaterm.lua b/config/nvim/lua/plugins/extras/editor/terminal/floaterm.lua index 31e9cb3f..b068b3ee 100644 --- a/config/nvim/lua/plugins/extras/editor/terminal/floaterm.lua +++ b/config/nvim/lua/plugins/extras/editor/terminal/floaterm.lua @@ -7,8 +7,8 @@ return { { "Ts", "FloatermNew --disposable --name=duaroot --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd= dua i", desc = "Workspace Size (root dir)" }, { "TS", "FloatermNew --disposable --name=duabuffer --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd= dua i", desc = "Workspace Size (cwd)" }, { "", "FloatermNew --disposable --name=yaziroot --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd= yazi", desc = "File Explorer (root dir)" }, - { "gg", "FloatermNew --disposable --name=lazygitroot --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd= lazygit", desc = "Lazygit (root dir)" }, - { "gG", "FloatermNew --disposable --name=lazygitbuffer --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd= lazygit", desc = "Lazygit (cwd)" }, + { "gg", "FloatermNew --name=lazygitroot --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd= lazygit", desc = "Lazygit (root dir)" }, + { "gG", "FloatermNew --name=lazygitbuffer --opener=edit --titleposition=center --height=0.85 --width=0.85 --cwd= lazygit", desc = "Lazygit (cwd)" }, { "Td", "FloatermNew --disposable --name=lazydocker --opener=edit --titleposition=center --height=0.85 --width=0.85 lazydocker", desc = "Lazydocker" }, { "Tb", "FloatermNew --disposable --name=btop --opener=edit --titleposition=center --height=0.85 --width=0.85 btop", desc = "Btop" }, { "Tn", "FloatermNew --disposable --name=navi --opener=edit --titleposition=center --height=0.85 --width=0.85 pages", desc = "Navi Pages" }, diff --git a/config/nvim/lua/plugins/extras/lang/web/vue.lua b/config/nvim/lua/plugins/extras/lang/web/vue.lua index a1955423..b9fde587 100644 --- a/config/nvim/lua/plugins/extras/lang/web/vue.lua +++ b/config/nvim/lua/plugins/extras/lang/web/vue.lua @@ -11,7 +11,7 @@ return { "neovim/nvim-lspconfig", opts = { servers = { - vuels = {}, + volar = {}, }, }, }, @@ -19,7 +19,7 @@ return { "williamboman/mason.nvim", opts = function(_, opts) opts.ensure_installed = opts.ensure_installed or {} - vim.list_extend(opts.ensure_installed, { "vetur-vls" }) + vim.list_extend(opts.ensure_installed, { "vue-language-server" }) end, }, { diff --git a/config/nvim/lua/plugins/extras/lang/zig.lua b/config/nvim/lua/plugins/extras/lang/zig.lua new file mode 100644 index 00000000..972663f1 --- /dev/null +++ b/config/nvim/lua/plugins/extras/lang/zig.lua @@ -0,0 +1,79 @@ +return { + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts.ensure_installed) == "table" then + vim.list_extend(opts.ensure_installed, { "zig" }) + end + end, + }, + { + "neovim/nvim-lspconfig", + opts = { + servers = { + zls = {}, + }, + }, + }, + { + "williamboman/mason.nvim", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "zls", "codelldb" }) + end, + }, + { + "nvim-neotest/neotest", + optional = true, + dependencies = { + "lawrence-laz/neotest-zig", + }, + opts = { + adapters = { + ["neotest-zig"] = {}, + }, + }, + }, + { + "mfussenegger/nvim-dap", + optional = true, + opts = function() + local dap = require("dap") + dap.configurations.zig = { + { + name = "Zig Run", + type = "codelldb", + request = "launch", + program = function() + os.execute("zig build") + local command = "find ! -type d -path './zig-out/bin/*' | grep -v 'Test' | sed 's#.*/##'" + local bin_location = io.popen(command, "r") + if bin_location ~= nil then + return "zig-out/bin/" .. bin_location:read("*a"):gsub("[\n\r]", "") + else + return "" + end + end, + cwd = "${workspaceFolder}", + stopOnEntry = false, + args = function() + local argv = {} + arg = vim.fn.input(string.format("Arguments: ")) + for a in string.gmatch(arg, "%S+") do + table.insert(argv, a) + end + return argv + end, + }, + } + end, + }, + { + "stevearc/conform.nvim", + opts = function(_, opts) + opts.formatters_by_ft.python = opts.formatters_by_ft.python or {} + table.insert(opts.formatters_by_ft.python, "zigfmt") + return opts + end, + }, +} diff --git a/config/nvim/lua/plugins/extras/linting/golangci.lua b/config/nvim/lua/plugins/extras/linting/golangci.lua index 827c2823..86697c7c 100644 --- a/config/nvim/lua/plugins/extras/linting/golangci.lua +++ b/config/nvim/lua/plugins/extras/linting/golangci.lua @@ -9,19 +9,17 @@ return { { "mfussenegger/nvim-lint", opts = function(_, opts) - --- Extend the conform plugin config and add given formatters - ---@param tbl table Table of filetype to formatters mappings - local function add_formatters(tbl) - for ft, formatters in pairs(tbl) do - if opts.formatters_by_ft[ft] == nil then - opts.formatters_by_ft[ft] = formatters + local function add_linters(tbl) + for ft, linters in pairs(tbl) do + if opts.linters_by_ft[ft] == nil then + opts.linters_by_ft[ft] = linters else - vim.list_extend(opts.formatters_by_ft[ft], formatters) + vim.list_extend(opts.linters_by_ft[ft], linters) end end end - add_formatters({ + add_linters({ ["go"] = { "golangcilint" }, ["gomod"] = { "golangcilint" }, ["gowork"] = { "golangcilint" }, diff --git a/config/nvim/lua/plugins/extras/linting/sqlfluff.lua b/config/nvim/lua/plugins/extras/linting/sqlfluff.lua new file mode 100644 index 00000000..1187c8ed --- /dev/null +++ b/config/nvim/lua/plugins/extras/linting/sqlfluff.lua @@ -0,0 +1,31 @@ +return { + { + "williamboman/mason.nvim", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "sqlfluff" }) + end, + }, + { + "mfussenegger/nvim-lint", + opts = function(_, opts) + local function add_linters(tbl) + for ft, linters in pairs(tbl) do + if opts.linters_by_ft[ft] == nil then + opts.linters_by_ft[ft] = linters + else + vim.list_extend(opts.linters_by_ft[ft], linters) + end + end + end + + add_linters({ + ["sql"] = { "sqlfluff" }, + ["plsql"] = { "sqlfluff" }, + ["mysql"] = { "sqlfluff" }, + }) + + return opts + end, + }, +} diff --git a/config/nvim/lua/plugins/extras/linting/stylelint.lua b/config/nvim/lua/plugins/extras/linting/stylelint.lua index 45473972..c8c430ed 100644 --- a/config/nvim/lua/plugins/extras/linting/stylelint.lua +++ b/config/nvim/lua/plugins/extras/linting/stylelint.lua @@ -11,20 +11,24 @@ return { { "mfussenegger/nvim-lint", opts = function(_, opts) - opts.linters_by_ft.html = opts.linters_by_ft.html or {} - table.insert(opts.linters_by_ft.html, stylelint) + local function add_linters(tbl) + for ft, linters in pairs(tbl) do + if opts.linters_by_ft[ft] == nil then + opts.linters_by_ft[ft] = linters + else + vim.list_extend(opts.linters_by_ft[ft], linters) + end + end + end - opts.linters_by_ft.css = opts.linters_by_ft.css or {} - table.insert(opts.linters_by_ft.css, stylelint) + add_linters({ + ["html"] = { "stylelint" }, + ["css"] = { "stylelint" }, + ["scss"] = { "stylelint" }, + ["sass"] = { "stylelint" }, + ["less"] = { "stylelint" }, + }) - opts.linters_by_ft.scss = opts.linters_by_ft.scss or {} - table.insert(opts.linters_by_ft.scss, stylelint) - - opts.linters_by_ft.sass = opts.linters_by_ft.sass or {} - table.insert(opts.linters_by_ft.sass, stylelint) - - opts.linters_by_ft.less = opts.linters_by_ft.less or {} - table.insert(opts.linters_by_ft.less, stylelint) return opts end, },