diff --git a/.bashrc b/.bashrc index 4637807..08f7b1a 100644 --- a/.bashrc +++ b/.bashrc @@ -13,10 +13,6 @@ alias bat="bat -f" alias grep="grep --color=auto" alias shutdown="shutdown now" alias l="ls" -alias nvim="hx" -alias vim="hx" -alias vi="hx" -alias nano="hx" alias zed="zeditor" alias q="hyprland" @@ -26,6 +22,27 @@ alias paru="paru --bottomup --assume-installed ttf-font" alias lah='ls -lah' alias fd='fd -H' +if [ "$TERM" = "linux" ]; then + printf " + \033]P0191724 + \033]P1eb6f92 + \033]P231748f + \033]P3f6c177 + \033]P49ccfd8 + \033]P5c4a7e7 + \033]P6ebbcba + \033]P7e0def4 + \033]P86e6a86 + \033]P9eb6f92 + \033]PA31748f + \033]PBf6c177 + \033]PC9ccfd8 + \033]PDc4a7e7 + \033]PEebbcba + \033]PFe0def4 + " +fi + clear tfetch @@ -37,9 +54,13 @@ export EDITOR=helix export VISUAL=helix export INPUTRC=~/.inputrc +export FZF_DEFAULT_OPTS=" + --color=fg:#908caa,bg:#191724,hl:#ebbcba + --color=fg+:#e0def4,bg+:#26233a,hl+:#ebbcba + --color=border:#403d52,header:#31748f,gutter:#191724 + --color=spinner:#f6c177,info:#9ccfd8 + --color=pointer:#c4a7e7,marker:#eb6f92,prompt:#908caa" + eval "$(starship init bash)" eval "$(fzf --bash)" eval "$(zoxide init --cmd cd bash)" - -# bind 'set mark-symlinked-directories on' - diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf index d3ebef9..e6181e9 100644 --- a/.config/btop/btop.conf +++ b/.config/btop/btop.conf @@ -2,7 +2,7 @@ #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" -color_theme = "/usr/share/btop/themes/matcha-dark-sea.theme" +color_theme = "/usr/share/btop/themes/rose-pine.theme" #* If the theme set background should be shown, set to False if you want terminal background transparency. theme_background = False diff --git a/.config/btop/themes/rose-pine.theme b/.config/btop/themes/rose-pine.theme new file mode 100644 index 0000000..b045441 --- /dev/null +++ b/.config/btop/themes/rose-pine.theme @@ -0,0 +1,119 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#191724" +# Base + +# Main text color +theme[main_fg]="#e0def4" +# Text + +# Title color for boxes +theme[title]="#908caa" +# Subtle + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#e0def4" +# Text + +# Background color of selected item in processes box +theme[selected_bg]="#524f67" +# HL High + +# Foreground color of selected item in processes box +theme[selected_fg]="#f6c177" +# Gold + +# Color of inactive/disabled text +theme[inactive_fg]="#403d52" +# HL Med + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#9ccfd8" +# Foam + +# Background color of the percentage meters +theme[meter_bg]="#9ccfd8" +# Foam + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#c4a7e7" +# Iris + +# Cpu box outline color +theme[cpu_box]="#ebbcba" +# Rose + +# Memory/disks box outline color +theme[mem_box]="#31748f" +# Pine + +# Net up/down box outline color +theme[net_box]="#c4a7e7" +# Iris + +# Processes box outline color +theme[proc_box]="#eb6f92" +# Love + +# Box divider line and small boxes line color +theme[div_line]="#6e6a86" +# Muted + +# Temperature graph colors +theme[temp_start]="#ebbcba" +# Rose +theme[temp_mid]="#f6c177" +# Gold +theme[temp_end]="#eb6f92" +# Love + +# CPU graph colors +theme[cpu_start]="#f6c177" +# Gold +theme[cpu_mid]="#ebbcba" +# Rose +theme[cpu_end]="#eb6f92" +# Love + +# Mem/Disk free meter +# all love +theme[free_start]="#eb6f92" +theme[free_mid]="#eb6f92" +theme[free_end]="#eb6f92" + +# Mem/Disk cached meter +# all iris +theme[cached_start]="#c4a7e7" +theme[cached_mid]="#c4a7e7" +theme[cached_end]="#c4a7e7" + +# Mem/Disk available meter +# all pine +theme[available_start]="#31748f" +theme[available_mid]="#31748f" +theme[available_end]="#31748f" + +# Mem/Disk used meter +# all rose +theme[used_start]="#ebbcba" +theme[used_mid]="#ebbcba" +theme[used_end]="#ebbcba" + +# Download graph colors +# Pine for start, foam for the rest +theme[download_start]="#31748f" +theme[download_mid]="#9ccfd8" +theme[download_end]="#9ccfd8" + +# Upload graph colors +theme[upload_start]="#ebbcba" +# Rose for start +theme[upload_mid]="#eb6f92" +# Love for mid and end +theme[upload_end]="#eb6f92" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#31748f" +# Pine +theme[process_mid]="#9ccfd8" +# Foam for mid and end +theme[process_end]="#9ccfd8" diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini index cc3a986..b0ec088 100644 --- a/.config/foot/foot.ini +++ b/.config/foot/foot.ini @@ -86,8 +86,8 @@ resize-delay-ms=0 # regex-copy=[your-fancy-name] Control+Alt+Shift+q [cursor] -style=beam -blink=yes +style=block +blink=no # blink-rate=500 # beam-thickness=1.5 # underline-thickness= @@ -99,75 +99,33 @@ hide-when-typing=yes [touch] # long-press-delay=400 +# -*- conf -*- +# Rosé Pine + [colors] -alpha=1.0 -# alpha-mode=default # Can be `default`, `matching` or `all` -background=000000 -# foreground=ffffff -# flash=7f7f00 -# flash-alpha=0.5 +cursor=191724 e0def4 +background=191724 +foreground=e0def4 -# cursor= +regular0=26233a # black (Overlay) +regular1=eb6f92 # red (Love) +regular2=9ccfd8 # green (Foam) +regular3=f6c177 # yellow (Gold) +regular4=31748f # blue (Pine) +regular5=c4a7e7 # magenta (Iris) +regular6=ebbcba # cyan (Rose) +regular7=e0def4 # white (Text) -## Normal/regular colors (color palette 0-7) -# regular0=242424 # black -# regular1=f62b5a # red -# regular2=47b413 # green -# regular3=e3c401 # yellow -# regular4=24acd4 # blue -# regular5=f2affd # magenta -# regular6=13c299 # cyan -# regular7=e6e6e6 # white +bright0=47435d # bright black (lighter Overlay) +bright1=ff98ba # bright red (lighter Love) +bright2=c5f9ff # bright green (lighter Foam) +bright3=ffeb9e # bright yellow (lighter Gold) +bright4=5b9ab7 # bright blue (lighter Pine) +bright5=eed0ff # bright magenta (lighter Iris) +bright6=ffe5e3 # bright cyan (lighter Rose) +bright7=fefcff # bright white (lighter Text) -## Bright colors (color palette 8-15) -# bright0=616161 # bright black -# bright1=ff4d51 # bright red -# bright2=35d450 # bright green -# bright3=e9e836 # bright yellow -# bright4=5dc5f8 # bright blue -# bright5=feabf2 # bright magenta -# bright6=24dfc4 # bright cyan -# bright7=ffffff # bright white - -## dimmed colors (see foot.ini(5) man page) -# dim0= -# ... -# dim7= - -## The remaining 256-color palette -# 16 = <256-color palette #16> -# ... -# 255 = <256-color palette #255> - -## Sixel colors -# sixel0 = 000000 -# sixel1 = 3333cc -# sixel2 = cc2121 -# sixel3 = 33cc33 -# sixel4 = cc33cc -# sixel5 = 33cccc -# sixel6 = cccc33 -# sixel7 = 878787 -# sixel8 = 424242 -# sixel9 = 545499 -# sixel10 = 994242 -# sixel11 = 549954 -# sixel12 = 995499 -# sixel13 = 549999 -# sixel14 = 999954 -# sixel15 = cccccc - -## Misc colors -# selection-foreground= -# selection-background= -# jump-labels= # black-on-yellow -# scrollback-indicator= # black-on-bright-blue -# search-box-no-match= # black-on-red -# search-box-match= # black-on-yellow -# urls= - -[colors2] -# Alternative color theme, see man page foot.ini(5) +flash=f6c177 # yellow (Gold) [csd] # preferred=server @@ -216,7 +174,7 @@ background=000000 # unicode-input=Control+Shift+u # color-theme-switch-1=none # color-theme-switch-2=none -# color-theme-toggle=none +color-theme-toggle=Control+Shift+p # noop=none # quit=none diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index 6bc9e6a..1cdacf9 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -112,11 +112,11 @@ general { # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { - rounding = 4 + rounding = 0 # Change transparency of focused and unfocused windows active_opacity = 1.0 - inactive_opacity = 0.8 + inactive_opacity = 0.9 # https://wiki.hyprland.org/Configuring/Variables/#blur blur { diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..23ba38d --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,158 @@ +local lazypath = vim.fn.stdpath("data") .. "/site/pack/packer/start/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "https://github.com/folke/lazy.nvim.git", + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + { + "windwp/nvim-autopairs", + event = "InsertEnter", + config = function() + require("nvim-autopairs").setup({}) + end, + }, + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + }, + { + "rose-pine/neovim", + name = "rose-pine", + config = function() + vim.cmd("colorscheme rose-pine") + end, + }, + { + "stevearc/conform.nvim", + opts = {}, + }, + { + "stevearc/oil.nvim", + opts = {}, + }, + { + "numToStr/Comment.nvim", + opts = {}, + lazy = false, + }, + { "lewis6991/gitsigns.nvim" }, + { "neovim/nvim-lspconfig" }, + { "hrsh7th/nvim-cmp" }, + { "hrsh7th/cmp-nvim-lsp" }, + { "hrsh7th/cmp-buffer" }, + { "hrsh7th/cmp-path" }, + { "saadparwaiz1/cmp_luasnip" }, + { "L3MON4D3/LuaSnip" }, + { "rafamadriz/friendly-snippets" }, +}) + +local cmp = require("cmp") + +cmp.setup({ + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) -- Use LuaSnip for snippets + end, + }, + mapping = { + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm({ select = true }), + }, + sources = { + { name = "nvim_lsp" }, -- LSP completion + { name = "buffer" }, -- Buffer completion + { name = "path" }, -- Path completion + { name = "luasnip" }, -- Snippet completion + }, +}) + +-- nvim-lspconfig - Providing basic, default Nvim LSP client configurations for various LSP servers. +local lspconfig = require("lspconfig") +lspconfig.pyright.setup({}) +lspconfig.ts_ls.setup({}) +lspconfig.gopls.setup({}) +lspconfig.bashls.setup({}) +local luasnip = require("luasnip") +require("luasnip.loaders.from_vscode").lazy_load() +require("luasnip").config.set_config({ + history = true, + updateevents = "TextChanged,TextChangedI", +}) + +-- line numbers +vim.wo.number = true +vim.wo.relativenumber = true + +-- Comment.vim - Smart and Powerful commenting plugin for neovim +require("Comment").setup() + +-- conform.nvim - Lightweight yet powerful formatter plugin for neovim +require("conform").setup({ + formatters_by_ft = { + lua = { "stylua" }, + python = { "isort", "black" }, + rust = { "rustfmt" }, + javascript = { "prettier" }, + html = { "prettier" }, + go = { "gofmt" }, + bash = { "shfmt" }, + }, + format_on_save = { + timeout_ms = 500, + lsp_format = "fallback", + }, +}) + +-- Hyprlang LSP +vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { + pattern = { "*.hl", "hypr*.conf" }, + callback = function(event) + vim.lsp.start({ + name = "hyprlang", + cmd = { "hyprls" }, + root_dir = vim.fn.getcwd(), + }) + end, +}) + +-- enable diagnostics +vim.diagnostic.config({ + virtual_text = { + prefix = "▎", + }, + severity_sort = true, + float = { + source = "always", + }, +}) + +-- save and format on insertleave +vim.api.nvim_create_autocmd({ "InsertLeave", "FocusLost" }, { + pattern = "*", + callback = function() + require("conform").format() + vim.cmd("silent! write") + end, +}) + +-- aliases +vim.keymap.set("ca", "o", "tabnew") + +-- remove editor background +-- vim.cmd([[ +-- highlight Normal guibg=none +-- highlight NonText guibg=none +-- highlight Normal ctermbg=none +-- highlight NonText ctermbg=none +-- ]]) diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..8741b01 --- /dev/null +++ b/.config/nvim/lazy-lock.json @@ -0,0 +1,19 @@ +{ + "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, + "LuaSnip": { "branch": "master", "commit": "de10d8414235b0a8cabfeba60d07c24304e71f5c" }, + "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, + "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, + "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, + "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gitsigns.nvim": { "branch": "main", "commit": "c7d37ca22b461f64e26f8f6701b2586128ed0bef" }, + "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" }, + "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, + "nvim-lspconfig": { "branch": "master", "commit": "d6dc63670d3dc5204b1e874af4cbf340cb5d9d18" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-web-devicons": { "branch": "master", "commit": "3362099de3368aa620a8105b19ed04c2053e38c0" }, + "oil.nvim": { "branch": "master", "commit": "bbad9a76b2617ce1221d49619e4e4b659b3c61fc" }, + "rose-pine": { "branch": "main", "commit": "72befaffeac38db7bdd49e0549eaa2c4806dd878" }, + "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" } +} diff --git a/.config/nvim/plugin/packer_compiled.lua b/.config/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..33b828d --- /dev/null +++ b/.config/nvim/plugin/packer_compiled.lua @@ -0,0 +1,104 @@ +-- Automatically generated packer.nvim plugin loader code + +if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return +end + +vim.api.nvim_command('packadd packer.nvim') + +local no_errors, error_msg = pcall(function() + +_G._packer = _G._packer or {} +_G._packer.inside_compile = true + +local time +local profile_info +local should_profile = false +if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end +else + time = function(chunk, start) end +end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + if threshold then + table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') + end + + _G._packer.profile_output = results +end + +time([[Luarocks path setup]], true) +local package_path_str = "/home/ted/.cache/nvim/packer_hererocks/2.1.1753364724/share/lua/5.1/?.lua;/home/ted/.cache/nvim/packer_hererocks/2.1.1753364724/share/lua/5.1/?/init.lua;/home/ted/.cache/nvim/packer_hererocks/2.1.1753364724/lib/luarocks/rocks-5.1/?.lua;/home/ted/.cache/nvim/packer_hererocks/2.1.1753364724/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/ted/.cache/nvim/packer_hererocks/2.1.1753364724/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end + +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end + +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end + +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["nvim-autopairs"] = { + loaded = true, + path = "/home/ted/.local/share/nvim/site/pack/packer/start/nvim-autopairs", + url = "https://github.com/windwp/nvim-autopairs" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/ted/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + } +} + +time([[Defining packer_plugins]], false) + +_G._packer.inside_compile = false +if _G._packer.needs_bufread == true then + vim.cmd("doautocmd BufRead") +end +_G._packer.needs_bufread = false + +if should_profile then save_profiles() end + +end) + +if not no_errors then + error_msg = error_msg:gsub('"', '\\"') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') +end