commit d30985b6b48011aab9625957548b2d9b814df821 Author: antistereov Date: Sun Jul 13 15:38:39 2025 +0200 feat: initialize repo diff --git a/fish/config.fish b/fish/config.fish new file mode 100644 index 0000000..def2574 --- /dev/null +++ b/fish/config.fish @@ -0,0 +1,11 @@ +eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" + +alias dc="docker compose" +alias dl="docker logs" +alias de="docker exec" +alias dps="docker ps --format 'table {{.Names}}\t{{printf \"%-20s\" .Status}}'" +alias k kubectl +alias kn "kubectl config set-context --current --namespace" + +# Enable zoxide +zoxide init fish | source diff --git a/kitty b/kitty new file mode 160000 index 0000000..820027e --- /dev/null +++ b/kitty @@ -0,0 +1 @@ +Subproject commit 820027e9da15be313f83150b0d9bb828896bca39 diff --git a/nvim/.gitignore b/nvim/.gitignore new file mode 100644 index 0000000..8b55343 --- /dev/null +++ b/nvim/.gitignore @@ -0,0 +1,2 @@ +lazy-lock.json + diff --git a/nvim/.luarc.json b/nvim/.luarc.json new file mode 100644 index 0000000..40ae4bf --- /dev/null +++ b/nvim/.luarc.json @@ -0,0 +1,6 @@ +{ + "diagnostics.globals": [ + "vim", + "LazyVim" + ] +} \ No newline at end of file diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..bb4e1ce --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,15 @@ +require("config.lazy") +require("config.keymap") + +vim.cmd("set expandtab") +vim.cmd("set tabstop=4") +vim.cmd("set softtabstop=4") +vim.cmd("set shiftwidth=4") +vim.cmd("set nowrap") +vim.cmd("set clipboard+=unnamedplus") + +vim.opt.spell = true +vim.opt.spelllang = "en_us" +vim.opt.spelloptions:append("camel") +vim.wo.relativenumber = true +vim.opt.number = true diff --git a/nvim/lua/config/keymap.lua b/nvim/lua/config/keymap.lua new file mode 100644 index 0000000..ddf249f --- /dev/null +++ b/nvim/lua/config/keymap.lua @@ -0,0 +1,2 @@ +# Custom Keymaps + diff --git a/nvim/lua/config/lazy.lua b/nvim/lua/config/lazy.lua new file mode 100644 index 0000000..897bf95 --- /dev/null +++ b/nvim/lua/config/lazy.lua @@ -0,0 +1,36 @@ +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +-- Setup lazy.nvim +require("lazy").setup({ + spec = { + -- import your plugins + + { import = "plugins" }, + }, + -- Configure any other settings here. See the documentation for more details. + -- colorscheme that will be used when installing plugins. + install = { colorscheme = { "habamax" } }, + -- automatically check for plugin updates + checker = { enabled = true }, +}) diff --git a/nvim/lua/plugins/alpha.lua b/nvim/lua/plugins/alpha.lua new file mode 100644 index 0000000..d6638ae --- /dev/null +++ b/nvim/lua/plugins/alpha.lua @@ -0,0 +1,31 @@ +return { + "goolord/alpha-nvim", + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + + config = function() + local alpha = require("alpha") + local dashboard = require("alpha.themes.startify") + + dashboard.section.header.val = { + [[ ]], + [[ ]], + [[ ]], + [[ ]], + [[  ]], + [[ ████ ██████ █████ ██ ]], + [[ ███████████ █████  ]], + [[ █████████ ███████████████████ ███ ███████████ ]], + [[ █████████ ███ █████████████ █████ ██████████████ ]], + [[ █████████ ██████████ █████████ █████ █████ ████ █████ ]], + [[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]], + [[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]], + [[ ]], + [[ ]], + [[ ]], + } + + alpha.setup(dashboard.opts) + end, +} diff --git a/nvim/lua/plugins/autoclose.lua b/nvim/lua/plugins/autoclose.lua new file mode 100644 index 0000000..e1798ea --- /dev/null +++ b/nvim/lua/plugins/autoclose.lua @@ -0,0 +1,6 @@ +return { + "m4xshen/autoclose.nvim", + config = function() + require("autoclose").setup() + end, +} diff --git a/nvim/lua/plugins/catppuccin.lua b/nvim/lua/plugins/catppuccin.lua new file mode 100644 index 0000000..62cb7ab --- /dev/null +++ b/nvim/lua/plugins/catppuccin.lua @@ -0,0 +1,8 @@ +return { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + config = function() + vim.cmd.colorscheme("catppuccin") + end, +} diff --git a/nvim/lua/plugins/completions.lua b/nvim/lua/plugins/completions.lua new file mode 100644 index 0000000..29d0f6c --- /dev/null +++ b/nvim/lua/plugins/completions.lua @@ -0,0 +1,66 @@ +return { + { + "L3MON4D3/LuaSnip", + dependencies = { + "saadparwaiz1/cmp_luasnip", + "rafamadriz/friendly-snippets", + }, + config = function() + require("luasnip.loaders.from_vscode").lazy_load() + end, + }, + { + "hrsh7th/cmp-nvim-lsp", + }, + { + "hrsh7th/nvim-cmp", + config = function() + local cmp = require("cmp") + local luasnip = require("luasnip") + + cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), -- 'i' for insert mode, 's' for snippet mode + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "path" } + }, { + { name = "buffer" }, + }), + }) + end, + }, +} diff --git a/nvim/lua/plugins/floaterm.lua b/nvim/lua/plugins/floaterm.lua new file mode 100644 index 0000000..0e15d6b --- /dev/null +++ b/nvim/lua/plugins/floaterm.lua @@ -0,0 +1,6 @@ +return { + "voldikss/vim-floaterm", + config = function() + vim.keymap.set("n", "ft", ":FloatermNew") + end, +} diff --git a/nvim/lua/plugins/gitsigns.lua b/nvim/lua/plugins/gitsigns.lua new file mode 100644 index 0000000..f85bae0 --- /dev/null +++ b/nvim/lua/plugins/gitsigns.lua @@ -0,0 +1,70 @@ +return { + "lewis6991/gitsigns.nvim", + config = function() + require('gitsigns').setup { + on_attach = function(bufnr) + local gitsigns = require('gitsigns') + + local function map(mode, l, r, opts) + opts = opts or {} + opts.buffer = bufnr + vim.keymap.set(mode, l, r, opts) + end + + -- Navigation + map('n', ']c', function() + if vim.wo.diff then + vim.cmd.normal({ ']c', bang = true }) + else + gitsigns.nav_hunk('next') + end + end) + + map('n', '[c', function() + if vim.wo.diff then + vim.cmd.normal({ '[c', bang = true }) + else + gitsigns.nav_hunk('prev') + end + end) + + -- Actions + map('n', 'hs', gitsigns.stage_hunk) + map('n', 'hr', gitsigns.reset_hunk) + + map('v', 'hs', function() + gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end) + + map('v', 'hr', function() + gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') }) + end) + + map('n', 'hS', gitsigns.stage_buffer) + map('n', 'hR', gitsigns.reset_buffer) + map('n', 'hp', gitsigns.preview_hunk) + map('n', 'hi', gitsigns.preview_hunk_inline) + + map('n', 'hb', function() + gitsigns.blame_line({ full = true }) + end) + + map('n', 'hd', gitsigns.diffthis) + + map('n', 'hD', function() + gitsigns.diffthis('~') + end) + + map('n', 'hQ', function() gitsigns.setqflist('all') end) + map('n', 'hq', gitsigns.setqflist) + + -- Toggles + map('n', 'tb', gitsigns.toggle_current_line_blame) + map('n', 'tw', gitsigns.toggle_word_diff) + + -- Text object + map({ 'o', 'x' }, 'ih', gitsigns.select_hunk) + end + } + end +} diff --git a/nvim/lua/plugins/lsp-config.lua b/nvim/lua/plugins/lsp-config.lua new file mode 100644 index 0000000..bcb27ef --- /dev/null +++ b/nvim/lua/plugins/lsp-config.lua @@ -0,0 +1,17 @@ +return { + "mason-org/mason-lspconfig.nvim", + dependencies = { + { "mason-org/mason.nvim", opts = {} }, + "neovim/nvim-lspconfig", + }, + config = function() + require("mason-lspconfig").setup({ + ensure_installed = { "lua_ls", "rust_analyzer", "ts_ls", "yamlls", "pyright", "angularls" }, + }) + + vim.diagnostic.config({ virtual_text = true }) + vim.keymap.set("n", "K", vim.lsp.buf.hover, {}) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, {}) + vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, {}) + end, +} diff --git a/nvim/lua/plugins/lualine.lua b/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..fcbf96c --- /dev/null +++ b/nvim/lua/plugins/lualine.lua @@ -0,0 +1,88 @@ +return { + "nvim-lualine/lualine.nvim", + dependencies = { + "nvim-tree/nvim-web-devicons", + "yavorski/lualine-macro-recording.nvim" + }, + config = function() + -- Bubbles config for lualine + -- Author: lokesh-krishna + -- MIT license, see LICENSE for more details. + + -- stylua: ignore + local colors = { + gray = '#1E1E2E', + lightgray = '#45475a', + orange = '#F5C2E7', + purple = '#b4befe', + red = '#F38BA8', + yellow = '#F9E2AF', + green = '#A6E3A1', + white = '#BAC2DE', + black = '#45475A', + } + + local custom_theme = { + normal = { + a = { bg = colors.purple, fg = colors.black, gui = "bold" }, + b = { bg = colors.lightgray, fg = colors.white }, + c = { bg = colors.gray, fg = colors.white }, + }, + insert = { + a = { bg = colors.green, fg = colors.black, gui = "bold" }, + b = { bg = colors.lightgray, fg = colors.white }, + c = { bg = colors.gray, fg = colors.white }, + }, + visual = { + a = { bg = colors.yellow, fg = colors.black, gui = "bold" }, + b = { bg = colors.lightgray, fg = colors.white }, + c = { bg = colors.gray, fg = colors.white }, + }, + replace = { + a = { bg = colors.red, fg = colors.black, gui = "bold" }, + b = { bg = colors.lightgray, fg = colors.white }, + c = { bg = colors.gray, fg = colors.white }, + }, + command = { + a = { bg = colors.orange, fg = colors.black, gui = "bold" }, + b = { bg = colors.lightgray, fg = colors.white }, + c = { bg = colors.gray, fg = colors.white }, + }, + inactive = { + a = { bg = colors.gray, fg = colors.white, gui = "bold" }, + b = { bg = colors.lightgray, fg = colors.white }, + c = { bg = colors.gray, fg = colors.white }, + }, + } + + require("lualine").setup({ + options = { + theme = custom_theme, + component_separators = "", + section_separators = { left = "", right = "" }, + }, + sections = { + lualine_a = { { "mode", separator = { left = "" }, right_padding = 2 } }, + lualine_b = { "filename", "branch", "diff" }, + lualine_c = { + "macro_recording", "%S" --[[ add your center components here in place of this comment ]] + }, + lualine_x = {}, + lualine_y = { "filetype", "progress" }, + lualine_z = { + { "location", separator = { right = "" }, left_padding = 2 }, + }, + }, + inactive_sections = { + lualine_a = { "filename" }, + lualine_b = {}, + lualine_c = {}, + lualine_x = {}, + lualine_y = {}, + lualine_z = { "location" }, + }, + tabline = {}, + extensions = {}, + }) + end, +} diff --git a/nvim/lua/plugins/neo-tree.lua b/nvim/lua/plugins/neo-tree.lua new file mode 100644 index 0000000..1639514 --- /dev/null +++ b/nvim/lua/plugins/neo-tree.lua @@ -0,0 +1,13 @@ +return { + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", + "MunifTanjim/nui.nvim", + }, + config = function () + vim.keymap.set("n", "", ":Neotree filesystem reveal left") + vim.keymap.set({"n", "v" }, "nt", ":Neotree toggle") + end +} diff --git a/nvim/lua/plugins/noice.lua b/nvim/lua/plugins/noice.lua new file mode 100644 index 0000000..7a48fa2 --- /dev/null +++ b/nvim/lua/plugins/noice.lua @@ -0,0 +1,52 @@ +return { + "folke/noice.nvim", + event = "VeryLazy", + opts = { + lsp = { + override = { + ["vim.lsp.util.convert_input_to_markdown_lines"] = true, + ["vim.lsp.util.stylize_markdown"] = true, + ["cmp.entry.get_documentation"] = true, + }, + }, + routes = { + { + filter = { + event = "msg_show", + any = { + { find = "%d+L, %d+B" }, + { find = "; after #%d+" }, + { find = "; before #%d+" }, + }, + }, + view = "mini", + }, + }, + presets = { + bottom_search = true, + command_palette = true, + long_message_to_split = true, + }, + }, + -- stylua: ignore + keys = { + { "sn", "", desc = "+noice" }, + { "", function() require("noice").redirect(vim.fn.getcmdline()) end, mode = "c", desc = "Redirect Cmdline" }, + { "snl", function() require("noice").cmd("last") end, desc = "Noice Last Message" }, + { "snh", function() require("noice").cmd("history") end, desc = "Noice History" }, + { "sna", function() require("noice").cmd("all") end, desc = "Noice All" }, + { "snd", function() require("noice").cmd("dismiss") end, desc = "Dismiss All" }, + { "snt", function() require("noice").cmd("pick") end, desc = "Noice Picker (Telescope/FzfLua)" }, + { "", function() if not require("noice.lsp").scroll(4) then return "" end end, silent = true, expr = true, desc = "Scroll Forward", mode = { "i", "n", "s" } }, + { "", function() if not require("noice.lsp").scroll(-4) then return "" end end, silent = true, expr = true, desc = "Scroll Backward", mode = { "i", "n", "s" } }, + }, + config = function(_, opts) + -- HACK: noice shows messages from before it was enabled, + -- but this is not ideal when Lazy is installing plugins, + -- so clear the messages in this case. + if vim.o.filetype == "lazy" then + vim.cmd([[messages clear]]) + end + require("noice").setup(opts) + end, +} diff --git a/nvim/lua/plugins/none-ls.lua b/nvim/lua/plugins/none-ls.lua new file mode 100644 index 0000000..a30a5cf --- /dev/null +++ b/nvim/lua/plugins/none-ls.lua @@ -0,0 +1,15 @@ +return { + "nvimtools/none-ls.nvim", + config = function() + local null_ls = require("null-ls") + + null_ls.setup({ + sources = { + null_ls.builtins.formatting.stylua, + null_ls.builtins.formatting.prettier, + -- null_ls.builtins.diagnostics.eslint_d, + }, + }) + vim.keymap.set("n", "gf", vim.lsp.buf.format, {}) + end, +} diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..2c39f05 --- /dev/null +++ b/nvim/lua/plugins/telescope.lua @@ -0,0 +1,32 @@ +return { + { + "nvim-telescope/telescope.nvim", + tag = "0.1.8", + requires = { + "nvim-lua/plenary.nvim", + "BurntSushi/ripgrep", + }, + config = function() + local builtin = require("telescope.builtin") + vim.g.mapleader = " " + vim.keymap.set("n", "", builtin.find_files, {}) + vim.keymap.set("n", "ff", builtin.find_files, { desc = "Telescope find files" }) + vim.keymap.set("n", "fg", builtin.live_grep, { desc = "Telescope live grep" }) + vim.keymap.set("n", "fb", builtin.buffers, { desc = "Telescope buffers" }) + vim.keymap.set("n", "fh", builtin.help_tags, { desc = "Telescope help tags" }) + end, + }, + { + "nvim-telescope/telescope-ui-select.nvim", + config = function() + require("telescope").setup({ + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown({}), + }, + }, + }) + require("telescope").load_extension("ui-select") + end, + }, +} diff --git a/nvim/lua/plugins/treesitter.lua b/nvim/lua/plugins/treesitter.lua new file mode 100644 index 0000000..90709f7 --- /dev/null +++ b/nvim/lua/plugins/treesitter.lua @@ -0,0 +1,33 @@ +return { + "nvim-treesitter/nvim-treesitter", + branch = "master", + lazy = false, + build = ":TSUpdate", + config = function() + require("nvim-treesitter.configs").setup({ + ensure_installed = { + "c", + "lua", + "vim", + "vimdoc", + "query", + "markdown", + "markdown_inline", + "typescript", + "kotlin", + "java", + }, + + sync_install = false, + + auto_install = true, + + ignore_install = {}, + + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, + }) + end, +} diff --git a/nvim/lua/plugins/trouble.lua b/nvim/lua/plugins/trouble.lua new file mode 100644 index 0000000..3741f30 --- /dev/null +++ b/nvim/lua/plugins/trouble.lua @@ -0,0 +1,37 @@ +return { + "folke/trouble.nvim", + opts = {}, -- for default options, refer to the configuration section for custom setup. + cmd = "Trouble", + keys = { + { + "xx", + "Trouble diagnostics toggle", + desc = "Diagnostics (Trouble)", + }, + { + "xX", + "Trouble diagnostics toggle filter.buf=0", + desc = "Buffer Diagnostics (Trouble)", + }, + { + "cs", + "Trouble symbols toggle focus=false", + desc = "Symbols (Trouble)", + }, + { + "cl", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { + "xL", + "Trouble loclist toggle", + desc = "Location List (Trouble)", + }, + { + "xQ", + "Trouble qflist toggle", + desc = "Quickfix List (Trouble)", + }, + }, +} diff --git a/nvim/lua/plugins/vim-fugitive.lua b/nvim/lua/plugins/vim-fugitive.lua new file mode 100644 index 0000000..e1586a3 --- /dev/null +++ b/nvim/lua/plugins/vim-fugitive.lua @@ -0,0 +1,3 @@ +return { + "tpope/vim-fugitive" +} diff --git a/nvim/lua/plugins/which-key.lua b/nvim/lua/plugins/which-key.lua new file mode 100644 index 0000000..ec302d9 --- /dev/null +++ b/nvim/lua/plugins/which-key.lua @@ -0,0 +1,71 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + opts_extend = { "spec" }, + opts = { + preset = "helix", + defaults = {}, + spec = { + { + mode = { "n", "v" }, + { "", group = "tabs" }, + { "c", group = "code" }, + { "d", group = "debug" }, + { "dp", group = "profiler" }, + { "f", group = "file/find" }, + { "g", group = "git" }, + { "gh", group = "hunks" }, + { "q", group = "quit/session" }, + { "s", group = "search" }, + { "u", group = "ui", icon = { icon = "󰙵 ", color = "cyan" } }, + { "x", group = "diagnostics/quickfix", icon = { icon = "󱖫 ", color = "green" } }, + { "[", group = "prev" }, + { "]", group = "next" }, + { "g", group = "goto" }, + { "gs", group = "surround" }, + { "z", group = "fold" }, + { + "b", + group = "buffer", + expand = function() + return require("which-key.extras").expand.buf() + end, + }, + { + "w", + group = "windows", + proxy = "", + expand = function() + return require("which-key.extras").expand.win() + end, + }, + -- better descriptions + { "gx", desc = "Open with system app" }, + }, + }, + }, + keys = { + { + "?", + function() + require("which-key").show({ global = false }) + end, + desc = "Buffer Keymaps (which-key)", + }, + { + "", + function() + require("which-key").show({ keys = "", loop = true }) + end, + desc = "Window Hydra Mode (which-key)", + }, + }, + config = function(_, opts) + local wk = require("which-key") + wk.setup(opts) + if not vim.tbl_isempty(opts.defaults) then + LazyVim.warn("which-key: opts.defaults is deprecated. Please use opts.spec instead.") + wk.register(opts.defaults) + end + end, +} diff --git a/tmux/.gitignore b/tmux/.gitignore new file mode 100644 index 0000000..16873f6 --- /dev/null +++ b/tmux/.gitignore @@ -0,0 +1 @@ +plugins/ diff --git a/tmux/README.md b/tmux/README.md new file mode 100644 index 0000000..7accea1 --- /dev/null +++ b/tmux/README.md @@ -0,0 +1,16 @@ +# Installation + +1. Make sure that `tmux` is installed on your system. + +2. Please clone this repository to your `~/.config/tmux` directory: + + ```bash + mkdir -p ~/.config/tmux + git clone git@github.com:antistereov/tmux.git ~/.config/tmux + ``` + +3. To install this custom configuration, run: + + ```bash + install.sh + ``` diff --git a/tmux/install.sh b/tmux/install.sh new file mode 100755 index 0000000..c39228b --- /dev/null +++ b/tmux/install.sh @@ -0,0 +1,17 @@ +#!/bin/bash + + +echo "Installing Catppuccin..." +mkdir -p ~/.config/tmux/plugins/catppuccin +git clone -b v2.1.3 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux + +echo "Installing tmux-cpu..." +mkdir -p ~/.config/tmux/plugins/tmux-cpu +git clone https://github.com/tmux-plugins/tmux-cpu.git ~/.config/tmux/plugins/tmux-cpu + +echo "Installing tmux-battery..." +mkdir -p ~/.config/tmux/plugins/tmux-battery +git clone https://github.com/tmux-plugins/tmux-battery.git ~/.config/tmux/plugins/tmux-battery + +echo "Applying custom configuration..." +tmux source ~/.config/tmux/tmux.conf diff --git a/tmux/tmux.conf b/tmux/tmux.conf new file mode 100644 index 0000000..8f8437e --- /dev/null +++ b/tmux/tmux.conf @@ -0,0 +1,40 @@ +unbind r +bind r source-file ~/.config/tmux/tmux.conf + +set -g prefix C-b + +# Keybindings +bind-key h select-pane -L +bind-key j select-pane -D +bind-key k select-pane -U +bind-key l select-pane -R + +# Resize panes using Shift + vim-keys after prefix +bind-key C-h resize-pane -L 5 +bind-key C-j resize-pane -D 5 +bind-key C-k resize-pane -U 5 +bind-key L resize-pane -R 5 + +# Options to make tmux more pleasant +set -g mouse on +set -g default-terminal "tmux-256color" +set-option -g status-position top + +# Configure the catppuccin plugin +set -g @catppuccin_flavor "mocha" +set -g @catppuccin_window_status_style "rounded" + +set -g @thm_mantle "#1e1e2f" + +run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux + +# Make the status line pretty and add some modules +set -g status-right-length 100 +set -g status-left-length 100 +set -g status-left "" +set -g status-right "#{E:@catppuccin_status_session}" +set -agF status-right "#{E:@catppuccin_status_battery}" +set -agF status-right "#{E:@catppuccin_status_cpu}" + +run ~/.config/tmux/plugins/tmux-cpu/cpu.tmux +run ~/.config/tmux/plugins/tmux-battery/battery.tmux