#!/bin/bash # Step 0. Detect the OS if [[ "$OSTYPE" == "darwin"* ]]; then OS="macos" elif [[ -f /etc/os-release ]]; then # shellcheck disable=SC1091 . /etc/os-release case "$ID" in ubuntu|pop|linuxmint|zorin|elementary|kdeneon) OS="ubuntu" ;; arch|manjaro|endeavouros|garuda|artix) OS="arch" ;; *) err "Unsupported Linux distribution: $ID" exit 1 ;; esac else err "Cannot determine OS." exit 1 fi echo "🔎 Determined OS: $OS" # Step 1: Install Neovim if [[ $OS == "macos" ]]; then brew install neovim elif [[ $OS == "ubuntu" ]]; then sudo apt install neovim -y elif [[ $OS == "arch" ]]; then sudo pacman -Sy --noconfirm neovim xclip wl-clipboard fi echo "✅ Neovim installed" # Step 2: Create the Neovim config directory CONFIG_DIR="$HOME/.config/nvim" CONFIG="$CONFIG_DIR/init.lua" mkdir -p $CONFIG_DIR # Step 3: Write your custom init.lua configuration cat < $CONFIG vim.cmd("set expandtab") vim.cmd("set tabstop=4") vim.cmd("set softtabstop=4") vim.cmd("set shiftwidth=4") vim.cmd("set number relativenumber") vim.cmd("highlight Normal guibg=transparent") vim.opt.clipboard = "unnamedplus" -- Clipboard alternative fix vim.g.mapleader = " " vim.keymap.set({"n", "v"}, "y", "\"+y") vim.keymap.set({"n", "v"}, "p", "\"+p") -- Moving lines up and down vim.keymap.set({"n", "v"}, "u", ":m -2") vim.keymap.set({"n", "v"}, "d", ":m +1") EOF echo "✅ Config written ($CONFIG)" # Step 4: Notify user of success echo "All done! You can now open Neovim with the 'nvim' command"