mirror of
https://github.com/KevinMidboe/dotfiles.git
synced 2025-10-29 01:20:20 +00:00
update dotfiles 11.2024
This commit is contained in:
27
.aliases
27
.aliases
@@ -1,27 +0,0 @@
|
||||
alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||
alias private='set +o history'
|
||||
alias uprivate='set -o history'
|
||||
alias wion='networksetup -setairportpower en0 on'
|
||||
alias wiof='networksetup -setairportpower en0 off'
|
||||
alias blueon='blueutil -p 1'
|
||||
alias blueoff='blueutil -p 0'
|
||||
alias cli='python ~/Dropbox/python/cli.py'
|
||||
alias plexloop='watch -n 4 python ~/Dropbox/Node-Com-Handler/old_v0.1/plexLoop.py'
|
||||
alias load='/Volumes/keys/load'
|
||||
alias sumcheck='python ~/python/sumcheck.py'
|
||||
alias home='watch python3 ~/python/homeChecker/homeCheck.py'
|
||||
alias goo='~/./python/api/gooShort.py -c'
|
||||
alias pirate='~/./python/pirateFetch/fetchPiratebay.py'
|
||||
alias show='~/./python/seasonedShows/seasonedFolders.py'
|
||||
alias llpass='lpass show -c --password'
|
||||
alias subl='open /Applications/Sublime\ Text.app/'
|
||||
alias playing='http https://api.kevinmidboe.com/api/v1/plex/playing -b'
|
||||
alias toggle='curl -X POST 10.0.0.67:3069/toggle > /dev/null 2>&1'
|
||||
alias forecast='~/python/termWeather/term_forecast/./term_weather.py'
|
||||
alias trash='rmtrash'
|
||||
alias del="rmtrash"
|
||||
alias emoji="http https://api.kevinmidboe.com/api/v1/emoji -b"
|
||||
alias gimme="grep -rnw ''"
|
||||
alias config='/usr/bin/git --git-dir=$HOME/.dots/ --work-tree=$HOME'
|
||||
alias l='tree -C -L 1'
|
||||
alias l2='tree -C -L 2'
|
||||
@@ -1,47 +0,0 @@
|
||||
export PS1="\W:$ "
|
||||
export SHELL="/bin/bash"
|
||||
export LC_ALL=en_US.UTF-8
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
HISTFILESIZE=10000
|
||||
|
||||
# import aliases from file
|
||||
. ~/.aliases
|
||||
|
||||
function vpn-connect {
|
||||
/usr/bin/env osascript <<-EOF
|
||||
tell application "System Events"
|
||||
tell current location of network preferences
|
||||
set VPN to service "VPN (midboe.ddns.net)" -- your VPN name here
|
||||
if exists VPN then connect VPN
|
||||
repeat while (current configuration of VPN is not connected)
|
||||
delay 1
|
||||
end repeat
|
||||
end tell
|
||||
end tell
|
||||
EOF
|
||||
}
|
||||
|
||||
function vpn-disconnect {
|
||||
/usr/bin/env osascript <<-EOF
|
||||
tell application "System Events"
|
||||
tell current location of network preferences
|
||||
set VPN to service "VPN (midboe.ddns.net)" -- your VPN name here
|
||||
if exists VPN then disconnect VPN
|
||||
end tell
|
||||
end tell
|
||||
return
|
||||
EOF
|
||||
}
|
||||
|
||||
# Setting PATH for Python 3.4
|
||||
# The orginal version is saved in .bash_profile.pysave
|
||||
# PATH="/Library/Frameworks/Python.framework/Versions/3.4/bin:${PATH}"
|
||||
# export PATH
|
||||
|
||||
# Setting PATH for Python 3.6
|
||||
# The original version is saved in .bash_profile.pysave
|
||||
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
|
||||
export PATH
|
||||
|
||||
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
|
||||
5
.bashrc
5
.bashrc
@@ -1,5 +0,0 @@
|
||||
# PATH=$PATH:~/bin
|
||||
|
||||
Tab: menu-complete
|
||||
"\e[Z": complete
|
||||
alias config=/usr/bin/git --git-dir=/Users/kevinmidboe/.cfg/ --work-tree=/Users/kevinmidboe'
|
||||
11
.gitignore
vendored
11
.gitignore
vendored
@@ -1,11 +0,0 @@
|
||||
/*
|
||||
!.bashrc
|
||||
!.bash_profile
|
||||
!.vimrc
|
||||
!.zshrc
|
||||
!/.zsh-themes
|
||||
!.aliases
|
||||
!/.ssh
|
||||
/.ssh/*
|
||||
!/.ssh/*config
|
||||
!.hyper.js
|
||||
|
||||
132
.hyper.js
132
.hyper.js
@@ -1,132 +0,0 @@
|
||||
// Future versions of Hyper may add additional config options,
|
||||
// which will not automatically be merged into this file.
|
||||
// See https://hyper.is#cfg for all currently supported options.
|
||||
|
||||
module.exports = {
|
||||
config: {
|
||||
// default font size in pixels for all tabs
|
||||
fontSize: 12,
|
||||
|
||||
// font family with optional fallbacks
|
||||
fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
|
||||
|
||||
// terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
|
||||
cursorColor: 'rgba(248,28,229,0.8)',
|
||||
|
||||
// `BEAM` for |, `UNDERLINE` for _, `BLOCK` for █
|
||||
cursorShape: 'BLOCK',
|
||||
|
||||
// set to true for blinking cursor
|
||||
cursorBlink: false,
|
||||
|
||||
// color of the text
|
||||
foregroundColor: '#fff',
|
||||
|
||||
// terminal background color
|
||||
backgroundColor: '#000',
|
||||
|
||||
// border color (window, tabs)
|
||||
borderColor: '#333',
|
||||
|
||||
// custom css to embed in the main window
|
||||
css: '',
|
||||
|
||||
// custom css to embed in the terminal window
|
||||
termCSS: '',
|
||||
|
||||
// set to `true` (without backticks) if you're using a Linux setup that doesn't show native menus
|
||||
// default: `false` on Linux, `true` on Windows (ignored on macOS)
|
||||
showHamburgerMenu: '',
|
||||
|
||||
// set to `false` if you want to hide the minimize, maximize and close buttons
|
||||
// additionally, set to `'left'` if you want them on the left, like in Ubuntu
|
||||
// default: `true` on windows and Linux (ignored on macOS)
|
||||
showWindowControls: '',
|
||||
|
||||
// custom padding (css format, i.e.: `top right bottom left`)
|
||||
padding: '12px 14px',
|
||||
|
||||
// the full list. if you're going to provide the full color palette,
|
||||
// including the 6 x 6 color cubes and the grayscale map, just provide
|
||||
// an array here instead of a color map object
|
||||
colors: {
|
||||
black: '#000000',
|
||||
red: '#ff0000',
|
||||
green: '#33ff00',
|
||||
yellow: '#ffff00',
|
||||
blue: '#0066ff',
|
||||
magenta: '#cc00ff',
|
||||
cyan: '#00ffff',
|
||||
white: '#d0d0d0',
|
||||
lightBlack: '#808080',
|
||||
lightRed: '#ff0000',
|
||||
lightGreen: '#33ff00',
|
||||
lightYellow: '#ffff00',
|
||||
lightBlue: '#0066ff',
|
||||
lightMagenta: '#cc00ff',
|
||||
lightCyan: '#00ffff',
|
||||
lightWhite: '#ffffff'
|
||||
},
|
||||
|
||||
// the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
|
||||
// if left empty, your system's login shell will be used by default
|
||||
// make sure to use a full path if the binary name doesn't work
|
||||
// (e.g `C:\\Windows\\System32\\bash.exe` instead of just `bash.exe`)
|
||||
// if you're using powershell, make sure to remove the `--login` below
|
||||
shell: '/bin/zsh',
|
||||
|
||||
// for setting shell arguments (i.e. for using interactive shellArgs: ['-i'])
|
||||
// by default ['--login'] will be used
|
||||
shellArgs: ['--login'],
|
||||
|
||||
// for environment variables
|
||||
env: {},
|
||||
|
||||
// set to false for no bell
|
||||
// bell: 'SOUND',
|
||||
bell: false,
|
||||
|
||||
// if true, selected text will automatically be copied to the clipboard
|
||||
copyOnSelect: false
|
||||
|
||||
// if true, on right click selected text will be copied or pasted if no
|
||||
// selection is present (true by default on Windows)
|
||||
// quickEdit: true
|
||||
|
||||
// URL to custom bell
|
||||
// bellSoundURL: 'http://example.com/bell.mp3',
|
||||
|
||||
// for advanced config flags please refer to https://hyper.is/#cfg
|
||||
},
|
||||
|
||||
// a list of plugins to fetch and install from npm
|
||||
// format: [@org/]project[#version]
|
||||
// examples:
|
||||
// `hyperpower`
|
||||
// `@company/project`
|
||||
// `project#1.0.1`
|
||||
plugins: [
|
||||
"hyper-markdown-preview",
|
||||
"hypercwd",
|
||||
"hyper-statusline",
|
||||
"hyper-pane",
|
||||
"hyper-chesterish",
|
||||
"hyperterm-tabs",
|
||||
"hyper-dracula"
|
||||
],
|
||||
|
||||
// in development, you can create a directory under
|
||||
// `~/.hyper_plugins/local/` and include it here
|
||||
// to load it and avoid it being `npm install`ed
|
||||
localPlugins: [],
|
||||
|
||||
|
||||
hyperStatusLine: {
|
||||
dirtyColor: 'salmon',
|
||||
},
|
||||
|
||||
paneNavigation: {
|
||||
showIndicators: false,
|
||||
indicatorPrefix: '^ddd',
|
||||
},
|
||||
};
|
||||
66
.ssh/config
66
.ssh/config
@@ -1,66 +0,0 @@
|
||||
Include ~/.ssh/*_config
|
||||
|
||||
Host imm
|
||||
HostName 10.0.0.114
|
||||
User USERID
|
||||
KexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
|
||||
|
||||
Host *
|
||||
AddKeysToAgent yes
|
||||
IgnoreUnknown UseKeychain
|
||||
UseKeychain yes
|
||||
|
||||
Host apollo
|
||||
HostName 10.0.0.102
|
||||
User kevin
|
||||
|
||||
Host janus
|
||||
HostName 10.0.0.110
|
||||
User root
|
||||
|
||||
Host xoa
|
||||
HostName 10.0.0.43
|
||||
User kevin
|
||||
|
||||
Host plex
|
||||
HostName 10.0.0.44
|
||||
User kevin
|
||||
|
||||
Host api
|
||||
HostName 10.0.0.114
|
||||
User kevin
|
||||
|
||||
Host elasic
|
||||
HostName 10.0.0.115
|
||||
|
||||
Host i2c
|
||||
HostName 10.0.0.69
|
||||
User pi
|
||||
|
||||
Host macserver
|
||||
HostName 10.0.0.31
|
||||
User macserver
|
||||
|
||||
Host airplay
|
||||
HostName 10.0.0.21
|
||||
User pi
|
||||
|
||||
Host hub
|
||||
HostName 10.0.0.25
|
||||
User pi
|
||||
Host ntnu
|
||||
Hostname login.stud.ntnu.no
|
||||
User komidboe
|
||||
|
||||
Host chip2
|
||||
Hostname 10.0.0.67
|
||||
User chip
|
||||
|
||||
Host zerow
|
||||
Hostname 10.0.0.68
|
||||
User pi
|
||||
|
||||
Host curtain
|
||||
Hostname 10.0.0.9
|
||||
User pi
|
||||
|
||||
50
.vimrc
50
.vimrc
@@ -1,50 +0,0 @@
|
||||
syntax on
|
||||
set nocompatible " be iMproved, required
|
||||
filetype plugin on
|
||||
filetype off " required
|
||||
|
||||
" set the runtime path to include Vundle and initialize
|
||||
set rtp+=~/.vim/bundle/Vundle.vim
|
||||
call vundle#begin()
|
||||
" alternatively, pass a path where Vundle should install plugins
|
||||
"call vundle#begin('~/some/path/here')
|
||||
|
||||
" let Vundle manage Vundle, required
|
||||
Plugin 'VundleVim/Vundle.vim'
|
||||
Plugin 'git@github.com:ajh17/VimCompletesMe.git'
|
||||
Plugin 'git@github.com:Valloric/YouCompleteMe.git'
|
||||
Plugin 'git@github.com:moll/vim-node.git'
|
||||
" Vue syntax highlighting - https://github.com/posva/vim-vue
|
||||
Plugin 'posva/vim-vue'
|
||||
" Wakatime plugin
|
||||
Plugin 'wakatime/vim-wakatime'
|
||||
|
||||
" autocmd FileType markdown let b:dispatch = 'octodown --live-reload %'
|
||||
|
||||
" Plugin 'JamshedVesuna/vim-markdown-preview'
|
||||
" let vim_markdown_preview_github=1
|
||||
|
||||
" All of your Plugins must be added before the following line
|
||||
call vundle#end() " required
|
||||
filetype plugin indent on " required
|
||||
" To ignore plugin indent changes, instead use:
|
||||
"filetype plugin on
|
||||
"
|
||||
" Brief help
|
||||
" :PluginList - lists configured plugins
|
||||
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
|
||||
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
|
||||
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
|
||||
"
|
||||
" see :h vundle for more details or wiki for FAQ
|
||||
" Put your non-Plugin stuff after this line
|
||||
|
||||
" Set tab to 2 spaces
|
||||
set tabstop=2
|
||||
set shiftwidth=2
|
||||
set softtabstop=2
|
||||
set expandtab
|
||||
|
||||
" Set line number
|
||||
set number
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
local ret_status="%(?:%{$fg_bold[green]%}%M ➜ :%{$fg_bold[red]%}%M ➜ )"
|
||||
PROMPT='${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
|
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
|
||||
98
.zshrc
98
.zshrc
@@ -1,98 +0,0 @@
|
||||
# If you come from bash you might have to change your $PATH.
|
||||
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
export ZSH=$HOME/.oh-my-zsh
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
export PATH="/usr/local/opt/ruby/bin:$PATH"
|
||||
export LC_ALL=en_US.UTF-8
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
# Set name of the theme to load. Optionally, if you set this to "random"
|
||||
# it'll load a random theme each time that oh-my-zsh is loaded.
|
||||
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
||||
ZSH_THEME="robbyrussell"
|
||||
|
||||
# Set list of themes to load
|
||||
# Setting this variable when ZSH_THEME=random
|
||||
# cause zsh load theme from this variable instead of
|
||||
# looking in ~/.oh-my-zsh/themes/
|
||||
# An empty array have no effect
|
||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||
|
||||
# Uncomment the following line to use case-sensitive completion.
|
||||
# CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion. Case
|
||||
# sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||
# DISABLE_AUTO_UPDATE="true"
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
# export UPDATE_ZSH_DAYS=13
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
# ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
# HIST_STAMPS="mm/dd/yyyy"
|
||||
|
||||
# Would you like to use another custom folder than $ZSH/custom?
|
||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||
|
||||
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
|
||||
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(
|
||||
git
|
||||
)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# User configuration
|
||||
|
||||
# export MANPATH="/usr/local/man:$MANPATH"
|
||||
|
||||
# You may need to manually set your language environment
|
||||
# export LANG=en_US.UTF-8
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
# if [[ -n $SSH_CONNECTION ]]; then
|
||||
# export EDITOR='vim'
|
||||
# else
|
||||
# export EDITOR='mvim'
|
||||
# fi
|
||||
|
||||
# Compilation flags
|
||||
# export ARCHFLAGS="-arch x86_64"
|
||||
|
||||
# ssh
|
||||
# export SSH_KEY_PATH="~/.ssh/rsa_id"
|
||||
|
||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||
# For a full list of active aliases, run `alias`.
|
||||
#
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
. ~/.aliases
|
||||
7
README.md
Normal file
7
README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# kevinmidboe dotfiles
|
||||
|
||||
Install using curl
|
||||
|
||||
```bash
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/kevinmidboe/dotfiles/main/install.sh)"
|
||||
```
|
||||
14
alacritty/alacritty.yml
Normal file
14
alacritty/alacritty.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
font:
|
||||
size: 14
|
||||
normal:
|
||||
family: SFMono Nerd Font
|
||||
|
||||
# Colors (Terminal.app)
|
||||
alt_send_esc: false
|
||||
|
||||
# New shells should run fish
|
||||
shell:
|
||||
program: /usr/local/bin/fish
|
||||
args:
|
||||
- --login
|
||||
|
||||
7
fish/completions/fisher.fish
Normal file
7
fish/completions/fisher.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
complete --command fisher --exclusive --long help --description "Print help"
|
||||
complete --command fisher --exclusive --long version --description "Print version"
|
||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
|
||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
|
||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
|
||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
|
||||
complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"
|
||||
185
fish/completions/git.fish
Normal file
185
fish/completions/git.fish
Normal file
@@ -0,0 +1,185 @@
|
||||
abbr -a -- ga 'git add'
|
||||
abbr -a -- gaa 'git add --all'
|
||||
abbr -a -- gapa 'git add --patch'
|
||||
abbr -a -- gau 'git add --update'
|
||||
abbr -a -- gav 'git add --verbose'
|
||||
abbr -a -- gap 'git apply'
|
||||
abbr -a -- gapt 'git apply --3way'
|
||||
|
||||
abbr -a -- gb 'git branch'
|
||||
abbr -a -- gba 'git branch --all'
|
||||
abbr -a -- gbd 'git branch --delete'
|
||||
abbr -a -- gbD 'git branch --delete --force'
|
||||
abbr -a -- gbl 'git blame -b -w'
|
||||
abbr -a -- gbnm 'git branch --no-merged'
|
||||
abbr -a -- gbr 'git branch --remote'
|
||||
abbr -a -- gbs 'git bisect'
|
||||
abbr -a -- gbsb 'git bisect bad'
|
||||
abbr -a -- gbsg 'git bisect good'
|
||||
abbr -a -- gbsr 'git bisect reset'
|
||||
abbr -a -- gbss 'git bisect start'
|
||||
|
||||
abbr -a -- gc 'git commit --verbose'
|
||||
abbr -a -- gc ='git commit --verbose --amend'
|
||||
abbr -a -- gcn ='git commit --verbose --no-edit --amend'
|
||||
abbr -a -- gca 'git commit --verbose --all'
|
||||
abbr -a -- gca ='git commit --verbose --all --amend'
|
||||
abbr -a -- gcan ='git commit --verbose --all --no-edit --amend'
|
||||
abbr -a -- gcans ='git commit --verbose --all --signoff --no-edit --amend'
|
||||
abbr -a -- gcam 'git commit --all --message'
|
||||
abbr -a -- gcsm 'git commit --signoff --message'
|
||||
abbr -a -- gcas 'git commit --all --signoff'
|
||||
abbr -a -- gcasm 'git commit --all --signoff --message'
|
||||
abbr -a -- gcb 'git checkout -b'
|
||||
abbr -a -- gcf 'git config --list'
|
||||
|
||||
abbr -a -- gcl 'git clone --recurse-submodules'
|
||||
abbr -a -- gclean 'git clean --interactive -d'
|
||||
abbr -a -- gpristine 'git reset --hard && git clean --force -dx'
|
||||
abbr -a -- gcm 'git checkout $(git_main_branch)'
|
||||
abbr -a -- gcd 'git checkout $(git_develop_branch)'
|
||||
abbr -a -- gcmsg 'git commit --message'
|
||||
abbr -a -- gco 'git checkout'
|
||||
abbr -a -- gcor 'git checkout --recurse-submodules'
|
||||
abbr -a -- gcount 'git shortlog --summary --numbered'
|
||||
abbr -a -- gcp 'git cherry-pick'
|
||||
abbr -a -- gcpa 'git cherry-pick --abort'
|
||||
abbr -a -- gcpc 'git cherry-pick --continue'
|
||||
abbr -a -- gcs 'git commit --gpg-sign'
|
||||
abbr -a -- gcss 'git commit --gpg-sign --signoff'
|
||||
abbr -a -- gcssm 'git commit --gpg-sign --signoff --message'
|
||||
|
||||
alias gd='git diff'
|
||||
alias gdca='git diff --cached'
|
||||
alias gdcw='git diff --cached --word-diff'
|
||||
alias gdct='git describe --tags $(git rev-list --tags --max-count=1)'
|
||||
alias gds='git diff --staged'
|
||||
alias gdt='git diff-tree --no-commit-id --name-only -r'
|
||||
alias gdup='git diff @{upstream}'
|
||||
alias gdw='git diff --word-diff'
|
||||
|
||||
abbr -a -- ggpull 'git pull origin "$(git_current_branch)"'
|
||||
abbr -a -- ggpush 'git push origin "$(git_current_branch)"'
|
||||
|
||||
abbr -a -- ggsup 'git branch --set-upstream-to=origin/$(git_current_branch)'
|
||||
abbr -a -- gpsup 'git push --set-upstream origin $(git_current_branch)'
|
||||
|
||||
abbr -a -- ghh 'git help'
|
||||
|
||||
abbr -a -- gignore 'git update-index --assume-unchanged'
|
||||
abbr -a -- gignored 'git ls-files -v | grep "^[[:lower:]]"'
|
||||
|
||||
abbr -a -- gk '\gitk --all --branches &!'
|
||||
abbr -a -- gke '\gitk --all $(git log --walk-reflogs --pretty=%h) &!'
|
||||
|
||||
abbr -a -- gl 'git pull'
|
||||
abbr -a -- glg 'git log --stat'
|
||||
abbr -a -- glgp 'git log --stat --patch'
|
||||
abbr -a -- glgg 'git log --graph'
|
||||
abbr -a -- glgga 'git log --graph --decorate --all'
|
||||
abbr -a -- glgm 'git log --graph --max-count=10'
|
||||
abbr -a -- glo 'git log --oneline --decorate'
|
||||
abbr -a -- glol "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'"
|
||||
abbr -a -- glols "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat"
|
||||
abbr -a -- glod "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'"
|
||||
abbr -a -- glods "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short"
|
||||
abbr -a -- glola "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all"
|
||||
abbr -a -- glog 'git log --oneline --decorate --graph'
|
||||
abbr -a -- gloga 'git log --oneline --decorate --graph --all'
|
||||
abbr -a -- glp "_git_log_prettily"
|
||||
|
||||
abbr -a -- gm 'git merge'
|
||||
abbr -a -- gmom 'git merge origin/$(git_main_branch)'
|
||||
abbr -a -- gmtl 'git mergetool --no-prompt'
|
||||
abbr -a -- gmtlvim 'git mergetool --no-prompt --tool=vimdiff'
|
||||
abbr -a -- gmum 'git merge upstream/$(git_main_branch)'
|
||||
abbr -a -- gma 'git merge --abort'
|
||||
|
||||
abbr -a -- gp 'git push'
|
||||
abbr -a -- gpd 'git push --dry-run'
|
||||
abbr -a -- gpf 'git push --force-with-lease'
|
||||
abbr -a -- gpf ='git push --force'
|
||||
abbr -a -- gpoat 'git push origin --all && git push origin --tags'
|
||||
abbr -a -- gpr 'git pull --rebase'
|
||||
abbr -a -- gpu 'git push upstream'
|
||||
abbr -a -- gpv 'git push --verbose'
|
||||
|
||||
abbr -a -- gr 'git remote'
|
||||
abbr -a -- gra 'git remote add'
|
||||
abbr -a -- grb 'git rebase'
|
||||
abbr -a -- grba 'git rebase --abort'
|
||||
abbr -a -- grbc 'git rebase --continue'
|
||||
abbr -a -- grbd 'git rebase $(git_develop_branch)'
|
||||
abbr -a -- grbi 'git rebase --interactive'
|
||||
abbr -a -- grbm 'git rebase $(git_main_branch)'
|
||||
abbr -a -- grbom 'git rebase origin/$(git_main_branch)'
|
||||
abbr -a -- grbo 'git rebase --onto'
|
||||
abbr -a -- grbs 'git rebase --skip'
|
||||
abbr -a -- grev 'git revert'
|
||||
abbr -a -- grh 'git reset'
|
||||
abbr -a -- grhh 'git reset --hard'
|
||||
abbr -a -- groh 'git reset origin/$(git_current_branch) --hard'
|
||||
abbr -a -- grm 'git rm'
|
||||
abbr -a -- grmc 'git rm --cached'
|
||||
abbr -a -- grmv 'git remote rename'
|
||||
abbr -a -- grrm 'git remote remove'
|
||||
abbr -a -- grs 'git restore'
|
||||
abbr -a -- grset 'git remote set-url'
|
||||
abbr -a -- grss 'git restore --source'
|
||||
abbr -a -- grst 'git restore --staged'
|
||||
abbr -a -- grt 'cd "$(git rev-parse --show-toplevel || echo .)"'
|
||||
abbr -a -- gru 'git reset --'
|
||||
abbr -a -- grup 'git remote update'
|
||||
abbr -a -- grv 'git remote --verbose'
|
||||
|
||||
abbr -a -- gsb 'git status --short --branch'
|
||||
abbr -a -- gsd 'git svn dcommit'
|
||||
abbr -a -- gsh 'git show'
|
||||
abbr -a -- gsi 'git submodule init'
|
||||
abbr -a -- gsps 'git show --pretty=short --show-signature'
|
||||
abbr -a -- gsr 'git svn rebase'
|
||||
abbr -a -- gss 'git status --short'
|
||||
abbr -a -- gst 'git status'
|
||||
|
||||
abbr -a -- gstaa 'git stash apply'
|
||||
abbr -a -- gstc 'git stash clear'
|
||||
abbr -a -- gstd 'git stash drop'
|
||||
abbr -a -- gstl 'git stash list'
|
||||
abbr -a -- gstp 'git stash pop'
|
||||
abbr -a -- gsts 'git stash show --text'
|
||||
abbr -a -- gstu 'gsta --include-untracked'
|
||||
abbr -a -- gstall 'git stash --all'
|
||||
abbr -a -- gsu 'git submodule update'
|
||||
abbr -a -- gsw 'git switch'
|
||||
abbr -a -- gswc 'git switch --create'
|
||||
abbr -a -- gswm 'git switch $(git_main_branch)'
|
||||
abbr -a -- gswd 'git switch $(git_develop_branch)'
|
||||
|
||||
abbr -a -- gts 'git tag --sign'
|
||||
abbr -a -- gtv 'git tag | sort -V'
|
||||
abbr -a -- gtl 'gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl'
|
||||
|
||||
abbr -a -- gunignore 'git update-index --no-assume-unchanged'
|
||||
abbr -a -- gunwip 'git log --max-count=1 | grep -q -c "\--wip--" && git reset HEAD~1'
|
||||
abbr -a -- gup 'git pull --rebase'
|
||||
abbr -a -- gupv 'git pull --rebase --verbose'
|
||||
abbr -a -- gupa 'git pull --rebase --autostash'
|
||||
abbr -a -- gupav 'git pull --rebase --autostash --verbose'
|
||||
abbr -a -- gupom 'git pull --rebase origin $(git_main_branch)'
|
||||
abbr -a -- gupomi 'git pull --rebase=interactive origin $(git_main_branch)'
|
||||
abbr -a -- glum 'git pull upstream $(git_main_branch)'
|
||||
abbr -a -- gluc 'git pull upstream $(git_current_branch)'
|
||||
|
||||
abbr -a -- gwch 'git whatchanged -p --abbrev-commit --pretty=medium'
|
||||
abbr -a -- gwip 'git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"'
|
||||
abbr -a -- gwt 'git worktree'
|
||||
abbr -a -- gwta 'git worktree add'
|
||||
abbr -a -- gwtls 'git worktree list'
|
||||
abbr -a -- gwtmv 'git worktree move'
|
||||
abbr -a -- gwtrm 'git worktree remove'
|
||||
abbr -a -- gam 'git am'
|
||||
abbr -a -- gamc 'git am --continue'
|
||||
abbr -a -- gams 'git am --skip'
|
||||
abbr -a -- gama 'git am --abort'
|
||||
abbr -a -- gamscp 'git am --show-current-patch'
|
||||
|
||||
7
fish/conf.d/omf.fish
Normal file
7
fish/conf.d/omf.fish
Normal file
@@ -0,0 +1,7 @@
|
||||
# Path to Oh My Fish install.
|
||||
set -q XDG_DATA_HOME
|
||||
and set -gx OMF_PATH "$XDG_DATA_HOME/omf"
|
||||
or set -gx OMF_PATH "$HOME/.local/share/omf"
|
||||
|
||||
# Load Oh My Fish configuration.
|
||||
source $OMF_PATH/init.fish
|
||||
17
fish/config.fish
Normal file
17
fish/config.fish
Normal file
@@ -0,0 +1,17 @@
|
||||
if status is-interactive
|
||||
# Commands to run in interactive sessions can go here
|
||||
end
|
||||
|
||||
source $HOME/.profile
|
||||
|
||||
# Common programs
|
||||
abbr -a -- vi nvim
|
||||
|
||||
# File exploring
|
||||
abbr -a -- l 'tree -L 1 -a'
|
||||
abbr -a -- ll 'tree -L 2 -a'
|
||||
|
||||
# Git (loaded from completions/git.fish)
|
||||
source $HOME/.config/fish/completions/git.fish
|
||||
|
||||
# thefuck --alias | source
|
||||
1
fish/fish_plugins
Normal file
1
fish/fish_plugins
Normal file
@@ -0,0 +1 @@
|
||||
jorgebucaran/fisher
|
||||
33
fish/fish_variables
Normal file
33
fish/fish_variables
Normal file
@@ -0,0 +1,33 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR __fish_initialized:3400
|
||||
SETUVAR _fisher_upgraded_to_4_4:\x1d
|
||||
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:blue
|
||||
SETUVAR fish_color_comment:red
|
||||
SETUVAR fish_color_cwd:green
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:green
|
||||
SETUVAR fish_color_error:brred
|
||||
SETUVAR fish_color_escape:brcyan
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_normal:normal
|
||||
SETUVAR fish_color_operator:brcyan
|
||||
SETUVAR fish_color_param:cyan
|
||||
SETUVAR fish_color_quote:yellow
|
||||
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||
SETUVAR fish_pager_color_completion:normal
|
||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di
|
||||
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||
SETUVAR fish_user_paths:/opt/homebrew/opt/ruby\x402\x2e7/bin
|
||||
240
fish/functions/fisher.fish
Normal file
240
fish/functions/fisher.fish
Normal file
@@ -0,0 +1,240 @@
|
||||
function fisher --argument-names cmd --description "A plugin manager for Fish"
|
||||
set --query fisher_path || set --local fisher_path $__fish_config_dir
|
||||
set --local fisher_version 4.4.3
|
||||
set --local fish_plugins $__fish_config_dir/fish_plugins
|
||||
|
||||
switch "$cmd"
|
||||
case -v --version
|
||||
echo "fisher, version $fisher_version"
|
||||
case "" -h --help
|
||||
echo "Usage: fisher install <plugins...> Install plugins"
|
||||
echo " fisher remove <plugins...> Remove installed plugins"
|
||||
echo " fisher update <plugins...> Update installed plugins"
|
||||
echo " fisher update Update all installed plugins"
|
||||
echo " fisher list [<regex>] List installed plugins matching regex"
|
||||
echo "Options:"
|
||||
echo " -v or --version Print version"
|
||||
echo " -h or --help Print this help message"
|
||||
echo "Variables:"
|
||||
echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~
|
||||
case ls list
|
||||
string match --entire --regex -- "$argv[2]" $_fisher_plugins
|
||||
case install update remove
|
||||
isatty || read --local --null --array stdin && set --append argv $stdin
|
||||
|
||||
set --local install_plugins
|
||||
set --local update_plugins
|
||||
set --local remove_plugins
|
||||
set --local arg_plugins $argv[2..-1]
|
||||
set --local old_plugins $_fisher_plugins
|
||||
set --local new_plugins
|
||||
|
||||
test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins)
|
||||
|
||||
if ! set --query argv[2]
|
||||
if test "$cmd" != update
|
||||
echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1
|
||||
else if ! set --query file_plugins
|
||||
echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1
|
||||
end
|
||||
set arg_plugins $file_plugins
|
||||
end
|
||||
|
||||
for plugin in $arg_plugins
|
||||
set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin)
|
||||
contains -- "$plugin" $new_plugins || set --append new_plugins $plugin
|
||||
end
|
||||
|
||||
if set --query argv[2]
|
||||
for plugin in $new_plugins
|
||||
if contains -- "$plugin" $old_plugins
|
||||
test "$cmd" = remove &&
|
||||
set --append remove_plugins $plugin ||
|
||||
set --append update_plugins $plugin
|
||||
else if test "$cmd" = install
|
||||
set --append install_plugins $plugin
|
||||
else
|
||||
echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1
|
||||
end
|
||||
end
|
||||
else
|
||||
for plugin in $new_plugins
|
||||
contains -- "$plugin" $old_plugins &&
|
||||
set --append update_plugins $plugin ||
|
||||
set --append install_plugins $plugin
|
||||
end
|
||||
|
||||
for plugin in $old_plugins
|
||||
contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin
|
||||
end
|
||||
end
|
||||
|
||||
set --local pid_list
|
||||
set --local source_plugins
|
||||
set --local fetch_plugins $update_plugins $install_plugins
|
||||
set --local fish_path (status fish-path)
|
||||
|
||||
echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal)
|
||||
|
||||
for plugin in $fetch_plugins
|
||||
set --local source (command mktemp -d)
|
||||
set --append source_plugins $source
|
||||
|
||||
command mkdir -p $source/{completions,conf.d,themes,functions}
|
||||
|
||||
$fish_path --command "
|
||||
if test -e $plugin
|
||||
command cp -Rf $plugin/* $source
|
||||
else
|
||||
set temp (command mktemp -d)
|
||||
set repo (string split -- \@ $plugin) || set repo[2] HEAD
|
||||
|
||||
if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1])
|
||||
set name (string split -- / \$path)[-1]
|
||||
set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz
|
||||
else
|
||||
set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2]
|
||||
end
|
||||
|
||||
echo Fetching (set_color --underline)\$url(set_color normal)
|
||||
|
||||
if curl --silent -L \$url | tar -xzC \$temp -f - 2>/dev/null
|
||||
command cp -Rf \$temp/*/* $source
|
||||
else
|
||||
echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2
|
||||
command rm -rf $source
|
||||
end
|
||||
|
||||
command rm -rf \$temp
|
||||
end
|
||||
|
||||
set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files
|
||||
" &
|
||||
|
||||
set --append pid_list (jobs --last --pid)
|
||||
end
|
||||
|
||||
wait $pid_list 2>/dev/null
|
||||
|
||||
for plugin in $fetch_plugins
|
||||
if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source
|
||||
if set --local index (contains --index -- "$plugin" $install_plugins)
|
||||
set --erase install_plugins[$index]
|
||||
else
|
||||
set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for plugin in $update_plugins $remove_plugins
|
||||
if set --local index (contains --index -- "$plugin" $_fisher_plugins)
|
||||
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
|
||||
|
||||
if contains -- "$plugin" $remove_plugins
|
||||
for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
||||
emit {$name}_uninstall
|
||||
end
|
||||
printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
|
||||
set --erase _fisher_plugins[$index]
|
||||
end
|
||||
|
||||
command rm -rf (string replace -- \~ ~ $$plugin_files_var)
|
||||
|
||||
functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
||||
|
||||
for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
||||
complete --erase --command $name
|
||||
end
|
||||
|
||||
set --erase $plugin_files_var
|
||||
end
|
||||
end
|
||||
|
||||
if set --query update_plugins[1] || set --query install_plugins[1]
|
||||
command mkdir -p $fisher_path/{functions,themes,conf.d,completions}
|
||||
end
|
||||
|
||||
for plugin in $update_plugins $install_plugins
|
||||
set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)]
|
||||
set --local files $source/{functions,themes,conf.d,completions}/*
|
||||
|
||||
if set --local index (contains --index -- $plugin $install_plugins)
|
||||
set --local user_files $fisher_path/{functions,themes,conf.d,completions}/*
|
||||
set --local conflict_files
|
||||
|
||||
for file in (string replace -- $source/ $fisher_path/ $files)
|
||||
contains -- $file $user_files && set --append conflict_files $file
|
||||
end
|
||||
|
||||
if set --query conflict_files[1] && set --erase install_plugins[$index]
|
||||
echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2
|
||||
continue
|
||||
end
|
||||
end
|
||||
|
||||
for file in (string replace -- $source/ "" $files)
|
||||
command cp -RLf $source/$file $fisher_path/$file
|
||||
end
|
||||
|
||||
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
|
||||
|
||||
set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~)
|
||||
|
||||
contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin
|
||||
contains -- $plugin $install_plugins && set --local event install || set --local event update
|
||||
|
||||
printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
|
||||
|
||||
for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~)
|
||||
source $file
|
||||
if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file)
|
||||
emit {$name}_$event
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
command rm -rf $source_plugins
|
||||
|
||||
if set --query _fisher_plugins[1]
|
||||
set --local commit_plugins
|
||||
|
||||
for plugin in $file_plugins
|
||||
contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin
|
||||
end
|
||||
|
||||
for plugin in $_fisher_plugins
|
||||
contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin
|
||||
end
|
||||
|
||||
printf "%s\n" $commit_plugins >$fish_plugins
|
||||
else
|
||||
set --erase _fisher_plugins
|
||||
command rm -f $fish_plugins
|
||||
end
|
||||
|
||||
set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins)
|
||||
|
||||
test "$total" != "0 0 0" && echo (string join ", " (
|
||||
test $total[1] = 0 || echo "Installed $total[1]") (
|
||||
test $total[2] = 0 || echo "Updated $total[2]") (
|
||||
test $total[3] = 0 || echo "Removed $total[3]")
|
||||
) plugin/s
|
||||
case \*
|
||||
echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1
|
||||
end
|
||||
end
|
||||
|
||||
if ! set --query _fisher_upgraded_to_4_4
|
||||
set --universal _fisher_upgraded_to_4_4
|
||||
if functions --query _fisher_list
|
||||
set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share
|
||||
command rm -rf $XDG_DATA_HOME/fisher
|
||||
functions --erase _fisher_{list,plugin_parse}
|
||||
fisher update >/dev/null 2>/dev/null
|
||||
else
|
||||
for var in (set --names | string match --entire --regex '^_fisher_.+_files$')
|
||||
set $var (string replace -- ~ \~ $$var)
|
||||
end
|
||||
functions --erase _fisher_fish_postexec
|
||||
end
|
||||
end
|
||||
25
install.sh
Normal file
25
install.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
export REPO="https://github.com/kevinmidboe/dotfiles"
|
||||
export DOT_CONFIG_FOLDER="$HOME/.config"
|
||||
|
||||
# clone dotfiles repo
|
||||
echo "Cloning github repo"
|
||||
git clone --depth=1 $REPO $DOT_CONFIG_FOLDER
|
||||
|
||||
cd $DOT_CONFIG_FOLDER
|
||||
|
||||
# create symlinks
|
||||
echo "Creating symlinks"
|
||||
ln -s $HOME/.config/profile $HOME/.profile
|
||||
ln -s $HOME/.config/wakatime.cfg $HOME/.wakatime.cfg
|
||||
|
||||
# copy script files
|
||||
echo "Copying scripts to /usr/local/bin"
|
||||
cp scripts/* /usr/local/bin/
|
||||
|
||||
# run install scripts
|
||||
for script in install/*.sh; do
|
||||
echo "Running install script $script..."
|
||||
sh "$script"
|
||||
done
|
||||
|
||||
14
install/0-brew-cask.sh
Normal file
14
install/0-brew-cask.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
# Install cask packages
|
||||
|
||||
apps=(
|
||||
1password
|
||||
1password-cli
|
||||
docker
|
||||
firefox
|
||||
google-cloud-sdk
|
||||
google-chrome
|
||||
homerow
|
||||
vlc
|
||||
)
|
||||
|
||||
brew install "${apps[@]}" --cask
|
||||
56
install/0-brew.sh
Normal file
56
install/0-brew.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
# Install Homebrew
|
||||
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
brew update
|
||||
brew upgrade
|
||||
|
||||
# Add required taps
|
||||
brew tap hashicorp/tap
|
||||
|
||||
# Install packages
|
||||
apps=(
|
||||
ansible
|
||||
binwalk
|
||||
btop
|
||||
cario
|
||||
cmake
|
||||
drone-cli
|
||||
elixir
|
||||
erlang
|
||||
fd
|
||||
ffmpeg
|
||||
fish
|
||||
gcc
|
||||
gd
|
||||
gh
|
||||
gnupg
|
||||
gnutls
|
||||
go
|
||||
helm
|
||||
httpie
|
||||
iperf3
|
||||
ipmitool
|
||||
jq
|
||||
k9s
|
||||
lsusb
|
||||
lua
|
||||
lua-language-server
|
||||
meson
|
||||
ncdu
|
||||
neovim
|
||||
nmap
|
||||
ruby
|
||||
tailscale
|
||||
telnet
|
||||
hashicorp/tap/terraform
|
||||
tmux
|
||||
tree
|
||||
watch
|
||||
wget
|
||||
zig
|
||||
)
|
||||
|
||||
brew install "${apps[@]}"
|
||||
|
||||
# Git comes with diff-highlight, but isn't in the PATH
|
||||
ln -sf "$(brew --prefix)/share/git-core/contrib/diff-highlight/diff-highlight" /usr/local/bin/diff-highlight
|
||||
14
install/node.sh
Normal file
14
install/node.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
# install latest node & yarn
|
||||
brew install node yarn
|
||||
|
||||
# install specific node versions
|
||||
brew install node@20
|
||||
brew install node@18
|
||||
|
||||
# Globally install with npm
|
||||
|
||||
packages=(
|
||||
prettier
|
||||
)
|
||||
|
||||
yarn global install "${packages[@]}"
|
||||
11
install/python.sh
Normal file
11
install/python.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
# Install lastest python
|
||||
brew install python3
|
||||
|
||||
# Install specific versions of python
|
||||
brew install python@3.12
|
||||
brew install python@3.18
|
||||
|
||||
# Install global python pacakges
|
||||
# pip3 install setuptools
|
||||
|
||||
brew install virtualenv
|
||||
597
nvim/init.lua
Normal file
597
nvim/init.lua
Normal file
@@ -0,0 +1,597 @@
|
||||
-- Install packer
|
||||
local install_path = vim.fn.stdpath 'data' .. '/site/pack/packer/start/packer.nvim'
|
||||
local is_bootstrap = false
|
||||
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
|
||||
is_bootstrap = true
|
||||
vim.fn.system { 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path }
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
end
|
||||
|
||||
require('packer').startup(function(use)
|
||||
-- Package manager
|
||||
use 'wbthomason/packer.nvim'
|
||||
|
||||
use { -- LSP Configuration & Plugins
|
||||
'neovim/nvim-lspconfig',
|
||||
requires = {
|
||||
-- Automatically install LSPs to stdpath for neovim
|
||||
'williamboman/mason.nvim',
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
|
||||
-- Useful status updates for LSP
|
||||
'j-hui/fidget.nvim',
|
||||
|
||||
-- Additional lua configuration, makes nvim stuff amazing
|
||||
'folke/neodev.nvim',
|
||||
},
|
||||
}
|
||||
|
||||
use { -- Autocompletion
|
||||
'hrsh7th/nvim-cmp',
|
||||
requires = { 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip' },
|
||||
}
|
||||
|
||||
use { -- Highlight, edit, and navigate code
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
run = function()
|
||||
pcall(require('nvim-treesitter.install').update { with_sync = true })
|
||||
end,
|
||||
}
|
||||
|
||||
use { -- Additional text objects via treesitter
|
||||
'nvim-treesitter/nvim-treesitter-textobjects',
|
||||
after = 'nvim-treesitter',
|
||||
}
|
||||
|
||||
-- Git related plugins
|
||||
use 'tpope/vim-fugitive'
|
||||
use 'tpope/vim-rhubarb'
|
||||
use 'lewis6991/gitsigns.nvim'
|
||||
|
||||
-- use 'navarasu/onedark.nvim' -- Theme inspired by Atom
|
||||
use 'nvim-lualine/lualine.nvim' -- Fancier statusline
|
||||
use { 'lukas-reineke/indent-blankline.nvim', main = "ibl", opts = {} } -- Add indentation guides even on blank lines
|
||||
use 'numToStr/Comment.nvim' -- "gc" to comment visual regions/lines
|
||||
use 'tpope/vim-sleuth' -- Detect tabstop and shiftwidth automatically
|
||||
|
||||
-- Fuzzy Finder (files, lsp, etc)
|
||||
use { 'nvim-telescope/telescope.nvim', branch = '0.1.x', requires = { 'nvim-lua/plenary.nvim' } }
|
||||
|
||||
-- Fuzzy Finder Algorithm which requires local dependencies to be built. Only load if `make` is available
|
||||
use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make', cond = vim.fn.executable 'make' == 1 }
|
||||
|
||||
-- Tree file explorer pacakge: https://github.com/nvim-tree/nvim-tree.lua
|
||||
use {
|
||||
'nvim-tree/nvim-tree.lua',
|
||||
requires = {
|
||||
'nvim-tree/nvim-web-devicons', -- optional, for file icons
|
||||
},
|
||||
tag = 'nightly' -- optional, updated every week. (see issue #1193)
|
||||
}
|
||||
|
||||
-- nvim tree package: https://github.com/romgrk/barbar.nvim
|
||||
use {'romgrk/barbar.nvim'}
|
||||
|
||||
-- Custom color schema
|
||||
use { 'bluz71/vim-moonfly-colors', branch = 'cterm-compat' }
|
||||
|
||||
-- Svelte setup
|
||||
use 'evanleck/vim-svelte'
|
||||
use 'pangloss/vim-javascript'
|
||||
use 'HerringtonDarkholme/yats.vim'
|
||||
|
||||
-- Svelte coc
|
||||
use { 'neoclide/coc.nvim', branch = 'release' }
|
||||
|
||||
-- Prettier
|
||||
use('jose-elias-alvarez/null-ls.nvim')
|
||||
use('MunifTanjim/prettier.nvim')
|
||||
|
||||
-- Wakatime
|
||||
use 'wakatime/vim-wakatime'
|
||||
|
||||
-- golang
|
||||
use 'ray-x/go.nvim'
|
||||
use 'ray-x/guihua.lua'
|
||||
|
||||
-- Elixir
|
||||
use({ "elixir-tools/elixir-tools.nvim", requires = { "nvim-lua/plenary.nvim" }})
|
||||
|
||||
local elixir = require("elixir")
|
||||
local elixirls = require("elixir.elixirls")
|
||||
|
||||
elixir.setup {
|
||||
elixirls = {
|
||||
-- specify a repository and branch
|
||||
repo = "mhanberg/elixir-ls", -- defaults to elixir-lsp/elixir-ls
|
||||
branch = "mh/all-workspace-symbols", -- defaults to nil, just checkouts out the default branch, mutually exclusive with the `tag` option
|
||||
tag = "v0.13.0", -- defaults to nil, mutually exclusive with the `branch` option
|
||||
|
||||
-- alternatively, point to an existing elixir-ls installation (optional)
|
||||
-- not currently supported by elixirls, but can be a table if you wish to pass other args `{"path/to/elixirls", "--foo"}`
|
||||
-- cmd = "/usr/local/bin/elixir-ls.sh",
|
||||
|
||||
-- default settings, use the `settings` function to override settings
|
||||
settings = elixirls.settings {
|
||||
dialyzerEnabled = true,
|
||||
fetchDeps = false,
|
||||
enableTestLenses = false,
|
||||
suggestSpecs = false,
|
||||
},
|
||||
|
||||
-- on_attach = function(client, bufnr)
|
||||
-- local map_opts = { buffer = true, noremap = true}
|
||||
--
|
||||
-- -- run the codelens under the cursor
|
||||
-- vim.keymap.set("n", "<space>r", vim.lsp.codelens.run, map_opts)
|
||||
-- -- remove the pipe operator
|
||||
-- vim.keymap.set("n", "<space>fp", ":ElixirFromPipe<cr>", map_opts)
|
||||
-- -- add the pipe operator
|
||||
-- vim.keymap.set("n", "<space>tp", ":ElixirToPipe<cr>", map_opts)
|
||||
-- vim.keymap.set("v", "<space>em", ":ElixirExpandMacro<cr>", map_opts)
|
||||
--
|
||||
-- -- bindings for standard LSP functions.
|
||||
-- vim.keymap.set("n", "<space>df", "<cmd>lua vim.lsp.buf.format()<cr>", map_opts)
|
||||
-- vim.keymap.set("n", "<space>gd", "<cmd>lua vim.diagnostic.open_float()<cr>", map_opts)
|
||||
-- vim.keymap.set("n", "<space>dt", "<cmd>lua vim.lsp.buf.definition()<cr>", map_opts)
|
||||
-- vim.keymap.set("n", "<space>K", "<cmd>lua vim.lsp.buf.hover()<cr>", map_opts)
|
||||
-- vim.keymap.set("n", "<space>gD","<cmd>lua vim.lsp.buf.implementation()<cr>", map_opts)
|
||||
-- vim.keymap.set("n", "<space>1gD","<cmd>lua vim.lsp.buf.type_definition()<cr>", map_opts)
|
||||
-- -- keybinds for fzf-lsp.nvim: https://github.com/gfanto/fzf-lsp.nvim
|
||||
-- -- you could also use telescope.nvim: https://github.com/nvim-telescope/telescope.nvim
|
||||
-- -- there are also core vim.lsp functions that put the same data in the loclist
|
||||
-- vim.keymap.set("n", "<space>gr", ":References<cr>", map_opts)
|
||||
-- vim.keymap.set("n", "<space>g0", ":DocumentSymbols<cr>", map_opts)
|
||||
-- vim.keymap.set("n", "<space>gW", ":WorkspaceSymbols<cr>", map_opts)
|
||||
-- vim.keymap.set("n", "<leader>d", ":Diagnostics<cr>", map_opts)
|
||||
-- end
|
||||
}
|
||||
}
|
||||
|
||||
-- Add custom plugins to packer from ~/.config/nvim/lua/custom/plugins.lua
|
||||
local has_plugins, plugins = pcall(require, 'custom.plugins')
|
||||
if has_plugins then
|
||||
plugins(use)
|
||||
end
|
||||
|
||||
if is_bootstrap then
|
||||
require('packer').sync()
|
||||
end
|
||||
end)
|
||||
|
||||
-- When we are bootstrapping a configuration, it doesn't
|
||||
-- make sense to execute the rest of the init.lua.
|
||||
--
|
||||
-- You'll need to restart nvim, and then it will work.
|
||||
if is_bootstrap then
|
||||
print '=================================='
|
||||
print ' Plugins are being installed'
|
||||
print ' Wait until Packer completes,'
|
||||
print ' then restart nvim'
|
||||
print '=================================='
|
||||
return
|
||||
end
|
||||
|
||||
-- Automatically source and re-compile packer whenever you save this init.lua
|
||||
local packer_group = vim.api.nvim_create_augroup('Packer', { clear = true })
|
||||
vim.api.nvim_create_autocmd('BufWritePost', {
|
||||
command = 'source <afile> | silent! LspStop | silent! LspStart | PackerCompile',
|
||||
group = packer_group,
|
||||
pattern = vim.fn.expand '$MYVIMRC',
|
||||
})
|
||||
|
||||
-- [[ Setting options ]]
|
||||
-- See `:help vim.o`
|
||||
|
||||
-- Set highlight on search
|
||||
vim.o.hlsearch = false
|
||||
|
||||
-- Make line numbers default
|
||||
vim.wo.number = true
|
||||
|
||||
-- Enable mouse mode
|
||||
vim.o.mouse = 'a'
|
||||
|
||||
-- Enable break indent
|
||||
vim.o.breakindent = true
|
||||
|
||||
-- Save undo history
|
||||
vim.o.undofile = true
|
||||
|
||||
-- Case insensitive searching UNLESS /C or capital in search
|
||||
vim.o.ignorecase = true
|
||||
vim.o.smartcase = true
|
||||
|
||||
-- Decrease update time
|
||||
vim.o.updatetime = 250
|
||||
vim.wo.signcolumn = 'yes'
|
||||
|
||||
-- Set colorscheme
|
||||
vim.o.termguicolors = true
|
||||
-- vim.cmd [[colorscheme onedark]]
|
||||
vim.cmd [[colorscheme moonfly]]
|
||||
|
||||
-- Set completeopt to have a better completion experience
|
||||
vim.o.completeopt = 'menuone,noselect'
|
||||
|
||||
-- set tab key to two spaces
|
||||
vim.o.expandtab = true
|
||||
vim.o.tabstop = 2
|
||||
vim.o.softtabstop = 2
|
||||
vim.o.shiftwidth = 2
|
||||
|
||||
vim.o.relativenumber = true
|
||||
|
||||
-- [[ Basic Keymaps ]]
|
||||
-- Set <space> as the leader key
|
||||
-- See `:help mapleader`
|
||||
-- NOTE: Must happen before plugins are required (otherwise wrong leader will be used)
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
-- Keymaps for better default experience
|
||||
-- See `:help vim.keymap.set()`
|
||||
vim.keymap.set({ 'n', 'v' }, '<Space>', '<Nop>', { silent = true })
|
||||
|
||||
-- Remap for dealing with word wrap
|
||||
vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
|
||||
vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
|
||||
|
||||
-- [[ Highlight on yank ]]
|
||||
-- See `:help vim.highlight.on_yank()`
|
||||
local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true })
|
||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
group = highlight_group,
|
||||
pattern = '*',
|
||||
})
|
||||
|
||||
-- Set lualine as statusline
|
||||
-- See `:help lualine.txt`
|
||||
require('lualine').setup {
|
||||
options = {
|
||||
icons_enabled = false,
|
||||
theme = 'moonfly',
|
||||
component_separators = '|',
|
||||
section_separators = '',
|
||||
},
|
||||
}
|
||||
|
||||
-- Configure prettier
|
||||
local prettier = require("prettier")
|
||||
|
||||
prettier.setup({
|
||||
bin = 'prettier', -- or `'prettierd'` (v0.22+)
|
||||
filetypes = {
|
||||
"css",
|
||||
"graphql",
|
||||
"html",
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"json",
|
||||
"less",
|
||||
"markdown",
|
||||
"scss",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"yaml",
|
||||
},
|
||||
})
|
||||
|
||||
local null_ls = require("null-ls")
|
||||
|
||||
local group = vim.api.nvim_create_augroup("lsp_format_on_save", { clear = false })
|
||||
local event = "BufWritePre" -- or "BufWritePost"
|
||||
local async = event == "BufWritePost"
|
||||
|
||||
null_ls.setup({
|
||||
on_attach = function(client, bufnr)
|
||||
if client.supports_method("textDocument/formatting") then
|
||||
vim.keymap.set("n", "<Leader>f", function()
|
||||
vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() })
|
||||
end, { buffer = bufnr, desc = "[lsp] format" })
|
||||
|
||||
-- format on save
|
||||
vim.api.nvim_clear_autocmds({ buffer = bufnr, group = group })
|
||||
vim.api.nvim_create_autocmd(event, {
|
||||
buffer = bufnr,
|
||||
group = group,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ bufnr = bufnr, async = async })
|
||||
end,
|
||||
desc = "[lsp] format on save",
|
||||
})
|
||||
end
|
||||
|
||||
if client.supports_method("textDocument/rangeFormatting") then
|
||||
vim.keymap.set("x", "<Leader>f", function()
|
||||
vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() })
|
||||
end, { buffer = bufnr, desc = "[lsp] format" })
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- Enable Comment.nvim
|
||||
require('Comment').setup()
|
||||
|
||||
-- Enable `lukas-reineke/indent-blankline.nvim`
|
||||
-- See `:help indent_blankline.txt`
|
||||
--require('indent_blankline').setup {
|
||||
-- char = '┊',
|
||||
-- show_trailing_blankline_indent = false,
|
||||
--}
|
||||
|
||||
-- Gitsigns
|
||||
-- See `:help gitsigns.txt`
|
||||
require('gitsigns').setup {
|
||||
signs = {
|
||||
add = { text = '+' },
|
||||
change = { text = '~' },
|
||||
delete = { text = '_' },
|
||||
topdelete = { text = '‾' },
|
||||
changedelete = { text = '~' },
|
||||
},
|
||||
}
|
||||
|
||||
-- [[ Configure Telescope ]]
|
||||
-- See `:help telescope` and `:help telescope.setup()`
|
||||
require('telescope').setup {
|
||||
defaults = {
|
||||
mappings = {
|
||||
i = {
|
||||
['<C-u>'] = false,
|
||||
['<C-d>'] = false,
|
||||
},
|
||||
},
|
||||
file_ignore_patterns = {"node_modules"}
|
||||
},
|
||||
}
|
||||
|
||||
-- Enable telescope fzf native, if installed
|
||||
pcall(require('telescope').load_extension, 'fzf')
|
||||
|
||||
-- See `:help telescope.builtin`
|
||||
vim.keymap.set('n', '<leader>?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' })
|
||||
vim.keymap.set('n', '<leader><space>', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' })
|
||||
vim.keymap.set('n', '<leader>/', function()
|
||||
-- You can pass additional configuration to telescope to change theme, layout, etc.
|
||||
require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
})
|
||||
end, { desc = '[/] Fuzzily search in current buffer]' })
|
||||
|
||||
vim.keymap.set('n', '<leader>sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' })
|
||||
vim.keymap.set('n', '<leader>sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' })
|
||||
vim.keymap.set('n', '<leader>sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' })
|
||||
vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' })
|
||||
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
|
||||
|
||||
-- [[ Configure Treesitter ]]
|
||||
-- See `:help nvim-treesitter`
|
||||
require('nvim-treesitter.configs').setup {
|
||||
-- Add languages to be installed here that you want installed for treesitter
|
||||
ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'typescript', 'help', 'vim' },
|
||||
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true, disable = { 'python' } },
|
||||
incremental_selection = {
|
||||
enable = true,
|
||||
keymaps = {
|
||||
init_selection = '<c-space>',
|
||||
node_incremental = '<c-space>',
|
||||
scope_incremental = '<c-s>',
|
||||
node_decremental = '<c-backspace>',
|
||||
},
|
||||
},
|
||||
textobjects = {
|
||||
select = {
|
||||
enable = true,
|
||||
lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
|
||||
keymaps = {
|
||||
-- You can use the capture groups defined in textobjects.scm
|
||||
['aa'] = '@parameter.outer',
|
||||
['ia'] = '@parameter.inner',
|
||||
['af'] = '@function.outer',
|
||||
['if'] = '@function.inner',
|
||||
['ac'] = '@class.outer',
|
||||
['ic'] = '@class.inner',
|
||||
},
|
||||
},
|
||||
move = {
|
||||
enable = true,
|
||||
set_jumps = true, -- whether to set jumps in the jumplist
|
||||
goto_next_start = {
|
||||
[']m'] = '@function.outer',
|
||||
[']]'] = '@class.outer',
|
||||
},
|
||||
goto_next_end = {
|
||||
[']M'] = '@function.outer',
|
||||
[']['] = '@class.outer',
|
||||
},
|
||||
goto_previous_start = {
|
||||
['[m'] = '@function.outer',
|
||||
['[['] = '@class.outer',
|
||||
},
|
||||
goto_previous_end = {
|
||||
['[M'] = '@function.outer',
|
||||
['[]'] = '@class.outer',
|
||||
},
|
||||
},
|
||||
swap = {
|
||||
enable = true,
|
||||
swap_next = {
|
||||
['<leader>a'] = '@parameter.inner',
|
||||
},
|
||||
swap_previous = {
|
||||
['<leader>A'] = '@parameter.inner',
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Empty nvim-tree setup using defaults
|
||||
require("nvim-tree").setup()
|
||||
|
||||
-- Keymaps leader (space) + f to toggle nvim-tree
|
||||
vim.keymap.set('n', '<leader>f', ':NvimTreeToggle<CR>', {
|
||||
noremap = true
|
||||
})
|
||||
|
||||
-- Diagnostic keymaps
|
||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
|
||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
|
||||
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float)
|
||||
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)
|
||||
|
||||
-- LSP settings.
|
||||
-- This function gets run when an LSP connects to a particular buffer.
|
||||
local on_attach = function(_, bufnr)
|
||||
-- NOTE: Remember that lua is a real programming language, and as such it is possible
|
||||
-- to define small helper and utility functions so you don't have to repeat yourself
|
||||
-- many times.
|
||||
--
|
||||
-- In this case, we create a function that lets us more easily define mappings specific
|
||||
-- for LSP related items. It sets the mode, buffer and description for us each time.
|
||||
local nmap = function(keys, func, desc)
|
||||
if desc then
|
||||
desc = 'LSP: ' .. desc
|
||||
end
|
||||
|
||||
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
|
||||
end
|
||||
|
||||
-- barbar.nvim
|
||||
local map = vim.api.nvim_set_keymap
|
||||
local opts = { noremap = true, silent = true }
|
||||
map('n', '<A-,>', '<Cmd>BufferPrevious<CR>', opts)
|
||||
map('n', '<A-.>', '<Cmd>BufferNext<CR>', opts)
|
||||
|
||||
nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||
nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
|
||||
|
||||
nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition')
|
||||
nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
|
||||
nmap('gI', vim.lsp.buf.implementation, '[G]oto [I]mplementation')
|
||||
nmap('<leader>D', vim.lsp.buf.type_definition, 'Type [D]efinition')
|
||||
nmap('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
|
||||
nmap('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
|
||||
|
||||
-- See `:help K` for why this keymap
|
||||
nmap('K', vim.lsp.buf.hover, 'Hover Documentation')
|
||||
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
|
||||
|
||||
-- Lesser used LSP functionality
|
||||
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||
nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
|
||||
nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
|
||||
nmap('<leader>wl', function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, '[W]orkspace [L]ist Folders')
|
||||
|
||||
-- Create a command `:Format` local to the LSP buffer
|
||||
vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
|
||||
vim.lsp.buf.format()
|
||||
end, { desc = 'Format current buffer with LSP' })
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- Setup neovim lua configuration
|
||||
require('neodev').setup()
|
||||
--
|
||||
-- nvim-cmp supports additional completion capabilities, so broadcast that to servers
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
|
||||
|
||||
|
||||
-- Enable the following language servers
|
||||
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
|
||||
--
|
||||
-- Add any additional override configuration in the following tables. They will be passed to
|
||||
-- the `settings` field of the server config. You must look up that documentation yourself.
|
||||
local servers = {
|
||||
clangd = {},
|
||||
cssls = {},
|
||||
elixirls = {},
|
||||
eslint = {},
|
||||
jsonls = {},
|
||||
golangci_lint_ls = {},
|
||||
gopls = {},
|
||||
lua_ls = {},
|
||||
pylsp = {},
|
||||
rust_analyzer = {},
|
||||
svelte = {},
|
||||
tsserver = {},
|
||||
vimls = {},
|
||||
volar = {},
|
||||
}
|
||||
-- Setup mason so it can manage external tooling
|
||||
require("mason").setup()
|
||||
|
||||
-- Configure lspconfig for each server
|
||||
local mason_lspconfig = require 'mason-lspconfig'
|
||||
mason_lspconfig.setup {
|
||||
ensure_installed = vim.tbl_keys(servers),
|
||||
}
|
||||
|
||||
mason_lspconfig.setup_handlers {
|
||||
function(server_name)
|
||||
require('lspconfig')[server_name].setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
settings = servers[server_name],
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
||||
-- Turn on lsp status information
|
||||
require('fidget').setup()
|
||||
|
||||
-- nvim-cmp setup
|
||||
local cmp = require 'cmp'
|
||||
local luasnip = require 'luasnip'
|
||||
|
||||
cmp.setup {
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert {
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<CR>'] = cmp.mapping.confirm {
|
||||
behavior = cmp.ConfirmBehavior.Replace,
|
||||
select = true,
|
||||
},
|
||||
['<Tab>'] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
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' }),
|
||||
},
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
},
|
||||
}
|
||||
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
13
nvim/lua/plugins.lua
Normal file
13
nvim/lua/plugins.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
|
||||
|
||||
-- Only required if you have packer configured as `opt`
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
|
||||
return require('packer').startup(function(use)
|
||||
-- Packer can manage itself
|
||||
use 'wbthomason/packer.nvim'
|
||||
use 'wakatime/vim-wakatime'
|
||||
|
||||
use 'nvim-tree/nvim-web-devicons'
|
||||
use {'romgrk/barbar.nvim', wants = 'nvim-web-devicons'}
|
||||
end)
|
||||
27
profile
Normal file
27
profile
Normal file
@@ -0,0 +1,27 @@
|
||||
# Make sure SHELL is set to fish
|
||||
export SHELL="$(which fish)"
|
||||
|
||||
# Setting PATH for Homebrew that should take precedence
|
||||
# over system-provided programs
|
||||
export PATH="/usr/local/bin:$PATH"
|
||||
|
||||
# Add homebrew arm64 install path if applicable
|
||||
if test $(uname -m) = "arm64"
|
||||
export PATH="/opt/homebrew/bin:$PATH"
|
||||
end
|
||||
|
||||
# MacPorts Installer rddition on 2022-10-31_at_23:07:29: adding an appropriate PATH variable for use with MacPorts.
|
||||
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
|
||||
|
||||
# Setting go environment
|
||||
export GOPATH=$HOME/dev/go
|
||||
export GOROOT="$(brew --prefix golang)/libexec"
|
||||
export PATH="$PATH:$GOPATH/bin:$GOROOT/bin"
|
||||
|
||||
# Setting up node/npm
|
||||
export NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
|
||||
export NPM_PACKAGES="$HOME/.npm-packages"
|
||||
export PATH="$NPM_PACKAGES/bin:$PATH"
|
||||
|
||||
# Setting up ruby & gem
|
||||
export PATH="/Users/kevinmidboe/.gem/ruby/2.7.0/bin:$PATH"
|
||||
9
scripts/tbind.sh
Normal file
9
scripts/tbind.sh
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
CAPS_KEY=0x700000039
|
||||
F10_KEY=0x700000043
|
||||
|
||||
DATA=$(printf '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":%s,"HIDKeyboardModifierMappingDst":%s}]}' $CAPS_KEY $F10_KEY)
|
||||
hidutil property --set $DATA
|
||||
|
||||
echo "Successfully overwrote CAPS KEY to F10!"
|
||||
26
tmux/tmux.config
Normal file
26
tmux/tmux.config
Normal file
@@ -0,0 +1,26 @@
|
||||
# remap previx from 'C-b' to 'F10' and should
|
||||
# map caps-lock to F10
|
||||
unbind-key C-b
|
||||
set-option -g prefix F10
|
||||
bind-key F10 send-prefix
|
||||
|
||||
# Remove delay
|
||||
set -s escape-time 1
|
||||
|
||||
# scroll window buffer history, not commands history
|
||||
set -g mouse on
|
||||
|
||||
set -g default-terminal "xterm-256color"
|
||||
set-option -g default-shell /opt/homebrew/bin/fish
|
||||
|
||||
# Navigate panes using vim bindings
|
||||
setw -g mode-keys vi
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
|
||||
# Set new panes to open in current directory
|
||||
bind c new-window -c "#{pane_current_path}"
|
||||
bind '"' split-window -c "#{pane_current_path}"
|
||||
bind % split-window -h -c "#{pane_current_path}"
|
||||
9
wakatime.cfg
Normal file
9
wakatime.cfg
Normal file
@@ -0,0 +1,9 @@
|
||||
[settings]
|
||||
debug = false
|
||||
hidefilenames = false
|
||||
ignore =
|
||||
COMMIT_EDITMSG$
|
||||
PULLREQ_EDITMSG$
|
||||
MERGE_MSG$
|
||||
TAG_EDITMSG$
|
||||
api_key=
|
||||
Reference in New Issue
Block a user