diff --git a/README.md b/README.md
index 10824e4..575bcac 100644
--- a/README.md
+++ b/README.md
@@ -1,107 +1,233 @@
-BTW as of Oct 22, I'm not actively maintaining these docs, as I have my machine installed and humming with my new System76 Lemur Pro. Additionally, I am diving into building with LunarVim, maintaining my own configuration, while contributing to the community.
-https://system76.com/laptops/lemur
-https://www.lunarvim.org/
-
-I havn't added my LunarVim config here yet as I am still in experimentation mode, rapidly picking up the platform and how to customize it to highest compatibility. Working on that now as I continue to develop.
-
-# Use at your own risk. No warrenties.
-I practice human-in-the-loop computing. This workflow is designed by me to be most effective for me and my life towards my intentions. It wasn't defined with mass scalability in mind. I encourage you to persue the discovery of computing interfaces on your personel journey as well. Please feel free to take inspiration from my workflow and open dialougue in collaboration.
-
# Pop-os - Gnome - Tmux - Fish - Vim - FZF - Serious Configuration - Shawn Anderson
These are the dotfiles that I hack on. Can easily be installed to your ~/.config/ by using the gnu stow utility.
-They are designed to get a brand new machine installed with https://pop.system76.com/ into a production ready state. For me production means participating in digital platforms, writing code, and editing media. I run a FinTech business in Canada called Longtail Financial, where I am in contract for providing data science and token engineering services. I work with my partner Liam Perison to drive the business towards stability and success. Please contact me if you are interested in funding Canadian Computing Technology that is driving services and products in the domain of finance, web, and computing. We practice Data Science, Token Engineering, and Software Engineering. We co-design products and services with ecoystem partners, primarily in the DAO and Token spaces.
+They are designed to get a brand new machine installed with https://pop.system76.com/ into a production ready state. For me production means participating in digital platforms, writing code, and editing media. I run a FinTech business in Canada called Longtail Financial, provides data science and token engineering services. I work with partners at LTF to drive the business towards stability and success. This configuration is an optimized build for maximum effectiveness. To learn more about my workflow, follow me on twitter: https://twitter.com/ygg_anderson
+The following is a screencapture of The Serious Configuration Framework running in a triple monitor setup. This build should be very easy to pick up for anyone who wishes to be a terminal oriented power user in linux, and will also feel right at home with a familiar desktop experience for anyone coming from Mac, Windows, or Debian operating systems since it uses the very intuitive Gnome Desktop in the Pop Shell, a fork of the Ubuntu linux distribution. It's the fastest paced work environment for creatives, producers, and technologists who want to simply get things done.
+
+This is the Serious Configuration Framework. Optimized for Simplicity.
+
+
To install:
-1. Install Requirements
-
- sudo apt install stow xcape fish tmux jq universal-ctags python bat ripgrep tree cmake
- Install the latest version of neovim: https://github.com/neovim/neovim/releases/tag/stable
+
+0. Install PopOS: https://pop.system76.com/
+
+0. Update System
+ ```
+ super+t to open a terminal.
+ sudo apt update && sudo apt upgrade
+ ```
+
+1. Install necessary utilities.
+ ```
+ sudo apt install stow fish tmux jq python-is-python3 bat ripgrep tree cmake alacritty delta pip
+ ```
+2. Set alacritty to default terminal
+ ```
+ super -> keyboard -> custom shortcut -> set super+t as `alacritty`
+ ```
2. Change default shell to fish
-
+ ```
chsh -s \`which fish\`
Logout and Login
+ ```
-2. Clone the repo
+4. Remap caps to control and escape with keyd: https://github.com/rvaiya/keyd (don't remap escape to caps lock)
+3. Enable Wayland: https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-22-04-desktop
+ ```
+ set -Ux MOZ_ENABLE_WAYLAND 1 # For Firefox in Wayland
+ ```
+
+
+5. Clone this repo
+ ```
git clone git@github.com:LinuxIsCool/configuration.git
+ ```
-3. Symlink into ~/.config using stow
-
+6. Symlink into ~/.config using stow
+ ```
cd configuration
sh stow
+ ```
-
-5. Install fisher and fish plugins (will install nvm)
-
+7. Install fisher and fish plugins (will install nvm)
+ ```
curl -sL https://git.io/fisher | source && fisher install (cat ~/.config/fish/fish_plugins)
+ ```
-6. Install g for Go
+8. Use nvm to install node
+ ```
+ nvm use latest
+ ```
+8. Install g for Go: https://github.com/stefanmaric/g#usage
+ ```
curl -sSL https://git.io/g-install | sh -s
+ g install latest
+ ```
-7. Install blsd
-
+9. Install blsd: https://github.com/junegunn/blsd
+ ```
bass "bash <(curl -fL https://raw.githubusercontent.com/junegunn/blsd/master/install)"
-
-8. Install neovim plugins (will install fzf)
-
- nvim
- :PlugInstall
+ ```
-9. Install autojump
+5. Install Rust: https://www.rust-lang.org/tools/install
+ ```
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
+ fish_add_path ~/.cargo/bin/
+ ```
+6. Install Nvim using Bob
+ ```
+ cargo install bob-nvim
+ bob complete fish > ~/.config/fish/completions/bob.fish
+ fish_add_path ~/.local/share/bob/nvim-bin/
+ bob use latest
+ ```
+
+10. Install neovim plugins (will install fzf)
+ ```
+ nvim
+ :PlugInstall
+ ```
+
+11. Make sure fzf is installed system wide
+ ```
+ cd ~/.config/nvim/plugged/fzf/
+ ./install
+ ```
+
+12. Install autojump
+ ```
cd ~/.local/share/
git clone git@github.com:wting/autojump.git && cd autojump && python install.py
-
-10. Install virtualfish
+ ```
+13. Install virtualfish
+ ```
pip install virtualfish
+ fish_add_path ~/.local/bin/
vf install
+ ```
-11. Install Tmux plugin manager
-
+14. Install python poetry: https://python-poetry.org/docs/#installation
+ ```
+ curl -sSL https://install.python-poetry.org | python3 -
+ ```
+
+15. Install Tmux plugin manager
+ ```
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
tmux
prefix + I
-
-12. Install a nerd font like Hack Regular (otf prefered over ttf):
-
- https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Hack/Regular/complete/Hack%20Regular%20Nerd%20Font%20Complete.ttf
- Terminal -> Preferences -> Text -> Font -> Hack Nerd Regular
-
-13. Make sure essentials is autoloading
+ ```
- essentials
+16. Gnome tweaks (Optional)
-14. Gnome tweaks
+ Setting key repeat and interval:
+ ```
+ gsettings set org.gnome.desktop.peripherals.keyboard delay 175
+ gsettings set org.gnome.desktop.peripherals.keyboard repeat-interval 12
+ ```
- Add week numbers to calendar:
- gsettings set org.gnome.desktop.calendar show-weekdate true
-
- Add Weekday to panel date:
- gsettings set org.gnome.desktop.interface clock-show-weekday true
+ Make launcher work when an app is open in full screen:
+ ```
+ gsettings set org.gnome.shell.extensions.pop-shell fullscreen-launcher true
+ ```
Make alt-tab workspace specific:
+ ```
gsettings set org.gnome.shell.app-switcher current-workspace-only true
+ ```
- Allow switcher when in full screen:
- Extensions -> Pop Shell Settings -> Allow launcher over fullscreen window
+ Add week numbers to calendar:
+ ```
+ gsettings set org.gnome.desktop.calendar show-weekdate true
+ ```
+ Add Weekday to panel date:
+ ```
+ gsettings set org.gnome.desktop.interface clock-show-weekday true
+ ```
-# Popos-Gnome
-In addition to the script-based configuration, I'll do my best to track and document my debian-gnome-popos settings, to make them as reproducable as possible.
-
-Aesthetic-wise, I'm currently using the Juno-Ocean Gnome theme, as per recommended by @mattcoding4days, and my vim theme is quantum, as per Matt's recommendation as well.
-
-## Installed Extensions
+ Set background opacity for dash to dock:
+ ```
+ gsettings set org.gnome.shell.extensions.dash-to-dock background-opacity 0.4
+ ```
+
+17. Install Gnome Extensions (Optional).
+Here is an example of some extensions that I use:
+
+Older:
+
+
+22. Load Dconf settings (Optional): https://bgstack15.wordpress.com/2017/10/04/dconf-save-and-load-from-file/
+```
+# Load Settings
+dconf load / < popos-gnome/dconf/settings.dconf
+
+# To Dump Settings
+dconf dump / > popos-gnome/dconf/settings.dconf
+```
+
+23. Load Dash to Panel Settings (Optional): https://github.com/home-sweet-gnome/dash-to-panel/issues/517
+```
+# Load settings
+ dconf load /org/gnome/shell/extensions/dash-to-panel/ < popos-gnome/dconf/dash_to_panel.settings
+
+# To Dump Settings
+dconf dump /org/gnome/shell/extensions/dash-to-panel/ > popos-gnome/dconf/dash_to_panel.settings
+```
+
+
+24. Load custom keybaord mappings and shortcuts (Optional):
+* Hide all windows: super+d
+* Workspaces: super+w
+* Open Calendar: super+c
+* Open Gmail: super+g
+* Open Files: super+f
+* Open Browser: super+b
+* Open Terminal: super+t
+* In the future: https://jb.rainsberger.ca/permalink/remap-keys-on-system76-less-painfully
+* Also good resource: https://jb.rainsberger.ca/permalink/remap-keys-on-system76-less-painfully
+
+
+25. Install Apps and Programs through Pop Shop (Optional):
+* OBS, Discord, Telegram, Lutris, Slack, Spotify, Clementine, QDirStat, Zoom
+
+
+26. Install Firefox Plugins (Optional):
+* Video Speed Controller
+* Add Blocker Plus
+* Metamask
+* ETH Gas Station
+
+
+ 27. Update wallpaper:
+
+
+
+```
+More Coming Soon...
+```
+
+### Notes
+* Fonts used can be found in alacritty.yml, and fonts are cached in .local/share/fonts/ in this repository. Make sure to use a patched nerd font with emoji support.
+* Vim theme is vim-quantum https://github.com/tyrannicaltoucan/vim-quantum
+* Fish prompt is inspired by gentoo theme: https://github.com/ribugent/theme-gentoo
+* Gnome themes available here: https://www.gnome-look.org/browse/
+* Gnome extensions available here: https://extensions.gnome.org/
+
+Use at your own risk. No warrenties. I practice human-in-the-loop computing. This workflow is designed by me to be most effective for me and my life and my intentions. It wasn't defined with mass adoption in mind. I encourage you to persue the discovery of computing interfaces on your personel journey as well. Please feel free to take inspiration from my workflow and open dialougue in collaboration.
+
Blessings πππ¦π
diff --git a/dotfiles/.config/alacritty/alacritty.yml b/dotfiles/.config/alacritty/alacritty.yml
index c17265a..47f084b 100644
--- a/dotfiles/.config/alacritty/alacritty.yml
+++ b/dotfiles/.config/alacritty/alacritty.yml
@@ -5,7 +5,7 @@ window:
# Blank space added around the window in pixels. This padding is scaled
# by DPI and the specified value is always added at both opposing sides.
padding:
- x: 0
+ x: 4
y: 0
dynamic_padding: true
@@ -15,7 +15,7 @@ window:
dynamic_title: true
startup_mode: Fullscreen
- opacity: 0.8
+ opacity: 0.77
scrolling:
@@ -25,25 +25,25 @@ scrolling:
# Font configuration
font:
- # Point size
size: 13
- # Normal (roman) font face
+
normal:
- family: monospace
- style: Bold
+ family: FiraCode Nerd Font
+ style: Regular
bold:
- family: monospace
+ family: FiraCode Nerd Font
style: Bold
italic:
- family: monospace
- style: Italic
+ family: VictorMono Nerd Font
+ style: Medium Italic
bold_italic:
- family: monospace
+ family: VictorMono Nerd Font
style: Bold Italic
+
draw_bold_text_with_bright_colors: true
colors:
@@ -102,6 +102,13 @@ live_config_reload: true
key_bindings:
- { key: F11, action: ToggleFullscreen }
+# Needed for tmux to display colors properly in vim:
+env:
+ TERM: xterm-256color
+
+mouse:
+ hide_when_typing: true
+
# Import additional configuration files
#
# Imports are loaded in order, skipping all missing files, with the importing
@@ -576,7 +583,7 @@ key_bindings:
#triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
- #hide_when_typing: false
+ #hide_when_typing: true
# Hints
#
diff --git a/dotfiles/.config/fontconfig/fonts.conf b/dotfiles/.config/fontconfig/fonts.conf
index a3b607f..07fa62c 100644
--- a/dotfiles/.config/fontconfig/fonts.conf
+++ b/dotfiles/.config/fontconfig/fonts.conf
@@ -4,8 +4,34 @@
monospace
- Hack Nerd Font
+ FiraCode Nerd Font
Noto Color Emoji
+ Symbols Nerd Font Mono
+
+ sans
+
+ FiraCode Nerd Font
+ Noto Color Emoji
+ Symbols Nerd Font Mono
+
+
+
+ serif
+
+ FiraCode Nerd Font
+ Noto Color Emoji
+ Symbols Nerd Font Mono
+
+
+
+ sans-serif
+
+ FiraCode Nerd Font
+ Noto Color Emoji
+ Symbols Nerd Font Mono
+
+
+
diff --git a/dotfiles/.config/nvim/after/ftplugin/html.lua b/dotfiles/.config/nvim/after/ftplugin/html.lua
new file mode 100644
index 0000000..a75c866
--- /dev/null
+++ b/dotfiles/.config/nvim/after/ftplugin/html.lua
@@ -0,0 +1,6 @@
+vim.bo.autoindent = true
+vim.bo.expandtab = true
+vim.bo.shiftwidth = 2
+vim.bo.softtabstop = 2
+vim.bo.tabstop = 2
+vim.bo.textwidth = 120
diff --git a/dotfiles/.config/nvim/after/ftplugin/prisma.lua b/dotfiles/.config/nvim/after/ftplugin/prisma.lua
new file mode 100644
index 0000000..a75c866
--- /dev/null
+++ b/dotfiles/.config/nvim/after/ftplugin/prisma.lua
@@ -0,0 +1,6 @@
+vim.bo.autoindent = true
+vim.bo.expandtab = true
+vim.bo.shiftwidth = 2
+vim.bo.softtabstop = 2
+vim.bo.tabstop = 2
+vim.bo.textwidth = 120
diff --git a/dotfiles/.config/nvim/after/ftplugin/typescript.lua b/dotfiles/.config/nvim/after/ftplugin/typescript.lua
new file mode 100644
index 0000000..a75c866
--- /dev/null
+++ b/dotfiles/.config/nvim/after/ftplugin/typescript.lua
@@ -0,0 +1,6 @@
+vim.bo.autoindent = true
+vim.bo.expandtab = true
+vim.bo.shiftwidth = 2
+vim.bo.softtabstop = 2
+vim.bo.tabstop = 2
+vim.bo.textwidth = 120
diff --git a/dotfiles/.config/nvim/autocommands.vim b/dotfiles/.config/nvim/autocommands.vim
index 4a397fd..bcf6cd5 100644
--- a/dotfiles/.config/nvim/autocommands.vim
+++ b/dotfiles/.config/nvim/autocommands.vim
@@ -1,3 +1,9 @@
+" This makes the location of the current open file always the current working
+" directory of vim. This pairs very nicely with tmux. Added - Sept 15th 2020
+autocmd BufEnter * lcd %:p:h
+
+
+
augroup vyper_ft
au!
autocmd BufNewFile,BufRead *.vy set syntax=vyper
@@ -83,3 +89,20 @@ let g:neomake_virtualtext_current_error = 1
" autocmd!
" autocmd BufWritePre * :call s:MkNonExDir(expand(''), +expand(''))
" augroup END
+
+
+" Auto Format javascript files.
+" requires: pip3 install --user jsbeautifier
+autocmd FileType javascript setlocal equalprg=js-beautify\ --stdin
+"autocmd FileType javascript BufWritePre :%!js-beautify
+
+"lua <j $
set ignorecase " ignores case of letters on searches
set smartcase " Override the 'ignorecase' option if the search pattern contains upper case characters
map / :nohl
-noremap jj
-noremap kk
+" noremap jj
+" noremap kk
" This makes the location of the current open file always the current working
" directory of vim. This pairs very nicely with tmux. Added - Sept 15th 2020
@@ -43,9 +43,4 @@ inoremap
nnoremap
nnoremap
-:set cursorline
-:set number
-:set relativenumber!
-:set autoread
-
let g:coc_global_extensions = ['coc-json', 'coc-git', 'coc-tsserver', 'coc-pyright', 'coc-solidity']
diff --git a/dotfiles/.config/nvim/keys.vim b/dotfiles/.config/nvim/keys.vim
index 9bdfd6f..9dc28a6 100644
--- a/dotfiles/.config/nvim/keys.vim
+++ b/dotfiles/.config/nvim/keys.vim
@@ -1,18 +1,52 @@
+"------------------------------------------------------------------------------
+" Use comma for leader
+let mapleader = ","
"------------------------------------------------------------------------------
-" Inherited from MattCoding4Days
-" remap default leader key to comma
-let mapleader = ","
-nnoremap r :source $MYVIMRC
+" Shawn Anderson as of September 30th 2020
+noremap f 0
+noremap j $
+
+" Highlight search
+map / :nohl
+
+" Faster scrolling with control
+" noremap jj
+" noremap kk
+
+" Spookie bug. I think I was hacked and that someone i fucking with me.
+" Whenever I would pres shift K it would open a new tab in nvim.
+" inoremap
+" inoremap
+
+" Here, I borrow some mappings from readline! These are great, google
+" `readline cheatsheet` I map alt-a to home because I use ctr-a for tmux
+" leader.
+inoremap
+inoremap
+inoremap
+inoremap
+nnoremap
+nnoremap
+
+
+
+" Edit Vim Config File
nnoremap e :e $MYVIMRC
-nnoremap w :w
-nnoremap i :w:source $MYVIMRC:PlugInstall
+" Source Vim Config File
+nnoremap r :source $MYVIMRC
+" Save file
+"nnoremap w :w
+" Install Plugins
+"nnoremap i :w:source $MYVIMRC:PlugInstall
+
+" Nerd Tree!!! (I think)
" Change Ctrl N mapping to Ctrl Space "
inoremap
-
+" Clip Board!!!
" " Copy to clipboard
vnoremap y "+y
nnoremap Y "+yg_
@@ -26,27 +60,27 @@ vnoremap p "+p
vnoremap P "+P
-" tab navigation mappings
+" Tab navigation mappings
" New tab
-map :tabnew
-imap :tabnew
+" map :tabnew
+" imap :tabnew
" Close tab
-map :tabclose
-imap :tabclose
+" map :tabclose
+" imap :tabclose
" Move Right
-map :tabn
-imap :tabn
-map :tabn
-imap :tabn
+" map :tabn
+" imap :tabn
+" map :tabn
+" imap :tabn
" Move Left
-map :tabp
-imap :tabp
-map :tabp
-imap :tabp
+" map :tabp
+" imap :tabp
+" map :tabp
+" imap :tabp
" clear search results
nnoremap // :noh
diff --git a/dotfiles/.config/nvim/lua/plugins/example.lua b/dotfiles/.config/nvim/lua/plugins/example.lua
new file mode 100644
index 0000000..21ca43a
--- /dev/null
+++ b/dotfiles/.config/nvim/lua/plugins/example.lua
@@ -0,0 +1,266 @@
+-- since this is just an example spec, don't actually load anything here and return an empty spec
+-- stylua: ignore
+-- if true then return {} end
+
+-- every spec file under config.plugins will be loaded automatically by lazy.nvim
+--
+-- In your plugin files, you can:
+-- * add extra plugins
+-- * disable/enabled LazyVim plugins
+-- * override the configuration of LazyVim plugins
+return {
+ -- add gruvbox
+ { "ellisonleao/gruvbox.nvim" },
+
+ -- Configure LazyVim to load gruvbox
+ {
+ "LazyVim/LazyVim",
+ opts = {
+ colorscheme = "gruvbox",
+ },
+ },
+
+ -- change trouble config
+ {
+ "folke/trouble.nvim",
+ -- opts will be merged with the parent spec
+ opts = { use_diagnostic_signs = true },
+ },
+
+ -- disable trouble
+ { "folke/trouble.nvim", enabled = false },
+
+ -- add symbols-outline
+ {
+ "simrat39/symbols-outline.nvim",
+ cmd = "SymbolsOutline",
+ keys = { { "cs", "SymbolsOutline", desc = "Symbols Outline" } },
+ config = true,
+ },
+
+ -- override nvim-cmp and add cmp-emoji
+ {
+ "hrsh7th/nvim-cmp",
+ dependencies = { "hrsh7th/cmp-emoji" },
+ ---@param opts cmp.ConfigSchema
+ opts = function(_, opts)
+ local cmp = require("cmp")
+ opts.sources = cmp.config.sources(vim.list_extend(opts.sources, { { name = "emoji" } }))
+ end,
+ },
+
+ -- change some telescope options and a keymap to browse plugin files
+ {
+ "nvim-telescope/telescope.nvim",
+ keys = {
+ -- add a keymap to browse plugin files
+ -- stylua: ignore
+ {
+ "fp",
+ function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
+ desc = "Find Plugin File",
+ },
+ },
+ -- change some options
+ opts = {
+ defaults = {
+ layout_strategy = "horizontal",
+ layout_config = { prompt_position = "top" },
+ sorting_strategy = "ascending",
+ winblend = 0,
+ },
+ },
+ },
+
+ -- add telescope-fzf-native
+ {
+ "telescope.nvim",
+ dependencies = {
+ "nvim-telescope/telescope-fzf-native.nvim",
+ build = "make",
+ config = function()
+ require("telescope").load_extension("fzf")
+ end,
+ },
+ },
+
+ -- add pyright to lspconfig
+ {
+ "neovim/nvim-lspconfig",
+ ---@class PluginLspOpts
+ opts = {
+ ---@type lspconfig.options
+ servers = {
+ -- pyright will be automatically installed with mason and loaded with lspconfig
+ pyright = {},
+ },
+ },
+ },
+
+ -- add tsserver and setup with typescript.nvim instead of lspconfig
+ {
+ "neovim/nvim-lspconfig",
+ dependencies = {
+ "jose-elias-alvarez/typescript.nvim",
+ init = function()
+ require("lazyvim.util").on_attach(function(_, buffer)
+ -- stylua: ignore
+ vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
+ vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
+ end)
+ end,
+ },
+ ---@class PluginLspOpts
+ opts = {
+ ---@type lspconfig.options
+ servers = {
+ -- tsserver will be automatically installed with mason and loaded with lspconfig
+ tsserver = {},
+ },
+ -- you can do any additional lsp server setup here
+ -- return true if you don't want this server to be setup with lspconfig
+ ---@type table
+ setup = {
+ -- example to setup with typescript.nvim
+ tsserver = function(_, opts)
+ require("typescript").setup({ server = opts })
+ return true
+ end,
+ -- Specify * to use this function as a fallback for any server
+ -- ["*"] = function(server, opts) end,
+ },
+ },
+ },
+
+ -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
+ -- treesitter, mason and typescript.nvim. So instead of the above, you can use:
+ { import = "lazyvim.plugins.extras.lang.typescript" },
+
+ -- add more treesitter parsers
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = {
+ ensure_installed = {
+ "bash",
+ "html",
+ "javascript",
+ "json",
+ "lua",
+ "markdown",
+ "markdown_inline",
+ "python",
+ "query",
+ "regex",
+ "tsx",
+ "typescript",
+ "vim",
+ "yaml",
+ },
+ },
+ },
+
+ -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
+ -- would overwrite `ensure_installed` with the new value.
+ -- If you'd rather extend the default config, use the code below instead:
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ -- add tsx and treesitter
+ vim.list_extend(opts.ensure_installed, {
+ "tsx",
+ "typescript",
+ })
+ end,
+ },
+
+ -- the opts function can also be used to change the default opts:
+ {
+ "nvim-lualine/lualine.nvim",
+ event = "VeryLazy",
+ opts = function(_, opts)
+ table.insert(opts.sections.lualine_x, "π")
+ end,
+ },
+
+ -- or you can return new options to override all the defaults
+ {
+ "nvim-lualine/lualine.nvim",
+ event = "VeryLazy",
+ opts = function()
+ return {
+ --[[add your custom lualine config here]]
+ }
+ end,
+ },
+
+ -- use mini.starter instead of alpha
+ { import = "lazyvim.plugins.extras.ui.mini-starter" },
+
+ -- add jsonls and schemastore ans setup treesitter for json, json5 and jsonc
+ { import = "lazyvim.plugins.extras.lang.json" },
+
+ -- add any tools you want to have installed below
+ {
+ "williamboman/mason.nvim",
+ opts = {
+ ensure_installed = {
+ "stylua",
+ "shellcheck",
+ "shfmt",
+ "flake8",
+ },
+ },
+ },
+
+ -- Use for completion and snippets (supertab)
+ -- first: disable default and behavior in LuaSnip
+ {
+ "L3MON4D3/LuaSnip",
+ keys = function()
+ return {}
+ end,
+ },
+ -- then: setup supertab in cmp
+ {
+ "hrsh7th/nvim-cmp",
+ dependencies = {
+ "hrsh7th/cmp-emoji",
+ },
+ ---@param opts cmp.ConfigSchema
+ opts = function(_, opts)
+ local has_words_before = function()
+ unpack = unpack or table.unpack
+ local line, col = unpack(vim.api.nvim_win_get_cursor(0))
+ return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
+ end
+
+ local luasnip = require("luasnip")
+ local cmp = require("cmp")
+
+ opts.mapping = vim.tbl_extend("force", opts.mapping, {
+ [""] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_next_item()
+ -- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
+ -- they way you will only jump inside the snippet region
+ elseif luasnip.expand_or_jumpable() then
+ luasnip.expand_or_jump()
+ elseif has_words_before() then
+ cmp.complete()
+ else
+ fallback()
+ end
+ end, { "i", "s" }),
+ [""] = 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" }),
+ })
+ end,
+ },
+}
diff --git a/dotfiles/.config/nvim/plugconfig/barbar.vim b/dotfiles/.config/nvim/plugconfig/barbar.vim
new file mode 100644
index 0000000..340b262
--- /dev/null
+++ b/dotfiles/.config/nvim/plugconfig/barbar.vim
@@ -0,0 +1,76 @@
+" Apparently the following enables alt to work in vim. Source: https://stackoverflow.com/questions/6778961/alt-key-shortcuts-not-working-on-gnome-terminal-with-vim
+"let c='a'
+"while c <= 'z'
+ "exec "set =\e".c
+ "exec "imap \e".c." "
+ "let c = nr2char(1+char2nr(c))
+"endw
+"set timeout ttimeoutlen=50
+
+" Initialized 2023-06-29 from https://github.com/romgrk/barbar.nvim
+"
+"
+"
+"
+" Move to previous/next
+nnoremap BufferPrevious
+nnoremap BufferPrevious
+nnoremap BufferPrevious
+nnoremap BufferPrevious
+nnoremap BufferPrevious
+nnoremap BufferNext
+nnoremap BufferNext
+nnoremap BufferNext
+nnoremap BufferNext
+nnoremap BufferNext
+
+" Re-order to previous/next
+nnoremap BufferMovePrevious
+nnoremap > BufferMoveNext
+
+" Goto buffer in position...
+nnoremap BufferGoto 1
+nnoremap BufferGoto 2
+nnoremap BufferGoto 3
+nnoremap BufferGoto 4
+nnoremap BufferGoto 5
+nnoremap BufferGoto 6
+nnoremap BufferGoto 7
+nnoremap BufferGoto 8
+nnoremap BufferGoto 9
+nnoremap BufferLast
+
+" Pin/unpin buffer
+nnoremap BufferPin
+
+" Close buffer
+nnoremap BufferClose
+
+" Restore buffer
+nnoremap BufferRestore
+
+" Wipeout buffer
+" :BufferWipeout
+" Close commands
+" :BufferCloseAllButCurrent
+" :BufferCloseAllButVisible
+" :BufferCloseAllButPinned
+" :BufferCloseAllButCurrentOrPinned
+" :BufferCloseBuffersLeft
+" :BufferCloseBuffersRight
+
+" Magic buffer-picking mode
+nnoremap BufferPick
+nnoremap BufferPickDelete
+
+" Sort automatically by...
+nnoremap bb BufferOrderByBufferNumber
+nnoremap bd BufferOrderByDirectory
+nnoremap bl