├── .config ├── fish │ ├── conf │ ├── empty_conf │ ├── fish_plugins │ ├── conf.d │ │ └── rustup.fish │ ├── completions │ │ ├── fisher.fish │ │ ├── tmuxinator.fish │ │ ├── alacritty.fish │ │ └── bun.fish │ ├── themes │ │ ├── Catppuccin Mocha.theme │ │ ├── Catppuccin Frappe.theme │ │ ├── Catppuccin Latte.theme │ │ └── Catppuccin Macchiato.theme │ ├── config.fish │ ├── fish_variables │ └── functions │ │ └── fisher.fish ├── awesome │ ├── config │ │ ├── notification.lua │ │ ├── error-handling.lua │ │ ├── menu.lua │ │ └── client.lua │ ├── script.sh │ ├── autostart.sh │ ├── theme.lua │ └── rc.lua ├── nvim │ ├── lua │ │ ├── .luarc.json │ │ └── user │ │ │ ├── misc.lua │ │ │ ├── opts.lua │ │ │ ├── maps.lua │ │ │ └── lazy.lua │ ├── init.lua │ ├── after │ │ └── plugin │ │ │ ├── gitsigns.lua │ │ │ ├── lspsaga.lua │ │ │ ├── autopairs.lua │ │ │ ├── notify.lua │ │ │ ├── toggleterm.lua │ │ │ ├── peek.lua │ │ │ ├── trouble.lua │ │ │ ├── noice.lua │ │ │ ├── transparent.lua │ │ │ ├── lspkind.lua │ │ │ ├── telescope.lua │ │ │ ├── rainbow-delimiters.lua │ │ │ ├── nvim-lint.lua │ │ │ ├── conform.lua │ │ │ ├── treesitter.lua │ │ │ ├── mason.lua │ │ │ ├── bufferline.lua │ │ │ ├── indent-blankline.lua │ │ │ ├── alpha.lua │ │ │ ├── neotree.lua │ │ │ ├── cmp.lua │ │ │ ├── lualine.lua │ │ │ └── lspconfig.lua │ ├── ftplugin │ │ └── java.lua │ └── lazy-lock.json ├── nitrogen │ ├── bg-saved.cfg │ └── nitrogen.cfg ├── polybar │ ├── launch.sh │ ├── scripts │ │ ├── updates.sh │ │ └── executable_updates.sh │ ├── backup.txt │ ├── checkupdates.sh │ └── config.ini ├── alacritty │ └── alacritty.toml ├── tmux │ └── tmux.conf ├── starship.toml ├── btop │ └── btop.conf ├── picom.conf └── neofetch │ └── config.conf ├── .stow-local-ignore ├── images ├── rice.png └── ricev2.png ├── .Xmodmap ├── README.md └── LICENSE /.config/fish/conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/fish/empty_conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/awesome/config/notification.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/fish/fish_plugins: -------------------------------------------------------------------------------- 1 | jorgebucaran/fisher 2 | -------------------------------------------------------------------------------- /.config/fish/conf.d/rustup.fish: -------------------------------------------------------------------------------- 1 | source "$HOME/.cargo/env.fish" 2 | -------------------------------------------------------------------------------- /.stow-local-ignore: -------------------------------------------------------------------------------- 1 | .git 2 | images 3 | 4 | LICENSE 5 | README.md 6 | -------------------------------------------------------------------------------- /.config/nvim/lua/.luarc.json: -------------------------------------------------------------------------------- 1 | { 2 | "workspace.checkThirdParty": false 3 | } -------------------------------------------------------------------------------- /images/rice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoodBoyNeon/dotfiles/HEAD/images/rice.png -------------------------------------------------------------------------------- /images/ricev2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GoodBoyNeon/dotfiles/HEAD/images/ricev2.png -------------------------------------------------------------------------------- /.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | require("user.maps") 2 | require("user.lazy") 3 | require("user.misc") 4 | require("user.opts") 5 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/gitsigns.lua: -------------------------------------------------------------------------------- 1 | require("gitsigns").setup( 2 | { 3 | current_line_blame = true, 4 | } 5 | ) 6 | -------------------------------------------------------------------------------- /.config/nitrogen/bg-saved.cfg: -------------------------------------------------------------------------------- 1 | [xin_-1] 2 | file=/home/neon/Media/images/wallpapers/catppuccin-wallpapers/misc/feet-on-the-dashboard.png 3 | mode=5 4 | bgcolor=#000000 5 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/lspsaga.lua: -------------------------------------------------------------------------------- 1 | local status_ok, lspsaga = pcall(require, "lspsaga") 2 | 3 | if not status_ok then 4 | return 5 | end 6 | 7 | lspsaga.setup({}) 8 | -- lspsaga.init_lsp_saga({}) 9 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/autopairs.lua: -------------------------------------------------------------------------------- 1 | local status_ok, autopairs = pcall(require, "nvim-autopairs") 2 | 3 | autopairs.setup({ 4 | check_ts = true, 5 | disable_filetype = { "TelescopePrompt", "vim" }, 6 | }) 7 | -------------------------------------------------------------------------------- /.config/nitrogen/nitrogen.cfg: -------------------------------------------------------------------------------- 1 | [geometry] 2 | posx=8 3 | posy=49 4 | sizex=1420 5 | sizey=839 6 | 7 | [nitrogen] 8 | view=icon 9 | recurse=true 10 | sort=alpha 11 | icon_caps=false 12 | dirs=/home/neon/Media/images/wallpapers; 13 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/notify.lua: -------------------------------------------------------------------------------- 1 | local status_ok, notify = pcall(require, "notify") 2 | 3 | if not status_ok then 4 | return 5 | end 6 | 7 | -- notify.setup({ 8 | -- top_down = false, 9 | -- }) 10 | -- 11 | -- vim.notify = notify 12 | -------------------------------------------------------------------------------- /.config/polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Terminate already running bar instances 4 | killall -q polybar 5 | 6 | # Wait until the processes have been shut down 7 | # while pgrep -u $UID -x polybar >/dev/null; do sleep 0.1; done 8 | 9 | # Launch bar 10 | polybar main & 11 | 12 | echo "Bars launched..." 13 | -------------------------------------------------------------------------------- /.config/awesome/script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | run() { 4 | if ! pgrep -f "$1" ; 5 | then 6 | echo "$(date) Executing $1\n" >> ~/logs/log.txt 7 | "$@" >>~/logs/log.txt 2>&1 & 8 | echo "Return code: $?" >> ~/logs/log.txt 9 | else 10 | echo "$(date) Not Executing $1\n" >> ~/logs/log.txt 11 | fi 12 | } 13 | run "spotify" 14 | -------------------------------------------------------------------------------- /.config/awesome/autostart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | run() { 4 | if ! pgrep -f "$1"; then 5 | "$@" & 6 | fi 7 | } 8 | 9 | # lxsession 10 | run lxsession 11 | 12 | # Wallpaper engine 13 | run nitrogen --restore 14 | 15 | # Vim keybinds for arrow keys 16 | run xmodmap ~/.Xmodmap 17 | 18 | # Polybar 19 | run ~/.config/polybar/launch.sh 20 | 21 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/toggleterm.lua: -------------------------------------------------------------------------------- 1 | require("toggleterm").setup({ 2 | open_mapping = "t", 3 | insert_mappings = false, 4 | border = "curved", 5 | hide_numbers = true, 6 | direction = "float", 7 | close_on_exit = true, 8 | float_opts = { 9 | border = "curved", 10 | winblend = 0, 11 | }, 12 | start_in_insert = true, 13 | shell = vim.o.shell, 14 | }) 15 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/peek.lua: -------------------------------------------------------------------------------- 1 | local status_ok, peek = pcall(require, "peek") 2 | 3 | if not status_ok then 4 | return 5 | end 6 | 7 | peek.setup({ 8 | app = "browser", -- 'webview', 'browser', string or a table of strings 9 | }) 10 | 11 | vim.api.nvim_create_user_command("PeekOpen", require("peek").open, {}) 12 | vim.api.nvim_create_user_command("PeekClose", require("peek").close, {}) 13 | -------------------------------------------------------------------------------- /.Xmodmap: -------------------------------------------------------------------------------- 1 | keycode 66 = Mode_switch 2 | keysym h = h H Left 3 | keysym l = l L Right 4 | keysym k = k K Up 5 | keysym j = j J Down 6 | keysym u = u U Prior 7 | keysym i = i I Home 8 | keysym o = o O End 9 | keysym p = p P Next 10 | 11 | keycode 78 = Caps_Lock 12 | 13 | keycode 134 = XF86AudioPlay 14 | keycode 108 = XF86AudioLowerVolume 15 | ! keycode 123 = XF86AudioRaiseVolume 16 | keycode 105 = XF86AudioMute 17 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/trouble.lua: -------------------------------------------------------------------------------- 1 | local status_ok, trouble = pcall(require, "trouble") 2 | 3 | if not status_ok then 4 | return 5 | end 6 | 7 | trouble.setup({ 8 | icons = true, 9 | signs = { 10 | -- icons / text used for a diagnostic 11 | -- error = "E", 12 | error = "󰅚", 13 | warning = "", 14 | hint = "󰌶", 15 | information = "", 16 | other = "󰗡" 17 | }, 18 | }) 19 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/noice.lua: -------------------------------------------------------------------------------- 1 | local status_ok, noice = pcall(require, "noice") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | -- noice.setup({ 7 | -- cmdline = { 8 | -- view = "cmdline", 9 | -- }, 10 | -- messages = { 11 | -- enabled = true, 12 | -- }, 13 | -- popupmenu = { 14 | -- enabled = false, 15 | -- }, 16 | -- notify = { 17 | -- enabled = false, 18 | -- } 19 | -- }) 20 | -------------------------------------------------------------------------------- /.config/nvim/lua/user/misc.lua: -------------------------------------------------------------------------------- 1 | -- * from: https://github.com/omerxx/dotfiles/blob/master/nvim/lua/misc.lua 2 | -- 3 | -- [[ Highlight on yank ]] 4 | -- See `:help vim.highlight.on_yank()` 5 | local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) 6 | vim.api.nvim_create_autocmd('TextYankPost', { 7 | callback = function() 8 | vim.highlight.on_yank() 9 | end, 10 | group = highlight_group, 11 | pattern = '*', 12 | }) 13 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/transparent.lua: -------------------------------------------------------------------------------- 1 | vim.g.transparent_groups = vim.list_extend( 2 | vim.g.transparent_groups or {}, 3 | vim.tbl_map(function(v) 4 | return v.hl_group 5 | end, vim.tbl_values(require("bufferline.config").highlights)) 6 | ) 7 | vim.g.transparent_groups = vim.list_extend(vim.g.transparent_groups or {}, { "NvimTreeNormal" }) 8 | vim.g.transparent_groups = vim.list_extend(vim.g.transparent_groups or {}, { "CmpItemKind" }) 9 | vim.g.transparent_groups = vim.list_extend(vim.g.transparent_groups or {}, { "CmpItemMenuDefault" }) 10 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/lspkind.lua: -------------------------------------------------------------------------------- 1 | local status_ok, lspkind = pcall(require, "lspkind") 2 | 3 | if not status_ok then 4 | return 5 | end 6 | 7 | lspkind.init({ 8 | mode = "symbol", 9 | symbol_map = { 10 | NONE = "", 11 | Array = "", 12 | Boolean = "⊨", 13 | Class = "", 14 | Constructor = "", 15 | Key = "", 16 | Namespace = "", 17 | Null = "NULL", 18 | Number = "#", 19 | Object = "⦿", 20 | Package = "", 21 | Property = "", 22 | Reference = "", 23 | Snippet = "", 24 | String = "𝓐", 25 | TypeParameter = "", 26 | Unit = "", 27 | }, 28 | }) 29 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/telescope.lua: -------------------------------------------------------------------------------- 1 | local telescope = require("telescope") 2 | local actions = require("telescope.actions") 3 | 4 | telescope.setup({ 5 | defaults = { 6 | path_display = { "smart" }, 7 | mappings = { 8 | n = { 9 | ["q"] = actions.close, 10 | }, 11 | }, 12 | }, 13 | extensions = { 14 | fzf = { 15 | fuzzy = true, 16 | override_generic_sorter = true, -- override the generic sorter 17 | override_file_sorter = true, -- override the file sorter 18 | } 19 | }, 20 | }) 21 | 22 | require('telescope').load_extension('fzf') 23 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/rainbow-delimiters.lua: -------------------------------------------------------------------------------- 1 | local rainbow_delimiters = require("rainbow-delimiters") 2 | 3 | vim.g.rainbow_delimiters = { 4 | strategy = { 5 | [""] = rainbow_delimiters.strategy["global"], 6 | vim = rainbow_delimiters.strategy["local"], 7 | }, 8 | query = { 9 | [""] = "rainbow-delimiters", 10 | lua = "rainbow-blocks", 11 | }, 12 | highlight = { 13 | "RainbowDelimiterRed", 14 | "RainbowDelimiterYellow", 15 | "RainbowDelimiterBlue", 16 | "RainbowDelimiterOrange", 17 | "RainbowDelimiterGreen", 18 | "RainbowDelimiterViolet", 19 | "RainbowDelimiterCyan", 20 | }, 21 | } 22 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/nvim-lint.lua: -------------------------------------------------------------------------------- 1 | -- local lint = require("lint") 2 | -- 3 | -- lint.linters_by_ft = { 4 | -- javascript = { "eslint_d" }, 5 | -- typescript = { "eslint_d" }, 6 | -- javascriptreact = { "eslint_d" }, 7 | -- typescriptreact = { "eslint_d" }, 8 | -- python = { "pylint" }, 9 | -- } 10 | -- 11 | -- local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) 12 | -- 13 | -- vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { 14 | -- group = lint_augroup, 15 | -- callback = function() 16 | -- lint.try_lint() 17 | -- end 18 | -- }) 19 | -- 20 | -- vim.keymap.set("n", "l", function() 21 | -- lint.try_lint() 22 | -- end) 23 | -------------------------------------------------------------------------------- /.config/polybar/scripts/updates.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then 4 | updates_arch=0 5 | fi 6 | 7 | if ! updates_aur=$(yay -Qum 2> /dev/null | wc -l); then 8 | # if ! updates_aur=$(paru -Qum 2> /dev/null | wc -l); then 9 | # if ! updates_aur=$(cower -u 2> /dev/null | wc -l); then 10 | # if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then 11 | # if ! updates_aur=$(pikaur -Qua 2> /dev/null | wc -l); then 12 | # if ! updates_aur=$(rua upgrade --printonly 2> /dev/null | wc -l); then 13 | updates_aur=0 14 | fi 15 | 16 | updates=$((updates_arch + updates_aur)) 17 | 18 | if [ "$updates" -gt 0 ]; then 19 | echo "# $updates" 20 | else 21 | echo "" 22 | fi 23 | -------------------------------------------------------------------------------- /.config/polybar/scripts/executable_updates.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then 4 | updates_arch=0 5 | fi 6 | 7 | if ! updates_aur=$(yay -Qum 2> /dev/null | wc -l); then 8 | # if ! updates_aur=$(paru -Qum 2> /dev/null | wc -l); then 9 | # if ! updates_aur=$(cower -u 2> /dev/null | wc -l); then 10 | # if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then 11 | # if ! updates_aur=$(pikaur -Qua 2> /dev/null | wc -l); then 12 | # if ! updates_aur=$(rua upgrade --printonly 2> /dev/null | wc -l); then 13 | updates_aur=0 14 | fi 15 | 16 | updates=$((updates_arch + updates_aur)) 17 | 18 | if [ "$updates" -gt 0 ]; then 19 | echo "# $updates" 20 | else 21 | echo "" 22 | fi 23 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/conform.lua: -------------------------------------------------------------------------------- 1 | require("conform").setup({ 2 | formatters_by_fit = { 3 | -- javascript = { "prettier" }, 4 | -- typescript = { "prettier" }, 5 | javascript = { { "prettierd", "prettier" } }, 6 | typescript = { { "prettierd", "prettier" } }, 7 | javascriptreact = { "prettier" }, 8 | typescriptreact = { "prettier" }, 9 | css = { "prettier" }, 10 | html = { "prettier" }, 11 | json = { "prettier" }, 12 | yaml = { "prettier" }, 13 | markdown = { "prettier" }, 14 | graphql = { "prettier" }, 15 | python = { "isort", "black" }, 16 | lua = { "stylua" }, 17 | }, 18 | format_on_save = { 19 | lsp_fallback = true, 20 | timeout_ms = 1000, 21 | } 22 | }) 23 | -------------------------------------------------------------------------------- /.config/awesome/config/error-handling.lua: -------------------------------------------------------------------------------- 1 | local naughty = require("naughty") 2 | 3 | if awesome.startup_errors then 4 | naughty.notify({ 5 | preset = naughty.config.presets.critical, 6 | title = "Oops, there were errors during startup!", 7 | text = awesome.startup_errors, 8 | }) 9 | end 10 | 11 | -- Handle runtime errors after startup 12 | do 13 | local in_error = false 14 | awesome.connect_signal("debug::error", function(err) 15 | -- Make sure we don't go into an endless error loop 16 | if in_error then 17 | return 18 | end 19 | in_error = true 20 | 21 | naughty.notify({ 22 | preset = naughty.config.presets.critical, 23 | title = "Oops, an error happened!", 24 | text = tostring(err), 25 | }) 26 | in_error = false 27 | end) 28 | end 29 | -------------------------------------------------------------------------------- /.config/awesome/config/menu.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local hotkeys_popup = require("awful.hotkeys_popup") 3 | local beautiful = require("beautiful") 4 | 5 | local myawesomemenu = { 6 | { 7 | "hotkeys", 8 | function() 9 | hotkeys_popup.show_help(nil, awful.screen.focused()) 10 | end, 11 | }, 12 | { "manual", user.terminal .. " -e man awesome" }, 13 | { "edit config", user.editor_cmd .. " " .. awesome.conffile }, 14 | { "restart", awesome.restart }, 15 | { 16 | "quit", 17 | function() 18 | awesome.quit() 19 | end, 20 | }, 21 | } 22 | 23 | local mymainmenu = awful.menu({ 24 | items = { 25 | { "awesome", myawesomemenu, beautiful.awesome_icon }, 26 | { "open terminal", user.terminal }, 27 | }, 28 | }) 29 | 30 | return mymainmenu 31 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/treesitter.lua: -------------------------------------------------------------------------------- 1 | require("ts_context_commentstring").setup() 2 | vim.g.skip_ts_context_commentstring_module = true 3 | 4 | local treesitter_configs = require("nvim-treesitter.configs") 5 | 6 | treesitter_configs.setup({ 7 | highlight = { enable = true }, 8 | ensure_installed = { 9 | "vim", 10 | "vimdoc", 11 | "lua", 12 | "javascript", 13 | "typescript", 14 | "json", 15 | "tsx", 16 | "yaml", 17 | "css", 18 | "html", 19 | "prisma", 20 | "markdown", 21 | "markdown_inline", 22 | "c", 23 | "gitignore", 24 | "bash", 25 | }, 26 | sync_install = true, 27 | indent = { enable = true }, 28 | incremental_selection = { enable = true }, 29 | autotag = { 30 | enable = true, 31 | enable_close_on_slash = false, 32 | }, 33 | }) 34 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/mason.lua: -------------------------------------------------------------------------------- 1 | local status_ok, mason = pcall(require, "mason") 2 | local mason_lsp_status_ok, mason_lsp = pcall(require, "mason-lspconfig") 3 | 4 | local mason_tool_installer = require("mason-tool-installer") 5 | 6 | if not status_ok then 7 | return 8 | end 9 | if not mason_lsp_status_ok then 10 | return 11 | end 12 | 13 | mason.setup({ 14 | ensure_installed = { 15 | "lua-language-server", 16 | "html", 17 | "cssls", 18 | "tailwindcss", 19 | "typescript-language-server", 20 | "prettier", 21 | "rust-analyzer" 22 | }, 23 | }) 24 | 25 | mason_lsp.setup() 26 | 27 | mason_tool_installer.setup({ 28 | ensure_installed = { 29 | "prettier", 30 | "stylua", 31 | "isort", 32 | "black", 33 | "eslint_d", 34 | "pylint" 35 | } 36 | }) 37 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/bufferline.lua: -------------------------------------------------------------------------------- 1 | local status_ok, bufferline = pcall(require, "bufferline") 2 | 3 | bufferline.setup({ 4 | options = { 5 | mode = "buffers", -- set to "tabs" to only show tabpages instead 6 | always_show_bufferline = false, 7 | show_buffer_close_icons = true, 8 | color_icons = true, 9 | separator_style = "slant", 10 | }, 11 | highlights = { 12 | separator = { 13 | fg = "#1a1b26", 14 | bg = "#24283b", 15 | }, 16 | separator_selected = { 17 | fg = "#1a1b26", 18 | }, 19 | background = { 20 | fg = "#565f89", 21 | bg = "#24283b", 22 | }, 23 | buffer_selected = { 24 | fg = "#c0caf5", 25 | bold = true, 26 | hl_name = "asdf", 27 | }, 28 | fill = { 29 | bg = "#1a1b26", 30 | }, 31 | }, 32 | }) 33 | -------------------------------------------------------------------------------- /.config/fish/completions/fisher.fish: -------------------------------------------------------------------------------- 1 | complete --command fisher --exclusive --long help --description "Print help" 2 | complete --command fisher --exclusive --long version --description "Print version" 3 | complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins" 4 | complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins" 5 | complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins" 6 | complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex" 7 | complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)" 8 | -------------------------------------------------------------------------------- /.config/fish/themes/Catppuccin Mocha.theme: -------------------------------------------------------------------------------- 1 | # name: 'Catppuccin mocha' 2 | # url: 'https://github.com/catppuccin/fish' 3 | # preferred_background: 1e1e2e 4 | 5 | fish_color_normal cdd6f4 6 | fish_color_command 89b4fa 7 | fish_color_param f2cdcd 8 | fish_color_keyword f38ba8 9 | fish_color_quote a6e3a1 10 | fish_color_redirection f5c2e7 11 | fish_color_end fab387 12 | fish_color_error f38ba8 13 | fish_color_gray 6c7086 14 | fish_color_selection --background=313244 15 | fish_color_search_match --background=313244 16 | fish_color_operator f5c2e7 17 | fish_color_escape f2cdcd 18 | fish_color_autosuggestion 6c7086 19 | fish_color_cancel f38ba8 20 | fish_color_cwd f9e2af 21 | fish_color_user 94e2d5 22 | fish_color_host 89b4fa 23 | fish_pager_color_progress 6c7086 24 | fish_pager_color_prefix f5c2e7 25 | fish_pager_color_completion cdd6f4 26 | fish_pager_color_description 6c7086 27 | -------------------------------------------------------------------------------- /.config/fish/themes/Catppuccin Frappe.theme: -------------------------------------------------------------------------------- 1 | # name: 'Catppuccin frappe' 2 | # url: 'https://github.com/catppuccin/fish' 3 | # preferred_background: 303446 4 | 5 | fish_color_normal c6d0f5 6 | fish_color_command 8caaee 7 | fish_color_param eebebe 8 | fish_color_keyword e78284 9 | fish_color_quote a6d189 10 | fish_color_redirection f4b8e4 11 | fish_color_end ef9f76 12 | fish_color_error e78284 13 | fish_color_gray 737994 14 | fish_color_selection --background=414559 15 | fish_color_search_match --background=414559 16 | fish_color_operator f4b8e4 17 | ish_color_escape eebebe 18 | fish_color_autosuggestion 737994 19 | fish_color_cancel e78284 20 | fish_color_cwd e5c890 21 | fish_color_user 81c8be 22 | fish_color_host 8caaee 23 | fish_pager_color_progress 737994 24 | fish_pager_color_prefix f4b8e4 25 | fish_pager_color_completion c6d0f5 26 | fish_pager_color_description 737994 27 | -------------------------------------------------------------------------------- /.config/fish/themes/Catppuccin Latte.theme: -------------------------------------------------------------------------------- 1 | # name: 'Catppuccin latte' 2 | # url: 'https://github.com/catppuccin/fish' 3 | # preferred_background: eff1f5 4 | 5 | fish_color_normal 4c4f69 6 | fish_color_command 1e66f5 7 | fish_color_param dd7878 8 | fish_color_keyword d20f39 9 | fish_color_quote 40a02b 10 | fish_color_redirection ea76cb 11 | fish_color_end fe640b 12 | fish_color_error d20f39 13 | fish_color_gray 9ca0b0 14 | fish_color_selection --background=ccd0da 15 | fish_color_search_match --background=ccd0da 16 | fish_color_operator ea76cb 17 | fish_color_escape dd7878 18 | fish_color_autosuggestion 9ca0b0 19 | fish_color_cancel d20f39 20 | fish_color_cwd df8e1d 21 | fish_color_user 179299 22 | fish_color_host 1e66f5 23 | fish_pager_color_progress 9ca0b0 24 | fish_pager_color_prefix ea76cb 25 | fish_pager_color_completion 4c4f69 26 | fish_pager_color_description 9ca0b0 27 | -------------------------------------------------------------------------------- /.config/fish/themes/Catppuccin Macchiato.theme: -------------------------------------------------------------------------------- 1 | # name: 'Catppuccin macchiato' 2 | # url: 'https://github.com/catppuccin/fish' 3 | # preferred_background: 24273a 4 | 5 | fish_color_normal cad3f5 6 | fish_color_command 8aadf4 7 | fish_color_param f0c6c6 8 | fish_color_keyword ed8796 9 | fish_color_quote a6da95 10 | fish_color_redirection f5bde6 11 | fish_color_end f5a97f 12 | fish_color_error ed8796 13 | fish_color_gray 6e738d 14 | fish_color_selection --background=363a4f 15 | fish_color_search_match --background=363a4f 16 | fish_color_operator f5bde6 17 | fish_color_escape f0c6c6 18 | fish_color_autosuggestion 6e738d 19 | fish_color_cancel ed8796 20 | fish_color_cwd eed49f 21 | fish_color_user 8bd5ca 22 | fish_color_host 8aadf4 23 | fish_pager_color_progress 6e738d 24 | fish_pager_color_prefix f5bde6 25 | fish_pager_color_completion cad3f5 26 | fish_pager_color_description 6e738d 27 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/java.lua: -------------------------------------------------------------------------------- 1 | local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t") 2 | local capabilities = require("cmp_nvim_lsp").default_capabilities() 3 | 4 | local config = { 5 | cmd = { 6 | "java", 7 | "-Declipse.application=org.eclipse.jdt.ls.core.id1", 8 | "-Dosgi.bundles.defaultStartLevel=4", 9 | "-Declipse.product=org.eclipse.jdt.ls.core.product", 10 | "-Dlog.protocol=true", 11 | "-Dlog.level=ALL", 12 | "-Xmx1g", 13 | "--add-modules=ALL-SYSTEM", 14 | "--add-opens", 15 | "java.base/java.util=ALL-UNNAMED", 16 | "--add-opens", 17 | "java.base/java.lang=ALL-UNNAMED", 18 | 19 | "-jar", 20 | vim.fn.expand("~/.jdtls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar"), 21 | 22 | "-configuration", 23 | 24 | vim.fn.expand("~/.jdtls/config_linux"), 25 | 26 | "-data", 27 | vim.fn.expand("~/.cache/jdtls-workspace/") .. project_name, 28 | }, 29 | root_dir = vim.fs.dirname(vim.fs.find({ "gradlew", ".git", "mvnw" }, { upward = true })[1]), 30 | capabilities = capabilities, 31 | } 32 | require("jdtls").start_or_attach(config) 33 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/indent-blankline.lua: -------------------------------------------------------------------------------- 1 | local highlight = { 2 | "RainbowRed", 3 | "RainbowYellow", 4 | "RainbowBlue", 5 | "RainbowOrange", 6 | "RainbowGreen", 7 | "RainbowViolet", 8 | "RainbowCyan", 9 | } 10 | local hooks = require("ibl.hooks") 11 | -- create the highlight groups in the highlight setup hook, so they are reset 12 | -- every time the colorscheme changes 13 | hooks.register(hooks.type.HIGHLIGHT_SETUP, function() 14 | vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) 15 | vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) 16 | vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" }) 17 | vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" }) 18 | vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" }) 19 | vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" }) 20 | vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" }) 21 | end) 22 | 23 | vim.g.rainbow_delimiters = { highlight = highlight } 24 | require("ibl").setup({ scope = { highlight = highlight } }) 25 | 26 | hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark) 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 💻 Neon's Dotfiles 2 | 3 | My configuration files for Arch Linux. Feel free to use the config *at your own risk* 4 | 5 | ![Rice Screenshot](./images/ricev2.png) 6 | 7 | ## ⚙ Configurations 8 | 9 | - [Alacritty](https://github.com/alacritty/alacritty) 10 | - [Awesome](https://awesomewm.org) 11 | - [Btop](https://github.com/aristocratos/btop) 12 | - [Dmenu](https://tools.suckless.org/dmenu/) 13 | - [Fish](https://fishshell.com) 14 | - [ Neofetch ](https://github.com/dylanaraps/neofetch) 15 | - [ Nitrogen ](https://wiki.archlinux.org/title/Nitrogen) 16 | - [ Neovim ](https://neovim.io) 17 | - [ Picom ](https://wiki.archlinux.org/title/Picom) 18 | - [ Polybar ](https://github.com/polybar/polybar) 19 | - [ Starship ](https://starship.rs/) 20 | - [ Tmux ](https://github.com/tmux/tmux) 21 | 22 | ## 📁 Setup 23 | 24 | Make sure you have [stow](https://www.gnu.org/software/stow/) installed. Then, simply run 25 | ```sh 26 | git clone https://github.com/GoodBoyNeon/dotfiles 27 | cd dotfiles/ 28 | stow . 29 | ``` 30 | **Disclamer:** The above command would OVERWRITE your current config. So make sure you got backups. 31 | 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 GoodBoyNeon 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.config/awesome/theme.lua: -------------------------------------------------------------------------------- 1 | local xresources = require("beautiful.xresources") 2 | local dpi = xresources.apply_dpi 3 | 4 | local theme = {} 5 | 6 | theme.font = "JetBrainsMono Nerd Font 12" 7 | 8 | local catppuccin = { 9 | rosewater = "#f5e0dc", 10 | flamingo = "#f2cdcd", 11 | pink = "#f5c2e7", 12 | mauve = "#cba6f7", 13 | red = "#f38ba8", 14 | maroon = "#eba0ac", 15 | peach = "#fab387", 16 | yellow = "#f9e2af", 17 | green = "#a6e3a1", 18 | teal = "#94e2d5", 19 | sky = "#89dceb", 20 | sapphire = "#74c7ec", 21 | blue = "#89b4fa", 22 | lavender = "#b4befe", 23 | text = "#cdd6f4", 24 | subtext1 = "#bac2de", 25 | subtext0 = "#a6adc8", 26 | overlay2 = "#9399b2", 27 | overlay1 = "#7f849c", 28 | overlay0 = "#6c7086", 29 | surface2 = "#585b70", 30 | surface1 = "#45475a", 31 | surface0 = "#313244", 32 | base = "#1e1e2e", 33 | mantle = "#181825", 34 | crust = "#11111b", 35 | } 36 | 37 | theme.useless_gap = dpi(4) 38 | theme.border_width = dpi(1) 39 | theme.border_color_normal = catppuccin.base 40 | theme.border_color_active = catppuccin.blue 41 | theme.border_color_marked = catppuccin.red 42 | theme.bg_normal = catppuccin.surface0 43 | 44 | theme.gap_single_client = true 45 | 46 | return theme 47 | -------------------------------------------------------------------------------- /.config/fish/completions/tmuxinator.fish: -------------------------------------------------------------------------------- 1 | function __fish_tmuxinator_using_command 2 | set cmd (commandline -opc) 3 | if [ (count $cmd) -gt 1 ] 4 | if [ $argv[1] = $cmd[2] ] 5 | return 0 6 | end 7 | end 8 | return 1 9 | end 10 | 11 | set __fish_tmuxinator_program_cmd (commandline -o)[1] 12 | 13 | function __fish_tmuxinator_program 14 | eval "$__fish_tmuxinator_program_cmd $argv" 15 | end 16 | 17 | complete -f -c $__fish_tmuxinator_program_cmd -a '(__fish_tmuxinator_program completions start)' 18 | complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_use_subcommand' -x -a "(__fish_tmuxinator_program commands)" 19 | complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_tmuxinator_using_command start' -a "(__fish_tmuxinator_program completions start)" 20 | complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_tmuxinator_using_command open' -a "(__fish_tmuxinator_program completions open)" 21 | complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_tmuxinator_using_command copy' -a "(__fish_tmuxinator_program completions copy)" 22 | complete -f -c $__fish_tmuxinator_program_cmd -n '__fish_tmuxinator_using_command delete' -a "(__fish_tmuxinator_program completions delete)" 23 | 24 | abbr --add mux "tmuxinator" 25 | -------------------------------------------------------------------------------- /.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | if status is-interactive 2 | neofetch 3 | starship init fish | source 4 | end 5 | 6 | set fish_greeting 7 | fish_vi_key_bindings 8 | 9 | # Aliases 10 | alias ls "exa -l --icons --git -a" 11 | alias lt "exa --tree --level=2 --long --icons --git" 12 | alias logout "pkill -u neon" 13 | alias config '/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME/' 14 | alias code 'code --disable-gpu' 15 | 16 | alias q 'exit' 17 | alias :q 'exit' 18 | alias g 'git' 19 | 20 | # Environment variables 21 | set -gx EDITOR "/usr/bin/nvim" 22 | export GCM_CREDENTIAL_STORE=cache 23 | 24 | bind --mode insert --sets-mode default jk repaint 25 | bind --mode insert --sets-mode default kj repaint 26 | 27 | function mkcd -d "Create a directory and set CWD" 28 | command mkdir $argv 29 | if test $status = 0 30 | switch $argv[(count $argv)] 31 | case '-*' 32 | case '*' 33 | cd $argv[(count $argv)] 34 | return 35 | end 36 | end 37 | end 38 | 39 | function pa -d "(A)ttach to a (P)roject (tmuxinator)" 40 | command tmuxinator start $argv 41 | end 42 | 43 | 44 | # bun 45 | set --export BUN_INSTALL "$HOME/.bun" 46 | set --export PATH $BUN_INSTALL/bin $PATH 47 | 48 | # deno 49 | set --export DENO_INSTALL "$HOME/.deno" 50 | set --export PATH $DENO_INSTALL/bin $PATH 51 | 52 | fish_add_path /home/neon/.spicetify 53 | thefuck --alias | source 54 | # eval $(fzf_key_bindings) 55 | zoxide init fish | source 56 | -------------------------------------------------------------------------------- /.config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | import = [ 2 | "~/.config/alacritty/themes/neotokyo.toml" 3 | ] 4 | 5 | [env] 6 | TERM = "xterm-256color" 7 | 8 | [window] 9 | opacity = 0.75 10 | # opacity = 1 11 | blur = true 12 | decorations = "Buttonless" 13 | 14 | [window.padding] 15 | x = 9 16 | y = 9 17 | 18 | [cursor.style] 19 | shape = "Block" 20 | 21 | [font] 22 | size = 14.0 23 | 24 | [font.normal] 25 | family = "JetBrainsMono Nerd Font" 26 | style = "Regular" 27 | 28 | [font.bold] 29 | family = "JetBrainsMono Nerd Font" 30 | style = "Bold" 31 | 32 | [font.bold_italic] 33 | family = "JetBrainsMono Nerd Font" 34 | style = "Bold Italic" 35 | 36 | [font.italic] 37 | family = "JetBrainsMono Nerd Font" 38 | style = "Italic" 39 | 40 | 41 | [[keyboard.bindings]] 42 | action = "Paste" 43 | key = "Paste" 44 | 45 | [[keyboard.bindings]] 46 | action = "Copy" 47 | key = "Copy" 48 | 49 | [[keyboard.bindings]] 50 | action = "ClearLogNotice" 51 | key = "L" 52 | mods = "Control" 53 | 54 | [[keyboard.bindings]] 55 | chars = "\f" 56 | key = "L" 57 | mode = "~Vi|~Search" 58 | mods = "Control" 59 | 60 | [[keyboard.bindings]] 61 | action = "ScrollPageUp" 62 | key = "K" 63 | mode = "~Alt" 64 | mods = "Alt|Shift" 65 | 66 | [[keyboard.bindings]] 67 | action = "ScrollPageDown" 68 | key = "J" 69 | mode = "~Alt" 70 | mods = "Alt|Shift" 71 | 72 | [[keyboard.bindings]] 73 | action = "ScrollToTop" 74 | key = "Home" 75 | mode = "~Alt" 76 | mods = "Shift" 77 | 78 | [[keyboard.bindings]] 79 | action = "ScrollToBottom" 80 | key = "End" 81 | mode = "~Alt" 82 | mods = "Shift" 83 | 84 | [mouse] 85 | hide_when_typing = true 86 | -------------------------------------------------------------------------------- /.config/polybar/backup.txt: -------------------------------------------------------------------------------- 1 | 2 | [module/google] 3 | type = custom/text 4 | content =  5 | content-padding = 1 6 | content-foreground = ${colors.fg} 7 | content-underline = ${colors.adapta-cyan} 8 | click-left = xdg-open https://www.google.com/ & 9 | 10 | [module/amazon] 11 | type = custom/text 12 | content =  13 | content-padding = 1 14 | content-margin = 1 15 | content-foreground = ${colors.fg} 16 | content-underline = ${colors.adapta-cyan} 17 | click-left = xdg-open https://www.amazon.co.jp/ & 18 | ;click-left = xdg-open https://www.amazon.com/ 19 | 20 | [module/github] 21 | type = custom/text 22 | content =  23 | content-padding = 1 24 | ;content-margin = 1 25 | content-foreground = ${colors.fg} 26 | content-underline = ${colors.adapta-cyan} 27 | click-left = xdg-open https://www.github.com/ & 28 | 29 | [module/reddit] 30 | type = custom/text 31 | content =  32 | content-padding = 1 33 | content-margin = 1 34 | content-foreground = ${colors.fg} 35 | content-underline = ${colors.adapta-cyan} 36 | click-left = xdg-open https://www.reddit.com/ & 37 | 38 | [module/facebook] 39 | type = custom/text 40 | content =  41 | content-padding = 1 42 | ;content-margin = 1 43 | content-foreground = ${colors.fg} 44 | content-underline = ${colors.adapta-cyan} 45 | click-left = xdg-open https://www.facebook.com/ & 46 | 47 | [module/youtube] 48 | type = custom/text 49 | content =  50 | ;content =  51 | content-padding = 1 52 | content-margin = 1 53 | content-foreground = ${colors.fg} 54 | content-underline = ${colors.adapta-cyan} 55 | click-left = xdg-open https://www.youtube.com/ & 56 | ;========================================================== 57 | -------------------------------------------------------------------------------- /.config/tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | # Set prefix to Alt a 2 | unbind C-b 3 | set -g prefix M-a 4 | bind-key M-a send-prefix 5 | 6 | unbind % 7 | bind \\ split-window -h 8 | 9 | unbind '"' 10 | bind - split-window -v 11 | 12 | # Shift Alt j/k to switch windows 13 | bind -n M-j previous-window 14 | bind -n M-k next-window 15 | 16 | # Start indexing of windows from 1 17 | set -g base-index 1 18 | set -g pane-base-index 1 19 | set-window-option -g pane-base-index 1 20 | 21 | # Enable vim movements in tmux 22 | set-window-option -g mode-keys vi 23 | 24 | #--# KEYBINDINGS #--# 25 | bind-key -T copy-mode-vi v send-keys -X begin-selection 26 | bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle 27 | bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel 28 | 29 | # Reload command 30 | unbind r 31 | bind r source-file ~/.config/tmux/tmux.conf 32 | 33 | set-option -g default-shell $SHELL 34 | 35 | bind -r j resize-pane -D 2 36 | bind -r k resize-pane -U 2 37 | bind -r l resize-pane -R 2 38 | bind -r h resize-pane -L 2 39 | 40 | bind -r m resize-pane -Z 41 | 42 | # Enable mouse 43 | set -g mouse on 44 | 45 | # Makes easier to drag and select with mouse 46 | unbind -T copy-mode-vi MouseDragEnd1Pane 47 | 48 | # set-option -sa terminal-overrides ',alacritty:RGB' 49 | # set-option -sa terminal-overrides ',xterm-256color:RGB' 50 | set-option -sa terminal-overrides ",xterm*:Tc" 51 | 52 | set -g @plugin 'tmux-plugins/tpm' 53 | set -g @plugin 'tmux-plugins/tmux-sensible' 54 | 55 | set -g @plugin 'christoomey/vim-tmux-navigator' 56 | set -g @plugin 'tmux-plugins/tmux-yank' 57 | 58 | # Themes 59 | set -g @plugin "janoamaral/tokyo-night-tmux" 60 | # set -g @plugin 'catppuccin/tmux' 61 | 62 | run '~/.tmux/plugins/tpm/tpm' 63 | -------------------------------------------------------------------------------- /.config/awesome/config/client.lua: -------------------------------------------------------------------------------- 1 | local beautiful = require("beautiful") 2 | local awful = require("awful") 3 | 4 | client.connect_signal("mouse::enter", function(c) 5 | c:emit_signal("request::activate", "mouse_enter", { raise = false }) 6 | end) 7 | 8 | client.connect_signal("focus", function(c) 9 | c.border_color = beautiful.border_focus 10 | end) 11 | client.connect_signal("unfocus", function(c) 12 | c.border_color = beautiful.border_normal 13 | end) 14 | -- }}} 15 | client.connect_signal("focus", function(c) 16 | c.border_width = beautiful.border_width 17 | end) 18 | client.connect_signal("unfocus", function(c) 19 | c.border_width = beautiful.border_width 20 | end) 21 | 22 | -- Signal function to execute when a new client appears. 23 | client.connect_signal("manage", function(c) 24 | -- Set the windows at the slave, 25 | -- i.e. put it at the end of others instead of setting it master. 26 | if not awesome.startup then 27 | awful.client.setslave(c) 28 | end 29 | 30 | if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then 31 | -- Prevent clients from being unreachable after screen count changes. 32 | awful.placement.no_offscreen(c) 33 | end 34 | end) 35 | 36 | -- Grab the focus on opened window when switching workspaces 37 | tag.connect_signal("property::selected", function(t) 38 | local selected = tostring(t.selected) == "false" 39 | if selected then 40 | local focus_timer = timer({ timeout = 0.2 }) 41 | focus_timer:connect_signal("timeout", function() 42 | local c = awful.mouse.client_under_pointer() 43 | if not (c == nil) then 44 | client.focus = c 45 | c:raise() 46 | end 47 | focus_timer:stop() 48 | end) 49 | focus_timer:start() 50 | end 51 | end) 52 | -------------------------------------------------------------------------------- /.config/nvim/lua/user/opts.lua: -------------------------------------------------------------------------------- 1 | -->> Line Number Bar 2 | vim.opt.number = true 3 | vim.opt.relativenumber = true 4 | vim.opt.nuw = 6 5 | vim.opt.signcolumn = "yes" 6 | 7 | -->> Searching 8 | vim.opt.ignorecase = true 9 | vim.opt.smartcase = true 10 | vim.opt.hlsearch = true 11 | 12 | -->> Indentation 13 | vim.opt.softtabstop = 2 14 | vim.opt.smartindent = true 15 | vim.opt.breakindent = true 16 | vim.opt.smarttab = true 17 | vim.opt.tabstop = 2 -- 2 spaces for 18 | vim.opt.shiftwidth = 2 -- 2 spaces for indent width 19 | vim.opt.expandtab = true -- convert tab -> spaces 20 | 21 | 22 | vim.opt.mouse = '' -- disable mouse 23 | vim.opt.laststatus = 2 -- have statusline on all windows 24 | vim.opt.scrolloff = 6 -- scrolling offset (vertical) 25 | vim.opt.sidescrolloff = 6 -- scrolling offset (horizontal) 26 | vim.opt.wrap = false -- disable line wrapping 27 | vim.opt.winblend = 10 -- transparency for floating windows 28 | vim.opt.cursorline = true -- enable line highlight (doesn't work in transparency mode) 29 | -- vim.opt.backupskip = "/tmp/*,/private/tmp/*" 30 | 31 | vim.scriptencoding = "utf-8" 32 | vim.opt.encoding = "utf-8" 33 | vim.opt.fileencoding = "utf-8" 34 | vim.opt.backspace = "start,eol,indent" 35 | vim.opt.path:append({ "***" }) 36 | vim.opt.wildignore:append({ "*/node_modules/*" }) 37 | vim.opt.clipboard:append({ "unnamedplus" }) 38 | 39 | -- Undercurl 40 | vim.cmd([[let &t_Cs = "\e[4:3m"]]) 41 | vim.cmd([[let &t_Cs = "\e[4:0m"]]) 42 | 43 | -- file tree 44 | vim.cmd("let g:netrw_liststyle = 3") 45 | 46 | -- Turn off paste mode when leaving insert 47 | vim.api.nvim_create_autocmd("InsertLeave", { 48 | pattern = "*", 49 | command = "set nopaste", 50 | }) 51 | 52 | vim.opt.formatoptions:append({ "r" }) 53 | -------------------------------------------------------------------------------- /.config/polybar/checkupdates.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Named pipe 4 | NPIPE="/tmp/.polybar-checkupdates-log" 5 | 6 | # Create named pipe 7 | if [ ! -p "/tmp/.polybar-checkupdates-log" ]; then 8 | mkfifo $NPIPE 9 | fi 10 | 11 | # Progress spin (background) 12 | { 13 | while true 14 | do 15 | for _ in {1..7} 16 | do 17 | echo " ⠠" > $NPIPE 18 | sleep 0.02 19 | echo " ⠐" > $NPIPE 20 | sleep 0.02 21 | echo " ⠂" > $NPIPE 22 | sleep 0.02 23 | echo " ⠄" > $NPIPE 24 | sleep 0.02 25 | done 26 | for _ in {1..5} 27 | do 28 | echo " ⠠" > $NPIPE 29 | sleep 0.07 30 | echo " ⠐" > $NPIPE 31 | sleep 0.07 32 | echo " ⠂" > $NPIPE 33 | sleep 0.07 34 | echo " ⠄" > $NPIPE 35 | sleep 0.07 36 | done 37 | for _ in {1..3} 38 | do 39 | echo " ⠠" > $NPIPE 40 | sleep 0.1 41 | echo " ⠐" > $NPIPE 42 | sleep 0.1 43 | echo " ⠂" > $NPIPE 44 | sleep 0.1 45 | echo " ⠄" > $NPIPE 46 | sleep 0.1 47 | done 48 | done 49 | } & 50 | 51 | # Update package db 52 | for _ in {1..15} 53 | do 54 | yay -Syy &> /dev/null 55 | YAYCODE=$? 56 | if [[ YAYCODE -eq 0 ]]; then 57 | break 58 | fi 59 | sleep 5 60 | done 61 | 62 | # If yay update failed 15 times exit with dizzy face 63 | if [[ ! YAYCODE -eq 0 ]]; then 64 | echo "ﮙ ?" > $NPIPE 65 | 66 | # Kill the latest background process (progress spin) 67 | kill $! 68 | 69 | exit 70 | fi 71 | 72 | # If yay update successed count packages 73 | if ! updates=$(yay -Qu 2> /dev/null | wc -l); then 74 | updates=0 75 | fi 76 | 77 | if [ "$updates" -eq 0 ]; then 78 | result=" $updates" 79 | else 80 | result=" $updates" 81 | fi 82 | 83 | # Kill the latest background process (progress spin) 84 | kill $! 85 | 86 | # Output result 87 | echo $result > /tmp/.polybar-checkupdates-log 88 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/alpha.lua: -------------------------------------------------------------------------------- 1 | local status_ok, alpha = pcall(require, "alpha") 2 | 3 | if not status_ok then 4 | return 5 | end 6 | 7 | local dashboard = require("alpha.themes.dashboard") 8 | 9 | local ascii = { 10 | " ████████████████ ", 11 | " ██████░░░░░░▒▒▒▒░░▓▓▓▓██████ ", 12 | " ████░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓██ ", 13 | " ██░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓████ ", 14 | " ██░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓██", 15 | " ██░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓██", 16 | " ██░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓██", 17 | "██░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓", 18 | "██░░░░████▒▒▒▒▒▒▒▒▒▒████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓", 19 | "██░░██▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓", 20 | "██░░██▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓", 21 | "██▒▒██▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓", 22 | "██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓", 23 | "██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓", 24 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓██", 25 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓██", 26 | " ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓██ ", 27 | "██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓██", 28 | "████████████████████████████████████████████████", 29 | } 30 | 31 | dashboard.section.buttons.val = { 32 | dashboard.button("r", " Restore Previous Session", "SessionRestore"), 33 | dashboard.button("s", " Settings", ":e $MYVIMRC | :cd %:p:h"), 34 | dashboard.button("q", " Quit NVIM", ":qa"), 35 | } 36 | for _, button in ipairs(dashboard.section.buttons.val) do 37 | button.opts.hl = "AlphaButtons" 38 | button.opts.hl_shortcut = "AlphaShortcut" 39 | end 40 | dashboard.section.header.val = ascii 41 | dashboard.section.footer.val = { "~ don't forget your coffee ;) ~" } 42 | 43 | alpha.setup(dashboard.opts) 44 | 45 | vim.cmd([[autocmd FileType alpha setlocal nofoldenable]]) 46 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/neotree.lua: -------------------------------------------------------------------------------- 1 | require("neo-tree").setup({ 2 | close_if_last_window = true, 3 | popup_border_style = "single", 4 | enable_git_status = true, 5 | enable_modified_markers = true, 6 | enable_diagnostics = true, 7 | sort_case_insensitive = true, 8 | default_component_configs = { 9 | indent = { 10 | with_markers = true, 11 | with_expanders = true, 12 | }, 13 | modified = { 14 | symbol = " ", 15 | highlight = "NeoTreeModified", 16 | }, 17 | icon = { 18 | folder_closed = "", 19 | folder_open = "", 20 | folder_empty = "", 21 | folder_empty_open = "", 22 | }, 23 | git_status = { 24 | symbols = { 25 | -- Change type 26 | added = "", 27 | deleted = "", 28 | modified = "", 29 | renamed = "", 30 | -- Status type 31 | untracked = "", 32 | ignored = "", 33 | unstaged = "", 34 | staged = "", 35 | conflict = "", 36 | }, 37 | }, 38 | }, 39 | window = { 40 | position = "float", 41 | width = 35, 42 | }, 43 | filesystem = { 44 | use_libuv_file_watcher = true, 45 | filtered_items = { 46 | hide_dotfiles = false, 47 | hide_gitignored = false, 48 | hide_by_name = { 49 | "node_modules", 50 | }, 51 | never_show = { 52 | ".DS_Store", 53 | "thumbs.db", 54 | }, 55 | }, 56 | }, 57 | source_selector = { 58 | winbar = true, 59 | sources = { 60 | { source = "filesystem", display_name = "  Files " }, 61 | { source = "buffers", display_name = "  Bufs " }, 62 | { source = "git_status", display_name = "  Git " }, 63 | }, 64 | }, 65 | event_handlers = { 66 | { 67 | event = "neo_tree_window_after_open", 68 | handler = function(args) 69 | if args.position == "left" or args.position == "right" then 70 | vim.cmd("wincmd =") 71 | end 72 | end, 73 | }, 74 | { 75 | event = "neo_tree_window_after_close", 76 | handler = function(args) 77 | if args.position == "left" or args.position == "right" then 78 | vim.cmd("wincmd =") 79 | end 80 | end, 81 | }, 82 | }, 83 | }) 84 | -------------------------------------------------------------------------------- /.config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR Z_DATA_DIR:/home/neon/\x2elocal/share/z 4 | SETUVAR __fish_initialized:3400 5 | SETUVAR _fisher_catppuccin_2F_fish_files:\x7e/\x2econfig/fish/themes/Catppuccin\x20Frappe\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Latte\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Macchiato\x2etheme\x1e\x7e/\x2econfig/fish/themes/Catppuccin\x20Mocha\x2etheme 6 | SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish 7 | SETUVAR _fisher_plugins:jorgebucaran/fisher 8 | SETUVAR _fisher_upgraded_to_4_4:\x1d 9 | SETUVAR fish_color_autosuggestion:555\x1ebrblack 10 | SETUVAR fish_color_cancel:\x2dr 11 | SETUVAR fish_color_command:blue 12 | SETUVAR fish_color_comment:red 13 | SETUVAR fish_color_cwd:green 14 | SETUVAR fish_color_cwd_root:red 15 | SETUVAR fish_color_end:green 16 | SETUVAR fish_color_error:brred 17 | SETUVAR fish_color_escape:brcyan 18 | SETUVAR fish_color_gray:6c7086 19 | SETUVAR fish_color_history_current:\x2d\x2dbold 20 | SETUVAR fish_color_host:normal 21 | SETUVAR fish_color_host_remote:yellow 22 | SETUVAR fish_color_keyword:f38ba8 23 | SETUVAR fish_color_normal:normal 24 | SETUVAR fish_color_operator:brcyan 25 | SETUVAR fish_color_option:\x1d 26 | SETUVAR fish_color_param:cyan 27 | SETUVAR fish_color_quote:yellow 28 | SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold 29 | SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d111 30 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 31 | SETUVAR fish_color_status:red 32 | SETUVAR fish_color_user:brgreen 33 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 34 | SETUVAR fish_greeting:\x1d 35 | SETUVAR fish_key_bindings:fish_vi_key_bindings 36 | SETUVAR fish_pager_color_background:\x1d 37 | SETUVAR fish_pager_color_completion:normal 38 | SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di 39 | SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 40 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 41 | SETUVAR fish_pager_color_secondary_background:\x1d 42 | SETUVAR fish_pager_color_secondary_completion:\x1d 43 | SETUVAR fish_pager_color_secondary_description:\x1d 44 | SETUVAR fish_pager_color_secondary_prefix:\x1d 45 | SETUVAR fish_pager_color_selected_background:\x2dr 46 | SETUVAR fish_pager_color_selected_completion:\x1d 47 | SETUVAR fish_pager_color_selected_description:\x1d 48 | SETUVAR fish_pager_color_selected_prefix:\x1d 49 | SETUVAR fish_user_paths:/home/neon/\x2espicetify 50 | -------------------------------------------------------------------------------- /.config/nvim/lua/user/maps.lua: -------------------------------------------------------------------------------- 1 | local map = vim.keymap.set 2 | local opts = { noremap = false, silent = true } 3 | 4 | vim.g.mapleader = " " 5 | 6 | map({ "n", "v" }, "", "", { silent = true }) 7 | vim.keymap.set("x", "p", [["_dP]]) 8 | 9 | -- BUFFERS -- 10 | map("n", "J", ":bprev", opts) 11 | map("n", "K", ":bnext", opts) 12 | map("n", "X", ":bdelete", opts) 13 | 14 | map("n", "te", "tabedit", opts) -- new tab 15 | map("n", "", "tabnext", opts) 16 | 17 | -- NORMAL MODE -- 18 | map("n", ";", ":") 19 | 20 | map("n", "x", '"_x') -- Delete char without yanking 21 | map("n", "dw", "vbd") -- Delete word backwards 22 | 23 | map("n", "B", "^", opts) -- go to start 24 | map("n", "E", "$", opts) -- go to end 25 | 26 | map("n", "hl", "nohl") 27 | 28 | -- window 29 | map("n", "ss", "splitw", opts) 30 | map("n", "sv", "vsplitw", opts) 31 | map("n", "sx", "close", opts) 32 | 33 | -- telescope 34 | map("n", "ff", function() 35 | require("telescope.builtin").find_files({ hidden_files = true }) 36 | end, opts) 37 | map("n", "lg", function() 38 | require("telescope.builtin").live_grep() 39 | end, opts) 40 | 41 | map("n", "b", function() 42 | require("telescope.builtin").buffers() 43 | end, opts) 44 | map("n", "r", function() 45 | require("telescope.builtin").resume() 46 | end, opts) 47 | map("n", "d", function() 48 | require("telescope.builtin").diagnostics() 49 | end, opts) 50 | map("n", "ft", "TodoTelescope") 51 | 52 | -- auto-session 53 | map("n", "wr", "SessionRestore") 54 | map("n", "ws", "SessionSave") 55 | 56 | -- todo-comments 57 | map("n", "[t", function() 58 | require("todo-comments").jump_prev() 59 | end) 60 | map("n", "]t", function() 61 | require("todo-comments").jump_next() 62 | end) 63 | 64 | -- trouble 65 | map("n", "xx", function() require("trouble").toggle() end) 66 | map("n", "xw", function() require("trouble").toggle("workspace_diagnostics") end) 67 | map("n", "xd", function() require("trouble").toggle("document_diagnostics") end) 68 | map("n", "xq", function() require("trouble").toggle("quickfix") end) 69 | map("n", "xl", function() require("trouble").toggle("loclist") end) 70 | map("n", "gR", function() require("trouble").toggle("lsp_references") end) 71 | 72 | -- neo-tree 73 | map("n", "ee", "Neotree toggle float") 74 | map("n", "es", "Neotree toggle right") 75 | 76 | -- INSERT MODE -- 77 | 78 | -- map("i", "jk", "") 79 | -- map("i", "kj", "") 80 | -- !: ^^ Replaced by better-escape.nvim plugin 81 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/cmp.lua: -------------------------------------------------------------------------------- 1 | local cmp_status_ok, cmp = pcall(require, "cmp") 2 | local luasnip_status_ok, luasnip = pcall(require, "luasnip") 3 | local lspkind_status_ok, lspkind = pcall(require, "lspkind") 4 | local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") 5 | 6 | if not cmp_status_ok then 7 | return 8 | end 9 | if not luasnip_status_ok then 10 | return 11 | end 12 | if not lspkind_status_ok then 13 | return 14 | end 15 | if not lspconfig_status_ok then 16 | return 17 | end 18 | 19 | luasnip.config.setup() 20 | 21 | -- load friendly-snippets: 22 | require("luasnip.loaders.from_vscode").lazy_load() 23 | vim.opt.completeopt = "menu,menuone,noselect" 24 | 25 | cmp.setup({ 26 | snippet = { 27 | expand = function(args) 28 | luasnip.lsp_expand(args.body) 29 | end, 30 | }, 31 | window = { 32 | completion = cmp.config.window.bordered(), 33 | documentation = cmp.config.window.bordered(), 34 | }, 35 | mapping = cmp.mapping.preset.insert({ 36 | [""] = cmp.mapping.scroll_docs(-4), 37 | [""] = cmp.mapping.scroll_docs(4), 38 | [""] = cmp.mapping.complete(), 39 | [""] = cmp.mapping.abort(), 40 | [""] = cmp.mapping.confirm({ 41 | behavior = cmp.ConfirmBehavior.Replace, 42 | select = true, 43 | }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. 44 | [""] = cmp.mapping.confirm({ 45 | select = true, 46 | }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. 47 | 48 | [""] = cmp.mapping(function(fallback) 49 | if cmp.visible() then 50 | cmp.select_prev_item() 51 | elseif luasnip.locally_jumpable(-1) then 52 | luasnip.expand_or_jump(-1) 53 | else 54 | fallback() 55 | end 56 | end, { "i", "s" }), 57 | }), 58 | sources = cmp.config.sources({ 59 | { name = "nvim_lsp" }, 60 | { name = "luasnip" }, 61 | { name = "buffer" }, 62 | { name = "path" }, 63 | }), 64 | formatting = { 65 | format = lspkind.cmp_format({ 66 | maxwidth = 50, 67 | ellipsis_char = "...", 68 | }), 69 | }, 70 | }) 71 | 72 | -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). 73 | cmp.setup.cmdline({ "/", "?" }, { 74 | mapping = cmp.mapping.preset.cmdline(), 75 | sources = { 76 | { name = "buffer" }, 77 | }, 78 | }) 79 | 80 | -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). 81 | cmp.setup.cmdline(":", { 82 | mapping = cmp.mapping.preset.cmdline(), 83 | sources = cmp.config.sources({ 84 | { name = "path" }, 85 | }, { 86 | { name = "cmdline" }, 87 | }), 88 | }) 89 | 90 | vim.cmd([[ 91 | set completeopt=menuone,noinsert,noselect 92 | highlight! default link CmpItemKind CmpItemMenuDefault 93 | ]]) 94 | -------------------------------------------------------------------------------- /.config/starship.toml: -------------------------------------------------------------------------------- 1 | #format = """ 2 | #[╭─user───❯](bold blue) $username 3 | #[┣─system─❯](bold yellow) $hostname 4 | #[┣─project❯](bold red) $directory$rust$git_branch$git_status$package$golang$terraform$docker_context$python$docker_context$nodejs 5 | #[╰─cmd────❯](bold green) 6 | #""" 7 | [username] 8 | style_user = "green bold" 9 | style_root = "red bold" 10 | format = "[$user]($style) " 11 | disabled = false 12 | show_always = true 13 | 14 | [hostname] 15 | ssh_only = false 16 | format = 'on [ ](blue) ' 17 | # trim_at = "." 18 | disabled = false 19 | 20 | # Replace the "❯" symbol in the prompt with "➜" 21 | [character] # The name of the module we are configuring is "character" 22 | success_symbol = "[➜](bold green)" # The "success_symbol" segment is being set to "➜" with the color "bold green" 23 | error_symbol = "[✗](bold red)" 24 | #   25 | # configure directory 26 | [directory] 27 | read_only = " 󰌾" 28 | truncation_length = 10 29 | truncate_to_repo = true # truncates directory to root folder if in github repo 30 | style = "bold italic blue" 31 | 32 | [cmd_duration] 33 | min_time = 4 34 | show_milliseconds = false 35 | disabled = false 36 | style = "bold italic yellow" 37 | 38 | [aws] 39 | symbol = " " 40 | 41 | [conda] 42 | symbol = " " 43 | 44 | [dart] 45 | symbol = " " 46 | 47 | #[directory] 48 | #read_only = " " 49 | 50 | [docker_context] 51 | symbol = " " 52 | format = "via [$symbol$context]($style) " 53 | style = "blue bold" 54 | only_with_files = true 55 | detect_files = ["docker-compose.yml", "docker-compose.yaml", "Dockerfile"] 56 | detect_folders = [] 57 | disabled = false 58 | 59 | [elixir] 60 | symbol = " " 61 | 62 | [elm] 63 | symbol = " " 64 | 65 | [git_branch] 66 | symbol = " " 67 | 68 | [golang] 69 | symbol = " " 70 | 71 | [hg_branch] 72 | symbol = " " 73 | 74 | [java] 75 | symbol = " " 76 | 77 | [julia] 78 | symbol = " " 79 | 80 | [memory_usage] 81 | symbol = "󰍛 " 82 | 83 | [nim] 84 | symbol = " " 85 | 86 | [nix_shell] 87 | symbol = " " 88 | 89 | [package] 90 | symbol = "󰏓 " 91 | 92 | [perl] 93 | symbol = " " 94 | 95 | [php] 96 | symbol = " " 97 | 98 | [python] 99 | symbol = " " 100 | #pyenv_version_name = true 101 | format = 'via [${symbol} (${version} )(\($virtualenv\) )]($style)' 102 | style = "bold yellow" 103 | pyenv_prefix = "venv " 104 | python_binary = ["./venv/bin/python", "python", "python3", "python2"] 105 | detect_extensions = ["py"] 106 | version_format = "v${raw}" 107 | 108 | [ruby] 109 | symbol = " " 110 | 111 | [rust] 112 | symbol = " " 113 | 114 | [scala] 115 | symbol = " " 116 | 117 | [shlvl] 118 | symbol = " " 119 | 120 | [swift] 121 | symbol = "ﯣ " 122 | 123 | [nodejs] 124 | format = "via [󰎙 $version](bold green) " 125 | detect_files = ["package.json", ".node-version"] 126 | detect_folders = ["node_modules"] 127 | -------------------------------------------------------------------------------- /.config/fish/completions/alacritty.fish: -------------------------------------------------------------------------------- 1 | complete -c alacritty -n "__fish_use_subcommand" -l embed -d 'X11 window ID to embed Alacritty within (decimal or hexadecimal with "0x" prefix)' -r 2 | complete -c alacritty -n "__fish_use_subcommand" -l config-file -d 'Specify alternative configuration file [default: $XDG_CONFIG_HOME/alacritty/alacritty.yml]' -r -F 3 | complete -c alacritty -n "__fish_use_subcommand" -l socket -d 'Path for IPC socket creation' -r -F 4 | complete -c alacritty -n "__fish_use_subcommand" -s o -l option -d 'Override configuration file options [example: cursor.style=Beam]' -r 5 | complete -c alacritty -n "__fish_use_subcommand" -l working-directory -d 'Start the shell in the specified working directory' -r -F 6 | complete -c alacritty -n "__fish_use_subcommand" -s e -l command -d 'Command and args to execute (must be last argument)' -r 7 | complete -c alacritty -n "__fish_use_subcommand" -s t -l title -d 'Defines the window title [default: Alacritty]' -r 8 | complete -c alacritty -n "__fish_use_subcommand" -l class -d 'Defines window class/app_id on X11/Wayland [default: Alacritty]' -r 9 | complete -c alacritty -n "__fish_use_subcommand" -s h -l help -d 'Print help information' 10 | complete -c alacritty -n "__fish_use_subcommand" -s V -l version -d 'Print version information' 11 | complete -c alacritty -n "__fish_use_subcommand" -l print-events -d 'Print all events to stdout' 12 | complete -c alacritty -n "__fish_use_subcommand" -l ref-test -d 'Generates ref test' 13 | complete -c alacritty -n "__fish_use_subcommand" -s q -d 'Reduces the level of verbosity (the min level is -qq)' 14 | complete -c alacritty -n "__fish_use_subcommand" -s v -d 'Increases the level of verbosity (the max level is -vvv)' 15 | complete -c alacritty -n "__fish_use_subcommand" -l hold -d 'Remain open after child process exit' 16 | complete -c alacritty -n "__fish_use_subcommand" -f -a "msg" -d 'Send a message to the Alacritty socket' 17 | complete -c alacritty -n "__fish_use_subcommand" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' 18 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -s s -l socket -d 'IPC socket connection path override' -r -F 19 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help information' 20 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -f -a "create-window" -d 'Create a new window in the same Alacritty process' 21 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -f -a "config" -d 'Update the Alacritty configuration' 22 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and not __fish_seen_subcommand_from create-window; and not __fish_seen_subcommand_from config; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' 23 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l working-directory -d 'Start the shell in the specified working directory' -r -F 24 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s e -l command -d 'Command and args to execute (must be last argument)' -r 25 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s t -l title -d 'Defines the window title [default: Alacritty]' -r 26 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l class -d 'Defines window class/app_id on X11/Wayland [default: Alacritty]' -r 27 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -l hold -d 'Remain open after child process exit' 28 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from create-window" -s h -l help -d 'Print help information' 29 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from config" -s w -l window-id -d 'Window ID for the new config' -r 30 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from config" -s r -l reset -d 'Clear all runtime configuration changes' 31 | complete -c alacritty -n "__fish_seen_subcommand_from msg; and __fish_seen_subcommand_from config" -s h -l help -d 'Print help information' 32 | -------------------------------------------------------------------------------- /.config/nvim/after/plugin/lualine.lua: -------------------------------------------------------------------------------- 1 | local lualine = require("lualine") 2 | local lazy_status = require("lazy.status") 3 | 4 | -- Tokyonight 5 | local colors = { 6 | -- bg = "#1a1b26", 7 | bg = "#011423", 8 | fg = "#a9b1d6", 9 | yellow = "#e0af68", 10 | cyan = "#73daca", 11 | darkblue = "#7aa2f7", 12 | green = "#9ece6a", 13 | orange = "#ff9e64", 14 | violet = "#bb9af7", 15 | magenta = "#c678dd", 16 | blue = "#2ac3de", 17 | red = "#f7768e", 18 | } 19 | 20 | local conditions = { 21 | buffer_not_empty = function() 22 | return vim.fn.empty(vim.fn.expand("%:t")) ~= 1 23 | end, 24 | hide_in_width = function() 25 | return vim.fn.winwidth(0) > 80 26 | end, 27 | check_git_workspace = function() 28 | local filepath = vim.fn.expand("%:p:h") 29 | local gitdir = vim.fn.finddir(".git", filepath .. ";") 30 | return gitdir and #gitdir > 0 and #gitdir < #filepath 31 | end, 32 | } 33 | 34 | local config = { 35 | icons_enabled = true, 36 | options = { 37 | -- Disable sections and component separators 38 | component_separators = "", 39 | section_separators = "", 40 | theme = { 41 | -- We are going to use lualine_c an lualine_x as left and 42 | -- right section. Both are highlighted by c theme . So we 43 | -- are just setting default looks o statusline 44 | normal = { c = { fg = colors.fg, bg = colors.bg } }, 45 | inactive = { c = { fg = colors.fg, bg = colors.bg } }, 46 | }, 47 | }, 48 | sections = { 49 | -- these are to remove the defaults 50 | lualine_a = {}, 51 | lualine_b = {}, 52 | lualine_y = {}, 53 | lualine_z = {}, 54 | -- These will be filled later 55 | lualine_c = {}, 56 | lualine_x = {}, 57 | }, 58 | inactive_sections = { 59 | -- these are to remove the defaults 60 | lualine_a = {}, 61 | lualine_b = {}, 62 | lualine_y = {}, 63 | lualine_z = {}, 64 | lualine_c = {}, 65 | lualine_x = {}, 66 | }, 67 | } 68 | 69 | -- Inserts a component in lualine_c at left section 70 | local function ins_left(component) 71 | table.insert(config.sections.lualine_c, component) 72 | end 73 | 74 | -- Inserts a component in lualine_x at right section 75 | local function ins_right(component) 76 | table.insert(config.sections.lualine_x, component) 77 | end 78 | 79 | ins_left({ 80 | function() 81 | return "▊" 82 | end, 83 | color = { fg = colors.blue }, -- Sets highlighting of component 84 | padding = { left = 0, right = 1 }, -- We don't need space before this 85 | }) 86 | 87 | ins_left({ 88 | -- mode component 89 | function() 90 | return "" 91 | end, 92 | color = function() 93 | -- auto change color according to neovims mode 94 | local mode_color = { 95 | n = colors.red, 96 | i = colors.green, 97 | v = colors.blue, 98 | [""] = colors.blue, 99 | V = colors.blue, 100 | c = colors.magenta, 101 | no = colors.red, 102 | s = colors.orange, 103 | S = colors.orange, 104 | [""] = colors.orange, 105 | ic = colors.yellow, 106 | R = colors.violet, 107 | Rv = colors.violet, 108 | cv = colors.red, 109 | ce = colors.red, 110 | r = colors.cyan, 111 | rm = colors.cyan, 112 | ["r?"] = colors.cyan, 113 | ["!"] = colors.red, 114 | t = colors.red, 115 | } 116 | return { fg = mode_color[vim.fn.mode()] } 117 | end, 118 | padding = { right = 1 }, 119 | }) 120 | 121 | ins_left({ 122 | -- filesize component 123 | "filesize", 124 | cond = conditions.buffer_not_empty, 125 | }) 126 | 127 | ins_left({ 128 | "filename", 129 | cond = conditions.buffer_not_empty, 130 | color = { fg = colors.magenta, gui = "bold" }, 131 | }) 132 | 133 | ins_left({ "location" }) 134 | 135 | ins_left({ "progress", color = { fg = colors.fg, gui = "bold" } }) 136 | 137 | ins_left({ 138 | "diagnostics", 139 | sources = { "nvim_diagnostic" }, 140 | symbols = { error = " ", warn = " ", info = " " }, 141 | diagnostics_color = { 142 | color_error = { fg = colors.red }, 143 | color_warn = { fg = colors.yellow }, 144 | color_info = { fg = colors.cyan }, 145 | }, 146 | }) 147 | 148 | -- Insert mid section. You can make any number of sections in neovim :) 149 | -- for lualine it's any number greater then 2 150 | ins_left({ 151 | function() 152 | return "%=" 153 | end, 154 | }) 155 | 156 | ins_left({ 157 | lazy_status.updates(), 158 | cond = lazy_status.has_updates(), 159 | icon = " LSP:", 160 | color = { fg = "#ffffff", gui = "bold" }, 161 | }) 162 | 163 | -- Add components to right sections 164 | ins_right({ 165 | "o:encoding", -- option component same as &encoding in viml 166 | fmt = string.upper, -- I'm not sure why it's upper case either ;) 167 | cond = conditions.hide_in_width, 168 | color = { fg = colors.green, gui = "bold" }, 169 | }) 170 | 171 | ins_right({ 172 | "fileformat", 173 | fmt = string.upper, 174 | icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh 175 | color = { fg = colors.green, gui = "bold" }, 176 | }) 177 | 178 | ins_right({ 179 | "branch", 180 | icon = "", 181 | color = { fg = colors.violet, gui = "bold" }, 182 | }) 183 | 184 | ins_right({ 185 | "diff", 186 | symbols = { added = " ", modified = "󰝤 ", removed = " " }, 187 | diff_color = { 188 | added = { fg = colors.green }, 189 | modified = { fg = colors.orange }, 190 | removed = { fg = colors.red }, 191 | }, 192 | cond = conditions.hide_in_width, 193 | }) 194 | 195 | ins_right({ 196 | function() 197 | return "▊" 198 | end, 199 | color = { fg = colors.blue }, 200 | padding = { left = 1 }, 201 | }) 202 | 203 | lualine.setup(config) 204 | -------------------------------------------------------------------------------- /.config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, 3 | "LuaSnip": { "branch": "master", "commit": "878ace11983444d865a72e1759dbcc331d1ace4c" }, 4 | "alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" }, 5 | "auto-session": { "branch": "main", "commit": "af2219b9fa99c1d7ac409bd9eac094c459d3f52d" }, 6 | "better-escape.nvim": { "branch": "master", "commit": "7e86edafb8c7e73699e0320f225464a298b96d12" }, 7 | "bufdelete.nvim": { "branch": "master", "commit": "f6bcea78afb3060b198125256f897040538bcb81" }, 8 | "bufferline.nvim": { "branch": "main", "commit": "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe" }, 9 | "cellular-automaton.nvim": { "branch": "main", "commit": "b7d056dab963b5d3f2c560d92937cb51db61cb5b" }, 10 | "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, 11 | "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, 12 | "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, 13 | "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, 14 | "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, 15 | "conform.nvim": { "branch": "master", "commit": "f3b930db4964d60e255c8f9e37b7f2218dfc08cb" }, 16 | "diffview.nvim": { "branch": "main", "commit": "3afa6a053f680e9f1329c4a151db988a482306cd" }, 17 | "dressing.nvim": { "branch": "master", "commit": "3c38ac861e1b8d4077ff46a779cde17330b29f3a" }, 18 | "friendly-snippets": { "branch": "main", "commit": "d0610077b6129cf9f7f78afbe3a1425d60f6e2f1" }, 19 | "gitsigns.nvim": { "branch": "main", "commit": "75dc649106827183547d3bedd4602442340d2f7f" }, 20 | "gruvbox.nvim": { "branch": "main", "commit": "f99a08abc5ab0b9b5b0e7a33211a439155c60a61" }, 21 | "image.nvim": { "branch": "master", "commit": "645f997d171ea3d2505986a0519755600a26f02f" }, 22 | "indent-blankline.nvim": { "branch": "master", "commit": "d98f537c3492e87b6dc6c2e3f66ac517528f406f" }, 23 | "lazy.nvim": { "branch": "main", "commit": "24fa2a97085ca8a7220b5b078916f81e316036fd" }, 24 | "live-server.nvim": { "branch": "main", "commit": "f6f00a3f541251f0320910bb0d03c4ae14ee6d10" }, 25 | "lspkind-nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, 26 | "lspsaga.nvim": { "branch": "main", "commit": "d2d5990b224df9cffb7db30e23c33918ef13d2a0" }, 27 | "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, 28 | "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, 29 | "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, 30 | "mason-tool-installer.nvim": { "branch": "main", "commit": "c1fbdcb0d8d1295314f1612c4a247253e70299d9" }, 31 | "mason.nvim": { "branch": "main", "commit": "f8ce8768f296717c72b3910eee7bd5ac5223cdb9" }, 32 | "neo-tree.nvim": { "branch": "v3.x", "commit": "29f7c215332ba95e470811c380ddbce2cebe2af4" }, 33 | "neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" }, 34 | "noice.nvim": { "branch": "main", "commit": "69c6ad5c1f1c0777125d0275f9871d8609cb0521" }, 35 | "nui.nvim": { "branch": "main", "commit": "b1b3dcd6ed8f355c78bad3d395ff645be5f8b6ae" }, 36 | "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, 37 | "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, 38 | "nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" }, 39 | "nvim-jdtls": { "branch": "master", "commit": "ad5ab1c9246caa9e2c69a7c13d2be9901b5c02aa" }, 40 | "nvim-lspconfig": { "branch": "master", "commit": "b124ef3bd4435a6db7ff03ea2f5a23e1e0487552" }, 41 | "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, 42 | "nvim-surround": { "branch": "main", "commit": "f1f0699a1d49f28e607ffa4361f1bbe757ac5ebc" }, 43 | "nvim-treesitter": { "branch": "master", "commit": "b7d50e59b1b2990b3ce8761d4cf595f4b71c87e2" }, 44 | "nvim-ts-autotag": { "branch": "main", "commit": "bcf3146864262ef2d3c877beba3e222b5c73780d" }, 45 | "nvim-ts-context-commentstring": { "branch": "main", "commit": "cb064386e667def1d241317deed9fd1b38f0dc2e" }, 46 | "nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" }, 47 | "onedark.nvim": { "branch": "master", "commit": "8e4b79b0e6495ddf29552178eceba1e147e6cecf" }, 48 | "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, 49 | "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, 50 | "rainbow-delimiters.nvim": { "branch": "master", "commit": "051c3c074ac48a95da5af91d399ba13485324969" }, 51 | "rustaceanvim": { "branch": "master", "commit": "2fa45427c01ded4d3ecca72e357f8a60fd8e46d4" }, 52 | "schemastore.nvim": { "branch": "main", "commit": "931f9f3b7b60ec976159cb01b4a40da3829ac2fd" }, 53 | "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, 54 | "telescope.nvim": { "branch": "master", "commit": "dfa230be84a044e7f546a6c2b0a403c739732b86" }, 55 | "todo-comments.nvim": { "branch": "main", "commit": "e1549807066947818113a7d7ed48f637e49620d3" }, 56 | "toggleterm.nvim": { "branch": "main", "commit": "066cccf48a43553a80a210eb3be89a15d789d6e6" }, 57 | "tokyonight.nvim": { "branch": "main", "commit": "0fae425aaab04a5f97666bd431b96f2f19c36935" }, 58 | "transparent.nvim": { "branch": "main", "commit": "fd35a46f4b7c1b244249266bdcb2da3814f01724" }, 59 | "treesj": { "branch": "main", "commit": "f98deb33805485b56a8d44d1a27d16874af00d7f" }, 60 | "trouble.nvim": { "branch": "main", "commit": "a6f1af567fc987306f0f328e78651bab1bfe874e" }, 61 | "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }, 62 | "vim-tmux-navigator": { "branch": "master", "commit": "5b3c701686fb4e6629c100ed32e827edf8dad01e" } 63 | } -------------------------------------------------------------------------------- /.config/nvim/after/plugin/lspconfig.lua: -------------------------------------------------------------------------------- 1 | local lspconfig = require("lspconfig") 2 | local neodev = require("neodev") 3 | local schemastore = require("schemastore") 4 | 5 | -- Neodev setup (perform before lspconfig setup) 6 | neodev.setup({}) 7 | 8 | local on_attach = function(client, bufnr) 9 | local opts = { noremap = true, silent = true, buffer = bufnr } 10 | 11 | local map = function(key, func) 12 | vim.keymap.set("n", key, func, opts) 13 | end 14 | 15 | map("c", "Lspsaga code_action") -- see available code actions 16 | -- map("c", vim.lsp.buf.code_action) -- see available code actions 17 | 18 | map("rn", "Lspsaga rename") -- smart rename 19 | -- map("rn", vim.lsp.buf.rename) 20 | 21 | -- map("gd", "Lspsaga peek_definition") -- see definition and make edits in window 22 | map("gd", vim.lsp.buf.definition) -- see definition and make edits in window 23 | 24 | -- map("gD", "lua vim.lsp.buf.declaration()") -- got to declaration 25 | map("gD", vim.lsp.buf.declaration) -- got to declaration 26 | 27 | -- map("gi", "lua vim.lsp.buf.implementation()") -- go to implementation 28 | map("gi", vim.lsp.buf.implementation) -- go to implementation 29 | 30 | map("M", vim.lsp.buf.type_definition) 31 | 32 | -- map("m", "Lspsaga hover_doc") -- show documentation for what is under cursor 33 | map("m", vim.lsp.buf.hover) 34 | 35 | map("gf", "Lspsaga lsp_finder") -- show definition, references 36 | map("D", "Lspsaga show_line_diagnostics") -- show diagnostics for line 37 | map("d", "Lspsaga show_cursor_diagnostics") -- show diagnostics for cursor 38 | map("[d", "Lspsaga diagnostic_jump_prev") -- jump to previous diagnostic in buffer 39 | map("]d", "Lspsaga diagnostic_jump_next") -- jump to next diagnostic in buffer 40 | map("o", "Lspsaga outline") -- see outline on right hand side 41 | 42 | map("gr", require("telescope.builtin").lsp_references) 43 | map("ds", require("telescope.builtin").lsp_document_symbols) 44 | map("ws", require("telescope.builtin").lsp_dynamic_workspace_symbols) 45 | 46 | if client.name == "tsserver" then 47 | map("oi", "OrganizeImports") 48 | end 49 | 50 | if client.name == "eslint" then 51 | vim.api.nvim_create_autocmd("BufWritePre", { 52 | buffer = bufnr, 53 | command = "EslintFixAll", 54 | }) 55 | end 56 | end 57 | 58 | -- local capabilities = vim.lsp.protocol.make_client_capabilities() 59 | local capabilities = require("cmp_nvim_lsp").default_capabilities() 60 | 61 | -- Change the Diagnostic symbols in the sign column (gutter) 62 | local signs = { Error = " ", Warn = " ", Hint = "ﴞ ", Info = " " } 63 | for type, icon in pairs(signs) do 64 | local hl = "DiagnosticSign" .. type 65 | vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" }) 66 | end 67 | 68 | local clangdCapabilities = require("cmp_nvim_lsp").default_capabilities() 69 | clangdCapabilities.offsetEncoding = { "utf-16" } 70 | 71 | lspconfig["clangd"].setup({ 72 | on_attach = on_attach, 73 | capabilities = clangdCapabilities, 74 | }) 75 | 76 | lspconfig["lua_ls"].setup({ 77 | on_attach = on_attach, 78 | capabilities = capabilities, 79 | settings = { 80 | Lua = { 81 | diagonstics = { 82 | globals = { "vim" }, 83 | }, 84 | completion = { 85 | callSnippet = "Replace", 86 | }, 87 | }, 88 | }, 89 | }) 90 | 91 | local function organize_imports() 92 | local params = { 93 | command = "_typescript.organizeImports", 94 | arguments = { vim.api.nvim_buf_get_name(0) }, 95 | } 96 | vim.lsp.buf.execute_command(params) 97 | end 98 | 99 | lspconfig["tsserver"].setup({ 100 | on_attach = on_attach, 101 | capabilities = capabilities, 102 | cmd = { "typescript-language-server", "--stdio" }, 103 | init_options = { 104 | preferences = { 105 | disableSuggestions = false, -- change to true to disable suggestions like "File may be converted to ESM" 106 | }, 107 | }, 108 | commands = { 109 | OrganizeImports = { 110 | organize_imports, 111 | description = "Organize Imports", 112 | }, 113 | }, 114 | }) 115 | 116 | lspconfig["yamlls"].setup({ 117 | capabilities = capabilities, 118 | on_attach = on_attach, 119 | settings = { 120 | yaml = { 121 | schemaStore = { 122 | -- You must disable built-in schemaStore support if you want to use 123 | -- this plugin and its advanced options like `ignore`. 124 | enable = true, 125 | -- enable = false, 126 | }, 127 | -- schemas = require('schemastore').yaml.schemas(), 128 | }, 129 | }, 130 | }) 131 | 132 | lspconfig["jsonls"].setup({ 133 | capabilities = capabilities, 134 | on_attach = on_attach, 135 | 136 | settings = { 137 | json = { 138 | schemas = schemastore.json.schemas(), 139 | validate = { enable = true }, 140 | }, 141 | }, 142 | }) 143 | 144 | lspconfig["cssls"].setup({ 145 | capabilities = capabilities, 146 | on_attach = on_attach, 147 | }) 148 | 149 | lspconfig["tailwindcss"].setup({ 150 | capabilities = capabilities, 151 | on_attach = on_attach, 152 | }) 153 | 154 | lspconfig["astro"].setup({ 155 | capabilities = capabilities, 156 | on_attach = on_attach, 157 | }) 158 | 159 | lspconfig["html"].setup({ 160 | capabilities = capabilities, 161 | on_attach = on_attach, 162 | }) 163 | 164 | lspconfig["eslint"].setup({ 165 | capabilities = capabilities, 166 | on_attach = on_attach, 167 | }) 168 | 169 | lspconfig["prismals"].setup({ 170 | capabilities = capabilities, 171 | on_attach = on_attach, 172 | }) 173 | 174 | lspconfig["ltex"].setup({ 175 | capabilities = capabilities, 176 | on_attach = on_attach, 177 | }) 178 | 179 | lspconfig["marksman"].setup({ 180 | capabilities = capabilities, 181 | on_attach = on_attach, 182 | }) 183 | 184 | lspconfig["graphql"].setup({ 185 | capabilities = capabilities, 186 | on_attach = on_attach, 187 | }) 188 | 189 | lspconfig["bashls"].setup({ 190 | capabilities = capabilities, 191 | on_attach = on_attach, 192 | }) 193 | lspconfig["pylsp"].setup({ 194 | capabilities = capabilities, 195 | on_attach = on_attach, 196 | }) 197 | 198 | lspconfig["jdtls"].setup({ 199 | capabilities = capabilities, 200 | on_attach = on_attach, 201 | }) 202 | 203 | lspconfig["dockerls"].setup({ 204 | capabilities = capabilities, 205 | on_attach = on_attach, 206 | }) 207 | 208 | lspconfig["gopls"].setup({ 209 | capabilities = capabilities, 210 | on_attach = on_attach, 211 | }) 212 | 213 | vim.g.rustaceanvim = { 214 | server = { 215 | on_attach = on_attach, 216 | capabilities = capabilities 217 | } 218 | } 219 | 220 | -- require("mason-lspconfig").setup_handlers({ 221 | -- function(server_name) 222 | -- lspconfig[server_name].setup({ 223 | -- capabilities = capabilities, 224 | -- on_attach = on_attach, 225 | -- }) 226 | -- end, 227 | -- }) 228 | -------------------------------------------------------------------------------- /.config/polybar/config.ini: -------------------------------------------------------------------------------- 1 | ; ============================================================ 2 | ; ____ _ _ 3 | ; | _ \ ___ | | _ _ | |__ __ _ _ __ 4 | ; | |_) |/ _ \ | || | | || '_ \ / _` || '__| 5 | ; | __/| (_) || || |_| || |_) || (_| || | 6 | ; |_| \___/ |_| \__, ||_.__/ \__,_||_| 7 | ; |___/ 8 | ; ============================================================ 9 | ; Author: GoodBoyNeon 10 | ; ============================================================ 11 | 12 | ;====General Settings========================================= 13 | [colors] 14 | bg = #1e1e2e 15 | fg = #cdd6f4 16 | blue = #89b4fa 17 | red = #f38ba8 18 | yellow = #f9e2af 19 | teal = #94e2d5 20 | green = #a6e3a1 21 | grey = #45475a 22 | 23 | [margin] 24 | for-modules = 1 25 | 26 | [bar/main] 27 | line-size = 2 28 | radius = 9.0 29 | height = 32 30 | width = 98% 31 | offset-x = 1% 32 | offset-y = 1% 33 | separator = | 34 | separator-foreground = ${colors.grey} 35 | fixed-center = true 36 | background = ${colors.bg} 37 | foreground = ${colors.fg} 38 | 39 | cursor-click = pointer 40 | 41 | font-0 = "JetBrains Mono:pixelsize=11;2" 42 | font-1 = "Iosevka Nerd Font Mono:pixelsize=24;4" 43 | 44 | padding-right = 4 45 | ; padding-right = 14 46 | 47 | tray-detached = true 48 | tray-offset-x = -6 49 | tray-scale = 1 50 | tray-maxsize = 20 51 | tray-position = right 52 | 53 | tray-foreground = ${colors.fg} 54 | tray-background = ${colors.bg} 55 | ;========================================================== 56 | 57 | 58 | ;====Module settings====================================== 59 | modules-left = arch workspaces temp 60 | modules-center = date 61 | modules-right = volume cpu memory end 62 | ;========================================================== 63 | 64 | 65 | ;====Left modules========================================== 66 | 67 | [module/arch] 68 | type = custom/menu 69 | label-open = "  " 70 | label-close = " " 71 | label-separator = "|" 72 | label-separator-foreground = ${colors.grey} 73 | content-foreground = ${colors.fg} 74 | menu-0-0 = "󰉋" 75 | menu-0-0-exec = "pcmanfm" 76 | menu-0-1 = "" 77 | menu-0-1-exec = "alacritty" 78 | menu-0-2 = "󰈹 " 79 | menu-0-2-exec = "firefox" 80 | format-spacing = 1 81 | 82 | [module/workspaces] 83 | type = internal/xworkspaces 84 | pin-workspaces = false 85 | enable-click = true 86 | enable-scroll = true 87 | format-padding = 1 88 | icon-default =  89 | format = 90 | label-active =  91 | label-occupied =  92 | label-urgent =  93 | label-empty =  94 | label-empty-padding = 1 95 | label-active-padding = 1 96 | label-urgent-padding = 1 97 | label-occupied-padding = 1 98 | label-empty-foreground = ${colors.fg} 99 | label-active-foreground = ${colors.blue} 100 | label-urgent-foreground = ${colors.red} 101 | label-occupied-foreground = ${colors.yellow} 102 | 103 | ;====Center modules======================================== 104 | [module/date] 105 | type = internal/date 106 | format-prefix = "󰃭 " 107 | format-underline = ${colors.blue} 108 | format-padding = 1 109 | label = %date% %time% 110 | date = %a %d %b 111 | time = %H:%M 112 | ;========================================================== 113 | 114 | 115 | ;====Right modules========================================= 116 | [module/updates] 117 | type = custom/script 118 | format = 󰏓