diff --git a/.zprofile b/.zprofile index 59f6c5b..f3155db 100644 --- a/.zprofile +++ b/.zprofile @@ -6,4 +6,5 @@ if [ -x /opt/homebrew/bin/brew ]; then eval "$(/opt/homebrew/bin/brew shellenv)" fi -export EDITOR='vim' +export EDITOR='nvim' +export VISUAL='nvim' diff --git a/README.md b/README.md index 3028b61..ff0e780 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -Some sane defaults for git, zsh (using oh-my-zsh), vim and tmux. +Some sane defaults for git, zsh (using oh-my-zsh), kitty, neovim and tmux. Install needed packages: Linux: -```apt install git vim zsh lsd tmux``` +```apt install git neovim zsh lsd tmux``` macOS: -```brew install git vim lsd tmux``` +```brew install git neovim lsd tmux``` From your users home directory (~/), execute: ```git clone gitea@git.24unix.net:tracer/dotfiles.git .config/dotfiles``` @@ -14,7 +14,7 @@ From your users home directory (~/), execute: To install oh-my-zsh and symlink the config files run: ```sh .config/dotfiles/install.sh``` -This replaces the managed dotfiles in your home directory (`.zshrc`, `.zprofile`, `.vimrc`, `.gitconfig`, `.p10k.zsh`, and `~/.config/tmux`). +This replaces the managed dotfiles in your home directory (`.zshrc`, `.zprofile`, `.gitconfig`, `.p10k.zsh`, `~/.config/kitty`, `~/.config/nvim`, and `~/.config/tmux`). ![user prompt](https://24unix.net/build/images/Settings/user_screen.png) [original image, 1.8M](https://24unix.net/build/images/Settings/user_screen_original.png) diff --git a/nvim/lua/tracer/statusline.lua b/nvim/lua/tracer/statusline.lua new file mode 100644 index 0000000..2f6d1b4 --- /dev/null +++ b/nvim/lua/tracer/statusline.lua @@ -0,0 +1,49 @@ +local M = {} + +local function progress_bar() + local columns = vim.o.columns + local total_lines = vim.fn.line("$") + local current_line = vim.fn.line(".") + local current_col = vim.fn.virtcol(".") + + local bar_width = math.max(columns - 65, 3) + local progress + + if total_lines > 1 then + progress = math.floor((current_line - 1) * (bar_width - 1) / (total_lines - 1)) + else + progress = math.floor(bar_width / 2) + end + + local pad = #tostring(total_lines) - #tostring(current_line) + 3 + - #tostring(current_col) + 3 + - #tostring(math.floor(current_line * 100 / math.max(total_lines, 1))) + + return string.rep(" ", math.max(pad, 0)) + .. " [" + .. "%#DiffAdd#" + .. string.rep("-", progress) + .. "%#DiffDelete#0%#DiffAdd#" + .. string.rep("-", math.max(bar_width - progress - 1, 0)) + .. "%*]" +end + +function M.render() + local encoding = vim.bo.fenc ~= "" and vim.bo.fenc or vim.o.enc + local bomb = vim.bo.bomb and ",B" or "" + + return table.concat({ + "%f", + " [", + encoding, + bomb, + "%M%R%H%W] ", + "%y", + " [%l/%L,%v] [%p%%]", + progress_bar(), + }) +end + +vim.o.statusline = "%!v:lua.require'tracer.statusline'.render()" + +return M