commit
9d81e50bc5
182
README.md
182
README.md
|
|
@ -1,107 +1,181 @@
|
|||
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.
|
||||
<div align="center">
|
||||
<img src="https://raw.githubusercontent.com/LinuxIsCool/configuration/master/popos-gnome/Screenshot%20from%202020-09-29%2001-56-33.png"/>
|
||||
</div>
|
||||
|
||||
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
|
||||
-1. 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
|
||||
|
||||
3. Enable Wayland: https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-22-04-desktop
|
||||
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
```
|
||||
Make launcher work when an app is open in full screen:
|
||||
```
|
||||
gsettings set org.gnome.shell.extensions.pop-shell fullscreen-launcher true
|
||||
```
|
||||
|
||||
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 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
|
||||
```
|
||||
gsettings set org.gnome.shell.extensions.pop-shell fullscreen-launcher 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
|
||||
17. Install Gnome Extensions. Here is an example of some extensions that I use:
|
||||
<div align="center">
|
||||
<img src="https://raw.githubusercontent.com/LinuxIsCool/configuration/master/popos-gnome/extensions-nov-26-2020.png"/>
|
||||
</div>
|
||||
|
||||
18. Load Dconf to load gnome extension tweaks
|
||||
```
|
||||
Coming Soon...
|
||||
```
|
||||
|
||||
19. Load custom keybaord mappings and shortcuts
|
||||
```
|
||||
Coming Soon...
|
||||
```
|
||||
|
||||
20. Install Apps and Programs
|
||||
```
|
||||
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 🌟💎🦋💖
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
#
|
||||
|
|
|
|||
|
|
@ -4,8 +4,34 @@
|
|||
<alias>
|
||||
<family>monospace</family>
|
||||
<prefer>
|
||||
<family>Hack Nerd Font</family> <!-- Your preferred monospace font -->
|
||||
<family>FiraCode Nerd Font</family> <!-- Your preferred monospace font -->
|
||||
<family>Noto Color Emoji</family> <!-- Your preferred emoji font -->
|
||||
<family>Symbols Nerd Font Mono</family> <!-- Your preferred emoji font -->
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>sans</family>
|
||||
<prefer>
|
||||
<family>FiraCode Nerd Font</family> <!-- Your preferred monospace font -->
|
||||
<family>Noto Color Emoji</family> <!-- Your preferred emoji font -->
|
||||
<family>Symbols Nerd Font Mono</family> <!-- Your preferred emoji font -->
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>serif</family>
|
||||
<prefer>
|
||||
<family>FiraCode Nerd Font</family> <!-- Your preferred monospace font -->
|
||||
<family>Noto Color Emoji</family> <!-- Your preferred emoji font -->
|
||||
<family>Symbols Nerd Font Mono</family> <!-- Your preferred emoji font -->
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>sans-serif</family>
|
||||
<prefer>
|
||||
<family>FiraCode Nerd Font</family> <!-- Your preferred monospace font -->
|
||||
<family>Noto Color Emoji</family> <!-- Your preferred emoji font -->
|
||||
<family>Symbols Nerd Font Mono</family> <!-- Your preferred emoji font -->
|
||||
</prefer>
|
||||
</alias>
|
||||
|
||||
</fontconfig>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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('<afile>'), +expand('<abuf>'))
|
||||
" 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 <<EOF
|
||||
"vim.api.nvim_create_augroup('AutoFormatting', {})
|
||||
"vim.api.nvim_create_autocmd('BufWritePre', {
|
||||
"pattern = '*.lua',
|
||||
"group = 'AutoFormatting',
|
||||
"callback = function()
|
||||
"vim.lsp.buf.format({ async = true })
|
||||
"end,
|
||||
"})
|
||||
"EOF
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@ runtime coc.vim
|
|||
runtime keys.vim
|
||||
|
||||
" Check code as python3 by default
|
||||
let g:neomake_python_python_maker = neomake#makers#ft#python#python()
|
||||
let g:neomake_python_flake8_maker = neomake#makers#ft#python#flake8()
|
||||
let g:neomake_python_python_maker.exe = 'python3 -m py_compile'
|
||||
let g:neomake_python_flake8_maker.exe = 'python3 -m flake8'
|
||||
" let g:neomake_python_python_maker = neomake#makers#ft#python#python()
|
||||
" let g:neomake_python_flake8_maker = neomake#makers#ft#python#flake8()
|
||||
" let g:neomake_python_python_maker.exe = 'python3 -m py_compile'
|
||||
" let g:neomake_python_flake8_maker.exe = 'python3 -m flake8'
|
||||
|
||||
" Disable error messages inside the buffer, next to the problematic line
|
||||
let g:neomake_virtualtext_current_error = 1
|
||||
" let g:neomake_virtualtext_current_error = 1
|
||||
|
||||
"------------------------------------------------------------------------------
|
||||
" Shawn Anderson as of September 30th 2020
|
||||
|
|
@ -43,9 +43,4 @@ inoremap <M-a> <home>
|
|||
nnoremap <C-e> <end>
|
||||
nnoremap <M-a> <home>
|
||||
|
||||
:set cursorline
|
||||
:set number
|
||||
:set relativenumber!
|
||||
:set autoread
|
||||
|
||||
let g:coc_global_extensions = ['coc-json', 'coc-git', 'coc-tsserver', 'coc-pyright', 'coc-solidity']
|
||||
|
|
|
|||
|
|
@ -1,18 +1,52 @@
|
|||
"------------------------------------------------------------------------------
|
||||
" Use comma for leader
|
||||
let mapleader = ","
|
||||
|
||||
"------------------------------------------------------------------------------
|
||||
" Inherited from MattCoding4Days
|
||||
" remap default leader key to comma
|
||||
let mapleader = ","
|
||||
nnoremap <leader>r :source $MYVIMRC<CR>
|
||||
" Shawn Anderson as of September 30th 2020
|
||||
noremap <leader>f 0
|
||||
noremap <leader>j $
|
||||
|
||||
" Highlight search
|
||||
map <leader>/ :nohl<CR>
|
||||
|
||||
" Faster scrolling with control
|
||||
noremap <C-j> jj
|
||||
noremap <C-k> 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 <S-k> <S-k>
|
||||
" inoremap <S-j> <S-j>
|
||||
|
||||
" 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 <C-b> <left>
|
||||
inoremap <C-f> <right>
|
||||
inoremap <C-e> <end>
|
||||
inoremap <M-a> <home>
|
||||
nnoremap <C-e> <end>
|
||||
nnoremap <M-a> <home>
|
||||
|
||||
|
||||
|
||||
" Edit Vim Config File
|
||||
nnoremap <leader>e :e $MYVIMRC<CR>
|
||||
nnoremap <leader>w :w<CR>
|
||||
nnoremap <leader>i :w<CR>:source $MYVIMRC<CR>:PlugInstall<CR>
|
||||
" Source Vim Config File
|
||||
nnoremap <leader>r :source $MYVIMRC<CR>
|
||||
|
||||
" Save file
|
||||
"nnoremap <leader>w :w<CR>
|
||||
|
||||
" Install Plugins
|
||||
"nnoremap <leader>i :w<CR>:source $MYVIMRC<CR>:PlugInstall<CR>
|
||||
|
||||
" Nerd Tree!!! (I think)
|
||||
" Change Ctrl N mapping to Ctrl Space "
|
||||
inoremap <C-space> <C-n>
|
||||
|
||||
|
||||
" Clip Board!!!
|
||||
" " Copy to clipboard
|
||||
vnoremap <leader>y "+y
|
||||
nnoremap <leader>Y "+yg_
|
||||
|
|
@ -26,27 +60,27 @@ vnoremap <leader>p "+p
|
|||
vnoremap <leader>P "+P
|
||||
|
||||
|
||||
" tab navigation mappings
|
||||
" Tab navigation mappings
|
||||
|
||||
" New tab
|
||||
map <C-t> :tabnew<CR>
|
||||
imap <C-t> <ESC>:tabnew<CR>
|
||||
" map <C-t> :tabnew<CR>
|
||||
" imap <C-t> <ESC>:tabnew<CR>
|
||||
|
||||
" Close tab
|
||||
map <C-q> :tabclose<CR>
|
||||
imap <C-q> :tabclose<CR>
|
||||
" map <C-q> :tabclose<CR>
|
||||
" imap <C-q> :tabclose<CR>
|
||||
|
||||
" Move Right
|
||||
map <C-l> :tabn<CR>
|
||||
imap <C-l> <ESC>:tabn<CR>
|
||||
map <C-j> :tabn<CR>
|
||||
imap <C-j> <ESC>:tabn<CR>
|
||||
" map <C-l> :tabn<CR>
|
||||
" imap <C-l> <ESC>:tabn<CR>
|
||||
" map <C-j> :tabn<CR>
|
||||
" imap <C-j> <ESC>:tabn<CR>
|
||||
|
||||
" Move Left
|
||||
map <C-h> :tabp<CR>
|
||||
imap <C-h> <ESC>:tabp<CR>
|
||||
map <C-k> :tabp<CR>
|
||||
imap <C-k> <ESC>:tabp<CR>
|
||||
" map <C-h> :tabp<CR>
|
||||
" imap <C-h> <ESC>:tabp<CR>
|
||||
" map <C-k> :tabp<CR>
|
||||
" imap <C-k> <ESC>:tabp<CR>
|
||||
|
||||
" clear search results
|
||||
nnoremap <silent> // :noh<CR>
|
||||
|
|
|
|||
|
|
@ -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 = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", 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
|
||||
{
|
||||
"<leader>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", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
||||
vim.keymap.set("n", "<leader>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<string, fun(server:string, opts:_.lspconfig.options):boolean?>
|
||||
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 <tab> for completion and snippets (supertab)
|
||||
-- first: disable default <tab> and <s-tab> 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, {
|
||||
["<Tab>"] = 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" }),
|
||||
["<S-Tab>"] = 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,
|
||||
},
|
||||
}
|
||||
|
|
@ -238,9 +238,46 @@ Plug 'mkitt/tabline.vim'
|
|||
|
||||
Plug 'prisma/vim-prisma'
|
||||
|
||||
"" LSP Support
|
||||
"Plug 'neovim/nvim-lspconfig' " Required
|
||||
"Plug 'williamboman/mason.nvim', {'do': ':MasonUpdate'} " Optional
|
||||
"Plug 'williamboman/mason-lspconfig.nvim' " Optional
|
||||
|
||||
""" Autocompletion
|
||||
""Plug 'hrsh7th/nvim-cmp' " Required
|
||||
""Plug 'hrsh7th/cmp-nvim-lsp' " Required
|
||||
""Plug 'L3MON4D3/LuaSnip' " Required
|
||||
|
||||
"Plug 'VonHeikemen/lsp-zero.nvim', {'branch': 'v2.x'}
|
||||
|
||||
"Plug 'lukas-reineke/lsp-format.nvim'
|
||||
|
||||
|
||||
" Tell vim-plug we finished declaring plugins, so it can load them
|
||||
call plug#end()
|
||||
|
||||
"lua <<EOF
|
||||
"local lsp = require('lsp-zero').preset({})
|
||||
|
||||
"lsp.on_attach(function(client, bufnr)
|
||||
"lsp.default_keymaps({buffer = bufnr})
|
||||
"end)
|
||||
|
||||
"-- " (Optional) Configure lua language server for neovim
|
||||
"require('lspconfig').lua_ls.setup(lsp.nvim_lua_ls())
|
||||
|
||||
"require("lsp-format").setup {}
|
||||
|
||||
"local on_attach = function(client)
|
||||
"require("lsp-format").on_attach(client)
|
||||
|
||||
"-- ... custom code ...
|
||||
"end
|
||||
"require("lspconfig").gopls.setup { on_attach = on_attach }
|
||||
|
||||
"lsp.setup()
|
||||
"EOF
|
||||
|
||||
" ============================================================================
|
||||
" Install plugins the first time vim runs
|
||||
if vim_plug_just_installed
|
||||
|
|
|
|||
|
|
@ -1,39 +1,69 @@
|
|||
" ------------------------------------------------------------------------------
|
||||
" Neoconfig by Shawn Anderson starting September 30 2020
|
||||
|
||||
set cursorline
|
||||
set autoread
|
||||
|
||||
" ignores case of letters on searches
|
||||
set ignorecase
|
||||
|
||||
" Override the 'ignorecase' option if the search pattern contains upper case characters
|
||||
set smartcase
|
||||
|
||||
" Follow the open file
|
||||
set autochdir
|
||||
|
||||
" Don't produce swap files
|
||||
set noswapfile
|
||||
set tags=tags
|
||||
"
|
||||
" ------------------------------------------------------------------------------
|
||||
" These are inherited from MattCoding4Days
|
||||
"" Make vim scroll faster
|
||||
|
||||
" Something about tags... going to get away from tags.
|
||||
"set tags=tags
|
||||
|
||||
" Make vim scroll faster
|
||||
set ttyfast " Removed in Nvim "
|
||||
set mouse=a
|
||||
|
||||
" Finish updates before redrawing screen
|
||||
set lazyredraw
|
||||
set nu
|
||||
|
||||
" Mouse support All
|
||||
set mouse=a
|
||||
|
||||
" Line Numbers
|
||||
set number
|
||||
|
||||
" Relative line numbers
|
||||
set relativenumber!
|
||||
|
||||
" No line wrap
|
||||
set nowrap
|
||||
set relativenumber
|
||||
|
||||
" Encoding
|
||||
set encoding=UTF-8
|
||||
|
||||
" set tabline to (not) display full path
|
||||
set guitablabel=%F
|
||||
" set guitablabel=%F " Set to remove
|
||||
|
||||
" Always display tabline
|
||||
set showtabline=2
|
||||
|
||||
" tabs and spaces handling
|
||||
set expandtab
|
||||
set tabstop=4
|
||||
" Tabs and spaces handling
|
||||
set expandtab " Uses spaces instead of tabs
|
||||
set tabstop=4 " Number of spaces per tab "
|
||||
set softtabstop=4
|
||||
set shiftwidth=4
|
||||
" remove ugly vertical lines on window division
|
||||
|
||||
|
||||
" Windowing Splitting
|
||||
" Remove ugly vertical lines on window division
|
||||
set fillchars+=vert:\
|
||||
|
||||
" autocompletion of files and commands behaves like shell
|
||||
" Autocompletion of files and commands behaves like shell
|
||||
" (complete only the common part, list the options that match)
|
||||
set wildmode=list:longest
|
||||
|
||||
" when scrolling, keep cursor 3 lines away from screen border
|
||||
set scrolloff=3
|
||||
|
||||
|
||||
" fix problems with uncommon shells (fish, xonsh) and plugins running commands
|
||||
" (neomake, ...)
|
||||
set shell=$SHELL
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
"" Color Scheme set up for Material ===============================
|
||||
if (has("nvim"))
|
||||
"For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 >
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@ set -g @plugin 'tmux-plugins/tmux-sensible'
|
|||
# Tmux Power
|
||||
set -g @plugin 'linuxiscool/tmux-power'
|
||||
#set -g @tmux_power_theme 'moon' # dark slate blue
|
||||
set -g @tmux_power_theme 'gold' # dark slate blue
|
||||
set -g @tmux_power_theme 'coral' # dark slate blue
|
||||
#set -g @tmux_power_date_icon '☃️ ☃️ ☃️ February' # set it to a blank will disable the icon
|
||||
set -g @tmux_power_date_icon '🌱 %B' # set it to a blank will disable the icon
|
||||
set -g @tmux_power_time_icon '⌚' # emoji can be used if your terminal supports
|
||||
set -g @tmux_power_date_icon '🌱 %B %d' # set it to a blank will disable the icon
|
||||
set -g @tmux_power_time_icon '⌚ %A' # emoji can be used if your terminal supports
|
||||
#set -g @tmux_power_user_icon '🀄'
|
||||
set -g @tmux_power_user_icon '🍄'
|
||||
set -g @tmux_power_session_icon '✨'
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue