summaryrefslogtreecommitdiff
path: root/utils/installer
diff options
context:
space:
mode:
Diffstat (limited to 'utils/installer')
-rwxr-xr-xutils/installer/install.sh266
-rwxr-xr-xutils/installer/install_stylua.sh63
-rw-r--r--utils/installer/lv-config.example-no-ts.lua94
-rw-r--r--utils/installer/lv-config.example.lua101
-rwxr-xr-xutils/installer/uninstall.sh5
5 files changed, 306 insertions, 223 deletions
diff --git a/utils/installer/install.sh b/utils/installer/install.sh
index 0473bbab..5778fb3a 100755
--- a/utils/installer/install.sh
+++ b/utils/installer/install.sh
@@ -5,219 +5,235 @@ set -o nounset # error when referencing undefined variable
set -o errexit # exit when command fails
installnodemac() {
- brew install lua
- brew install node
- brew install yarn
+ brew install lua
+ brew install node
+ brew install yarn
}
installnodeubuntu() {
- sudo apt install nodejs
- sudo apt install npm
+ sudo apt install nodejs
+ sudo apt install npm
}
-moveoldnvim() {
- echo "Not installing LunarVim"
- echo "Please move your ~/.config/nvim folder before installing"
- exit
+moveoldlvim() {
+ echo "Not installing LunarVim"
+ echo "Please move your ~/.local/share/lunarvim folder before installing"
+ exit
}
installnodearch() {
- sudo pacman -S nodejs
- sudo pacman -S npm
+ sudo pacman -S nodejs
+ sudo pacman -S npm
}
installnodefedora() {
- sudo dnf install -y nodejs
- sudo dnf install -y npm
+ sudo dnf install -y nodejs
+ sudo dnf install -y npm
}
installnodegentoo() {
- echo "Printing current node status..."
- emerge -pqv net-libs/nodejs
- echo "Make sure the npm USE flag is enabled for net-libs/nodejs"
- echo "If it isn't enabled, would you like to enable it with flaggie? (Y/N)"
- read answer
- [ "$answer" != "${answer#[Yy]}" ] && sudo flaggie net-libs/nodejs +npm
- sudo emerge -avnN net-libs/nodejs
+ echo "Printing current node status..."
+ emerge -pqv net-libs/nodejs
+ echo "Make sure the npm USE flag is enabled for net-libs/nodejs"
+ echo "If it isn't enabled, would you like to enable it with flaggie? (Y/N)"
+ read -r answer
+ [ "$answer" != "${answer#[Yy]}" ] && sudo flaggie net-libs/nodejs +npm
+ sudo emerge -avnN net-libs/nodejs
}
installnode() {
- echo "Installing node..."
- [ "$(uname)" == "Darwin" ] && installnodemac
- [ -n "$(cat /etc/os-release | grep Ubuntu)" ] && installnodeubuntu
- [ -f "/etc/arch-release" ] && installnodearch
- [ -f "/etc/artix-release" ] && installnodearch
- [ -f "/etc/fedora-release" ] && installnodefedora
- [ -f "/etc/gentoo-release" ] && installnodegentoo
- [ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ] && echo "Windows not currently supported"
- sudo npm i -g neovim
+ echo "Installing node..."
+ [ "$(uname)" = "Darwin" ] && installnodemac
+ grep -q Ubuntu /etc/os-release && installnodeubuntu
+ [ -f "/etc/arch-release" ] && installnodearch
+ [ -f "/etc/artix-release" ] && installnodearch
+ [ -f "/etc/fedora-release" ] && installnodefedora
+ [ -f "/etc/gentoo-release" ] && installnodegentoo
+ [ "$(uname -s | cut -c 1-10)" = "MINGW64_NT" ] && echo "Windows not currently supported"
+ sudo npm i -g neovim
}
installpiponmac() {
- sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- python3 get-pip.py
- rm get-pip.py
+ sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
+ python3 get-pip.py
+ rm get-pip.py
}
installpiponubuntu() {
- sudo apt install python3-pip >/dev/null
+ sudo apt install python3-pip >/dev/null
}
installpiponarch() {
- sudo pacman -S python-pip
+ sudo pacman -S python-pip
}
installpiponfedora() {
- sudo dnf install -y pip >/dev/nul
+ sudo dnf install -y pip >/dev/null
}
installpipongentoo() {
- sudo emerge -avn dev-python/pip
+ sudo emerge -avn dev-python/pip
}
installpip() {
- echo "Installing pip..."
- [ "$(uname)" == "Darwin" ] && installpiponmac
- [ -n "$(cat /etc/os-release | grep Ubuntu)" ] && installpiponubuntu
- [ -f "/etc/arch-release" ] && installpiponarch
- [ -f "/etc/fedora-release" ] && installpiponfedora
- [ -f "/etc/gentoo-release" ] && installpipongentoo
- [ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ] && echo "Windows not currently supported"
+ echo "Installing pip..."
+ [ "$(uname)" = "Darwin" ] && installpiponmac
+ grep -q Ubuntu /etc/os-release && installpiponubuntu
+ [ -f "/etc/arch-release" ] && installpiponarch
+ [ -f "/etc/fedora-release" ] && installpiponfedora
+ [ -f "/etc/gentoo-release" ] && installpipongentoo
+ [ "$(uname -s | cut -c 1-10)" = "MINGW64_NT" ] && echo "Windows not currently supported"
}
installpynvim() {
- echo "Installing pynvim..."
- if [ -f "/etc/gentoo-release" ]; then
- echo "Installing using Portage"
- sudo emerge -avn dev-python/pynvim
- else
- pip3 install pynvim --user
- fi
+ echo "Installing pynvim..."
+ if [ -f "/etc/gentoo-release" ]; then
+ echo "Installing using Portage"
+ sudo emerge -avn dev-python/pynvim
+ else
+ pip3 install pynvim --user
+ fi
}
installpacker() {
- git clone https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim
+ git clone https://github.com/wbthomason/packer.nvim ~/.local/share/lunarvim/site/pack/packer/start/packer.nvim
}
cloneconfig() {
- echo "Cloning LunarVim configuration"
- git clone --branch $LVBRANCH https://github.com/ChristianChiarulli/lunarvim.git ~/.config/nvim
- cp $HOME/.config/nvim/utils/installer/lv-config.example-no-ts.lua $HOME/.config/nvim/lv-config.lua
- nvim --headless \
- +'autocmd User PackerComplete sleep 100m | qall' \
- +PackerInstall
+ echo "Cloning LunarVim configuration"
+ mkdir -p ~/.local/share/lunarvim
+ case "$@" in
- nvim --headless \
- +'autocmd User PackerComplete sleep 100m | qall' \
- +PackerSync
+ *--testing*)
+ cp -r "$(pwd)" ~/.local/share/lunarvim/lvim
+ ;;
+ *)
+ git clone --branch "$LVBRANCH" https://github.com/ChristianChiarulli/lunarvim.git ~/.local/share/lunarvim/lvim
+ ;;
+ esac
+ mkdir -p "$HOME/.config/lvim"
+ sudo cp "$HOME/.local/share/lunarvim/lvim/utils/bin/lvim" "/usr/local/bin"
+ cp "$HOME/.local/share/lunarvim/lvim/utils/installer/lv-config.example-no-ts.lua" "$HOME/.config/lvim/lv-config.lua"
+
+ nvim -u ~/.local/share/lunarvim/lvim/init.lua --cmd "set runtimepath+=~/.local/share/lunarvim/lvim" --headless \
+ +'autocmd User PackerComplete sleep 100m | qall' \
+ +PackerInstall
+
+ nvim -u ~/.local/share/lunarvim/lvim/init.lua --cmd "set runtimepath+=~/.local/share/lunarvim/lvim" --headless \
+ +'autocmd User PackerComplete sleep 100m | qall' \
+ +PackerSync
+
+ printf "\nCompile Complete\n"
+
+ if [ -e "$HOME/.local/share/lunarvim/lvim/init.lua" ]; then
+ echo 'lv-config already present'
+ else
+ cp "$HOME/.local/share/lunarvim/lvim/utils/installer/lv-config.example.lua" "$HOME/.config/lvim/lv-config.lua"
+ fi
- echo -e "\nCompile Complete"
- rm $HOME/.config/nvim/lv-config.lua
- cp $HOME/.config/nvim/utils/installer/lv-config.example.lua $HOME/.config/nvim/lv-config.lua
- # nvim --headless -cq ':silent TSUpdate' -cq ':qall' >/dev/null 2>&1
}
asktoinstallnode() {
- echo "node not found"
- echo -n "Would you like to install node now (y/n)? "
- read answer
- [ "$answer" != "${answer#[Yy]}" ] && installnode
+ echo "node not found"
+ printf "Would you like to install node now (y/n)? "
+ read -r answer
+ [ "$answer" != "${answer#[Yy]}" ] && installnode
}
asktoinstallpip() {
- # echo "pip not found"
- # echo -n "Would you like to install pip now (y/n)? "
- # read answer
- # [ "$answer" != "${answer#[Yy]}" ] && installpip
- echo "Please install pip3 before continuing with install"
- exit
+ # echo "pip not found"
+ # echo -n "Would you like to install pip now (y/n)? "
+ # read answer
+ # [ "$answer" != "${answer#[Yy]}" ] && installpip
+ echo "Please install pip3 before continuing with install"
+ exit
}
installonmac() {
- brew install ripgrep fzf ranger
- npm install -g tree-sitter-cli
-}
-
-pipinstallueberzug() {
- which pip3 >/dev/null && pip3 install ueberzug || echo "Not installing ueberzug pip not found"
+ brew install ripgrep fzf
+ npm install -g tree-sitter-cli
}
installonubuntu() {
- sudo apt install ripgrep fzf ranger
- sudo apt install libjpeg8-dev zlib1g-dev python-dev python3-dev libxtst-dev
- pip3 install ueberzug
- pip3 install neovim-remote
- npm install -g tree-sitter-cli
+ sudo apt install ripgrep fzf
+ sudo apt install libjpeg8-dev zlib1g-dev python-dev python3-dev libxtst-dev
+ pip3 install neovim-remote
+ npm install -g tree-sitter-cli
}
installonarch() {
- sudo pacman -S ripgrep fzf ranger
- which yay >/dev/null && yay -S python-ueberzug-git || pipinstallueberzug
- pip3 install neovim-remote
- npm install -g tree-sitter-cli
+ sudo pacman -S ripgrep fzf
+ pip3 install neovim-remote
+ npm install -g tree-sitter-cli
}
installonfedora() {
- sudo dnf groupinstall "X Software Development"
- sudo dnf install -y fzf ripgrep ranger
- pip3 install wheel ueberzug
+ sudo dnf groupinstall "X Software Development"
+ sudo dnf install -y fzf ripgrep
}
installongentoo() {
- sudo emerge -avn sys-apps/ripgrep app-shells/fzf app-misc/ranger dev-python/neovim-remote virtual/jpeg sys-libs/zlib
- pipinstallueberzug
- npm install -g tree-sitter-cli
+ sudo emerge -avn sys-apps/ripgrep app-shells/fzf dev-python/neovim-remote virtual/jpeg sys-libs/zlib
+ npm install -g tree-sitter-cli
}
installextrapackages() {
- [ "$(uname)" == "Darwin" ] && installonmac
- [ -n "$(cat /etc/os-release | grep Ubuntu)" ] && installonubuntu
- [ -f "/etc/arch-release" ] && installonarch
- [ -f "/etc/artix-release" ] && installonarch
- [ -f "/etc/fedora-release" ] && installonfedora
- [ -f "/etc/gentoo-release" ] && installongentoo
- [ "$(expr substr $(uname -s) 1 10)" == "MINGW64_NT" ] && echo "Windows not currently supported"
+ [ "$(uname)" = "Darwin" ] && installonmac
+ grep -q Ubuntu /etc/os-release && installonubuntu
+ [ -f "/etc/arch-release" ] && installonarch
+ [ -f "/etc/artix-release" ] && installonarch
+ [ -f "/etc/fedora-release" ] && installonfedora
+ [ -f "/etc/gentoo-release" ] && installongentoo
+ [ "$(uname -s | cut -c 1-10)" = "MINGW64_NT" ] && echo "Windows not currently supported"
}
# Welcome
echo 'Installing LunarVim'
-if [[ $* == *--overwrite* ]]; then
- echo '!!Warning!! -> Removing all nvim related config because of the --overwrite flag'
- rm -rf "$HOME/.config/nvim"
- rm -rf "$HOME/.cache/nvim"
- rm -rf "$HOME/.local/share/nvim/site/pack/packer"
-fi
+case "$@" in
+*--overwrite*)
+ echo '!!Warning!! -> Removing all lunarvim related config because of the --overwrite flag'
+ rm -rf "$HOME/.local/share/lunarvim"
+ rm -rf "$HOME/.cache/nvim"
+ rm -rf "$HOME/.config/lvim"
+ ;;
+esac
-# move old nvim directory if it exists
-[ -d "$HOME/.config/nvim" ] && moveoldnvim
+# move old lvim directory if it exists
+[ -d "$HOME/.local/share/lunarvim" ] && moveoldlvim
# install pip
-which pip3 >/dev/null && echo "pip installed, moving on..." || asktoinstallpip
+(command -v pip3 >/dev/null && echo "pip installed, moving on...") || asktoinstallpip
# install node and neovim support
-which node >/dev/null && echo "node installed, moving on..." || asktoinstallnode
+(command -v node >/dev/null && echo "node installed, moving on...") || asktoinstallnode
# install pynvim
-pip3 list | grep pynvim >/dev/null && echo "pynvim installed, moving on..." || installpynvim
+(pip3 list | grep pynvim >/dev/null && echo "pynvim installed, moving on...") || installpynvim
-if [ -e "$HOME/.local/share/nvim/site/pack/packer/start/packer.nvim" ]; then
- echo 'packer already installed'
+if [ -e "$HOME/.local/share/lunarvim/site/pack/packer/start/packer.nvim" ]; then
+ echo 'packer already installed'
else
- installpacker
+ installpacker
fi
-if [ -e "$HOME/.config/nvim/init.lua" ]; then
- echo 'LunarVim already installed'
+if [ -e "$HOME/.local/share/lunarvim/lvim/init.lua" ]; then
+ echo 'LunarVim already installed'
else
- # clone config down
- cloneconfig
- # echo 'export PATH=$HOME/.config/nvim/utils/bin:$PATH' >>~/.zshrc
- # echo 'export PATH=$HOME/.config/lunarvim/utils/bin:$PATH' >>~/.bashrc
+ # clone config down
+ cloneconfig "$@"
+ # echo 'export PATH=$HOME/.config/nvim/utils/bin:$PATH' >>~/.zshrc
+ # echo 'export PATH=$HOME/.config/lunarvim/utils/bin:$PATH' >>~/.bashrc
fi
-echo "I recommend you also install and activate a font from here: https://github.com/ryanoasis/nerd-fonts"
-
-# echo "I also recommend you add 'set preview_images_method ueberzug' to ~/.config/ranger/rc.conf"
+if [ "$(uname)" != "Darwin" ]; then
+ if [ -e "$HOME/.local/share/applications/lvim.desktop" ]; then
+ echo 'Desktop file already available'
+ else
+ mkdir -p "$HOME/.local/share/applications"
+ cp "$HOME/.local/share/lunarvim/lvim/utils/desktop/lvim.desktop" "$HOME/.local/share/applications/lvim.desktop"
+ fi
+fi
+echo "I recommend you also install and activate a font from here: https://github.com/ryanoasis/nerd-fonts"
# echo 'export PATH=/home/$USER/.config/lunarvim/utils/bin:$PATH appending to zshrc/bashrc'
diff --git a/utils/installer/install_stylua.sh b/utils/installer/install_stylua.sh
new file mode 100755
index 00000000..cd8b3942
--- /dev/null
+++ b/utils/installer/install_stylua.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+
+set -eu pipefall
+
+declare -r INSTALL_DIR="$PWD/utils"
+declare -r RELEASE="0.10.0"
+declare -r OS="linux"
+# declare -r OS="$(uname -s)"
+declare -r FILENAME="stylua-$RELEASE-$OS"
+
+declare -a __deps=("curl" "unzip")
+
+function check_deps() {
+ for dep in "${__deps[@]}"; do
+ if ! command -v "$dep" >/dev/null; then
+ echo "Missing depdendecy!"
+ echo "The \"$dep\" command was not found!. Please install and try again."
+ fi
+ done
+}
+
+function download_stylua() {
+ local DOWNLOAD_DIR
+ local URL="https://github.com/JohnnyMorganz/StyLua/releases/download/v$RELEASE/$FILENAME.zip"
+
+ DOWNLOAD_DIR="$(mktemp -d)"
+ echo "Initiating download for Stylua v$RELEASE"
+ if ! curl --progress-bar --fail -L "$URL" -o "$DOWNLOAD_DIR/$FILENAME.zip"; then
+ echo "Download failed. Check that the release/filename are correct."
+ exit 1
+ fi
+
+ echo "Installtion in progress.."
+ unzip -q "$DOWNLOAD_DIR/$FILENAME.zip" -d "$DOWNLOAD_DIR"
+
+ if [ -f "$DOWNLOAD_DIR/stylua" ]; then
+ mv "$DOWNLOAD_DIR/stylua" "$INSTALL_DIR/stylua"
+ else
+ mv "$DOWNLOAD_DIR/$FILENAME/stylua" "$INSTALL_DIR/."
+ fi
+
+ chmod u+x "$INSTALL_DIR/stylua"
+}
+
+function verify_install() {
+ echo "Verifying installtion.."
+ local DOWNLOADED_VER
+ DOWNLOADED_VER="$("$INSTALL_DIR/stylua" -V | awk '{ print $2 }')"
+ if [ "$DOWNLOADED_VER" != "$RELEASE" ]; then
+ echo "Mismatched version!"
+ echo "Expected: v$RELEASE but got v$DOWNLOADED_VER"
+ exit 1
+ fi
+ echo "Verification complete!"
+}
+
+function main() {
+ check_deps
+ download_stylua
+ verify_install
+}
+
+main "$@"
diff --git a/utils/installer/lv-config.example-no-ts.lua b/utils/installer/lv-config.example-no-ts.lua
index 33d9f433..ab12309d 100644
--- a/utils/installer/lv-config.example-no-ts.lua
+++ b/utils/installer/lv-config.example-no-ts.lua
@@ -1,58 +1,55 @@
---[[
-O is the global options object
-
-Linters should be
-filled in as strings with either
-a global executable or a path to
-an executable
-]]
-- THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT
-- general
+lvim.format_on_save = true
+lvim.lint_on_save = true
+lvim.colorscheme = "spacegray"
-O.format_on_save = true
-O.completion.autocomplete = true
-O.colorscheme = "spacegray"
-O.auto_close_tree = 0
-O.default_options.wrap = true
-O.default_options.timeoutlen = 100
-O.leader_key = " "
+-- keymappings
+lvim.leader = "space"
+-- overwrite the key-mappings provided by LunarVim for any mode, or leave it empty to keep them
+-- lvim.keys.normal_mode = {
+-- Page down/up
+-- {'[d', '<PageUp>'},
+-- {']d', '<PageDown>'},
+--
+-- Navigate buffers
+-- {'<Tab>', ':bnext<CR>'},
+-- {'<S-Tab>', ':bprevious<CR>'},
+-- }
+-- if you just want to augment the existing ones then use the utility function
+-- require("utils").add_keymap_insert_mode({ silent = true }, {
+-- { "<C-s>", ":w<cr>" },
+-- { "<C-c>", "<ESC>" },
+-- })
+-- you can also use the native vim way directly
+-- vim.api.nvim_set_keymap("i", "<C-Space>", "compe#complete()", { noremap = true, silent = true, expr = true })
-- TODO: User Config for predefined plugins
-- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile
-O.plugin.dashboard.active = true
-O.plugin.floatterm.active = true
-O.plugin.zen.active = false
-O.plugin.zen.window.height = 0.90
+lvim.builtin.dashboard.active = true
+lvim.builtin.terminal.active = true
+lvim.builtin.nvimtree.side = "left"
+lvim.builtin.nvimtree.show_icons.git = 0
-- if you don't want all the parsers change this to a table of the ones you want
-O.treesitter.ensure_installed = {}
-O.treesitter.ignore_install = { "haskell" }
-O.treesitter.highlight.enabled = true
-
--- python
--- O.python.linter = 'flake8'
-O.lang.python.isort = true
-O.lang.python.diagnostics.virtual_text = true
-O.lang.python.analysis.use_library_code_types = true
--- to change default formatter from yapf to black
--- O.lang.python.formatter.exe = "black"
--- O.lang.python.formatter.args = {"-"}
-
--- go
--- to change default formatter from gofmt to goimports
--- O.lang.formatter.go.exe = "goimports"
-
--- javascript
-O.lang.tsserver.linter = nil
-
--- latex
--- O.lang.latex.auto_save = false
--- O.lang.latex.ignore_errors = { }
+lvim.builtin.treesitter.ensure_installed = {}
+lvim.builtin.treesitter.ignore_install = { "haskell" }
+lvim.builtin.treesitter.highlight.enabled = true
+-- generic LSP settings
+-- you can set a custom on_attach function that will be used for all the language servers
+-- See <https://github.com/neovim/nvim-lspconfig#keybindings-and-completion>
+-- lvim.lsp.on_attach_callback = function(client, bufnr)
+-- local function buf_set_option(...)
+-- vim.api.nvim_buf_set_option(bufnr, ...)
+-- end
+-- --Enable completion triggered by <c-x><c-o>
+-- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
+-- end
-- Additional Plugins
--- O.user_plugins = {
+-- lvim.plugins = {
-- {"folke/tokyonight.nvim"}, {
-- "ray-x/lsp_signature.nvim",
-- config = function() require"lsp_signature".on_attach() end,
@@ -61,13 +58,8 @@ O.lang.tsserver.linter = nil
-- }
-- Autocommands (https://neovim.io/doc/user/autocmd.html)
--- O.user_autocommands = {{ "BufWinEnter", "*", "echo \"hi again\""}}
+-- lvim.autocommands.custom_groups = {
+-- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" },
+-- }
-- Additional Leader bindings for WhichKey
--- O.user_which_key = {
--- A = {
--- name = "+Custom Leader Keys",
--- a = { "<cmd>echo 'first custom command'<cr>", "Description for a" },
--- b = { "<cmd>echo 'second custom command'<cr>", "Description for b" },
--- },
--- }
diff --git a/utils/installer/lv-config.example.lua b/utils/installer/lv-config.example.lua
index 7072c60c..681f5f65 100644
--- a/utils/installer/lv-config.example.lua
+++ b/utils/installer/lv-config.example.lua
@@ -1,5 +1,5 @@
--[[
-O is the global options object
+lvim is the global options object
Linters should be
filled in as strings with either
@@ -10,54 +10,56 @@ an executable
-- general
-O.format_on_save = true
-O.completion.autocomplete = true
-O.colorscheme = "spacegray"
-O.auto_close_tree = 0
-O.default_options.wrap = true
-O.default_options.timeoutlen = 100
-O.leader_key = " "
+lvim.format_on_save = true
+lvim.lint_on_save = true
+lvim.colorscheme = "spacegray"
+-- keymappings
+lvim.leader = "space"
+-- overwrite the key-mappings provided by LunarVim for any mode, or leave it empty to keep them
+-- lvim.keys.normal_mode = {
+-- Page down/up
+-- {'[d', '<PageUp>'},
+-- {']d', '<PageDown>'},
+--
+-- Navigate buffers
+-- {'<Tab>', ':bnext<CR>'},
+-- {'<S-Tab>', ':bprevious<CR>'},
+-- }
+-- if you just want to augment the existing ones then use the utility function
+-- require("utils").add_keymap_insert_mode({ silent = true }, {
+-- { "<C-s>", ":w<cr>" },
+-- { "<C-c>", "<ESC>" },
+-- })
+-- you can also use the native vim way directly
+-- vim.api.nvim_set_keymap("i", "<C-Space>", "compe#complete()", { noremap = true, silent = true, expr = true })
-- TODO: User Config for predefined plugins
-- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile
-O.plugin.dashboard.active = true
-O.plugin.floatterm.active = true
-O.plugin.zen.active = false
-O.plugin.zen.window.height = 0.90
+lvim.builtin.dashboard.active = true
+lvim.builtin.terminal.active = true
+lvim.builtin.nvimtree.side = "left"
+lvim.builtin.nvimtree.show_icons.git = 0
-- if you don't want all the parsers change this to a table of the ones you want
-O.treesitter.ensure_installed = "maintained"
-O.treesitter.ignore_install = { "haskell" }
-O.treesitter.highlight.enabled = true
-
--- python
--- O.lang.python.linter = 'flake8'
-O.lang.python.isort = true
-O.lang.python.diagnostics.virtual_text = true
-O.lang.python.analysis.use_library_code_types = true
--- to change default formatter from yapf to black
--- O.lang.python.formatter.exe = "black"
--- O.lang.python.formatter.args = {"-"}
-
--- go
--- to change default formatter from gofmt to goimports
--- O.lang.formatter.go.exe = "goimports"
+lvim.builtin.treesitter.ensure_installed = "maintained"
+lvim.builtin.treesitter.ignore_install = { "haskell" }
+lvim.builtin.treesitter.highlight.enabled = true
--- javascript
-O.lang.tsserver.linter = nil
+-- generic LSP settings
+-- you can set a custom on_attach function that will be used for all the language servers
+-- See <https://github.com/neovim/nvim-lspconfig#keybindings-and-completion>
+-- lvim.lsp.on_attach_callback = function(client, bufnr)
+-- local function buf_set_option(...)
+-- vim.api.nvim_buf_set_option(bufnr, ...)
+-- end
+-- --Enable completion triggered by <c-x><c-o>
+-- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
+-- end
--- rust
--- O.lang.rust.formatter = {
--- exe = "rustfmt",
--- args = {"--emit=stdout", "--edition=2018"},
--- }
-
--- latex
--- O.lang.latex.auto_save = false
--- O.lang.latex.ignore_errors = { }
+-- python
-- Additional Plugins
--- O.user_plugins = {
+-- lvim.plugins = {
-- {"folke/tokyonight.nvim"}, {
-- "ray-x/lsp_signature.nvim",
-- config = function() require"lsp_signature".on_attach() end,
@@ -66,13 +68,18 @@ O.lang.tsserver.linter = nil
-- }
-- Autocommands (https://neovim.io/doc/user/autocmd.html)
--- O.user_autocommands = {{ "BufWinEnter", "*", "echo \"hi again\""}}
+-- lvim.autocommands.custom_groups = {
+-- { "BufWinEnter", "*.lua", "setlocal ts=8 sw=8" },
+-- }
-- Additional Leader bindings for WhichKey
--- O.user_which_key = {
--- A = {
--- name = "+Custom Leader Keys",
--- a = { "<cmd>echo 'first custom command'<cr>", "Description for a" },
--- b = { "<cmd>echo 'second custom command'<cr>", "Description for b" },
--- },
+-- lvim.builtin.which_key.mappings["P"] = { "<cmd>lua require'telescope'.extensions.project.project{}<CR>", "Projects" }
+-- lvim.builtin.which_key.mappings["t"] = {
+-- name = "+Trouble",
+-- r = { "<cmd>Trouble lsp_references<cr>", "References" },
+-- f = { "<cmd>Trouble lsp_definitions<cr>", "Definitions" },
+-- d = { "<cmd>Trouble lsp_document_diagnostics<cr>", "Diagnosticss" },
+-- q = { "<cmd>Trouble quickfix<cr>", "QuickFix" },
+-- l = { "<cmd>Trouble loclist<cr>", "LocationList" },
+-- w = { "<cmd>Trouble lsp_workspace_diagnostics<cr>", "Diagnosticss" },
-- }
diff --git a/utils/installer/uninstall.sh b/utils/installer/uninstall.sh
new file mode 100755
index 00000000..0615e219
--- /dev/null
+++ b/utils/installer/uninstall.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+rm -rf ~/.local/share/lunarvim
+sudo rm /usr/local/bin/lvim
+rm -rf ~/.local/share/applications/lvim.desktop