Compare commits
2 Commits
main
...
bfcce94ed0
| Author | SHA1 | Date | |
|---|---|---|---|
| bfcce94ed0 | |||
| 181f2adfaa |
@@ -1,10 +1,3 @@
|
||||
if [[ $- == *i* ]]; then # in interactive session
|
||||
# ble.sh
|
||||
# https://github.com/akinomyoga/ble.sh#13-set-up-bashrc
|
||||
BLE="${HOME}/programs/ble.sh/out/ble.sh"
|
||||
[[ -f ${BLE} ]] && source ${BLE} --noattach
|
||||
fi
|
||||
|
||||
# Navigation
|
||||
alias vim="nvim"
|
||||
alias lg="lazygit"
|
||||
@@ -17,6 +10,10 @@ alias dedsstore="find . -name \".DS_Store\" -delete"
|
||||
alias c="clear"
|
||||
alias dps="docker ps -a --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}'"
|
||||
|
||||
# Difftastic Config
|
||||
export DFT_TAB_WIDTH=4
|
||||
export DFT_BACKGROUND=light
|
||||
|
||||
# History
|
||||
HISTSIZE=50000
|
||||
HISTFILESIZE=50000
|
||||
@@ -28,10 +25,6 @@ if [ "$BASH" != "" ]; then
|
||||
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
|
||||
if [ -f /usr/share/bash-completion/completions/git ]; then
|
||||
source /usr/share/bash-completion/completions/git
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${OSTYPE}" == "linux-gnu"* ]]; then
|
||||
@@ -71,11 +64,10 @@ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
# Golang
|
||||
# NOTE: Go is installed with Homebrew and automatically placed on the path
|
||||
export PATH=$PATH:${HOME}/go/bin
|
||||
export PATH=$PATH:/usr/local/go/bin:${HOME}/go/bin
|
||||
|
||||
export TERM="xterm-256color"
|
||||
export EDITOR=$(which nvim)
|
||||
export EDITOR=$(which vim)
|
||||
|
||||
# Adding applications to path
|
||||
if [[ -d ${HOME}/.dotfiles/bin/linux ]]; then
|
||||
@@ -85,13 +77,8 @@ if [[ -d ${HOME}/bin ]]; then
|
||||
export PATH=$PATH:${HOME}/bin
|
||||
fi
|
||||
|
||||
|
||||
# Enable atuin
|
||||
# https://docs.atuin.sh
|
||||
eval "$(atuin init bash)"
|
||||
|
||||
# fzf
|
||||
#eval "$(fzf --bash)"
|
||||
eval "$(fzf --bash)"
|
||||
|
||||
export FZF_DEFAULT_OPTS=" \
|
||||
--color=bg+:#ccd0da,bg:#eff1f5,spinner:#dc8a78,hl:#d20f39 \
|
||||
@@ -124,6 +111,15 @@ _git_top() {
|
||||
fi
|
||||
}
|
||||
|
||||
function up() {
|
||||
num=1
|
||||
if [ $# -gt 0 ]; then
|
||||
num=$1
|
||||
fi
|
||||
|
||||
cd $(printf '../%.0s' $(seq 1 $num))
|
||||
}
|
||||
|
||||
# Add color shortcuts
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
c_reset=`tput sgr0`
|
||||
@@ -178,6 +174,3 @@ elif [ "$BASH" != "" ]; then
|
||||
PS1="\n╔ \w\$(prev_status_prompt)\$(git_prompt) -- \$(date '+%y-%m-%dT%H:%M:%S')\n╚ \h\$ "
|
||||
fi
|
||||
|
||||
# ble.sh
|
||||
# https://github.com/akinomyoga/ble.sh#13-set-up-bashrc
|
||||
[[ ${BLE_VERSION-} ]] && ble-attach
|
||||
0
home/.gitattributes → .gitattributes
vendored
0
home/.gitattributes → .gitattributes
vendored
@@ -36,45 +36,29 @@
|
||||
sync = "!git fetch -p && git rebase origin/$(git default-branch)"
|
||||
|
||||
[core]
|
||||
editor = nvim
|
||||
editor = vim
|
||||
pager = delta
|
||||
attributesfile = /home/tgrosinger/.gitattributes
|
||||
excludesfile = /home/tgrosinger/.gitignore_global
|
||||
|
||||
[help]
|
||||
autocorrect = prompt
|
||||
|
||||
[interactive]
|
||||
diffFilter = delta --color-only
|
||||
|
||||
[push]
|
||||
default = simple
|
||||
autoSetupRemote = true
|
||||
|
||||
[diff]
|
||||
colorMoved = default
|
||||
algorithm = histogram
|
||||
mnemonicPrefix = true
|
||||
renames = true
|
||||
|
||||
[delta]
|
||||
navigate = true
|
||||
light = true
|
||||
side-by-side = true
|
||||
line-numbers = true
|
||||
#map-styles = bold purple => syntax magenta, bold cyan => syntax blue
|
||||
map-styles = bold purple => syntax magenta, bold cyan => syntax blue
|
||||
|
||||
[branch]
|
||||
autosetuprebase = always
|
||||
sort = -committerdate
|
||||
|
||||
[rebase]
|
||||
autoSquash = true
|
||||
autoStash = true
|
||||
updateRefs = true
|
||||
|
||||
[tag]
|
||||
sort = version:refname
|
||||
|
||||
[pull]
|
||||
rebase = true
|
||||
@@ -89,7 +73,7 @@
|
||||
insteadOf = https://gitlab.i.extrahop.com/
|
||||
|
||||
[merge]
|
||||
conflictstyle = zdiff3
|
||||
conflictstyle = diff3
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
defaultBranch = main
|
||||
31
.lazygit
Normal file
31
.lazygit
Normal file
@@ -0,0 +1,31 @@
|
||||
customCommands:
|
||||
- key: '<c-P>'
|
||||
context: 'global'
|
||||
command: 'git push --force-with-lease'
|
||||
description: 'Force push with lease.'
|
||||
gui:
|
||||
timeFormat: '2006-01-02'
|
||||
mouseEvents: false
|
||||
theme:
|
||||
activeBorderColor:
|
||||
- '#40a02b'
|
||||
- bold
|
||||
inactiveBorderColor:
|
||||
- '#6c6f85'
|
||||
optionsTextColor:
|
||||
- '#1e66f5'
|
||||
selectedLineBgColor:
|
||||
- '#ccd0da'
|
||||
cherryPickedCommitBgColor:
|
||||
- '#bcc0cc'
|
||||
cherryPickedCommitFgColor:
|
||||
- '#40a02b'
|
||||
unstagedChangesColor:
|
||||
- '#d20f39'
|
||||
defaultFgColor:
|
||||
- '#4c4f69'
|
||||
searchingActiveBorderColor:
|
||||
- '#df8e1d'
|
||||
authorColors:
|
||||
'*': '#7287fd'
|
||||
|
||||
@@ -71,7 +71,7 @@ set -g @catppuccin_window_status_enable "no"
|
||||
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
# set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'catppuccin/tmux'
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
29
README.md
29
README.md
@@ -1,8 +1,29 @@
|
||||
# Tony's DotFiles
|
||||
Tony's DotFiles
|
||||
===============
|
||||
|
||||
## Scripts
|
||||
This is a collection of all the files that I want very easily available on any new machine that I sit down at. The install script is designed to be run either from the cloned repository or as a stand-alone script through curl. See the usage details for examples.
|
||||
|
||||
`install-packages.sh` is not really meant to be run automatically, and is instead mostly just documentation of what packages I have installed and how they were added.
|
||||
WARNING
|
||||
-------
|
||||
|
||||
`run-stow.sh` just links the dotfiles from this repo into their correct locations.
|
||||
The install script provided with these dotfiles is destructive and will overwrite files without asking. To ensure that you do not lose anything important please backup your .bashrc, .gitconfig, .gitignore, .inputrc, .tmux.conf, and .vimrc files in your home directory.
|
||||
|
||||
I can not be held responsible if you lose any important data.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
**Method 1**
|
||||
|
||||
The first method requires cloning the repository and running the install script manually.
|
||||
|
||||
git clone ssh://git@git.grosinger.net:22322/tgrosinger/dotfiles.git ~/.dotfiles
|
||||
cd ~/.dotfiles
|
||||
./install.sh
|
||||
|
||||
**Method 2**
|
||||
|
||||
The second method does not require cloning the repository however it does require that Git and Curl is installed on the target machine.
|
||||
|
||||
\curl -sSL https://git.grosinger.net/tgrosinger/dotfiles/raw/branch/main/install.sh | bash
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
gitmux_v0.11.4
|
||||
gitmux_v0.10.4
|
||||
BIN
bin/linux/gitmux_v0.10.4
Executable file
BIN
bin/linux/gitmux_v0.10.4
Executable file
Binary file not shown.
Binary file not shown.
@@ -1,9 +0,0 @@
|
||||
#! /bin/bash
|
||||
|
||||
SHARE="tony"
|
||||
MOUNTPOINT="${HOME}/Voyager"
|
||||
HOST="192.168.1.66"
|
||||
CREDENTIALS="${HOME}/.voyager-credentials"
|
||||
|
||||
mkdir -p ${MOUNTPOINT}
|
||||
sudo mount -t cifs -o credentials=${CREDENTIALS},uid=$(id -u),gid=$(id -g) //${HOST}/${SHARE} ${MOUNTPOINT}
|
||||
@@ -1,8 +0,0 @@
|
||||
#/bin/bash
|
||||
|
||||
podman run --rm -i \
|
||||
-v ${HOME}/Music:/downloads:z \
|
||||
--userns keep-id:uid=1000,gid=1000 \
|
||||
--entrypoint scdl \
|
||||
yt-dlp:latest $@
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#/bin/bash
|
||||
|
||||
podman run --rm -i \
|
||||
-v ${HOME}/Music:/downloads:z \
|
||||
--userns keep-id:uid=1000,gid=1000 \
|
||||
--entrypoint spotdl \
|
||||
yt-dlp:latest $@
|
||||
|
||||
279
bin/linux/tmux-client-1726322.log
Normal file
279
bin/linux/tmux-client-1726322.log
Normal file
@@ -0,0 +1,279 @@
|
||||
1717557458.178399 client started (1726322): version 3.2a, socket /tmp/tmux-1000/default, protocol 8
|
||||
1717557458.178416 on Linux 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024
|
||||
1717557458.178418 using libevent 2.1.12-stable (poll); ncurses 6.3
|
||||
1717557458.178424 flags are 0x10010000
|
||||
1717557458.178426 socket is /tmp/tmux-1000/default
|
||||
1717557458.178432 trying connect
|
||||
1717557458.178472 add peer 0x56182b408210: 6 ((nil))
|
||||
1717557458.178604 sending message 100 to peer 0x56182b408210 (4 bytes)
|
||||
1717557458.178607 sending message 111 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178608 sending message 101 to peer 0x56182b408210 (15 bytes)
|
||||
1717557458.178609 sending message 109 to peer 0x56182b408210 (4 bytes)
|
||||
1717557458.178611 sending message 102 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178612 sending message 108 to peer 0x56182b408210 (37 bytes)
|
||||
1717557458.178613 sending message 112 to peer 0x56182b408210 (58 bytes)
|
||||
1717557458.178615 sending message 112 to peer 0x56182b408210 (5 bytes)
|
||||
1717557458.178616 sending message 112 to peer 0x56182b408210 (5 bytes)
|
||||
1717557458.178617 sending message 112 to peer 0x56182b408210 (6 bytes)
|
||||
1717557458.178619 sending message 112 to peer 0x56182b408210 (6 bytes)
|
||||
1717557458.178620 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178621 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178622 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178624 sending message 112 to peer 0x56182b408210 (14 bytes)
|
||||
1717557458.178625 sending message 112 to peer 0x56182b408210 (19 bytes)
|
||||
1717557458.178626 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178627 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178628 sending message 112 to peer 0x56182b408210 (15 bytes)
|
||||
1717557458.178630 sending message 112 to peer 0x56182b408210 (21 bytes)
|
||||
1717557458.178631 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178632 sending message 112 to peer 0x56182b408210 (7 bytes)
|
||||
1717557458.178634 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178635 sending message 112 to peer 0x56182b408210 (7 bytes)
|
||||
1717557458.178636 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178638 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178639 sending message 112 to peer 0x56182b408210 (21 bytes)
|
||||
1717557458.178640 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178641 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178643 sending message 112 to peer 0x56182b408210 (16 bytes)
|
||||
1717557458.178644 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178645 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178647 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178648 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178649 sending message 112 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178650 sending message 112 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178652 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178653 sending message 112 to peer 0x56182b408210 (7 bytes)
|
||||
1717557458.178654 sending message 112 to peer 0x56182b408210 (7 bytes)
|
||||
1717557458.178655 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178657 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178658 sending message 112 to peer 0x56182b408210 (15 bytes)
|
||||
1717557458.178659 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178660 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178662 sending message 112 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178663 sending message 112 to peer 0x56182b408210 (14 bytes)
|
||||
1717557458.178664 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178666 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178667 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178668 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178670 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178671 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178675 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178677 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178678 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178679 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178680 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178682 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178683 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178684 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178685 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178687 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178688 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178689 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178690 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178692 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178693 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178694 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178695 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178697 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178698 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178699 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178700 sending message 112 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178702 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178703 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178704 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178705 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178707 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178708 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178709 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178710 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178712 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178713 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178714 sending message 112 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178715 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178717 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178718 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178719 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178720 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178722 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178723 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178724 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178725 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178727 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178728 sending message 112 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178729 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178730 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178732 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178733 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178734 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178735 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178737 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178738 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178739 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178740 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178742 sending message 112 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178743 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178744 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178745 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178749 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178750 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178751 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178752 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178754 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178755 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178756 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178757 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178758 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178760 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178761 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178762 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178763 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178765 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178766 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178767 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178768 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178770 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178771 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178772 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178773 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178774 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178776 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178777 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178778 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178779 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178781 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178782 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178783 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178784 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178786 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178787 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178788 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178789 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178790 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178792 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178793 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178794 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178795 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178797 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178798 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178799 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178800 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178802 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178803 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178804 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178805 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178807 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178808 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178809 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178810 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178812 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178813 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178814 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178815 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178817 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178819 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178820 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178822 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178823 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178824 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178825 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178827 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178828 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178829 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178830 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178831 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178832 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178834 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178835 sending message 112 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178836 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178837 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178839 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178840 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178842 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178843 sending message 112 to peer 0x56182b408210 (21 bytes)
|
||||
1717557458.178844 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178845 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178846 sending message 112 to peer 0x56182b408210 (6 bytes)
|
||||
1717557458.178848 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178849 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178850 sending message 112 to peer 0x56182b408210 (24 bytes)
|
||||
1717557458.178851 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178852 sending message 112 to peer 0x56182b408210 (9 bytes)
|
||||
1717557458.178854 sending message 112 to peer 0x56182b408210 (70 bytes)
|
||||
1717557458.178855 sending message 112 to peer 0x56182b408210 (69 bytes)
|
||||
1717557458.178856 sending message 112 to peer 0x56182b408210 (12 bytes)
|
||||
1717557458.178857 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178859 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178860 sending message 112 to peer 0x56182b408210 (24 bytes)
|
||||
1717557458.178861 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178863 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178864 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178865 sending message 112 to peer 0x56182b408210 (10 bytes)
|
||||
1717557458.178866 sending message 112 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178867 sending message 112 to peer 0x56182b408210 (15 bytes)
|
||||
1717557458.178868 sending message 112 to peer 0x56182b408210 (5 bytes)
|
||||
1717557458.178870 sending message 104 to peer 0x56182b408210 (0 bytes)
|
||||
1717557458.178872 sending message 110 to peer 0x56182b408210 (0 bytes)
|
||||
1717557458.178873 sending message 107 to peer 0x56182b408210 (4 bytes)
|
||||
1717557458.178874 sending message 105 to peer 0x56182b408210 (16 bytes)
|
||||
1717557458.178875 sending message 105 to peer 0x56182b408210 (20 bytes)
|
||||
1717557458.178876 sending message 105 to peer 0x56182b408210 (66 bytes)
|
||||
1717557458.178878 sending message 105 to peer 0x56182b408210 (24 bytes)
|
||||
1717557458.178880 sending message 105 to peer 0x56182b408210 (26 bytes)
|
||||
1717557458.178881 sending message 105 to peer 0x56182b408210 (23 bytes)
|
||||
1717557458.178882 sending message 105 to peer 0x56182b408210 (38 bytes)
|
||||
1717557458.178883 sending message 105 to peer 0x56182b408210 (48 bytes)
|
||||
1717557458.178885 sending message 105 to peer 0x56182b408210 (46 bytes)
|
||||
1717557458.178886 sending message 105 to peer 0x56182b408210 (19 bytes)
|
||||
1717557458.178887 sending message 105 to peer 0x56182b408210 (57 bytes)
|
||||
1717557458.178888 sending message 105 to peer 0x56182b408210 (43 bytes)
|
||||
1717557458.178889 sending message 105 to peer 0x56182b408210 (18 bytes)
|
||||
1717557458.178892 sending message 105 to peer 0x56182b408210 (19 bytes)
|
||||
1717557458.178893 sending message 105 to peer 0x56182b408210 (20 bytes)
|
||||
1717557458.178894 sending message 105 to peer 0x56182b408210 (115 bytes)
|
||||
1717557458.178895 sending message 105 to peer 0x56182b408210 (21 bytes)
|
||||
1717557458.178897 sending message 105 to peer 0x56182b408210 (41 bytes)
|
||||
1717557458.178898 sending message 105 to peer 0x56182b408210 (19 bytes)
|
||||
1717557458.178899 sending message 105 to peer 0x56182b408210 (139 bytes)
|
||||
1717557458.178901 sending message 105 to peer 0x56182b408210 (22 bytes)
|
||||
1717557458.178902 sending message 105 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178903 sending message 105 to peer 0x56182b408210 (37 bytes)
|
||||
1717557458.178905 sending message 105 to peer 0x56182b408210 (26 bytes)
|
||||
1717557458.178906 sending message 105 to peer 0x56182b408210 (86 bytes)
|
||||
1717557458.178907 sending message 105 to peer 0x56182b408210 (30 bytes)
|
||||
1717557458.178908 sending message 105 to peer 0x56182b408210 (20 bytes)
|
||||
1717557458.178910 sending message 105 to peer 0x56182b408210 (33 bytes)
|
||||
1717557458.178911 sending message 105 to peer 0x56182b408210 (16 bytes)
|
||||
1717557458.178912 sending message 105 to peer 0x56182b408210 (13 bytes)
|
||||
1717557458.178913 sending message 105 to peer 0x56182b408210 (50 bytes)
|
||||
1717557458.178914 sending message 105 to peer 0x56182b408210 (11 bytes)
|
||||
1717557458.178916 sending message 105 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.178917 sending message 105 to peer 0x56182b408210 (14 bytes)
|
||||
1717557458.178918 sending message 105 to peer 0x56182b408210 (56 bytes)
|
||||
1717557458.178920 sending message 105 to peer 0x56182b408210 (32 bytes)
|
||||
1717557458.178921 sending message 105 to peer 0x56182b408210 (33 bytes)
|
||||
1717557458.178923 sending message 105 to peer 0x56182b408210 (65 bytes)
|
||||
1717557458.178924 sending message 105 to peer 0x56182b408210 (1511 bytes)
|
||||
1717557458.178931 sending message 105 to peer 0x56182b408210 (54 bytes)
|
||||
1717557458.178933 sending message 105 to peer 0x56182b408210 (201 bytes)
|
||||
1717557458.178934 sending message 105 to peer 0x56182b408210 (57 bytes)
|
||||
1717557458.178935 sending message 105 to peer 0x56182b408210 (16 bytes)
|
||||
1717557458.178937 sending message 105 to peer 0x56182b408210 (40 bytes)
|
||||
1717557458.178938 sending message 105 to peer 0x56182b408210 (53 bytes)
|
||||
1717557458.178939 sending message 105 to peer 0x56182b408210 (16 bytes)
|
||||
1717557458.178940 sending message 105 to peer 0x56182b408210 (21 bytes)
|
||||
1717557458.178942 sending message 105 to peer 0x56182b408210 (18 bytes)
|
||||
1717557458.178943 sending message 105 to peer 0x56182b408210 (16 bytes)
|
||||
1717557458.178944 sending message 105 to peer 0x56182b408210 (34 bytes)
|
||||
1717557458.178945 sending message 106 to peer 0x56182b408210 (0 bytes)
|
||||
1717557458.178948 sending message 200 to peer 0x56182b408210 (4 bytes)
|
||||
1717557458.178949 client loop enter
|
||||
1717557458.179345 peer 0x56182b408210 message 303
|
||||
1717557458.179350 open write file 2 -
|
||||
1717557458.179354 sending message 305 to peer 0x56182b408210 (8 bytes)
|
||||
1717557458.179358 write check file 2
|
||||
1717557458.179459 peer 0x56182b408210 message 304
|
||||
1717557458.179463 write 58 to file 2
|
||||
1717557458.179465 peer 0x56182b408210 message 203
|
||||
1717557458.179467 file 2 58 bytes left
|
||||
1717557458.179485 write check file 2
|
||||
1717557458.179489 client loop exit
|
||||
@@ -1,7 +0,0 @@
|
||||
#/bin/bash
|
||||
|
||||
podman run --rm \
|
||||
-v ${HOME}/Videos/youtube:/downloads:z \
|
||||
--userns keep-id:uid=1000,gid=1000 \
|
||||
yt-dlp:latest -S 'res:1080' $@
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#/bin/bash
|
||||
|
||||
podman run --rm \
|
||||
-v ${HOME}/Videos/youtube:/downloads:z \
|
||||
--userns keep-id:uid=1000,gid=1000 \
|
||||
yt-dlp:latest --embed-metadata -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" -S 'res:1080' $@
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
# blerc
|
||||
|
||||
# Cannot use ctrl+enter from inside tmux when using tmux-navigator because
|
||||
# ctrl+enter and ctrl+j are the same key in the terminal. Bind sending
|
||||
# multi-line commands to ctrl+m instead.
|
||||
# https://github.com/microsoft/terminal/issues/6912
|
||||
ble-bind -m vi_imap -f C-m accept-line
|
||||
|
||||
@@ -1,307 +0,0 @@
|
||||
// Place your key bindings in this file to override the defaults
|
||||
[
|
||||
// Remove undesired defaults
|
||||
{
|
||||
"key": "ctrl+\\",
|
||||
"command": "-workbench.action.splitEditor"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+\\",
|
||||
"command": "-workbench.action.splitEditorOrthogonal"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+\\",
|
||||
"command": "-workbench.action.splitEditorLeft"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+\\",
|
||||
"command": "-workbench.action.splitEditorUp"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+\\",
|
||||
"command": "-workbench.action.splitEditorDown"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+\\",
|
||||
"command": "-workbench.action.splitEditorRight"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+left",
|
||||
"command": "-workbench.action.focusLeftGroup"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+right",
|
||||
"command": "-workbench.action.focusRightGroup"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+up",
|
||||
"command": "-workbench.action.focusAboveGroup"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k ctrl+down",
|
||||
"command": "-workbench.action.focusBelowGroup"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+`",
|
||||
"command": "-workbench.action.terminal.new",
|
||||
"when": "terminalProcessSupported || terminalWebExtensionContributedProfile"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+t",
|
||||
"command": "-workbench.action.showAllSymbols"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "-workbench.action.togglePanel"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+`",
|
||||
"command": "-workbench.action.terminal.toggleTerminal",
|
||||
"when": "terminal.active"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "-extension.vim_ctrl+p",
|
||||
"when": "editorTextFocus && vim.active && vim.use<C-p> && !inDebugRepl || vim.active && vim.use<C-p> && !inDebugRepl && vim.mode == 'CommandlineInProgress' || vim.active && vim.use<C-p> && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+h",
|
||||
"command": "-extension.vim_ctrl+h",
|
||||
"when": "editorTextFocus && vim.active && vim.use<C-h> && !inDebugRepl"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "-extension.vim_navigateCtrlL",
|
||||
"when": "editorTextFocus && vim.active && vim.use<C-l> && !inDebugRepl"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+p",
|
||||
"command": "-workbench.action.quickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+e",
|
||||
"command": "-workbench.action.quickOpen"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+f12",
|
||||
"command": "-editor.action.revealDefinition",
|
||||
"when": "editorHasDefinitionProvider && editorTextFocus && isWeb"
|
||||
},
|
||||
{
|
||||
"key": "f12",
|
||||
"command": "-editor.action.revealDefinition",
|
||||
"when": "editorHasDefinitionProvider && editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+m",
|
||||
"command": "-workbench.actions.view.problems",
|
||||
"when": "workbench.panel.markers.view.active"
|
||||
},
|
||||
{
|
||||
"key": "alt+left",
|
||||
"command": "-workbench.action.navigateBack",
|
||||
"when": "canNavigateBack"
|
||||
},
|
||||
{
|
||||
"key": "alt+right",
|
||||
"command": "-workbench.action.navigateForward",
|
||||
"when": "canNavigateForward && editorTextFocus && vim.active"
|
||||
},
|
||||
// Editing
|
||||
{
|
||||
"key": "shift+k",
|
||||
"command": "editor.action.showHover",
|
||||
"when": "editorTextFocus && vim.active && vim.mode != 'Insert'"
|
||||
},
|
||||
{
|
||||
"key": "escape",
|
||||
"command": "workbench.action.closeSidebar",
|
||||
"when": "sideBarVisible && vim.mode != 'Insert'"
|
||||
},
|
||||
// Navigating and language inspection
|
||||
// Editor pane navigation and management
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "workbench.action.focusAboveGroup",
|
||||
"when": "editorTextFocus && vim.active && !inDebugRepl"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "workbench.action.focusBelowGroup",
|
||||
"when": "editorTextFocus && vim.active && !inDebugRepl"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+h",
|
||||
"command": "workbench.action.focusLeftGroup",
|
||||
"when": "editorTextFocus && vim.active && !inDebugRepl"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "workbench.action.focusRightGroup",
|
||||
"when": "editorTextFocus && vim.active && !inDebugRepl"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b shift+5",
|
||||
"command": "workbench.action.newGroupRight",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b shift+'",
|
||||
"command": "workbench.action.newGroupBelow",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b z",
|
||||
"command": "workbench.action.toggleEditorWidths",
|
||||
"when": "editorTextFocus"
|
||||
},
|
||||
// Terminal Tmux pane navigation and management
|
||||
{
|
||||
"key": "ctrl+t",
|
||||
"command": "workbench.action.terminal.toggleTerminal",
|
||||
"when": "terminal.active"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+shift+`",
|
||||
"command": "workbench.action.toggleMaximizedPanel"
|
||||
},
|
||||
// These escape codes allow sending keyboard shortcuts to tmux
|
||||
// when normally vs-code would not send any chorded keyboard shortcuts.
|
||||
// It also is setup so that these keyboard shortcuts work in both the editor
|
||||
// and the terminal, but have different commands.
|
||||
// Resources:
|
||||
// - https://code.visualstudio.com/docs/terminal/advanced#_custom-sequence-keybindings
|
||||
// - https://stackoverflow.com/questions/61742559/need-vscode-sendsequence-keybindings-for-previous-command-next-command-move-to
|
||||
// - https://gist.github.com/riipandi/2f304a1cbf7615a8f912473b5f4a7cc3
|
||||
// - `showkey -a`
|
||||
{
|
||||
"key": "ctrl+b p",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u0070"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b n",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u006e"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b d",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u0064"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+k",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u001b[A"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+j",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u001b[B"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+h",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u001b[D"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+l",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u001b[C"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b shift+5",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u0025"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b shift+'",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u0022"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b ,",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u002c"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b shift+;",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u003a"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b c",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u0063"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b [",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u005b"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b z",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u007a"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+b g",
|
||||
"command": "workbench.action.terminal.sendSequence",
|
||||
"args": {
|
||||
"text": "\u0002\u0067"
|
||||
},
|
||||
"when": "terminalFocus"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+o",
|
||||
"command": "workbench.action.navigateBack",
|
||||
"when": "canNavigateBack"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+i",
|
||||
"command": "workbench.action.navigateForward",
|
||||
"when": "canNavigateForward && editorTextFocus && vim.active"
|
||||
}
|
||||
]
|
||||
@@ -1,286 +0,0 @@
|
||||
{
|
||||
//
|
||||
// Languages
|
||||
//
|
||||
"[html]": {
|
||||
"editor.defaultFormatter": "vscode.html-language-features"
|
||||
},
|
||||
"[javascript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
},
|
||||
"[json]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features"
|
||||
},
|
||||
"[jsonc]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features"
|
||||
},
|
||||
"[templ]": {
|
||||
"editor.defaultFormatter": "a-h.templ"
|
||||
},
|
||||
"[typescript]": {
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": "explicit"
|
||||
},
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
},
|
||||
"[typescriptreact]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
},
|
||||
"emmet.includeLanguages": {
|
||||
"templ": "html"
|
||||
},
|
||||
"go.buildTags": "unit",
|
||||
"go.toolsManagement.autoUpdate": true,
|
||||
"gopls": {
|
||||
// Supported by Catppuccin
|
||||
"ui.semanticTokens": true,
|
||||
"build.buildFlags": [
|
||||
"-tags=unit"
|
||||
]
|
||||
},
|
||||
"javascript.updateImportsOnFileMove.enabled": "always",
|
||||
"tailwindCSS.includeLanguages": {
|
||||
"templ": "html"
|
||||
},
|
||||
"typescript.updateImportsOnFileMove.enabled": "always",
|
||||
"files.readonlyInclude": {
|
||||
"**/.cargo/registry/src/**/*.rs": true,
|
||||
"**/lib/rustlib/src/rust/library/**/*.rs": true,
|
||||
},
|
||||
//
|
||||
// Remote Settings
|
||||
//
|
||||
"dev.containers.dockerPath": "docker",
|
||||
"dev.containers.executeInWSL": true,
|
||||
"dotfiles.installCommand": "install.sh",
|
||||
"dotfiles.repository": "https://github.com/tgrosinger/dotfiles.git",
|
||||
"dotfiles.targetPath": "~/.dotfiles",
|
||||
//
|
||||
// Fonts and Appearance
|
||||
//
|
||||
"editor.fontFamily": "JetBrainsMono Nerd Font, JetBrains Mono, 'Courier New', monospace",
|
||||
"editor.fontLigatures": true,
|
||||
//
|
||||
// Theme
|
||||
//
|
||||
"editor.semanticHighlighting.enabled": true,
|
||||
// prevent VSCode from modifying the terminal colors
|
||||
"terminal.integrated.minimumContrastRatio": 1,
|
||||
// make the window's titlebar use the workbench colors
|
||||
"window.titleBarStyle": "custom",
|
||||
//
|
||||
// Editor Behavior
|
||||
//
|
||||
"diffEditor.experimental.showMoves": true,
|
||||
"editor.accessibilitySupport": "off",
|
||||
"editor.formatOnSave": true,
|
||||
"editor.guides.bracketPairs": "active",
|
||||
"editor.lineNumbers": "relative",
|
||||
"editor.linkedEditing": true,
|
||||
"editor.minimap.enabled": false,
|
||||
"editor.renderWhitespace": "trailing",
|
||||
"editor.stickyScroll.enabled": true,
|
||||
"editor.wordWrap": "off",
|
||||
"files.associations": {
|
||||
"*.gohtml": "html"
|
||||
},
|
||||
"git.ignoreMissingGitWarning": true,
|
||||
"githubPullRequests.pullBranch": "never",
|
||||
"githubPullRequests.terminalLinksHandler": "github",
|
||||
//
|
||||
// GitLens
|
||||
//
|
||||
"gitlens.advanced.telemetry.enabled": false,
|
||||
"gitlens.hovers.currentLine.over": "line",
|
||||
"gitlens.telemetry.enabled": false,
|
||||
"remote.autoForwardPortsSource": "hybrid",
|
||||
"remote.containers.dotfiles.installCommand": "install.sh",
|
||||
"remote.containers.dotfiles.repository": "https://github.com/tgrosinger/dotfiles.git",
|
||||
"remote.containers.dotfiles.targetPath": "~/.dotfiles",
|
||||
"scm.workingSets.enabled": true,
|
||||
"settingsSync.ignoredExtensions": [
|
||||
"bradlc.vscode-tailwindcss"
|
||||
],
|
||||
//
|
||||
// Telemetry
|
||||
//
|
||||
"telemetry.telemetryLevel": "off",
|
||||
"workbench.enableExperiments": false,
|
||||
"workbench.settings.enableNaturalLanguageSearch": false,
|
||||
"extensions.ignoreRecommendations": true,
|
||||
//
|
||||
// Vim
|
||||
//
|
||||
"vim.leader": " ",
|
||||
"vim.handleKeys": {
|
||||
// ctrl-o functionality in the plugin is not very reliable or predictable.
|
||||
"<C-o>": false
|
||||
},
|
||||
"vim.normalModeKeyBindings": [
|
||||
// NOTE: It is recommended to put keybindings here instead of keybindings.json
|
||||
// https://github.com/VSCodeVim/Vim?tab=readme-ov-file#remapping-more-complex-key-combinations
|
||||
{
|
||||
"before": [
|
||||
"leader",
|
||||
"c",
|
||||
"r"
|
||||
],
|
||||
"commands": [
|
||||
"editor.action.rename"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"leader",
|
||||
"f",
|
||||
"f"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.quickOpen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"leader",
|
||||
" "
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.quickOpen"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"leader",
|
||||
"s",
|
||||
"g"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.action.findInFiles"
|
||||
]
|
||||
},
|
||||
{
|
||||
// NOTE: This is defined here because otherwise the "g" "d" chord in a keybinding
|
||||
// would take over from the "leader" "s" "g" command above.
|
||||
"before": [
|
||||
"g",
|
||||
"r"
|
||||
],
|
||||
"commands": [
|
||||
"editor.action.goToReferences"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"leader",
|
||||
"r",
|
||||
"n"
|
||||
],
|
||||
"commands": [
|
||||
"editor.action.rename"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"leader",
|
||||
"q"
|
||||
],
|
||||
"commands": [
|
||||
"workbench.actions.view.problems"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"leader",
|
||||
"c",
|
||||
"a"
|
||||
],
|
||||
"commands": [
|
||||
"editor.action.quickFix"
|
||||
]
|
||||
},
|
||||
{
|
||||
"before": [
|
||||
"leader",
|
||||
"a",
|
||||
"i"
|
||||
],
|
||||
"commands": [
|
||||
"inlineChat.start"
|
||||
]
|
||||
},
|
||||
{
|
||||
// Vim-surround key-bindings to match what I use in Vim.
|
||||
// https://github.com/VSCodeVim/Vim#vim-surround
|
||||
"before": [
|
||||
"g",
|
||||
"s",
|
||||
"r"
|
||||
],
|
||||
"after": [
|
||||
"c",
|
||||
"s"
|
||||
]
|
||||
}
|
||||
],
|
||||
//
|
||||
// Window
|
||||
//
|
||||
"window.newWindowDimensions": "inherit",
|
||||
"workbench.colorTheme": "Catppuccin Latte",
|
||||
"workbench.colorCustomizations": {
|
||||
// Overrides Theme Default Colors for InlayHints feature
|
||||
"editorInlayHint.background": "#e4e4e4cc",
|
||||
"editorInlayHint.foreground": "#2e6340cc",
|
||||
// Overrides Theme Parameter hints fg for InlayHints feature
|
||||
"editorInlayHint.parameterBackground": "#e4e4e4cc",
|
||||
"editorInlayHint.parameterForeground": "#2e6340cc",
|
||||
// Overrides Theme Type hints fg for InlayHints feature
|
||||
"editorInlayHint.typeBackground": "#e4e4e4cc",
|
||||
"editorInlayHint.typeForeground": "#2e6340cc"
|
||||
},
|
||||
"workbench.editor.empty.hint": "hidden",
|
||||
"workbench.sideBar.location": "right",
|
||||
"workbench.iconTheme": "catppuccin-latte",
|
||||
"lazygit-vscode.autoMaximizeWindow": true,
|
||||
"rust-analyzer.check.command": "clippy",
|
||||
"[less]": {
|
||||
"editor.defaultFormatter": "vscode.css-language-features"
|
||||
},
|
||||
"svelte.enable-ts-plugin": true,
|
||||
//
|
||||
// File watcher
|
||||
//
|
||||
"files.watcherExclude": {
|
||||
"**/.git/objects/**": true,
|
||||
"**/node_modules/**": true
|
||||
},
|
||||
"find-it-faster.general.batTheme": "GitHub",
|
||||
"find-it-faster.general.showMaximizedTerminal": true,
|
||||
"github.copilot.chat.codesearch.enabled": true,
|
||||
"github.copilot.chat.agent.thinkingTool": true,
|
||||
"github.copilot.chat.editor.temporalContext.enabled": true,
|
||||
"github.copilot.chat.edits.temporalContext.enabled": true,
|
||||
"github.copilot.chat.languageContext.fix.typescript.enabled": true,
|
||||
"github.copilot.chat.languageContext.inline.typescript.enabled": true,
|
||||
"github.copilot.chat.languageContext.typescript.enabled": true,
|
||||
"vim.highlightedyank.enable": true,
|
||||
"vim.showMarksInGutter": true,
|
||||
"telemetry.editStats.enabled": false,
|
||||
"telemetry.feedback.enabled": false,
|
||||
"inlineChat.enableV2": true,
|
||||
"git.blame.editorDecoration.enabled": true,
|
||||
"gitlens.plusFeatures.enabled": false,
|
||||
"javascript.inlayHints.parameterNames.enabled": "all",
|
||||
"javascript.inlayHints.propertyDeclarationTypes.enabled": true,
|
||||
"javascript.inlayHints.parameterTypes.enabled": true,
|
||||
"javascript.inlayHints.variableTypes.enabled": true,
|
||||
"typescript.inlayHints.functionLikeReturnTypes.enabled": true,
|
||||
"typescript.inlayHints.parameterNames.enabled": "all",
|
||||
"typescript.inlayHints.parameterTypes.enabled": true,
|
||||
"typescript.inlayHints.propertyDeclarationTypes.enabled": true,
|
||||
"typescript.inlayHints.variableTypes.enabled": true,
|
||||
"editor.inlayHints.fontFamily": "Sriracha",
|
||||
"github.copilot.nextEditSuggestions.enabled": true,
|
||||
"gitlens.ai.model": "vscode",
|
||||
"gitlens.ai.vscode.model": "copilot:gpt-4.1"
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
[general]
|
||||
import = [
|
||||
"~/.config/alacritty/themes/catppuccin_latte.toml"
|
||||
]
|
||||
|
||||
[font]
|
||||
normal = { family = "JetBrainsMonoNerdFontMono", style = "Regular" }
|
||||
bold = { family = "JetBrainsMonoNerdFontMono", style = "Bold" }
|
||||
italic = { family = "JetBrainsMonoNerdFontMono", style = "Italic" }
|
||||
bold_italic = { family = "JetBrainsMonoNerdFontMono", style = "BoldItalic" }
|
||||
@@ -1,76 +0,0 @@
|
||||
# Default colors
|
||||
[colors.primary]
|
||||
background = '#EFF1F5' # base
|
||||
foreground = '#4C4F69' # text
|
||||
# Bright and dim foreground colors
|
||||
dim_foreground = '#4C4F69' # text
|
||||
bright_foreground = '#4C4F69' # text
|
||||
|
||||
# Cursor colors
|
||||
[colors.cursor]
|
||||
text = '#EFF1F5' # base
|
||||
cursor = '#DC8A78' # rosewater
|
||||
|
||||
[colors.vi_mode_cursor]
|
||||
text = '#EFF1F5' # base
|
||||
cursor = '#7287FD' # lavender
|
||||
|
||||
# Search colors
|
||||
[colors.search.matches]
|
||||
foreground = '#EFF1F5' # base
|
||||
background = '#6C6F85' # subtext0
|
||||
|
||||
[colors.search.focused_match]
|
||||
foreground = '#EFF1F5' # base
|
||||
background = '#40A02B' # green
|
||||
|
||||
[colors.footer_bar]
|
||||
foreground = '#EFF1F5' # base
|
||||
background = '#6C6F85' # subtext0
|
||||
|
||||
# Keyboard regex hints
|
||||
[colors.hints.start]
|
||||
foreground = '#EFF1F5' # base
|
||||
background = '#DF8E1D' # yellow
|
||||
|
||||
[colors.hints.end]
|
||||
foreground = '#EFF1F5' # base
|
||||
background = '#6C6F85' # subtext0
|
||||
|
||||
# Selection colors
|
||||
[colors.selection]
|
||||
text = '#EFF1F5' # base
|
||||
background = '#DC8A78' # rosewater
|
||||
|
||||
# Normal colors
|
||||
[colors.normal]
|
||||
black = '#5C5F77' # subtext1
|
||||
red = '#D20F39' # red
|
||||
green = '#40A02B' # green
|
||||
yellow = '#DF8E1D' # yellow
|
||||
blue = '#1E66F5' # blue
|
||||
magenta = '#EA76CB' # pink
|
||||
cyan = '#179299' # teal
|
||||
white = '#ACB0BE' # surface2
|
||||
|
||||
# Bright colors
|
||||
[colors.bright]
|
||||
black = '#6C6F85' # subtext0
|
||||
red = '#D20F39' # red
|
||||
green = '#40A02B' # green
|
||||
yellow = '#DF8E1D' # yellow
|
||||
blue = '#1E66F5' # blue
|
||||
magenta = '#EA76CB' # pink
|
||||
cyan = '#179299' # teal
|
||||
white = '#BCC0CC' # surface1
|
||||
|
||||
# Dim colors
|
||||
[colors.dim]
|
||||
black = '#5C5F77' # subtext1
|
||||
red = '#D20F39' # red
|
||||
green = '#40A02B' # green
|
||||
yellow = '#DF8E1D' # yellow
|
||||
blue = '#1E66F5' # blue
|
||||
magenta = '#EA76CB' # pink
|
||||
cyan = '#179299' # teal
|
||||
white = '#ACB0BE' # surface2
|
||||
@@ -1,21 +0,0 @@
|
||||
# https://docs.atuin.sh/configuration/config/
|
||||
|
||||
workspaces = true
|
||||
keymap_mode = "auto"
|
||||
enter_accept = true
|
||||
|
||||
history_filter = [
|
||||
"^cd$",
|
||||
"^lg$",
|
||||
"^ls$",
|
||||
"^clear$",
|
||||
"^vim$",
|
||||
"^youtube-dl"
|
||||
]
|
||||
|
||||
[search]
|
||||
## The list of enabled filter modes, in order of priority.
|
||||
## The "workspace" mode is skipped when not in a workspace or workspaces = false.
|
||||
## Default filter mode can be overridden with the filter_mode setting.
|
||||
#filters = [ "global", "host", "session", "session-preload", "workspace", "directory" ]
|
||||
filters = [ "global", "workspace", "directory" ]
|
||||
@@ -1 +0,0 @@
|
||||
--theme="Catppuccin Latte"
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,257 +0,0 @@
|
||||
#? Config file for btop v. 1.4.5
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
color_theme = "/home/tgrosinger/.config/btop/themes/catppuccin_latte.theme"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = True
|
||||
|
||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||
truecolor = True
|
||||
|
||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = False
|
||||
|
||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||
|
||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = False
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = True
|
||||
|
||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||
#* "block" has half the resolution of braille but uses more common characters.
|
||||
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||
graph_symbol = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_cpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_gpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_mem = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_net = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||
shown_boxes = "cpu mem net proc"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 2000
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "cpu lazy"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
|
||||
#* Show processes as a tree.
|
||||
proc_tree = True
|
||||
|
||||
#* Use the cpu graph colors in the process list.
|
||||
proc_colors = True
|
||||
|
||||
#* Use a darkening gradient in the process list.
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = True
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
|
||||
#* Show cpu graph for each process.
|
||||
proc_cpu_graphs = True
|
||||
|
||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||
proc_info_smaps = False
|
||||
|
||||
#* Show proc box on left side of screen instead of right.
|
||||
proc_left = False
|
||||
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = False
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = False
|
||||
|
||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_upper = "Auto"
|
||||
|
||||
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_lower = "Auto"
|
||||
|
||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||
show_gpu_info = "Auto"
|
||||
|
||||
#* Toggles if the lower CPU graph should be inverted.
|
||||
cpu_invert_lower = True
|
||||
|
||||
#* Set to True to completely disable the lower CPU graph.
|
||||
cpu_single_graph = False
|
||||
|
||||
#* Show cpu box at bottom of screen instead of top.
|
||||
cpu_bottom = False
|
||||
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
|
||||
show_cpu_watts = True
|
||||
|
||||
#* Show cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||
cpu_sensor = "Auto"
|
||||
|
||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||
show_coretemp = True
|
||||
|
||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||
#* Example: "4:0 5:1 6:3"
|
||||
cpu_core_map = ""
|
||||
|
||||
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||
temp_scale = "celsius"
|
||||
|
||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||
base_10_sizes = False
|
||||
|
||||
#* Show CPU frequency.
|
||||
show_cpu_freq = True
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||
clock_format = "%X"
|
||||
|
||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||
background_update = True
|
||||
|
||||
#* Custom cpu model name, empty string to disable.
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
mem_graphs = True
|
||||
|
||||
#* Show mem box below net box instead of above.
|
||||
mem_below_net = False
|
||||
|
||||
#* Count ZFS ARC in cached and available memory.
|
||||
zfs_arc_cached = True
|
||||
|
||||
#* If swap memory should be shown in memory box.
|
||||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||
only_physical = True
|
||||
|
||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||
use_fstab = True
|
||||
|
||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||
zfs_hide_datasets = False
|
||||
|
||||
#* Set to true to show available disk space for privileged users.
|
||||
disk_free_priv = False
|
||||
|
||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||
show_io_stat = True
|
||||
|
||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||
io_mode = False
|
||||
|
||||
#* Set to True to show combined read/write io graphs in io mode.
|
||||
io_graph_combined = False
|
||||
|
||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
net_upload = 100
|
||||
|
||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||
net_auto = True
|
||||
|
||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||
net_sync = True
|
||||
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||
base_10_bitrate = "Auto"
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = True
|
||||
|
||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||
selected_battery = "Auto"
|
||||
|
||||
#* Show power stats of battery next to charge indicator.
|
||||
show_battery_watts = True
|
||||
|
||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||
log_level = "WARNING"
|
||||
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||
rsmi_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
#* Custom gpu2 model name, empty string to disable.
|
||||
custom_gpu_name2 = ""
|
||||
|
||||
#* Custom gpu3 model name, empty string to disable.
|
||||
custom_gpu_name3 = ""
|
||||
|
||||
#* Custom gpu4 model name, empty string to disable.
|
||||
custom_gpu_name4 = ""
|
||||
|
||||
#* Custom gpu5 model name, empty string to disable.
|
||||
custom_gpu_name5 = ""
|
||||
@@ -1,83 +0,0 @@
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="#eff1f5"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="#4c4f69"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="#4c4f69"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="#1e66f5"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="#bcc0cc"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="#1e66f5"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="#8c8fa1"
|
||||
|
||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||
theme[graph_text]="#dc8a78"
|
||||
|
||||
# Background color of the percentage meters
|
||||
theme[meter_bg]="#bcc0cc"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="#dc8a78"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="#8839ef" #Mauve
|
||||
theme[mem_box]="#40a02b" #Green
|
||||
theme[net_box]="#e64553" #Maroon
|
||||
theme[proc_box]="#1e66f5" #Blue
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="#9ca0b0"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="#40a02b"
|
||||
theme[temp_mid]="#df8e1d"
|
||||
theme[temp_end]="#d20f39"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="#179299"
|
||||
theme[cpu_mid]="#209fb5"
|
||||
theme[cpu_end]="#7287fd"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="#8839ef"
|
||||
theme[free_mid]="#7287fd"
|
||||
theme[free_end]="#1e66f5"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="#209fb5"
|
||||
theme[cached_mid]="#1e66f5"
|
||||
theme[cached_end]="#7287fd"
|
||||
|
||||
# Mem/Disk available meter (Peach -> Red)
|
||||
theme[available_start]="#fe640b"
|
||||
theme[available_mid]="#e64553"
|
||||
theme[available_end]="#d20f39"
|
||||
|
||||
# Mem/Disk used meter (Green -> Sky)
|
||||
theme[used_start]="#40a02b"
|
||||
theme[used_mid]="#179299"
|
||||
theme[used_end]="#04a5e5"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="#fe640b"
|
||||
theme[download_mid]="#e64553"
|
||||
theme[download_end]="#d20f39"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="#40a02b"
|
||||
theme[upload_mid]="#179299"
|
||||
theme[upload_end]="#04a5e5"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="#209fb5"
|
||||
theme[process_mid]="#7287fd"
|
||||
theme[process_end]="#8839ef"
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
#
|
||||
# Catppuccin Latte
|
||||
# https://github.com/catppuccin/dunst/blob/main/themes/latte.conf
|
||||
#
|
||||
|
||||
[global]
|
||||
frame_color = "#1e66f5"
|
||||
separator_color= frame
|
||||
highlight = "#1e66f5"
|
||||
|
||||
[urgency_low]
|
||||
background = "#eff1f5"
|
||||
foreground = "#4c4f69"
|
||||
|
||||
[urgency_normal]
|
||||
background = "#eff1f5"
|
||||
foreground = "#4c4f69"
|
||||
|
||||
[urgency_critical]
|
||||
background = "#eff1f5"
|
||||
foreground = "#4c4f69"
|
||||
frame_color = "#fe640b"
|
||||
@@ -1,268 +0,0 @@
|
||||
# Fish Shell Completions
|
||||
# Copy or symlink to $XDG_CONFIG_HOME/fish/completions/bat.fish
|
||||
# ($XDG_CONFIG_HOME is usually set to ~/.config)
|
||||
|
||||
# `bat` is `batcat` on Debian and Ubuntu
|
||||
set bat bat
|
||||
|
||||
# Helper functions:
|
||||
|
||||
function __bat_complete_files -a token
|
||||
# Cheat to complete files by calling `complete -C` on a fake command name,
|
||||
# like `__fish_complete_directories` does.
|
||||
set -l fake_command aaabccccdeeeeefffffffffgghhhhhhiiiii
|
||||
complete -C"$fake_command $token"
|
||||
end
|
||||
|
||||
function __bat_complete_one_language -a comp
|
||||
command $bat --list-languages | string split -f1 : | string match -e "$comp"
|
||||
end
|
||||
|
||||
function __bat_complete_list_languages
|
||||
for spec in (command $bat --list-languages)
|
||||
set -l name (string split -f1 : $spec)
|
||||
for ext in (string split -f2 : $spec | string split ,)
|
||||
test -n "$ext"; or continue
|
||||
string match -rq '[/*]' $ext; and continue
|
||||
printf "%s\t%s\n" $ext $name
|
||||
end
|
||||
printf "%s\t\n" $name
|
||||
end
|
||||
end
|
||||
|
||||
function __bat_complete_map_syntax
|
||||
set -l token (commandline -ct)
|
||||
|
||||
if string match -qr '(?<glob>.+):(?<syntax>.*)' -- $token
|
||||
# If token ends with a colon, complete with the list of language names.
|
||||
set -f comps $glob:(__bat_complete_one_language $syntax)
|
||||
else if string match -qr '\*' -- $token
|
||||
# If token contains a globbing character (`*`), complete only possible
|
||||
# globs in the current directory
|
||||
set -f comps (__bat_complete_files $token | string match -er '[*]'):
|
||||
else
|
||||
# Complete files (and globs).
|
||||
set -f comps (__bat_complete_files $token | string match -erv '/$'):
|
||||
end
|
||||
|
||||
if set -q comps[1]
|
||||
printf "%s\t\n" $comps
|
||||
end
|
||||
end
|
||||
|
||||
function __bat_cache_subcommand
|
||||
__fish_seen_subcommand_from cache
|
||||
end
|
||||
|
||||
# Returns true if no exclusive arguments seen.
|
||||
function __bat_no_excl_args
|
||||
not __bat_cache_subcommand; and not __fish_seen_argument \
|
||||
-s h -l help \
|
||||
-s V -l version \
|
||||
-l acknowledgements \
|
||||
-l config-dir -l config-file \
|
||||
-l diagnostic \
|
||||
-l list-languages -l list-themes
|
||||
end
|
||||
|
||||
# Returns true if the 'cache' subcommand is seen without any exclusive arguments.
|
||||
function __bat_cache_no_excl
|
||||
__bat_cache_subcommand; and not __fish_seen_argument \
|
||||
-s h -l help \
|
||||
-l acknowledgements -l build -l clear
|
||||
end
|
||||
|
||||
function __bat_style_opts
|
||||
set -l style_opts \
|
||||
"default,recommended components" \
|
||||
"auto,same as 'default' unless piped" \
|
||||
"full,all components" \
|
||||
"plain,no components" \
|
||||
"changes,Git change markers" \
|
||||
"header,alias for header-filename" \
|
||||
"header-filename,filename above content" \
|
||||
"header-filesize,filesize above content" \
|
||||
"grid,lines b/w sidebar/header/content" \
|
||||
"numbers,line numbers in sidebar" \
|
||||
"rule,separate files" \
|
||||
"snip,separate ranges"
|
||||
|
||||
string replace , \t $style_opts
|
||||
end
|
||||
|
||||
# Use option argument descriptions to indicate which is the default, saving
|
||||
# horizontal space and making sure the option description isn't truncated.
|
||||
set -l color_opts '
|
||||
auto\tdefault
|
||||
never\t
|
||||
always\t
|
||||
'
|
||||
set -l decorations_opts $color_opts
|
||||
set -l paging_opts $color_opts
|
||||
|
||||
# Include some examples so we can indicate the default.
|
||||
set -l pager_opts '
|
||||
less\tdefault
|
||||
less\ -FR\t
|
||||
more\t
|
||||
vimpager\t
|
||||
builtin\t
|
||||
'
|
||||
|
||||
set -l italic_text_opts '
|
||||
always\t
|
||||
never\tdefault
|
||||
'
|
||||
|
||||
set -l wrap_opts '
|
||||
auto\tdefault
|
||||
never\t
|
||||
character\t
|
||||
'
|
||||
|
||||
# While --tabs theoretically takes any number, most people should be OK with these.
|
||||
# Specifying a list lets us explain what 0 does.
|
||||
set -l tabs_opts '
|
||||
0\tpass\ tabs\ through\ directly
|
||||
1\t
|
||||
2\t
|
||||
4\t
|
||||
8\t
|
||||
'
|
||||
|
||||
set -l special_themes '
|
||||
auto\tdefault,\ Choose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||
auto:always\tChoose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||
auto:system\tChoose\ a\ theme\ based\ on\ dark\ or\ light\ mode
|
||||
dark\tUse\ the\ theme\ specified\ by\ --theme-dark
|
||||
light\tUse\ the\ theme\ specified\ by\ --theme-light
|
||||
'
|
||||
|
||||
# Completions:
|
||||
|
||||
complete -c $bat -l acknowledgements -d "Print acknowledgements" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l binary -x -a "no-printing as-text" -d "How to treat binary content" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l cache-dir -f -d "Show bat's cache directory" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s c -l chop-long-lines -d "Truncate all lines longer than screen width" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l color -x -a "$color_opts" -d "When to use colored output" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l completion -x -a "bash fish zsh ps1" -d "Show shell completion for a certain shell" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l config-dir -f -d "Display location of configuration directory" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l config-file -f -d "Display location of configuration file" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l decorations -x -a "$decorations_opts" -d "When to use --style decorations" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l diagnostic -d "Print diagnostic info for bug reports" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s d -l diff -d "Only show lines with Git changes" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l diff-context -x -d "Show N context lines around Git changes" -n "__fish_seen_argument -s d -l diff"
|
||||
|
||||
complete -c $bat -l generate-config-file -f -d "Generates a default configuration file" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l file-name -x -d "Specify the display name" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s f -l force-colorization -d "Force color and decorations" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s h -d "Print a concise overview" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l help -f -d "Print all help information" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s H -l highlight-line -x -d "Highlight line(s) N[:M]" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l ignored-suffix -x -d "Ignore extension" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l italic-text -x -a "$italic_text_opts" -d "When to use italic text in the output" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s l -l language -x -k -a "(__bat_complete_list_languages)" -d "Set the syntax highlighting language" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l lessopen -d "Enable the $LESSOPEN preprocessor" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s r -l line-range -x -d "Only print lines [M]:[N] (either optional)" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l list-languages -f -d "List syntax highlighting languages" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l list-themes -f -d "List syntax highlighting themes" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -s m -l map-syntax -x -a "(__bat_complete_map_syntax)" -d "Map <glob pattern>:<language syntax>" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l no-config -d "Do not use the configuration file"
|
||||
|
||||
complete -c $bat -l no-custom-assets -d "Do not load custom assets"
|
||||
|
||||
complete -c $bat -l no-lessopen -d "Disable the $LESSOPEN preprocessor if enabled (overrides --lessopen)"
|
||||
|
||||
complete -c $bat -l nonprintable-notation -x -a "unicode caret" -d "Set notation for non-printable characters" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s n -l number -d "Only show line numbers, no other decorations" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l no-paging -d "Alias for --paging=never" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l pager -x -a "$pager_opts" -d "Which pager to use" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l paging -x -a "$paging_opts" -d "When to use the pager" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s p -l plain -d "Show plain style" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l set-terminal-title -d "Sets terminal title to filenames when using a pager" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s A -l show-all -d "Show non-printable characters" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s s -l squeeze-blank -d "Squeeze consecutive empty lines into a single empty line" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l squeeze-limit -x -d "Set the maximum number of consecutive empty lines to be printed" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l strip-ansi -x -a "auto never always" -d "Specify when to strip ANSI escape sequences from the input" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s p -l plain -d "Disable decorations" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -o pp -d "Disable decorations and paging" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s P -d "Disable paging" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l style -x -k -a "(__fish_complete_list , __bat_style_opts)" -d "Specify which non-content elements to display" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l tabs -x -a "$tabs_opts" -d "Set tab width" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l terminal-width -x -d "Set terminal <width>, +<offset>, or -<offset>" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l theme -x -a "$special_themes(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l theme-dark -x -a "(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme for dark backgrounds" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -l theme-light -x -a "(command $bat --list-themes | command cat)" -d "Set the syntax highlighting theme for light backgrounds" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s u -l unbuffered -d "This option exists for POSIX-compliance reasons" -n __bat_no_excl_args
|
||||
|
||||
complete -c $bat -s V -l version -f -d "Show version information" -n __fish_is_first_arg
|
||||
|
||||
complete -c $bat -l wrap -x -a "$wrap_opts" -d "Text-wrapping mode" -n __bat_no_excl_args
|
||||
|
||||
# Sub-command 'cache' completions
|
||||
## Completion of the 'cache' command itself is removed for better UX
|
||||
## See https://github.com/sharkdp/bat/issues/2085#issuecomment-1271646802
|
||||
|
||||
complete -c $bat -l build -f -d "Parse new definitions into cache" -n __bat_cache_no_excl
|
||||
|
||||
complete -c $bat -l clear -f -d "Reset definitions to defaults" -n __bat_cache_no_excl
|
||||
|
||||
complete -c $bat -l blank -f -d "Create new data instead of appending" -n "__bat_cache_subcommand; and not __fish_seen_argument -l clear"
|
||||
|
||||
complete -c $bat -l source -x -a "(__fish_complete_directories)" -d "Load syntaxes and themes from DIR" -n "__bat_cache_subcommand; and not __fish_seen_argument -l clear"
|
||||
|
||||
complete -c $bat -l target -x -a "(__fish_complete_directories)" -d "Store cache in DIR" -n __bat_cache_subcommand
|
||||
|
||||
complete -c $bat -l acknowledgements -d "Build acknowledgements.bin" -n __bat_cache_no_excl
|
||||
|
||||
complete -c $bat -s h -d "Print a concise overview of $bat-cache help" -n __bat_cache_no_excl
|
||||
|
||||
complete -c $bat -l help -f -d "Print all $bat-cache help" -n __bat_cache_no_excl
|
||||
|
||||
# vim:ft=fish
|
||||
|
||||
@@ -1,235 +0,0 @@
|
||||
# fish completion for devbox -*- shell-script -*-
|
||||
|
||||
function __devbox_debug
|
||||
set -l file "$BASH_COMP_DEBUG_FILE"
|
||||
if test -n "$file"
|
||||
echo "$argv" >> $file
|
||||
end
|
||||
end
|
||||
|
||||
function __devbox_perform_completion
|
||||
__devbox_debug "Starting __devbox_perform_completion"
|
||||
|
||||
# Extract all args except the last one
|
||||
set -l args (commandline -opc)
|
||||
# Extract the last arg and escape it in case it is a space
|
||||
set -l lastArg (string escape -- (commandline -ct))
|
||||
|
||||
__devbox_debug "args: $args"
|
||||
__devbox_debug "last arg: $lastArg"
|
||||
|
||||
# Disable ActiveHelp which is not supported for fish shell
|
||||
set -l requestComp "DEVBOX_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
|
||||
|
||||
__devbox_debug "Calling $requestComp"
|
||||
set -l results (eval $requestComp 2> /dev/null)
|
||||
|
||||
# Some programs may output extra empty lines after the directive.
|
||||
# Let's ignore them or else it will break completion.
|
||||
# Ref: https://github.com/spf13/cobra/issues/1279
|
||||
for line in $results[-1..1]
|
||||
if test (string trim -- $line) = ""
|
||||
# Found an empty line, remove it
|
||||
set results $results[1..-2]
|
||||
else
|
||||
# Found non-empty line, we have our proper output
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
set -l comps $results[1..-2]
|
||||
set -l directiveLine $results[-1]
|
||||
|
||||
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
|
||||
# completions must be prefixed with the flag
|
||||
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
|
||||
|
||||
__devbox_debug "Comps: $comps"
|
||||
__devbox_debug "DirectiveLine: $directiveLine"
|
||||
__devbox_debug "flagPrefix: $flagPrefix"
|
||||
|
||||
for comp in $comps
|
||||
printf "%s%s\n" "$flagPrefix" "$comp"
|
||||
end
|
||||
|
||||
printf "%s\n" "$directiveLine"
|
||||
end
|
||||
|
||||
# this function limits calls to __devbox_perform_completion, by caching the result behind $__devbox_perform_completion_once_result
|
||||
function __devbox_perform_completion_once
|
||||
__devbox_debug "Starting __devbox_perform_completion_once"
|
||||
|
||||
if test -n "$__devbox_perform_completion_once_result"
|
||||
__devbox_debug "Seems like a valid result already exists, skipping __devbox_perform_completion"
|
||||
return 0
|
||||
end
|
||||
|
||||
set --global __devbox_perform_completion_once_result (__devbox_perform_completion)
|
||||
if test -z "$__devbox_perform_completion_once_result"
|
||||
__devbox_debug "No completions, probably due to a failure"
|
||||
return 1
|
||||
end
|
||||
|
||||
__devbox_debug "Performed completions and set __devbox_perform_completion_once_result"
|
||||
return 0
|
||||
end
|
||||
|
||||
# this function is used to clear the $__devbox_perform_completion_once_result variable after completions are run
|
||||
function __devbox_clear_perform_completion_once_result
|
||||
__devbox_debug ""
|
||||
__devbox_debug "========= clearing previously set __devbox_perform_completion_once_result variable =========="
|
||||
set --erase __devbox_perform_completion_once_result
|
||||
__devbox_debug "Successfully erased the variable __devbox_perform_completion_once_result"
|
||||
end
|
||||
|
||||
function __devbox_requires_order_preservation
|
||||
__devbox_debug ""
|
||||
__devbox_debug "========= checking if order preservation is required =========="
|
||||
|
||||
__devbox_perform_completion_once
|
||||
if test -z "$__devbox_perform_completion_once_result"
|
||||
__devbox_debug "Error determining if order preservation is required"
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l directive (string sub --start 2 $__devbox_perform_completion_once_result[-1])
|
||||
__devbox_debug "Directive is: $directive"
|
||||
|
||||
set -l shellCompDirectiveKeepOrder 32
|
||||
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
|
||||
__devbox_debug "Keeporder is: $keeporder"
|
||||
|
||||
if test $keeporder -ne 0
|
||||
__devbox_debug "This does require order preservation"
|
||||
return 0
|
||||
end
|
||||
|
||||
__devbox_debug "This doesn't require order preservation"
|
||||
return 1
|
||||
end
|
||||
|
||||
|
||||
# This function does two things:
|
||||
# - Obtain the completions and store them in the global __devbox_comp_results
|
||||
# - Return false if file completion should be performed
|
||||
function __devbox_prepare_completions
|
||||
__devbox_debug ""
|
||||
__devbox_debug "========= starting completion logic =========="
|
||||
|
||||
# Start fresh
|
||||
set --erase __devbox_comp_results
|
||||
|
||||
__devbox_perform_completion_once
|
||||
__devbox_debug "Completion results: $__devbox_perform_completion_once_result"
|
||||
|
||||
if test -z "$__devbox_perform_completion_once_result"
|
||||
__devbox_debug "No completion, probably due to a failure"
|
||||
# Might as well do file completion, in case it helps
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l directive (string sub --start 2 $__devbox_perform_completion_once_result[-1])
|
||||
set --global __devbox_comp_results $__devbox_perform_completion_once_result[1..-2]
|
||||
|
||||
__devbox_debug "Completions are: $__devbox_comp_results"
|
||||
__devbox_debug "Directive is: $directive"
|
||||
|
||||
set -l shellCompDirectiveError 1
|
||||
set -l shellCompDirectiveNoSpace 2
|
||||
set -l shellCompDirectiveNoFileComp 4
|
||||
set -l shellCompDirectiveFilterFileExt 8
|
||||
set -l shellCompDirectiveFilterDirs 16
|
||||
|
||||
if test -z "$directive"
|
||||
set directive 0
|
||||
end
|
||||
|
||||
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
|
||||
if test $compErr -eq 1
|
||||
__devbox_debug "Received error directive: aborting."
|
||||
# Might as well do file completion, in case it helps
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
|
||||
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
|
||||
if test $filefilter -eq 1; or test $dirfilter -eq 1
|
||||
__devbox_debug "File extension filtering or directory filtering not supported"
|
||||
# Do full file completion instead
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
|
||||
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
|
||||
|
||||
__devbox_debug "nospace: $nospace, nofiles: $nofiles"
|
||||
|
||||
# If we want to prevent a space, or if file completion is NOT disabled,
|
||||
# we need to count the number of valid completions.
|
||||
# To do so, we will filter on prefix as the completions we have received
|
||||
# may not already be filtered so as to allow fish to match on different
|
||||
# criteria than the prefix.
|
||||
if test $nospace -ne 0; or test $nofiles -eq 0
|
||||
set -l prefix (commandline -t | string escape --style=regex)
|
||||
__devbox_debug "prefix: $prefix"
|
||||
|
||||
set -l completions (string match -r -- "^$prefix.*" $__devbox_comp_results)
|
||||
set --global __devbox_comp_results $completions
|
||||
__devbox_debug "Filtered completions are: $__devbox_comp_results"
|
||||
|
||||
# Important not to quote the variable for count to work
|
||||
set -l numComps (count $__devbox_comp_results)
|
||||
__devbox_debug "numComps: $numComps"
|
||||
|
||||
if test $numComps -eq 1; and test $nospace -ne 0
|
||||
# We must first split on \t to get rid of the descriptions to be
|
||||
# able to check what the actual completion will be.
|
||||
# We don't need descriptions anyway since there is only a single
|
||||
# real completion which the shell will expand immediately.
|
||||
set -l split (string split --max 1 \t $__devbox_comp_results[1])
|
||||
|
||||
# Fish won't add a space if the completion ends with any
|
||||
# of the following characters: @=/:.,
|
||||
set -l lastChar (string sub -s -1 -- $split)
|
||||
if not string match -r -q "[@=/:.,]" -- "$lastChar"
|
||||
# In other cases, to support the "nospace" directive we trick the shell
|
||||
# by outputting an extra, longer completion.
|
||||
__devbox_debug "Adding second completion to perform nospace directive"
|
||||
set --global __devbox_comp_results $split[1] $split[1].
|
||||
__devbox_debug "Completions are now: $__devbox_comp_results"
|
||||
end
|
||||
end
|
||||
|
||||
if test $numComps -eq 0; and test $nofiles -eq 0
|
||||
# To be consistent with bash and zsh, we only trigger file
|
||||
# completion when there are no other completions
|
||||
__devbox_debug "Requesting file completion"
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
|
||||
# so we can properly delete any completions provided by another script.
|
||||
# Only do this if the program can be found, or else fish may print some errors; besides,
|
||||
# the existing completions will only be loaded if the program can be found.
|
||||
if type -q "devbox"
|
||||
# The space after the program name is essential to trigger completion for the program
|
||||
# and not completion of the program name itself.
|
||||
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
|
||||
complete --do-complete "devbox " > /dev/null 2>&1
|
||||
end
|
||||
|
||||
# Remove any pre-existing completions for the program since we will be handling all of them.
|
||||
complete -c devbox -e
|
||||
|
||||
# this will get called after the two calls below and clear the $__devbox_perform_completion_once_result global
|
||||
complete -c devbox -n '__devbox_clear_perform_completion_once_result'
|
||||
# The call to __devbox_prepare_completions will setup __devbox_comp_results
|
||||
# which provides the program's completion choices.
|
||||
# If this doesn't require order preservation, we don't use the -k flag
|
||||
complete -c devbox -n 'not __devbox_requires_order_preservation && __devbox_prepare_completions' -f -a '$__devbox_comp_results'
|
||||
# otherwise we use the -k flag
|
||||
complete -k -c devbox -n '__devbox_requires_order_preservation && __devbox_prepare_completions' -f -a '$__devbox_comp_results'
|
||||
@@ -1,34 +0,0 @@
|
||||
if status is-interactive
|
||||
# Commands to run in interactive sessions can go here
|
||||
|
||||
# Disable the welcome message
|
||||
# https://fishshell.com/docs/current/cmds/fish_greeting.html
|
||||
set -g fish_greeting
|
||||
|
||||
if test -f /home/linuxbrew/.linuxbrew/bin/brew
|
||||
/home/linuxbrew/.linuxbrew/bin/brew shellenv | source
|
||||
end
|
||||
if test -f $(which atuin)
|
||||
atuin init fish | source
|
||||
end
|
||||
|
||||
# Override globals
|
||||
set -gx EDITOR nvim
|
||||
|
||||
# Enable autoenv
|
||||
source ~/.config/fish/functions/activate.fish
|
||||
|
||||
# Aliases
|
||||
alias vim="nvim"
|
||||
alias dc="podman compose"
|
||||
alias lg="lazygit"
|
||||
alias la="eza --long --header --git --group --time-style long-iso -a"
|
||||
alias record='wf-recorder -g "$(slurp)"'
|
||||
|
||||
# Abbreviations
|
||||
# https://fishshell.com/docs/current/cmds/abbr.html
|
||||
abbr --add --position command ds devbox services
|
||||
|
||||
# Set Path
|
||||
fish_add_path -p /home/tgrosinger/.dotfiles/bin/linux
|
||||
end
|
||||
@@ -1,43 +0,0 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR __fish_initialized:3800
|
||||
SETUVAR fish_color_autosuggestion:9ca0b0
|
||||
SETUVAR fish_color_cancel:d20f39
|
||||
SETUVAR fish_color_command:1e66f5
|
||||
SETUVAR fish_color_comment:8c8fa1
|
||||
SETUVAR fish_color_cwd:df8e1d
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:fe640b
|
||||
SETUVAR fish_color_error:d20f39
|
||||
SETUVAR fish_color_escape:e64553
|
||||
SETUVAR fish_color_gray:9ca0b0
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:1e66f5
|
||||
SETUVAR fish_color_host_remote:40a02b
|
||||
SETUVAR fish_color_keyword:8839ef
|
||||
SETUVAR fish_color_normal:4c4f69
|
||||
SETUVAR fish_color_operator:ea76cb
|
||||
SETUVAR fish_color_option:40a02b
|
||||
SETUVAR fish_color_param:dd7878
|
||||
SETUVAR fish_color_quote:40a02b
|
||||
SETUVAR fish_color_redirection:ea76cb
|
||||
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3dccd0da
|
||||
SETUVAR fish_color_selection:\x2d\x2dbackground\x3dccd0da
|
||||
SETUVAR fish_color_status:d20f39
|
||||
SETUVAR fish_color_user:179299
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_key_bindings:fish_vi_key_bindings
|
||||
SETUVAR fish_pager_color_background:\x1d
|
||||
SETUVAR fish_pager_color_completion:4c4f69
|
||||
SETUVAR fish_pager_color_description:9ca0b0
|
||||
SETUVAR fish_pager_color_prefix:ea76cb
|
||||
SETUVAR fish_pager_color_progress:9ca0b0
|
||||
SETUVAR fish_pager_color_secondary_background:\x1d
|
||||
SETUVAR fish_pager_color_secondary_completion:\x1d
|
||||
SETUVAR fish_pager_color_secondary_description:\x1d
|
||||
SETUVAR fish_pager_color_secondary_prefix:\x1d
|
||||
SETUVAR fish_pager_color_selected_background:\x1d
|
||||
SETUVAR fish_pager_color_selected_completion:\x1d
|
||||
SETUVAR fish_pager_color_selected_description:\x1d
|
||||
SETUVAR fish_pager_color_selected_prefix:\x1d
|
||||
SETUVAR fish_user_paths:/home/tgrosinger/\x2edotfiles/bin/linux
|
||||
@@ -1,133 +0,0 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
#
|
||||
# Autoenv for fish shell.
|
||||
# Based on, but heavily modified from:
|
||||
# https://github.com/loopbit/autoenv_fish
|
||||
#
|
||||
|
||||
set AUTOENV_AUTH_FILE ~/.autoenv_authorized
|
||||
if [ -z "$AUTOENV_ENV_FILENAME" ]
|
||||
set AUTOENV_ENV_FILENAME ".env"
|
||||
end
|
||||
|
||||
# probe to see if we have access to a shasum command, otherwise disable autoenv
|
||||
if which gsha1sum 2>/dev/null >&2
|
||||
# Okay
|
||||
else if which sha1sum 2>/dev/null >&2
|
||||
# Okay
|
||||
else if which shasum 2>/dev/null >&2
|
||||
# Okay
|
||||
else
|
||||
echo "Autoenv cannot locate a compatible shasum binary; not enabling"
|
||||
exit 1
|
||||
end
|
||||
|
||||
# This function will be automatically called on directory change
|
||||
# without needing to override the `cd` command.
|
||||
function autoenv_init --on-variable PWD
|
||||
set defIFS $IFS
|
||||
set IFS (echo -en "\n\b")
|
||||
|
||||
set target $argv[1]
|
||||
set home (dirname $HOME)
|
||||
set search_dir $PWD
|
||||
|
||||
while [ $search_dir != / -a $search_dir != "$home" ]
|
||||
set file "$search_dir/$AUTOENV_ENV_FILENAME"
|
||||
if [ -e $file ]
|
||||
set files $files $file
|
||||
end
|
||||
set search_dir (dirname $search_dir)
|
||||
end
|
||||
|
||||
set numerator (count $files)
|
||||
if [ $numerator -gt 0 ]
|
||||
for x in (seq $numerator)
|
||||
set envfile $files[$x]
|
||||
autoenv_check_authz_and_run "$envfile"
|
||||
end
|
||||
end
|
||||
|
||||
set IFS $defIFS
|
||||
end
|
||||
|
||||
function autoenv_run
|
||||
set file "(realpath "$argv[1]")"
|
||||
autoenv_check_authz_and_run "$file"
|
||||
end
|
||||
|
||||
function autoenv_env
|
||||
builtin echo "autoenv:" "$argv[1]"
|
||||
end
|
||||
|
||||
function autoenv_printf
|
||||
builtin printf "autoenv: "
|
||||
builtin printf "$argv[1]"
|
||||
end
|
||||
|
||||
function autoenv_indent
|
||||
cat -e $argv[1] | sed 's/.*/autoenv: &/'
|
||||
end
|
||||
|
||||
function autoenv_hashline
|
||||
# typeset envfile hash
|
||||
set envfile $argv[1]
|
||||
set hash (shasum "$envfile" | cut -d' ' -f 1)
|
||||
echo "$envfile:$hash"
|
||||
end
|
||||
|
||||
function autoenv_check_authz
|
||||
# typeset envfile hash
|
||||
set envfile $argv[1]
|
||||
set hash (autoenv_hashline "$envfile")
|
||||
touch $AUTOENV_AUTH_FILE
|
||||
grep -Gq "$hash" $AUTOENV_AUTH_FILE
|
||||
end
|
||||
|
||||
function autoenv_check_authz_and_run
|
||||
set envfile $argv[1]
|
||||
if autoenv_check_authz "$envfile"
|
||||
autoenv_source "$envfile"
|
||||
return 0
|
||||
end
|
||||
if [ -z $MC_SID ] #make sure mc is not running
|
||||
autoenv_env
|
||||
autoenv_env "WARNING:"
|
||||
autoenv_env "This is the first time you are about to source $envfile":
|
||||
autoenv_env
|
||||
autoenv_env " --- (begin contents) ---------------------------------------"
|
||||
autoenv_indent "$envfile"
|
||||
autoenv_env " --- (end contents) -----------------------------------------"
|
||||
autoenv_env
|
||||
autoenv_printf "Are you sure you want to allow this? (y/N) \n"
|
||||
read answer
|
||||
if [ $answer = y -o $answer = Y ]
|
||||
autoenv_authorize_env "$envfile"
|
||||
autoenv_source "$envfile"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function autoenv_deauthorize_env
|
||||
#typeset envfile
|
||||
set envfile $argv[1]
|
||||
cp "$AUTOENV_AUTH_FILE" "$AUTOENV_AUTH_FILE.tmp"
|
||||
grep -Gv "$envfile:" "$AUTOENV_AUTH_FILE.tmp" >$AUTOENV_AUTH_FILE
|
||||
end
|
||||
|
||||
function autoenv_authorize_env
|
||||
#typeset envfile
|
||||
set envfile $argv[1]
|
||||
autoenv_deauthorize_env "$envfile"
|
||||
autoenv_hashline "$envfile" >>$AUTOENV_AUTH_FILE
|
||||
end
|
||||
|
||||
function autoenv_source
|
||||
#TODO: Why are global vars not being passed to sourced script?
|
||||
set -g AUTOENV_CUR_FILE $argv[1]
|
||||
set -g AUTOENV_CUR_DIR (dirname $argv[1])
|
||||
source "$argv[1]"
|
||||
#set -e AUTOENV_CUR_FILE
|
||||
#set -e AUTOENV_CUR_DIR
|
||||
end
|
||||
@@ -1,24 +0,0 @@
|
||||
function fish_prompt
|
||||
set -l __last_command_exit_status $status
|
||||
|
||||
set -l cyan (set_color -o cyan)
|
||||
set -l yellow (set_color -o yellow)
|
||||
set -l red (set_color -o red)
|
||||
set -l green (set_color -o green)
|
||||
set -l blue (set_color -o blue)
|
||||
set -l normal (set_color normal)
|
||||
|
||||
set -l arrow_color "$green"
|
||||
if test $__last_command_exit_status != 0
|
||||
set arrow_color "$red"
|
||||
end
|
||||
|
||||
set -l arrow "$arrow_color➜ "
|
||||
if fish_is_root_user
|
||||
set arrow "$arrow_color# "
|
||||
end
|
||||
|
||||
set -l cwd $cyan(prompt_pwd | path basename)
|
||||
|
||||
echo -n -s $arrow ' '$cwd $repo_info $normal ' '
|
||||
end
|
||||
@@ -1,30 +0,0 @@
|
||||
# name: 'Catppuccin Latte'
|
||||
# url: 'https://github.com/catppuccin/fish'
|
||||
# preferred_background: eff1f5
|
||||
|
||||
fish_color_normal 4c4f69
|
||||
fish_color_command 1e66f5
|
||||
fish_color_param dd7878
|
||||
fish_color_keyword 8839ef
|
||||
fish_color_quote 40a02b
|
||||
fish_color_redirection ea76cb
|
||||
fish_color_end fe640b
|
||||
fish_color_comment 8c8fa1
|
||||
fish_color_error d20f39
|
||||
fish_color_gray 9ca0b0
|
||||
fish_color_selection --background=ccd0da
|
||||
fish_color_search_match --background=ccd0da
|
||||
fish_color_option 40a02b
|
||||
fish_color_operator ea76cb
|
||||
fish_color_escape e64553
|
||||
fish_color_autosuggestion 9ca0b0
|
||||
fish_color_cancel d20f39
|
||||
fish_color_cwd df8e1d
|
||||
fish_color_user 179299
|
||||
fish_color_host 1e66f5
|
||||
fish_color_host_remote 40a02b
|
||||
fish_color_status d20f39
|
||||
fish_pager_color_progress 9ca0b0
|
||||
fish_pager_color_prefix ea76cb
|
||||
fish_pager_color_completion 4c4f69
|
||||
fish_pager_color_description 9ca0b0
|
||||
@@ -1,46 +0,0 @@
|
||||
font=JetBrainsMonoNerdFontMono:size=12
|
||||
# Should automatically use these.
|
||||
#font-bold=JetBrainsMonoNerdFontMono:weight=bold
|
||||
#font-italic=JetBrainsMonoNerdFontMono:slant=italic
|
||||
#font-bold-italic=JetBrainsMonoNerdFontMono:weight=bold:slant=italic
|
||||
|
||||
|
||||
#
|
||||
# Catppuccine Latte
|
||||
# https://github.com/catppuccin/foot
|
||||
#
|
||||
|
||||
[colors]
|
||||
cursor=eff1f5 dc8a78
|
||||
foreground=4c4f69
|
||||
background=eff1f5
|
||||
|
||||
regular0=5c5f77
|
||||
regular1=d20f39
|
||||
regular2=40a02b
|
||||
regular3=df8e1d
|
||||
regular4=1e66f5
|
||||
regular5=ea76cb
|
||||
regular6=179299
|
||||
regular7=acb0be
|
||||
|
||||
bright0=6c6f85
|
||||
bright1=d20f39
|
||||
bright2=40a02b
|
||||
bright3=df8e1d
|
||||
bright4=1e66f5
|
||||
bright5=ea76cb
|
||||
bright6=179299
|
||||
bright7=bcc0cc
|
||||
|
||||
16=fe640b
|
||||
17=dc8a78
|
||||
|
||||
selection-foreground=4c4f69
|
||||
selection-background=ccced7
|
||||
|
||||
search-box-no-match=dce0e8 d20f39
|
||||
search-box-match=4c4f69 ccd0da
|
||||
|
||||
jump-labels=dce0e8 fe640b
|
||||
urls=1e66f5
|
||||
@@ -1,38 +0,0 @@
|
||||
customCommands:
|
||||
- command: "git push --force-with-lease"
|
||||
context: "commits,localBranches"
|
||||
description: "Force push with lease."
|
||||
key: "x"
|
||||
promptToReturnFromSubprocess: false # removes "press enter to return to lazygit" popup
|
||||
notARepository: 'skip'
|
||||
git:
|
||||
autoForwardBranches: "none"
|
||||
os:
|
||||
editPreset: "nvim"
|
||||
gui:
|
||||
useHunkModeInStagingView: true
|
||||
timeFormat: "2006-01-02"
|
||||
nerdFontsVersion: "3"
|
||||
mouseEvents: false
|
||||
theme:
|
||||
activeBorderColor:
|
||||
- "#40a02b"
|
||||
- bold
|
||||
inactiveBorderColor:
|
||||
- "#6c6f85"
|
||||
optionsTextColor:
|
||||
- "#1e66f5"
|
||||
selectedLineBgColor:
|
||||
- "#ccd0da"
|
||||
cherryPickedCommitBgColor:
|
||||
- "#bcc0cc"
|
||||
cherryPickedCommitFgColor:
|
||||
- "#40a02b"
|
||||
unstagedChangesColor:
|
||||
- "#d20f39"
|
||||
defaultFgColor:
|
||||
- "#4c4f69"
|
||||
searchingActiveBorderColor:
|
||||
- "#df8e1d"
|
||||
authorColors:
|
||||
"*": "#7287fd"
|
||||
@@ -1 +0,0 @@
|
||||
RIGHT seek 10
|
||||
@@ -1,7 +0,0 @@
|
||||
# https://mpv.io/manual/stable
|
||||
|
||||
# https://mpv.io/manual/stable/#resuming-playback
|
||||
# https://mpv.io/manual/stable/#watch-later
|
||||
# https://mpv.io/manual/stable/#files-~/-local/state/mpv/watch-later/
|
||||
--save-position-on-quit
|
||||
|
||||
8
home/.config/nvim/.gitignore
vendored
8
home/.config/nvim/.gitignore
vendored
@@ -1,8 +0,0 @@
|
||||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
"LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" },
|
||||
"SchemaStore.nvim": { "branch": "main", "commit": "5f2299987a1937612c910f00db39156bab6a6b35" },
|
||||
"blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" },
|
||||
"catppuccin": { "branch": "main", "commit": "ce4a8e0d5267e67056f9f4dcf6cb1d0933c8ca00" },
|
||||
"conform.nvim": { "branch": "master", "commit": "4993e07fac6679d0a5005aa7499e0bad2bd39f19" },
|
||||
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
|
||||
"focus.nvim": { "branch": "master", "commit": "26a755c363284547196ceb258a83f92608d7979b" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "5813e4878748805f1518cee7abb50fd7205a3a48" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "b58b2d65863f4ebad88b10a1ddd519e5380466e0" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "7d527c76c43f46294de9c19d39c5a86317809b4b" },
|
||||
"mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" },
|
||||
"mini.ai": { "branch": "main", "commit": "bfb26d9072670c3aaefab0f53024b2f3729c8083" },
|
||||
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
|
||||
"mini.pairs": { "branch": "main", "commit": "472ec50092a3314ec285d2db2baa48602d71fe93" },
|
||||
"mini.surround": { "branch": "main", "commit": "88c52297ed3e69ecf9f8652837888ecc727a28ee" },
|
||||
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
|
||||
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||
"nvim-lint": { "branch": "master", "commit": "d1118791070d090777398792a73032a0ca5c79ff" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "b2441c9374699685991959f50e5e6293c509e501" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "17885756e63df73ed90db62e4630f744ceda6514" },
|
||||
"nvim-treesitter-textobjects": { "branch": "main", "commit": "63c4dce4a56312ef1bdeafd16bdefa008fcc950a" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"render-markdown.nvim": { "branch": "main", "commit": "6e0e8902dac70fecbdd8ce557d142062a621ec38" },
|
||||
"snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
|
||||
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
|
||||
"vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.coding.mini-surround",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.yaml"
|
||||
],
|
||||
"install_version": 8,
|
||||
"news": {
|
||||
"NEWS.md": "11866"
|
||||
},
|
||||
"version": 8
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
--
|
||||
-- Add any additional autocmds here
|
||||
-- with `vim.api.nvim_create_autocmd`
|
||||
--
|
||||
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
|
||||
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
|
||||
@@ -1,3 +0,0 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
@@ -1,53 +0,0 @@
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
install = { colorscheme = { "catppuccin-latte" } },
|
||||
checker = {
|
||||
enabled = true, -- check for plugin updates periodically
|
||||
notify = false, -- notify on update
|
||||
}, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,9 +0,0 @@
|
||||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
|
||||
-- Minimal number of screen lines to keep above and below the cursor.
|
||||
vim.opt.scrolloff = 10
|
||||
|
||||
-- Only run prettier in directories where there is a config file.
|
||||
vim.g.lazyvim_prettier_needs_config = true
|
||||
@@ -1,6 +0,0 @@
|
||||
return {
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "catppuccin-latte",
|
||||
},
|
||||
}
|
||||
@@ -1,197 +0,0 @@
|
||||
-- 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 the "plugins" directory 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 },
|
||||
|
||||
-- override nvim-cmp and add cmp-emoji
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = { "hrsh7th/cmp-emoji" },
|
||||
---@param opts cmp.ConfigSchema
|
||||
opts = function(_, opts)
|
||||
table.insert(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 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").lsp.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, {
|
||||
function()
|
||||
return "😄"
|
||||
end,
|
||||
})
|
||||
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 packages, and 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",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
-- Resize window to prioritize the focused on.
|
||||
-- https://github.com/nvim-focus/focus.nvim
|
||||
return {
|
||||
"nvim-focus/focus.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
enable = true,
|
||||
ui = {
|
||||
-- Display line numbers in the focused window only.
|
||||
hybridnumber = true,
|
||||
|
||||
-- Display signcolumn in the focused window only.
|
||||
signcolumn = true,
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("focus").setup({})
|
||||
|
||||
local ignore_buftypes = { "dbui", "nofile" }
|
||||
local ignore_filetypes =
|
||||
{ "dbui", "dapui_breakpoints", "dapui_stacks", "dapui_scopes", "dap_repl", "dapui_console" }
|
||||
local augroup = vim.api.nvim_create_augroup("FocusDisable", { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd("WinEnter", {
|
||||
group = augroup,
|
||||
callback = function(_)
|
||||
if vim.tbl_contains(ignore_buftypes, vim.bo.buftype) then
|
||||
vim.w.focus_disable = true
|
||||
else
|
||||
vim.w.focus_disable = false
|
||||
end
|
||||
end,
|
||||
desc = "Disable focus autoresize for BufType",
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
group = augroup,
|
||||
callback = function(_)
|
||||
if vim.tbl_contains(ignore_filetypes, vim.bo.filetype) then
|
||||
vim.b.focus_disable = true
|
||||
else
|
||||
vim.b.focus_disable = false
|
||||
end
|
||||
end,
|
||||
desc = "Disable focus autoresize for FileType",
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
return {
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
opts = function(_, opts)
|
||||
-- Remove the git branch because it's already shown in tmux.
|
||||
table.remove(opts.sections.lualine_b)
|
||||
|
||||
-- Remove the clock because I don't want it there.
|
||||
table.remove(opts.sections.lualine_z)
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
return {
|
||||
"christoomey/vim-tmux-navigator",
|
||||
cmd = {
|
||||
"TmuxNavigateLeft",
|
||||
"TmuxNavigateDown",
|
||||
"TmuxNavigateUp",
|
||||
"TmuxNavigateRight",
|
||||
"TmuxNavigatePrevious",
|
||||
"TmuxNavigatorProcessList",
|
||||
},
|
||||
keys = {
|
||||
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
|
||||
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
|
||||
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
|
||||
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
|
||||
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
|
||||
},
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
||||
@@ -1,3 +0,0 @@
|
||||
shortcuts:
|
||||
quit:
|
||||
shortcut: q
|
||||
@@ -1,34 +0,0 @@
|
||||
style:
|
||||
name: 'Catppuccin Latte'
|
||||
body:
|
||||
fgColor: '#4c4f69'
|
||||
bgColor: '#eff1f5'
|
||||
secondaryTextColor: '#8839ef'
|
||||
tertiaryTextColor: '#8839ef'
|
||||
borderColor: '#7c7f93'
|
||||
stat_table:
|
||||
keyFgColor: '#8839ef'
|
||||
valueFgColor: '#4c4f69'
|
||||
logoColor: '#8839ef'
|
||||
proc_table:
|
||||
fgColor: '#4c4f69'
|
||||
fgWarning: '#fe640b'
|
||||
fgPending: '#7c7f93'
|
||||
fgCompleted: '#40a02b'
|
||||
fgError: '#d20f39'
|
||||
headerFgColor: '#8839ef'
|
||||
help:
|
||||
fgColor: '#4c4f69'
|
||||
keyColor: '#8839ef'
|
||||
hlColor: '#bcc0cc'
|
||||
categoryFgColor: '#ea76cb'
|
||||
dialog:
|
||||
fgColor: '#ea76cb'
|
||||
bgColor: '#8839ef'
|
||||
buttonFgColor: '#dce0e8'
|
||||
buttonBgColor: '#8839ef'
|
||||
buttonFocusFgColor: '#dce0e8'
|
||||
buttonFocusBgColor: '#8839ef'
|
||||
labelFgColor: '#dc8a78'
|
||||
fieldFgColor: '#4c4f69'
|
||||
fieldBgColor: '#acb0be'
|
||||
@@ -1,173 +0,0 @@
|
||||
@import "catppuccin-latte"
|
||||
// @import "catppuccin-frappe"
|
||||
// @import "catppuccin-macchiato"
|
||||
// @import "catppuccin-mocha"
|
||||
|
||||
* {
|
||||
selected-active-foreground: @background;
|
||||
lightfg: @text;
|
||||
separatorcolor: @foreground;
|
||||
urgent-foreground: @red;
|
||||
alternate-urgent-background: @lightbg;
|
||||
lightbg: @mantle;
|
||||
background-color: transparent;
|
||||
border-color: @foreground;
|
||||
normal-background: @background;
|
||||
selected-urgent-background: @red;
|
||||
alternate-active-background: @lightbg;
|
||||
spacing: 2;
|
||||
alternate-normal-foreground: @foreground;
|
||||
urgent-background: @background;
|
||||
selected-normal-foreground: @lightbg;
|
||||
active-foreground: @blue;
|
||||
background: @base;
|
||||
selected-active-background: @blue;
|
||||
active-background: @background;
|
||||
selected-normal-background: @lightfg;
|
||||
alternate-normal-background: @lightbg;
|
||||
foreground: @text;
|
||||
selected-urgent-foreground: @background;
|
||||
normal-foreground: @foreground;
|
||||
alternate-urgent-foreground: @red;
|
||||
alternate-active-foreground: @blue;
|
||||
|
||||
}
|
||||
element {
|
||||
padding: 1px ;
|
||||
cursor: pointer;
|
||||
spacing: 5px ;
|
||||
border: 0;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: @normal-background;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
element normal.active {
|
||||
background-color: @active-background;
|
||||
text-color: @active-foreground;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @selected-urgent-foreground;
|
||||
}
|
||||
element selected.active {
|
||||
background-color: @selected-active-background;
|
||||
text-color: @selected-active-foreground;
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: @alternate-normal-background;
|
||||
text-color: @alternate-normal-foreground;
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: @alternate-urgent-background;
|
||||
text-color: @alternate-urgent-foreground;
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: @alternate-active-background;
|
||||
text-color: @alternate-active-foreground;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
cursor: inherit;
|
||||
highlight: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
size: 1.0000em ;
|
||||
cursor: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
window {
|
||||
padding: 5;
|
||||
background-color: @background;
|
||||
border: 1;
|
||||
}
|
||||
mainbox {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
message {
|
||||
padding: 1px ;
|
||||
border-color: @separatorcolor;
|
||||
border: 2px dash 0px 0px ;
|
||||
}
|
||||
textbox {
|
||||
text-color: @foreground;
|
||||
}
|
||||
listview {
|
||||
padding: 2px 0px 0px ;
|
||||
scrollbar: true;
|
||||
border-color: @separatorcolor;
|
||||
spacing: 2px ;
|
||||
fixed-height: 0;
|
||||
border: 2px dash 0px 0px ;
|
||||
}
|
||||
scrollbar {
|
||||
width: 4px ;
|
||||
padding: 0;
|
||||
handle-width: 8px ;
|
||||
border: 0;
|
||||
handle-color: @normal-foreground;
|
||||
}
|
||||
sidebar {
|
||||
border-color: @separatorcolor;
|
||||
border: 2px dash 0px 0px ;
|
||||
}
|
||||
button {
|
||||
cursor: pointer;
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
button selected {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
num-filtered-rows {
|
||||
expand: false;
|
||||
text-color: Gray;
|
||||
}
|
||||
num-rows {
|
||||
expand: false;
|
||||
text-color: Gray;
|
||||
}
|
||||
textbox-num-sep {
|
||||
expand: false;
|
||||
str: "/";
|
||||
text-color: Gray;
|
||||
}
|
||||
inputbar {
|
||||
padding: 1px ;
|
||||
spacing: 0px ;
|
||||
text-color: @normal-foreground;
|
||||
children: [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ];
|
||||
}
|
||||
case-indicator {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
entry {
|
||||
text-color: @normal-foreground;
|
||||
cursor: text;
|
||||
spacing: 0;
|
||||
placeholder-color: Gray;
|
||||
placeholder: "Type to filter";
|
||||
}
|
||||
prompt {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
margin: 0px 0.3000em 0.0000em 0.0000em ;
|
||||
expand: false;
|
||||
str: ":";
|
||||
text-color: inherit;
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
* {
|
||||
rosewater: #dc8a78;
|
||||
flamingo: #dd7878;
|
||||
pink: #ea76cb;
|
||||
mauve: #8839ef;
|
||||
red: #d20f39;
|
||||
maroon: #e64553;
|
||||
peach: #fe640b;
|
||||
yellow: #df8e1d;
|
||||
green: #40a02b;
|
||||
teal: #179299;
|
||||
sky: #04a5e5;
|
||||
sapphire: #209fb5;
|
||||
blue: #1e66f5;
|
||||
lavender: #7287fd;
|
||||
text: #4c4f69;
|
||||
subtext1: #5c5f77;
|
||||
subtext0: #6c6f85;
|
||||
overlay2: #7c7f93;
|
||||
overlay1: #8c8fa1;
|
||||
overlay0: #9ca0b0;
|
||||
surface2: #acb0be;
|
||||
surface1: #bcc0cc;
|
||||
surface0: #ccd0da;
|
||||
base: #eff1f5;
|
||||
mantle: #e6e9ef;
|
||||
crust: #dce0e8;
|
||||
}
|
||||
|
||||
@@ -1,170 +0,0 @@
|
||||
@import "catppuccin-default"
|
||||
|
||||
configuration {
|
||||
/* modes: "window,drun,run,ssh";*/
|
||||
/* font: "mono 12";*/
|
||||
/* location: 0;*/
|
||||
/* yoffset: 0;*/
|
||||
/* xoffset: 0;*/
|
||||
/* fixed-num-lines: true;*/
|
||||
/* show-icons: false;*/
|
||||
/* preview-cmd: ;*/
|
||||
/* on-selection-changed: ;*/
|
||||
/* on-mode-changed: ;*/
|
||||
/* on-entry-accepted: ;*/
|
||||
/* on-menu-canceled: ;*/
|
||||
/* on-menu-error: ;*/
|
||||
/* on-screenshot-taken: ;*/
|
||||
/* terminal: "rofi-sensible-terminal";*/
|
||||
/* ssh-client: "ssh";*/
|
||||
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
|
||||
/* run-command: "{cmd}";*/
|
||||
/* run-list-command: "";*/
|
||||
/* run-shell-command: "{terminal} -e {cmd}";*/
|
||||
/* window-command: "wmctrl -i -R {window}";*/
|
||||
/* window-match-fields: "all";*/
|
||||
/* icon-theme: ;*/
|
||||
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
|
||||
/* drun-categories: ;*/
|
||||
/* drun-exclude-categories: ;*/
|
||||
/* drun-show-actions: false;*/
|
||||
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
|
||||
/* drun-url-launcher: "xdg-open";*/
|
||||
/* disable-history: false;*/
|
||||
/* ignored-prefixes: "";*/
|
||||
/* sort: false;*/
|
||||
/* sorting-method: "normal";*/
|
||||
/* case-sensitive: false;*/
|
||||
/* case-smart: false;*/
|
||||
/* cycle: true;*/
|
||||
/* sidebar-mode: false;*/
|
||||
/* hover-select: false;*/
|
||||
/* eh: 1;*/
|
||||
/* auto-select: false;*/
|
||||
/* parse-hosts: false;*/
|
||||
/* parse-known-hosts: true;*/
|
||||
/* combi-modes: "window,run";*/
|
||||
/* matching: "normal";*/
|
||||
/* tokenize: true;*/
|
||||
/* m: "-5";*/
|
||||
/* filter: ;*/
|
||||
/* dpi: -1;*/
|
||||
/* threads: 0;*/
|
||||
/* scroll-method: 0;*/
|
||||
/* window-format: "{w} {c} {t}";*/
|
||||
/* click-to-exit: true;*/
|
||||
/* global-kb: false;*/
|
||||
/* max-history-size: 25;*/
|
||||
/* combi-hide-mode-prefix: false;*/
|
||||
/* combi-display-format: "{mode} {text}";*/
|
||||
/* matching-negate-char: '-' /* unsupported */;*/
|
||||
/* cache-dir: ;*/
|
||||
/* window-thumbnail: false;*/
|
||||
/* drun-use-desktop-cache: false;*/
|
||||
/* drun-reload-desktop-cache: false;*/
|
||||
/* normalize-match: false;*/
|
||||
/* steal-focus: false;*/
|
||||
/* application-fallback-icon: ;*/
|
||||
/* refilter-timeout-limit: 300;*/
|
||||
/* xserver-i300-workaround: false;*/
|
||||
/* completer-mode: "filebrowser";*/
|
||||
/* imdkit: true;*/
|
||||
/* pid: "/run/user/1000/rofi.pid";*/
|
||||
/* display-window: ;*/
|
||||
/* display-run: ;*/
|
||||
/* display-ssh: ;*/
|
||||
/* display-drun: ;*/
|
||||
/* display-combi: ;*/
|
||||
/* display-keys: ;*/
|
||||
/* display-filebrowser: ;*/
|
||||
/* display-recursivebrowser: ;*/
|
||||
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
||||
/* kb-secondary-paste: "Control+v,Insert";*/
|
||||
/* kb-secondary-copy: "Control+c";*/
|
||||
/* kb-clear-line: "Control+w";*/
|
||||
/* kb-move-front: "Control+a";*/
|
||||
/* kb-move-end: "Control+e";*/
|
||||
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
||||
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
||||
/* kb-move-char-back: "Left,Control+b";*/
|
||||
/* kb-move-char-forward: "Right,Control+f";*/
|
||||
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
||||
/* kb-remove-word-forward: "Control+Alt+d";*/
|
||||
/* kb-remove-char-forward: "Delete,Control+d";*/
|
||||
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
||||
/* kb-remove-to-eol: "Control+k";*/
|
||||
/* kb-remove-to-sol: "Control+u";*/
|
||||
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
||||
/* kb-accept-custom: "Control+Return";*/
|
||||
/* kb-accept-custom-alt: "Control+Shift+Return";*/
|
||||
/* kb-accept-alt: "Shift+Return";*/
|
||||
/* kb-delete-entry: "Shift+Delete";*/
|
||||
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
||||
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
||||
/* kb-mode-complete: "Control+l";*/
|
||||
/* kb-row-left: "Control+Page_Up";*/
|
||||
/* kb-row-right: "Control+Page_Down";*/
|
||||
/* kb-row-up: "Up,Control+p";*/
|
||||
/* kb-row-down: "Down,Control+n";*/
|
||||
/* kb-row-tab: "";*/
|
||||
/* kb-element-next: "Tab";*/
|
||||
/* kb-element-prev: "ISO_Left_Tab";*/
|
||||
/* kb-page-prev: "Page_Up";*/
|
||||
/* kb-page-next: "Page_Down";*/
|
||||
/* kb-row-first: "Home,KP_Home";*/
|
||||
/* kb-row-last: "End,KP_End";*/
|
||||
/* kb-row-select: "Control+space";*/
|
||||
/* kb-screenshot: "Alt+S";*/
|
||||
/* kb-ellipsize: "Alt+period";*/
|
||||
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
||||
/* kb-toggle-sort: "Alt+grave";*/
|
||||
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
||||
/* kb-custom-1: "Alt+1";*/
|
||||
/* kb-custom-2: "Alt+2";*/
|
||||
/* kb-custom-3: "Alt+3";*/
|
||||
/* kb-custom-4: "Alt+4";*/
|
||||
/* kb-custom-5: "Alt+5";*/
|
||||
/* kb-custom-6: "Alt+6";*/
|
||||
/* kb-custom-7: "Alt+7";*/
|
||||
/* kb-custom-8: "Alt+8";*/
|
||||
/* kb-custom-9: "Alt+9";*/
|
||||
/* kb-custom-10: "Alt+0";*/
|
||||
/* kb-custom-11: "Alt+exclam";*/
|
||||
/* kb-custom-12: "Alt+at";*/
|
||||
/* kb-custom-13: "Alt+numbersign";*/
|
||||
/* kb-custom-14: "Alt+dollar";*/
|
||||
/* kb-custom-15: "Alt+percent";*/
|
||||
/* kb-custom-16: "Alt+dead_circumflex";*/
|
||||
/* kb-custom-17: "Alt+ampersand";*/
|
||||
/* kb-custom-18: "Alt+asterisk";*/
|
||||
/* kb-custom-19: "Alt+parenleft";*/
|
||||
/* kb-select-1: "Super+1";*/
|
||||
/* kb-select-2: "Super+2";*/
|
||||
/* kb-select-3: "Super+3";*/
|
||||
/* kb-select-4: "Super+4";*/
|
||||
/* kb-select-5: "Super+5";*/
|
||||
/* kb-select-6: "Super+6";*/
|
||||
/* kb-select-7: "Super+7";*/
|
||||
/* kb-select-8: "Super+8";*/
|
||||
/* kb-select-9: "Super+9";*/
|
||||
/* kb-select-10: "Super+0";*/
|
||||
/* kb-entry-history-up: "Control+Up";*/
|
||||
/* kb-entry-history-down: "Control+Down";*/
|
||||
/* kb-matcher-up: "Super+equal";*/
|
||||
/* kb-matcher-down: "Super+minus";*/
|
||||
/* ml-row-left: "ScrollLeft";*/
|
||||
/* ml-row-right: "ScrollRight";*/
|
||||
/* ml-row-up: "ScrollUp";*/
|
||||
/* ml-row-down: "ScrollDown";*/
|
||||
/* me-select-entry: "MousePrimary";*/
|
||||
/* me-accept-entry: "MouseDPrimary";*/
|
||||
/* me-accept-custom: "Control+MouseDPrimary";*/
|
||||
timeout {
|
||||
action: "kb-cancel";
|
||||
delay: 0;
|
||||
}
|
||||
filebrowser {
|
||||
directories-first: true;
|
||||
sorting-method: "name";
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Read the most recent items from CopyQ and present them in a rofi menu.
|
||||
# Intended to be used as a rofi mode.
|
||||
#
|
||||
# rofi -modes combi -show combi \
|
||||
# -combi-modes "copyq:${DIR}/copyq.sh"
|
||||
#
|
||||
# Converted to bash from
|
||||
# https://github.com/cjbassi/rofi-copyq/blob/master/rofi-copyq
|
||||
|
||||
# CopyQ script to get all clipboard items as JSON
|
||||
copyq_script_getAll='
|
||||
var result=[];
|
||||
for ( var i = 0; i < size(); ++i ) {
|
||||
var obj = {};
|
||||
obj.row = i;
|
||||
obj.mimetypes = str(read("?", i)).split("\n");
|
||||
obj.mimetypes.pop();
|
||||
obj.text = str(read(i));
|
||||
result.push(obj);
|
||||
}
|
||||
JSON.stringify(result);
|
||||
'
|
||||
|
||||
# Get clipboard items from CopyQ
|
||||
json_arr=$(printf '%s' "$copyq_script_getAll" | copyq -)
|
||||
|
||||
# Parse JSON and format items for rofi
|
||||
# Process each JSON object separately, replacing newlines within each item
|
||||
items=$(printf '%s' "$json_arr" | jq -r '.[] | .text | gsub("\n"; " ") | gsub(" +"; " ")')
|
||||
|
||||
if [ "$@" ]; then
|
||||
# Find the index of the selected item
|
||||
selected_text="$@"
|
||||
index=$(printf '%s' "$json_arr" | jq -r --arg sel "$selected_text" '.[] | select(.text | gsub("\n"; " ") | gsub(" +"; " ") == $sel) | .row')
|
||||
|
||||
# Select the item in CopyQ
|
||||
copyq "select($index);"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
printf '%s' "$items"
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Sourced from:
|
||||
# - https://github.com/nkoehring/rofiemoji
|
||||
# - https://github.com/jtrakk/rofiemoji-rofiunicode
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# rofi -modi 'run,drun,emoji:/path/to/rofimoji/rofimoji.sh' -show emoji
|
||||
|
||||
URL="https://www.unicode.org/Public/emoji/latest/emoji-test.txt"
|
||||
DIR="$HOME/.cache"
|
||||
FILE="$DIR/emojis.txt"
|
||||
|
||||
if [ ! -r $FILE ]; then
|
||||
if [ ! -d $DIR ]; then mkdir $DIR; fi
|
||||
curl --compressed "$URL" | sed -nE 's/^.+fully-qualified\s+#\s(\S+) E[0-9.]+ / \1 /p' >"$FILE"
|
||||
fi
|
||||
|
||||
if [ "$@" ]; then
|
||||
smiley=$(echo $@ | cut -d' ' -f1)
|
||||
echo -n "$smiley" | wl-copy
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cat $FILE
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
DIR="$(dirname "$0")"
|
||||
|
||||
rofi -modes combi -show combi \
|
||||
-combi-modes "copyq:${DIR}/copyq.sh,emoji:${DIR}/emoji.sh"
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# https://github.com/onespaceman/menu-calc
|
||||
# https://github.com/BarbUk/menu-qalc
|
||||
# https://github.com/ClemaX/menu-qalc-wayland
|
||||
#
|
||||
# Calculator for use with rofi
|
||||
# Copying to the clipboard requires wl-copy
|
||||
|
||||
usage() {
|
||||
echo "$(tput bold)menu-calc$(tput sgr0)"
|
||||
echo "A calculator for Rofi"
|
||||
echo
|
||||
echo "$(tput bold)Usage:$(tput sgr0)"
|
||||
echo " = 4+2"
|
||||
echo " = (4+2)/(4+3)"
|
||||
echo " = 4^2"
|
||||
echo " = sqrt(4)"
|
||||
echo " = c(2)"
|
||||
echo
|
||||
echo "$(tput bold)Passing arguments to Rofi:$(tput sgr0)"
|
||||
echo "Any parameters after ' -- ' will be passed to Rofi."
|
||||
echo
|
||||
echo " = -- <Rofi args>"
|
||||
echo
|
||||
echo "The answer can be copied to the clipboard and used for further calculations inside (or outside) Rofi."
|
||||
echo
|
||||
echo "If launched outside of Rofi the expression may need quotation marks."
|
||||
exit
|
||||
}
|
||||
|
||||
process_query() { # query
|
||||
local query="$1"
|
||||
|
||||
qalc +u8 -color=never -terse <<<"$query" |
|
||||
awk '!/^>/ && !/^$/ {gsub(/^[ \t]+|[ \t]+$/, "", $0); print}'
|
||||
}
|
||||
|
||||
# Process CLI parameters
|
||||
for var in "$@"; do
|
||||
case $var in
|
||||
-h | --help) usage ;;
|
||||
--) break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Path to menu application
|
||||
if [[ -n $(command -v rofi) ]]; then
|
||||
menu="$(command -v rofi)"
|
||||
menu="$menu -dmenu -lines 3"
|
||||
else
|
||||
>&2 echo "Rofi not found"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Determine args to pass to rofi
|
||||
while [[ $# -gt 0 && $1 != "--" ]]; do
|
||||
shift
|
||||
done
|
||||
[[ $1 == "--" ]] && shift
|
||||
|
||||
while true; do
|
||||
action=$(echo -e "Copy\nClear\nClose" | ${menu} "$@" -p "= $answer")
|
||||
|
||||
case "$action" in
|
||||
"Clear") answer= ;;
|
||||
"Copy") wl-copy -- "$answer" ;;
|
||||
"Close" | "") exit ;;
|
||||
*) answer=$(process_query "$answer $action") ;;
|
||||
esac
|
||||
done
|
||||
@@ -1,26 +0,0 @@
|
||||
set $rosewater #dc8a78
|
||||
set $flamingo #dd7878
|
||||
set $pink #ea76cb
|
||||
set $mauve #8839ef
|
||||
set $red #d20f39
|
||||
set $maroon #e64553
|
||||
set $peach #fe640b
|
||||
set $yellow #df8e1d
|
||||
set $green #40a02b
|
||||
set $teal #179299
|
||||
set $sky #04a5e5
|
||||
set $sapphire #209fb5
|
||||
set $blue #1e66f5
|
||||
set $lavender #7287fd
|
||||
set $text #4c4f69
|
||||
set $subtext1 #5c5f77
|
||||
set $subtext0 #6c6f85
|
||||
set $overlay2 #7c7f93
|
||||
set $overlay1 #8c8fa1
|
||||
set $overlay0 #9ca0b0
|
||||
set $surface2 #acb0be
|
||||
set $surface1 #bcc0cc
|
||||
set $surface0 #ccd0da
|
||||
set $base #eff1f5
|
||||
set $mantle #e6e9ef
|
||||
set $crust #dce0e8
|
||||
@@ -1,277 +0,0 @@
|
||||
# Default config for sway
|
||||
# Read `man 5 sway` for a complete reference.
|
||||
|
||||
### Variables
|
||||
#
|
||||
# Logo key. Use Mod1 for Alt.
|
||||
set $mod Mod4
|
||||
# Home row direction keys, like vim
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
# Your preferred terminal emulator
|
||||
set $term alacritty
|
||||
# Your preferred application launcher
|
||||
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||
# on the original workspace that the command was run on.
|
||||
# Recommends: rofi-wayland
|
||||
set $rofi_cmd rofi \
|
||||
-terminal '$term'
|
||||
# Shows a combined list of the applications with desktop files and
|
||||
# executables from PATH.
|
||||
# TODO: add window with the next release of rofi-wayland
|
||||
set $menu $rofi_cmd -show combi -combi-modes drun#run -modes combi
|
||||
|
||||
### Output configuration
|
||||
#
|
||||
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||
# Requires: desktop-backgrounds-compat, swaybg, jxl-pixbuf-loader
|
||||
output * bg /usr/share/backgrounds/default.jxl fill
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||
#
|
||||
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||
|
||||
### Idle configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
# exec swayidle -w \
|
||||
# timeout 300 'swaylock -f -c 000000' \
|
||||
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
|
||||
# before-sleep 'swaylock -f -c 000000'
|
||||
#
|
||||
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||
# your displays after another 300 seconds, and turn your screens back on when
|
||||
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||
|
||||
# Idle and lock configuration is also defined in /usr/share/sway/config.d/90-swayidle.conf
|
||||
# Lock after 6 minutes (1 minute longer than rest break).
|
||||
set $lock_timeout 360
|
||||
|
||||
exec swayidle -w \
|
||||
timeout 5 '/home/tgrosinger/code/wlr-break-timer/break-event idle_start' \
|
||||
resume '/home/tgrosinger/code/wlr-break-timer/break-event idle_end' \
|
||||
before-sleep '/home/tgrosinger/code/wlr-break-timer/break-event idle_start' \
|
||||
after-resume '/home/tgrosinger/code/wlr-break-timer/break-event idle_end'
|
||||
|
||||
### Input configuration
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||
# Read `man 5 sway-input` for more information about this section.
|
||||
input "2362:628:PIXA3854:00_093A:0274_Touchpad" {
|
||||
# Allow clicking by tapping.
|
||||
tap enabled
|
||||
# Moving fingers up moves the display down, like a phone.
|
||||
natural_scroll enabled
|
||||
# Two fingers is right click.
|
||||
click_method clickfinger
|
||||
}
|
||||
|
||||
### Key bindings
|
||||
#
|
||||
# Basics:
|
||||
#
|
||||
# Start a terminal
|
||||
bindsym $mod+Return exec $term
|
||||
|
||||
# Kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# Start your launcher
|
||||
bindsym $mod+d exec $menu
|
||||
|
||||
# Window switching
|
||||
bindsym $mod+Tab exec rofi -show window -modes window
|
||||
|
||||
# Clipboard history
|
||||
bindsym $mod+Shift+v exec /home/tgrosinger/.config/rofi/scripts/paste.sh
|
||||
|
||||
# Calculator
|
||||
bindsym $mod+Equal exec /home/tgrosinger/.config/rofi/scripts/qalc.sh
|
||||
|
||||
# Lazygit
|
||||
bindsym $mod+g exec alacritty --title Floating-Lazygit --command /home/linuxbrew/.linuxbrew/bin/lazygit; grab_focus; floating enable
|
||||
for_window [title="Floating-Lazygit"] floating enable
|
||||
for_window [title="Floating-Lazygit"] resize set 1800 1200
|
||||
|
||||
# Drag floating windows by holding down $mod and left mouse button.
|
||||
# Resize them with right mouse button + $mod.
|
||||
# Despite the name, also works for non-floating windows.
|
||||
# Change normal to inverse to use left mouse button for resizing and right
|
||||
# mouse button for dragging.
|
||||
floating_modifier $mod normal
|
||||
|
||||
# Reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
|
||||
# Exit sway (logs you out of your Wayland session)
|
||||
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
|
||||
#
|
||||
# Moving around:
|
||||
#
|
||||
# Move your focus around
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
# Or use $mod+[up|down|left|right]
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# Move the focused window with the same, but add Shift
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
# Ditto, with arrow keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
#
|
||||
# Workspaces:
|
||||
#
|
||||
# Switch to workspace
|
||||
bindsym $mod+1 workspace number 1
|
||||
bindsym $mod+2 workspace number 2
|
||||
bindsym $mod+3 workspace number 3
|
||||
bindsym $mod+4 workspace number 4
|
||||
bindsym $mod+5 workspace number 5
|
||||
bindsym $mod+6 workspace number 6
|
||||
bindsym $mod+7 workspace number 7
|
||||
bindsym $mod+8 workspace number 8
|
||||
bindsym $mod+9 workspace number 9
|
||||
bindsym $mod+0 workspace number 10
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number 1
|
||||
bindsym $mod+Shift+2 move container to workspace number 2
|
||||
bindsym $mod+Shift+3 move container to workspace number 3
|
||||
bindsym $mod+Shift+4 move container to workspace number 4
|
||||
bindsym $mod+Shift+5 move container to workspace number 5
|
||||
bindsym $mod+Shift+6 move container to workspace number 6
|
||||
bindsym $mod+Shift+7 move container to workspace number 7
|
||||
bindsym $mod+Shift+8 move container to workspace number 8
|
||||
bindsym $mod+Shift+9 move container to workspace number 9
|
||||
bindsym $mod+Shift+0 move container to workspace number 10
|
||||
# Note: workspaces can have any name you want, not just numbers.
|
||||
# We just use 1-10 as the default.
|
||||
#
|
||||
# Layout stuff:
|
||||
#
|
||||
# You can "split" the current object of your focus with
|
||||
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||
# respectively.
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
# Switch the current container between different layout styles
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Make the current focus fullscreen
|
||||
bindsym $mod+f fullscreen
|
||||
|
||||
# Toggle the current focus between tiling and floating mode
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# Swap focus between the tiling area and the floating area
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# Move focus to the parent container
|
||||
bindsym $mod+a focus parent
|
||||
#
|
||||
# Scratchpad:
|
||||
#
|
||||
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||
# You can send windows there and get them back later.
|
||||
|
||||
# Move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
#
|
||||
# Resizing containers:
|
||||
#
|
||||
mode "resize" {
|
||||
# left will shrink the containers width
|
||||
# right will grow the containers width
|
||||
# up will shrink the containers height
|
||||
# down will grow the containers height
|
||||
bindsym $left resize shrink width 10px
|
||||
bindsym $down resize grow height 10px
|
||||
bindsym $up resize shrink height 10px
|
||||
bindsym $right resize grow width 10px
|
||||
|
||||
# Ditto, with arrow keys
|
||||
bindsym Left resize shrink width 10px
|
||||
bindsym Down resize grow height 10px
|
||||
bindsym Up resize shrink height 10px
|
||||
bindsym Right resize grow width 10px
|
||||
|
||||
# Return to default mode
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
#
|
||||
# Screenshots
|
||||
# If I want to add more screenshot hotkeys in the future this can be wrapped in a mode.
|
||||
#
|
||||
|
||||
# Capturing a window does not seem to be supported by Sway yet.
|
||||
#bindsym w exec grim -T "$(swaymsg -t get_tree | jq -j '.. | select(.type?) | select(.focused).foreign_toplevel_identifier')" - | satty -f - && swaymsg 'mode "default"'
|
||||
|
||||
# Capture rectangle
|
||||
bindsym $mod+Shift+s exec grim -g "$(slurp)" - | satty --early-exit --copy-command "wl-copy" -f - && swaymsg 'mode "default"'
|
||||
|
||||
#
|
||||
# Theme
|
||||
#
|
||||
|
||||
include catppuccin-latte
|
||||
|
||||
# target title bg text indicator border
|
||||
client.focused $lavender $surface0 $text $rosewater $lavender
|
||||
client.focused_inactive $overlay0 $base $text $rosewater $overlay0
|
||||
client.unfocused $overlay0 $base $text $rosewater $overlay0
|
||||
client.urgent $peach $base $peach $overlay0 $peach
|
||||
client.placeholder $overlay0 $base $text $overlay0 $overlay0
|
||||
client.background $base
|
||||
|
||||
#
|
||||
# Launch default apps
|
||||
#
|
||||
|
||||
exec copyq
|
||||
|
||||
# Include configs from 3 locations:
|
||||
# - /usr/share/sway/config.d
|
||||
# - /etc/sway/config.d
|
||||
# - $XDG_CONFIG_HOME/sway/config.d ($HOME/.config/sway/config.d)
|
||||
#
|
||||
# If multiple directories contain the files with the same name, the later
|
||||
# directory takes precedence; `$XDG_CONFIG_HOME/sway/config.d/20-swayidle.conf`
|
||||
# will always be loaded instead of `/usr/share/sway/config.d/20-swayidle.conf`
|
||||
# or `/etc/sway/config.d/20-swayidle.conf`
|
||||
#
|
||||
# This mechanism permits overriding our default configuration per-system
|
||||
# (/etc) or per-user ($XDG_CONFIG_HOME) basis. Just create the file you
|
||||
# want to modify/override in the higher-level directory.
|
||||
#
|
||||
# For example, to disable the default bar from Fedora configs, you'll need to
|
||||
# $ echo -n > "$HOME/.config/sway/config.d/90-bar.conf"
|
||||
#
|
||||
# Note the quoting, the $() and the arguments quoting. All the parts are equally
|
||||
# important to make the magic work. And if you want to learn the secret behind
|
||||
# the trick, it's all in the `wordexp(3)`.
|
||||
#
|
||||
include '$(/usr/libexec/sway/layered-include "/usr/share/sway/config.d/*.conf" "/etc/sway/config.d/*.conf" "${XDG_CONFIG_HOME:-$HOME/.config}/sway/config.d/*.conf")'
|
||||
@@ -1,35 +0,0 @@
|
||||
# Image path supports environment variables and shell expansions,
|
||||
# e.g. image=$HOME/Pictures/default.png
|
||||
image=/usr/share/backgrounds/default.jxl
|
||||
scaling=fill
|
||||
|
||||
# Catppuccin Latte
|
||||
color=eff1f5
|
||||
bs-hl-color=dc8a78
|
||||
caps-lock-bs-hl-color=dc8a78
|
||||
caps-lock-key-hl-color=40a02b
|
||||
inside-color=00000000
|
||||
inside-clear-color=00000000
|
||||
inside-caps-lock-color=00000000
|
||||
inside-ver-color=00000000
|
||||
inside-wrong-color=00000000
|
||||
key-hl-color=40a02b
|
||||
layout-bg-color=00000000
|
||||
layout-border-color=00000000
|
||||
layout-text-color=4c4f69
|
||||
line-color=00000000
|
||||
line-clear-color=00000000
|
||||
line-caps-lock-color=00000000
|
||||
line-ver-color=00000000
|
||||
line-wrong-color=00000000
|
||||
ring-color=7287fd
|
||||
ring-clear-color=dc8a78
|
||||
ring-caps-lock-color=fe640b
|
||||
ring-ver-color=1e66f5
|
||||
ring-wrong-color=e64553
|
||||
separator-color=00000000
|
||||
text-color=4c4f69
|
||||
text-clear-color=dc8a78
|
||||
text-caps-lock-color=fe640b
|
||||
text-ver-color=1e66f5
|
||||
text-wrong-color=e64553
|
||||
@@ -1,225 +0,0 @@
|
||||
// -*- mode: jsonc -*-
|
||||
{
|
||||
// "layer": "top", // Waybar at top layer
|
||||
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
||||
"height": 30, // Waybar height (to be removed for auto height)
|
||||
// "width": 1280, // Waybar width
|
||||
"spacing": 0, // Gaps between modules (4px)
|
||||
// Choose the order of the modules
|
||||
"modules-left": [
|
||||
"sway/workspaces",
|
||||
"sway/mode",
|
||||
"sway/scratchpad"
|
||||
],
|
||||
"modules-center": [
|
||||
"sway/window"
|
||||
],
|
||||
"modules-right": [
|
||||
"custom/break-timer",
|
||||
"idle_inhibitor",
|
||||
"pulseaudio",
|
||||
"network",
|
||||
"power-profiles-daemon",
|
||||
"cpu",
|
||||
//"memory",
|
||||
//"temperature",
|
||||
"backlight",
|
||||
//"sway/language",
|
||||
"battery",
|
||||
"clock",
|
||||
"tray"
|
||||
],
|
||||
// Modules configuration
|
||||
// "sway/workspaces": {
|
||||
// "disable-scroll": true,
|
||||
// "all-outputs": true,
|
||||
// "warp-on-scroll": false,
|
||||
// "format": "{name}: {icon}",
|
||||
// "format-icons": {
|
||||
// "1": "",
|
||||
// "2": "",
|
||||
// "3": "",
|
||||
// "4": "",
|
||||
// "5": "",
|
||||
// "urgent": "", "focused": "", "default": "" }
|
||||
// },
|
||||
"keyboard-state": {
|
||||
"numlock": true,
|
||||
"capslock": true,
|
||||
"format": "{name} {icon}",
|
||||
"format-icons": {
|
||||
"locked": "",
|
||||
"unlocked": ""
|
||||
}
|
||||
},
|
||||
"sway/mode": {
|
||||
"format": "<span style=\"italic\">{}</span>"
|
||||
},
|
||||
"sway/scratchpad": {
|
||||
"format": "{icon} {count}",
|
||||
"show-empty": false,
|
||||
"format-icons": ["", ""],
|
||||
"tooltip": true,
|
||||
"tooltip-format": "{app}: {title}"
|
||||
},
|
||||
"mpd": {
|
||||
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
|
||||
"format-disconnected": "Disconnected ",
|
||||
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
||||
"unknown-tag": "N/A",
|
||||
"interval": 5,
|
||||
"consume-icons": {
|
||||
"on": " "
|
||||
},
|
||||
"random-icons": {
|
||||
"off": "<span color=\"#f53c3c\"></span> ",
|
||||
"on": " "
|
||||
},
|
||||
"repeat-icons": {
|
||||
"on": " "
|
||||
},
|
||||
"single-icons": {
|
||||
"on": "1 "
|
||||
},
|
||||
"state-icons": {
|
||||
"paused": "",
|
||||
"playing": ""
|
||||
},
|
||||
"tooltip-format": "MPD (connected)",
|
||||
"tooltip-format-disconnected": "MPD (disconnected)"
|
||||
},
|
||||
"custom/break-timer": {
|
||||
"exec": "break-status",
|
||||
"return-type": "json",
|
||||
"interval": 2,
|
||||
"format": "{} ⌛",
|
||||
"tooltip": true,
|
||||
"menu": "on-click",
|
||||
"menu-file": "/home/tgrosinger/code/wlr-break-timer/menu.xml",
|
||||
"menu-actions": {
|
||||
"skip-long": "break-event skip_long",
|
||||
"toggle-pause": "break-event toggle-pause",
|
||||
}
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
// "icon-size": 21,
|
||||
"spacing": 10,
|
||||
// "icons": {
|
||||
// "blueman": "bluetooth",
|
||||
// "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
|
||||
// }
|
||||
},
|
||||
"clock": {
|
||||
// "timezone": "America/New_York",
|
||||
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||
"format-alt": "{:%Y-%m-%d}"
|
||||
},
|
||||
"cpu": {
|
||||
"format": "{usage}% ",
|
||||
"tooltip": false
|
||||
},
|
||||
"memory": {
|
||||
"format": "{}% "
|
||||
},
|
||||
"temperature": {
|
||||
// "thermal-zone": 2,
|
||||
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||
"critical-threshold": 80,
|
||||
// "format-critical": "{temperatureC}°C {icon}",
|
||||
"format": "{temperatureC}°C {icon}",
|
||||
"format-icons": ["", "", ""]
|
||||
},
|
||||
"backlight": {
|
||||
// "device": "acpi_video1",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": ["🌑", "🌘", "🌗", "🌖", "🌕"]
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-full": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
"battery#bat2": {
|
||||
"bat": "BAT2"
|
||||
},
|
||||
"power-profiles-daemon": {
|
||||
"format": "{icon}",
|
||||
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
|
||||
"tooltip": true,
|
||||
"format-icons": {
|
||||
"default": "",
|
||||
"performance": "",
|
||||
"balanced": "",
|
||||
"power-saver": ""
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
},
|
||||
"custom/media": {
|
||||
"format": "{icon} {text}",
|
||||
"return-type": "json",
|
||||
"max-length": 40,
|
||||
"format-icons": {
|
||||
"spotify": "",
|
||||
"default": "🎜"
|
||||
},
|
||||
"escape": true,
|
||||
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
||||
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||
},
|
||||
"custom/power": {
|
||||
"format" : "⏻ ",
|
||||
"tooltip": false,
|
||||
"menu": "on-click",
|
||||
"menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
|
||||
"menu-actions": {
|
||||
"shutdown": "shutdown",
|
||||
"reboot": "reboot",
|
||||
"suspend": "systemctl suspend",
|
||||
"hibernate": "systemctl hibernate"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
@define-color rosewater #dc8a78;
|
||||
@define-color flamingo #dd7878;
|
||||
@define-color pink #ea76cb;
|
||||
@define-color mauve #8839ef;
|
||||
@define-color red #d20f39;
|
||||
@define-color maroon #e64553;
|
||||
@define-color peach #fe640b;
|
||||
@define-color yellow #df8e1d;
|
||||
@define-color green #40a02b;
|
||||
@define-color teal #179299;
|
||||
@define-color sky #04a5e5;
|
||||
@define-color sapphire #209fb5;
|
||||
@define-color blue #1e66f5;
|
||||
@define-color lavender #7287fd;
|
||||
@define-color text #4c4f69;
|
||||
@define-color subtext1 #5c5f77;
|
||||
@define-color subtext0 #6c6f85;
|
||||
@define-color overlay2 #7c7f93;
|
||||
@define-color overlay1 #8c8fa1;
|
||||
@define-color overlay0 #9ca0b0;
|
||||
@define-color surface2 #acb0be;
|
||||
@define-color surface1 #bcc0cc;
|
||||
@define-color surface0 #ccd0da;
|
||||
@define-color base #eff1f5;
|
||||
@define-color mantle #e6e9ef;
|
||||
@define-color crust #dce0e8;
|
||||
@@ -1,308 +0,0 @@
|
||||
@import "latte.css";
|
||||
|
||||
* {
|
||||
font-family: 'JetBrainsMono';
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: @base;
|
||||
border-bottom: 2px solid alpha(@crust, 0.3);
|
||||
color: #ffffff;
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
.module {
|
||||
color: @text;
|
||||
}
|
||||
.modules-right .module {
|
||||
background-color: @surface0;
|
||||
}
|
||||
|
||||
/*
|
||||
window#waybar.empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
window#waybar.solo {
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
*/
|
||||
|
||||
button {
|
||||
/* Use box-shadow instead of border so the text isn't offset */
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
/* Avoid rounded borders under each button name */
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
button:hover {
|
||||
background: inherit;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
#idle_inhibitor:hover,
|
||||
#battery:hover,
|
||||
#clock:hover,
|
||||
#pulseaudio:hover {
|
||||
background-color: @surface2;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background-color: transparent;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: @surface0;
|
||||
box-shadow: inset 0 -3px @overlay1;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: shade(@red, 0.7);
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: #64727D;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#wireplumber,
|
||||
#custom-media,
|
||||
#tray,
|
||||
#mode,
|
||||
#idle_inhibitor,
|
||||
#scratchpad,
|
||||
#power-profiles-daemon,
|
||||
#mpd {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
/* If workspaces is the leftmost module, omit left margin */
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the rightmost module, omit right margin */
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
background-color: @green;
|
||||
color: @mantle
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
/* Using steps() instead of linear as a timing function to limit cpu usage */
|
||||
#battery.warning:not(.charging) {
|
||||
background-color: @yellow;
|
||||
}
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: @red;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: steps(12);
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#power-profiles-daemon {
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.performance {
|
||||
background-color: #f53c3c;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.balanced {
|
||||
background-color: #2980b9;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.power-saver {
|
||||
background-color: #2ecc71;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
background-color: @crust;
|
||||
}
|
||||
|
||||
#custom-break-timer {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#custom-break-timer.warning {
|
||||
background-color: @yellow;
|
||||
}
|
||||
|
||||
#custom-break-timer.break {
|
||||
background-color: @green;
|
||||
color: @mantle
|
||||
}
|
||||
|
||||
#custom-break-timer.paused {
|
||||
background-color: @sky;
|
||||
}
|
||||
|
||||
#custom-break-timer.overdue {
|
||||
background-color: @red;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: steps(12);
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
background-color: @crust;
|
||||
color: @subtext1;
|
||||
}
|
||||
|
||||
#wireplumber {
|
||||
background-color: #fff0f5;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#wireplumber.muted {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#custom-media {
|
||||
background-color: #66cc99;
|
||||
color: #2a5c45;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
#custom-media.custom-spotify {
|
||||
background-color: #66cc99;
|
||||
}
|
||||
|
||||
#custom-media.custom-vlc {
|
||||
background-color: #ffa000;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: @teal;
|
||||
color: @base;
|
||||
}
|
||||
|
||||
#mpd {
|
||||
background-color: #66cc99;
|
||||
color: #2a5c45;
|
||||
}
|
||||
|
||||
#mpd.disconnected {
|
||||
background-color: #f53c3c;
|
||||
}
|
||||
|
||||
#mpd.stopped {
|
||||
background-color: #90b1b1;
|
||||
}
|
||||
|
||||
#mpd.paused {
|
||||
background-color: #51a37a;
|
||||
}
|
||||
|
||||
#language {
|
||||
background: #00b093;
|
||||
color: #740864;
|
||||
padding: 0 5px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state {
|
||||
background: #97e1ad;
|
||||
color: #000000;
|
||||
padding: 0 0px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state > label {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#keyboard-state > label.locked {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#scratchpad {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#scratchpad.empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#privacy {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#privacy-item {
|
||||
padding: 0 5px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#privacy-item.screenshare {
|
||||
background-color: #cf5700;
|
||||
}
|
||||
|
||||
#privacy-item.audio-in {
|
||||
background-color: #1ca000;
|
||||
}
|
||||
|
||||
#privacy-item.audio-out {
|
||||
background-color: #0069d4;
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
# Install homebrew dependencies
|
||||
sudo dnf group install development-tools
|
||||
|
||||
echo "Installing homebrew"
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# NOTE: Do not brew install anything with a dependency on node.
|
||||
# Instead, install with npm -g.
|
||||
|
||||
brew install \
|
||||
atuin \
|
||||
bat \
|
||||
btop \
|
||||
eza \
|
||||
fd \
|
||||
fish \
|
||||
fzf \
|
||||
gcc \
|
||||
gh \
|
||||
git \
|
||||
git-delta \
|
||||
jq \
|
||||
lazygit \
|
||||
neovim \
|
||||
restic \
|
||||
ripgrep \
|
||||
stow \
|
||||
tmux
|
||||
#crane \
|
||||
#deno \
|
||||
#dive \
|
||||
#go \
|
||||
#gron \
|
||||
#hadolint \
|
||||
#pnpm
|
||||
#sqlite \
|
||||
#stripe-cli \
|
||||
#visidata \
|
||||
|
||||
brew services start atuin
|
||||
|
||||
# Previously these were installed with npm because I didn't want to use brew to
|
||||
# install packages with a node dependency. I'm not sure if that is still required.
|
||||
#npm install -g @devcontainers/cli
|
||||
#npm install -g mjml
|
||||
#npm install -g jsonlint
|
||||
|
||||
# Install ble.sh
|
||||
# https://github.com/akinomyoga/ble.sh
|
||||
|
||||
# Install system packages
|
||||
sudo dnf install \
|
||||
alacritty \
|
||||
copyq \
|
||||
direnv \
|
||||
distrobox \
|
||||
fuse-libs \ # For running appimages
|
||||
grim \
|
||||
gstreamer1-plugin-openh264 mozilla-openh264 \ # For twitch videos
|
||||
podman \
|
||||
qalculate qalculate-gtk \ # Homebrew version installs x11 and waylany in brew.
|
||||
slurp \
|
||||
wf-recorder
|
||||
|
||||
# Install tailscale
|
||||
# https://tailscale.com/kb/1511/install-fedora-2
|
||||
|
||||
# Install satty
|
||||
# https://github.com/Satty-org/Satty
|
||||
|
||||
# Install flatpaks
|
||||
flatpak install io.dbeaver.DBeaverCommunity
|
||||
flatpak install flathub org.gimp.GIMP
|
||||
flatpak install flathub org.gnucash.GnuCash
|
||||
flatpak install flathub org.kde.digikam
|
||||
flatpak install flathub org.libreoffice.LibreOffice
|
||||
flatpak install flathub org.kde.okular
|
||||
flatpak install flathub org.inkscape.Inkscape
|
||||
flatpak install flathub org.kde.kdenlive
|
||||
|
||||
# Install devbox
|
||||
# https://www.jetify.com/docs/devbox/installing-devbox
|
||||
curl -fsSL https://get.jetify.com/devbox | bash
|
||||
|
||||
# Installing tmux plugins
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
|
||||
148
install.sh
Executable file
148
install.sh
Executable file
@@ -0,0 +1,148 @@
|
||||
#!/bin/bash
|
||||
|
||||
################################################################################
|
||||
#Copyright (C) 2022 Tony Grosinger. All rights reserved.
|
||||
#
|
||||
#Description:
|
||||
# This script can be run in two modes depending on the file structure of the
|
||||
# current working directory or the arguments passed to it.
|
||||
#
|
||||
# Mode 1: From within a cloned repository or downloaded snapshot with all files
|
||||
# already present and ready to be symlinked
|
||||
#
|
||||
# Mode 2: Standalone or through Curl in which case all required files will be
|
||||
# downloaded automatically to `~/.dotfiles` before creating symlinks.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
DOTFILES_DIR="${HOME}/.dotfiles"
|
||||
GIT_REPO_BASE="https://github.com/tgrosinger/dotfiles"
|
||||
GIT_REPO="${GIT_REPO_BASE}.git"
|
||||
REPO_TAR="${GIT_REPO_BASE}/archive/master.tar.gz"
|
||||
|
||||
################################################################################
|
||||
# Define functions
|
||||
################################################################################
|
||||
|
||||
# Remove a file if it exists then create a symlink to the one contained in ${DOTFILES_DIR}
|
||||
function linkFile() {
|
||||
ln -fns ${DOTFILES_DIR}/$1 $1;
|
||||
}
|
||||
|
||||
# Create a directory named by first parameter. Delete directory first if it already exists.
|
||||
function createDirectory() {
|
||||
if [ -d $1 ]; then rm -rf $1; fi
|
||||
mkdir $1
|
||||
}
|
||||
|
||||
# Perform the actual work of copying files and creating symlinks.
|
||||
# Requires a home directory argument.
|
||||
function performSetup() {
|
||||
if [ ${#} != 1 ]; then
|
||||
echo "Must pass home directory to ${FUNCNAME}"
|
||||
exit 1
|
||||
fi
|
||||
home=${1}
|
||||
|
||||
echo "Moving to Home directory..."
|
||||
pushd ${home} > /dev/null
|
||||
|
||||
echo "Linking shell configs..."
|
||||
linkFile ".bashrc"
|
||||
|
||||
echo "Linking vim..."
|
||||
linkFile ".vim"
|
||||
linkFile ".vimrc"
|
||||
|
||||
echo "Linking Git..."
|
||||
linkFile ".gitconfig"
|
||||
linkFile ".gitattributes"
|
||||
|
||||
echo "Linking LazyGit..."
|
||||
mkdir -p ~/.config/lazygit
|
||||
ln -fns ${DOTFILES_DIR}/.lazygit ~/.config/lazygit/config.yml
|
||||
|
||||
echo "Linking tmux..."
|
||||
linkFile ".tmux.conf"
|
||||
|
||||
echo "Linking inputrc..."
|
||||
linkFile ".inputrc"
|
||||
|
||||
echo "Installing tmux plugins"
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
|
||||
echo "Linking gitmux..."
|
||||
linkFile ".gitmux.conf"
|
||||
|
||||
echo "Linking neovim config"
|
||||
ln -fns ${DOTFILES_DIR}/nvim ~/.config/nvim
|
||||
|
||||
echo "Installing homebrew"
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
if [[ "${OSTYPE}" == "darwin"* ]]; then
|
||||
brew install tmux
|
||||
else
|
||||
sudo apt install build-essential visidata
|
||||
fi
|
||||
|
||||
brew install \
|
||||
gcc \
|
||||
tmux neovim \
|
||||
eza bat fzf ripgrep fd jq gron \
|
||||
git lazygit git-delta \
|
||||
crane dive \
|
||||
go sqlite \
|
||||
stripe-cli restic
|
||||
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Initialize (Determine mode)
|
||||
################################################################################
|
||||
|
||||
# Determine which mode we are running in. (Does the install script exist in the dotfiles directory?)
|
||||
if [ -f ${DOTFILES_DIR}/install.sh ]; then
|
||||
echo "Running in Mode 1: Already cloned repository"
|
||||
performSetup ${HOME}
|
||||
echo "Done! Restart your shell to see changes"
|
||||
else
|
||||
echo "Running in Mode 2: Direct from Curl"
|
||||
|
||||
# Make sure git is installed. Exit if it isn't.
|
||||
if which git; then
|
||||
# Git is installed, clone the repository using read-only url
|
||||
if [ -d ${DOTFILES_DIR} ]; then
|
||||
if [ -d ${DOTFILES_DIR}/.git ]; then
|
||||
echo "Updating dotfiles repository in ${DOTFILES_DIR}"
|
||||
pushd ${DOTFILES_DIR} > /dev/null
|
||||
git pull > /dev/null
|
||||
popd > /dev/null
|
||||
else
|
||||
echo "Cloning dotfiles repository to ${DOTFILES_DIR}"
|
||||
rm -rf ${DOTFILES_DIR}
|
||||
git clone ${GIT_REPO} ${DOTFILES_DIR}
|
||||
fi
|
||||
else
|
||||
echo "Cloning dotfiles repository to ${DOTFILES_DIR}"
|
||||
git clone ${GIT_REPO} ${DOTFILES_DIR}
|
||||
fi
|
||||
else
|
||||
# Git is not installed, download the zip and extract
|
||||
if ! which wget; then
|
||||
echo "You must have either git or wget installed. Please install one before continuing."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d ${DOTFILES_DIR} ]; then
|
||||
rm -rf ${DOTFILES_DIR}
|
||||
fi
|
||||
|
||||
mkdir ${DOTFILES_DIR}
|
||||
curl -L ${REPO_TAR} | tar zx --strip 1 --directory ${DOTFILES_DIR}
|
||||
fi
|
||||
|
||||
performSetup ${HOME}
|
||||
echo "Done! Restart your shell to see changes"
|
||||
fi
|
||||
7
nvim/.gitignore
vendored
Normal file
7
nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
tags
|
||||
test.sh
|
||||
.luarc.json
|
||||
nvim
|
||||
|
||||
spell/
|
||||
lazy-lock.json
|
||||
6
nvim/.stylua.toml
Normal file
6
nvim/.stylua.toml
Normal file
@@ -0,0 +1,6 @@
|
||||
column_width = 160
|
||||
line_endings = "Unix"
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
quote_style = "AutoPreferSingle"
|
||||
call_parentheses = "None"
|
||||
21
nvim/LICENSE.md
Normal file
21
nvim/LICENSE.md
Normal file
@@ -0,0 +1,21 @@
|
||||
https://github.com/nvim-lua/kickstart.nvim
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
229
nvim/README.md
Normal file
229
nvim/README.md
Normal file
@@ -0,0 +1,229 @@
|
||||
# kickstart.nvim
|
||||
|
||||
## Introduction
|
||||
|
||||
A starting point for Neovim that is:
|
||||
|
||||
* Small
|
||||
* Single-file
|
||||
* Completely Documented
|
||||
|
||||
**NOT** a Neovim distribution, but instead a starting point for your configuration.
|
||||
|
||||
## Installation
|
||||
|
||||
### Install Neovim
|
||||
|
||||
Kickstart.nvim targets *only* the latest
|
||||
['stable'](https://github.com/neovim/neovim/releases/tag/stable) and latest
|
||||
['nightly'](https://github.com/neovim/neovim/releases/tag/nightly) of Neovim.
|
||||
If you are experiencing issues, please make sure you have the latest versions.
|
||||
|
||||
### Install External Dependencies
|
||||
|
||||
External Requirements:
|
||||
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
|
||||
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
|
||||
- Clipboard tool (xclip/xsel/win32yank or other depending on platform)
|
||||
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
|
||||
- if you have it set `vim.g.have_nerd_font` in `init.lua` to true
|
||||
- Language Setup:
|
||||
- If want to write Typescript, you need `npm`
|
||||
- If want to write Golang, you will need `go`
|
||||
- etc.
|
||||
|
||||
> **NOTE**
|
||||
> See [Install Recipes](#Install-Recipes) for additional Windows and Linux specific notes
|
||||
> and quick install snippets
|
||||
|
||||
### Install Kickstart
|
||||
|
||||
> **NOTE**
|
||||
> [Backup](#FAQ) your previous configuration (if any exists)
|
||||
|
||||
Neovim's configurations are located under the following paths, depending on your OS:
|
||||
|
||||
| OS | PATH |
|
||||
| :- | :--- |
|
||||
| Linux, MacOS | `$XDG_CONFIG_HOME/nvim`, `~/.config/nvim` |
|
||||
| Windows (cmd)| `%userprofile%\AppData\Local\nvim\` |
|
||||
| Windows (powershell)| `$env:USERPROFILE\AppData\Local\nvim\` |
|
||||
|
||||
#### Recommended Step
|
||||
|
||||
[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo
|
||||
so that you have your own copy that you can modify, then install by cloning the
|
||||
fork to your machine using one of the commands below, depending on your OS.
|
||||
|
||||
> **NOTE**
|
||||
> Your fork's url will be something like this:
|
||||
> `https://github.com/<your_github_username>/kickstart.nvim.git`
|
||||
|
||||
#### Clone kickstart.nvim
|
||||
> **NOTE**
|
||||
> If following the recommended step above (i.e., forking the repo), replace
|
||||
> `nvim-lua` with `<your_github_username>` in the commands below
|
||||
|
||||
<details><summary> Linux and Mac </summary>
|
||||
|
||||
```sh
|
||||
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details><summary> Windows </summary>
|
||||
|
||||
If you're using `cmd.exe`:
|
||||
|
||||
```
|
||||
git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\
|
||||
```
|
||||
|
||||
If you're using `powershell.exe`
|
||||
|
||||
```
|
||||
git clone https://github.com/nvim-lua/kickstart.nvim.git $env:USERPROFILE\AppData\Local\nvim\
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### Post Installation
|
||||
|
||||
Start Neovim
|
||||
|
||||
```sh
|
||||
nvim
|
||||
```
|
||||
|
||||
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
|
||||
current plugin status. Hit `q` to close the window.
|
||||
|
||||
Read through the `init.lua` file in your configuration folder for more
|
||||
information about extending and exploring Neovim. That also includes
|
||||
examples of adding popularly requested plugins.
|
||||
|
||||
|
||||
### Getting Started
|
||||
|
||||
[The Only Video You Need to Get Started with Neovim](https://youtu.be/m8C0Cq9Uv9o)
|
||||
|
||||
### FAQ
|
||||
|
||||
* What should I do if I already have a pre-existing neovim configuration?
|
||||
* You should back it up and then delete all associated files.
|
||||
* This includes your existing init.lua and the neovim files in `~/.local`
|
||||
which can be deleted with `rm -rf ~/.local/share/nvim/`
|
||||
* Can I keep my existing configuration in parallel to kickstart?
|
||||
* Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME`
|
||||
to maintain multiple configurations. For example, you can install the kickstart
|
||||
configuration in `~/.config/nvim-kickstart` and create an alias:
|
||||
```
|
||||
alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim'
|
||||
```
|
||||
When you run Neovim using `nvim-kickstart` alias it will use the alternative
|
||||
config directory and the matching local directory
|
||||
`~/.local/share/nvim-kickstart`. You can apply this approach to any Neovim
|
||||
distribution that you would like to try out.
|
||||
* What if I want to "uninstall" this configuration:
|
||||
* See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information
|
||||
* Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files?
|
||||
* The main purpose of kickstart is to serve as a teaching tool and a reference
|
||||
configuration that someone can easily use to `git clone` as a basis for their own.
|
||||
As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
|
||||
into smaller parts. A fork of kickstart that does this while maintaining the
|
||||
same functionality is available here:
|
||||
* [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
|
||||
* Discussions on this topic can be found here:
|
||||
* [Restructure the configuration](https://github.com/nvim-lua/kickstart.nvim/issues/218)
|
||||
* [Reorganize init.lua into a multi-file setup](https://github.com/nvim-lua/kickstart.nvim/pull/473)
|
||||
|
||||
### Install Recipes
|
||||
|
||||
Below you can find OS specific install instructions for Neovim and dependencies.
|
||||
|
||||
After installing all the dependencies continue with the [Install Kickstart](#Install-Kickstart) step.
|
||||
|
||||
#### Windows Installation
|
||||
|
||||
<details><summary>Windows with Microsoft C++ Build Tools and CMake</summary>
|
||||
Installation may require installing build tools and updating the run command for `telescope-fzf-native`
|
||||
|
||||
See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation)
|
||||
|
||||
This requires:
|
||||
|
||||
- Install CMake and the Microsoft C++ Build Tools on Windows
|
||||
|
||||
```lua
|
||||
{'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }
|
||||
```
|
||||
</details>
|
||||
<details><summary>Windows with gcc/make using chocolatey</summary>
|
||||
Alternatively, one can install gcc and make which don't require changing the config,
|
||||
the easiest way is to use choco:
|
||||
|
||||
1. install [chocolatey](https://chocolatey.org/install)
|
||||
either follow the instructions on the page or use winget,
|
||||
run in cmd as **admin**:
|
||||
```
|
||||
winget install --accept-source-agreements chocolatey.chocolatey
|
||||
```
|
||||
|
||||
2. install all requirements using choco, exit previous cmd and
|
||||
open a new one so that choco path is set, and run in cmd as **admin**:
|
||||
```
|
||||
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
|
||||
```
|
||||
</details>
|
||||
<details><summary>WSL (Windows Subsystem for Linux)</summary>
|
||||
|
||||
```
|
||||
wsl --install
|
||||
wsl
|
||||
sudo add-apt-repository ppa:neovim-ppa/unstable -y
|
||||
sudo apt update
|
||||
sudo apt install make gcc ripgrep unzip git xclip neovim
|
||||
```
|
||||
</details>
|
||||
|
||||
#### Linux Install
|
||||
<details><summary>Ubuntu Install Steps</summary>
|
||||
|
||||
```
|
||||
sudo add-apt-repository ppa:neovim-ppa/unstable -y
|
||||
sudo apt update
|
||||
sudo apt install make gcc ripgrep unzip git xclip neovim
|
||||
```
|
||||
</details>
|
||||
<details><summary>Debian Install Steps</summary>
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt install make gcc ripgrep unzip git xclip curl
|
||||
|
||||
# Now we install nvim
|
||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
|
||||
sudo rm -rf /opt/nvim-linux64
|
||||
sudo mkdir -p /opt/nvim-linux64
|
||||
sudo chmod a+rX /opt/nvim-linux64
|
||||
sudo tar -C /opt -xzf nvim-linux64.tar.gz
|
||||
|
||||
# make it available in /usr/local/bin, distro installs to /usr/bin
|
||||
sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/
|
||||
```
|
||||
</details>
|
||||
<details><summary>Fedora Install Steps</summary>
|
||||
|
||||
```
|
||||
sudo dnf install -y gcc make git ripgrep fd-find unzip neovim
|
||||
```
|
||||
</details>
|
||||
|
||||
<details><summary>Arch Install Steps</summary>
|
||||
|
||||
```
|
||||
sudo pacman -S --noconfirm --needed gcc make git ripgrep fd unzip neovim
|
||||
```
|
||||
</details>
|
||||
|
||||
24
nvim/doc/kickstart.txt
Normal file
24
nvim/doc/kickstart.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
================================================================================
|
||||
INTRODUCTION *kickstart.nvim*
|
||||
|
||||
Kickstart.nvim is a project to help you get started on your neovim journey.
|
||||
|
||||
*kickstart-is-not*
|
||||
It is not:
|
||||
- Complete framework for every plugin under the sun
|
||||
- Place to add every plugin that could ever be useful
|
||||
|
||||
*kickstart-is*
|
||||
It is:
|
||||
- Somewhere that has a good start for the most common "IDE" type features:
|
||||
- autocompletion
|
||||
- goto-definition
|
||||
- find references
|
||||
- fuzzy finding
|
||||
- and hinting at what more can be done :)
|
||||
- A place to _kickstart_ your journey.
|
||||
- You should fork this project and use/modify it so that it matches your
|
||||
style and preferences. If you don't want to do that, there are probably
|
||||
other projects that would fit much better for you (and that's great!)!
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
897
nvim/init.lua
Normal file
897
nvim/init.lua
Normal file
@@ -0,0 +1,897 @@
|
||||
--[[
|
||||
|
||||
What is Kickstart?
|
||||
|
||||
Kickstart.nvim is *not* a distribution.
|
||||
|
||||
Kickstart.nvim is a starting point for your own configuration.
|
||||
The goal is that you can read every line of code, top-to-bottom, understand
|
||||
what your configuration is doing, and modify it to suit your needs.
|
||||
|
||||
Once you've done that, you can start exploring, configuring and tinkering to
|
||||
make Neovim your own! That might mean leaving Kickstart just the way it is for a while
|
||||
or immediately breaking it into modular pieces. It's up to you!
|
||||
|
||||
If you don't know anything about Lua, I recommend taking some time to read through
|
||||
a guide. One possible example which will only take 10-15 minutes:
|
||||
- https://learnxinyminutes.com/docs/lua/
|
||||
|
||||
After understanding a bit more about Lua, you can use `:help lua-guide` as a
|
||||
reference for how Neovim integrates Lua.
|
||||
- :help lua-guide
|
||||
- (or HTML version): https://neovim.io/doc/user/lua-guide.html
|
||||
|
||||
Kickstart Guide:
|
||||
|
||||
First, run AND READ `:help`.
|
||||
This will open up a help window with some basic information
|
||||
about reading, navigating and searching the builtin help documentation.
|
||||
|
||||
This should be the first place you go to look when you're stuck or confused
|
||||
with something. It's one of my favorite Neovim features.
|
||||
|
||||
MOST IMPORTANTLY, we provide a keymap "<space>sh" to [s]earch the [h]elp documentation,
|
||||
which is very useful when you're not exactly sure of what you're looking for.
|
||||
|
||||
I have left several `:help X` comments throughout the init.lua
|
||||
These are hints about where to find more information about the relevant settings,
|
||||
plugins or Neovim features used in Kickstart.
|
||||
|
||||
If you experience any errors while trying to install kickstart, run `:checkhealth` for more info.
|
||||
|
||||
--]]
|
||||
|
||||
-- Set <space> as the leader key
|
||||
-- See `:help mapleader`
|
||||
-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used)
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||
vim.g.have_nerd_font = true
|
||||
|
||||
-- [[ Setting options ]]
|
||||
-- See `:help vim.opt`
|
||||
-- NOTE: You can change these options as you wish!
|
||||
-- For more options, you can see `:help option-list`
|
||||
|
||||
-- Make line numbers default
|
||||
vim.opt.number = true
|
||||
-- You can also add relative line numbers, to help with jumping.
|
||||
-- Experiment for yourself to see if you like it!
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||
vim.opt.mouse = 'a'
|
||||
|
||||
-- Don't show the mode, since it's already in the status line
|
||||
vim.opt.showmode = false
|
||||
|
||||
-- Sync clipboard between OS and Neovim.
|
||||
-- Remove this option if you want your OS clipboard to remain independent.
|
||||
-- See `:help 'clipboard'`
|
||||
vim.opt.clipboard = 'unnamedplus'
|
||||
|
||||
-- Enable break indent
|
||||
vim.opt.breakindent = true
|
||||
|
||||
-- Save undo history
|
||||
vim.opt.undofile = true
|
||||
|
||||
-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
|
||||
-- Keep signcolumn on by default
|
||||
vim.opt.signcolumn = 'yes'
|
||||
|
||||
-- Decrease update time
|
||||
vim.opt.updatetime = 250
|
||||
|
||||
-- Decrease mapped sequence wait time
|
||||
-- Displays which-key popup sooner
|
||||
vim.opt.timeoutlen = 300
|
||||
|
||||
-- Configure how new splits should be opened
|
||||
vim.opt.splitright = true
|
||||
vim.opt.splitbelow = true
|
||||
|
||||
-- Sets how neovim will display certain whitespace characters in the editor.
|
||||
-- See `:help 'list'`
|
||||
-- and `:help 'listchars'`
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' }
|
||||
|
||||
-- Preview substitutions live, as you type!
|
||||
vim.opt.inccommand = 'split'
|
||||
|
||||
-- Show which line your cursor is on
|
||||
vim.opt.cursorline = true
|
||||
|
||||
-- Minimal number of screen lines to keep above and below the cursor.
|
||||
vim.opt.scrolloff = 10
|
||||
|
||||
-- [[ Basic Keymaps ]]
|
||||
-- See `:help vim.keymap.set()`
|
||||
|
||||
-- Set highlight on search, but clear on pressing <Esc> in normal mode
|
||||
vim.opt.hlsearch = true
|
||||
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
|
||||
|
||||
-- Diagnostic keymaps
|
||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous [D]iagnostic message' })
|
||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next [D]iagnostic message' })
|
||||
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, { desc = 'Show diagnostic [E]rror messages' })
|
||||
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
|
||||
|
||||
-- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier
|
||||
-- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which
|
||||
-- is not what someone will guess without a bit more experience.
|
||||
--
|
||||
-- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping
|
||||
-- or just use <C-\><C-n> to exit terminal mode
|
||||
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
|
||||
|
||||
-- TIP: Disable arrow keys in normal mode
|
||||
vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
|
||||
vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
|
||||
vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
|
||||
vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
|
||||
|
||||
-- Keybinds to make split navigation easier.
|
||||
-- Use CTRL+<hjkl> to switch between windows
|
||||
--
|
||||
-- See `:help wincmd` for a list of all window commands
|
||||
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
|
||||
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
|
||||
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
|
||||
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
|
||||
|
||||
-- [[ Utility functions ]]
|
||||
|
||||
-- Retreive selected text from the editor.
|
||||
function vim.getVisualSelection()
|
||||
vim.cmd 'noau normal! "vy"'
|
||||
local text = vim.fn.getreg 'v'
|
||||
vim.fn.setreg('v', {})
|
||||
|
||||
text = string.gsub(text, '\n', '')
|
||||
if #text > 0 then
|
||||
return text
|
||||
else
|
||||
return ''
|
||||
end
|
||||
end
|
||||
|
||||
-- [[ Basic Autocommands ]]
|
||||
-- See `:help lua-guide-autocommands`
|
||||
|
||||
-- Highlight when yanking (copying) text
|
||||
-- Try it with `yap` in normal mode
|
||||
-- See `:help vim.highlight.on_yank()`
|
||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||
desc = 'Highlight when yanking (copying) text',
|
||||
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Trim trailing whitespace on save.
|
||||
vim.api.nvim_create_autocmd({ 'BufWritePre' }, {
|
||||
pattern = { '*' },
|
||||
command = [[%s/\s\+$//e]],
|
||||
})
|
||||
|
||||
-- [[ Install `lazy.nvim` plugin manager ]]
|
||||
-- See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info
|
||||
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
|
||||
vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
|
||||
end ---@diagnostic disable-next-line: undefined-field
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- [[ Configure and install plugins ]]
|
||||
--
|
||||
-- To check the current status of your plugins, run
|
||||
-- :Lazy
|
||||
--
|
||||
-- You can press `?` in this menu for help. Use `:q` to close the window
|
||||
--
|
||||
-- To update plugins you can run
|
||||
-- :Lazy update
|
||||
--
|
||||
-- NOTE: Here is where you install your plugins.
|
||||
require('lazy').setup({
|
||||
'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically
|
||||
|
||||
-- Use `opts = {}` to force a plugin to be loaded.
|
||||
--
|
||||
-- This is equivalent to:
|
||||
-- require('Comment').setup({})
|
||||
|
||||
-- "gc" to comment visual regions/lines
|
||||
{ 'numToStr/Comment.nvim', opts = {} },
|
||||
|
||||
-- NOTE: Plugins can also be configured to run Lua code when they are loaded.
|
||||
--
|
||||
-- This is often very useful to both group configuration, as well as handle
|
||||
-- lazy loading plugins that don't need to be loaded immediately at startup.
|
||||
--
|
||||
-- For example, in the following configuration, we use:
|
||||
-- event = 'VimEnter'
|
||||
--
|
||||
-- which loads which-key before all the UI elements are loaded. Events can be
|
||||
-- normal autocommands events (`:help autocmd-events`).
|
||||
--
|
||||
-- Then, because we use the `config` key, the configuration only runs
|
||||
-- after the plugin has been loaded:
|
||||
-- config = function() ... end
|
||||
|
||||
{ -- Useful plugin to show you pending keybinds.
|
||||
'folke/which-key.nvim',
|
||||
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
|
||||
config = function() -- This is the function that runs, AFTER loading
|
||||
require('which-key').setup()
|
||||
|
||||
-- Document existing key chains
|
||||
require('which-key').register {
|
||||
['<leader>c'] = { name = '[C]ode', _ = 'which_key_ignore' },
|
||||
['<leader>d'] = { name = '[D]ocument', _ = 'which_key_ignore' },
|
||||
['<leader>r'] = { name = '[R]ename', _ = 'which_key_ignore' },
|
||||
['<leader>s'] = { name = '[S]earch', _ = 'which_key_ignore' },
|
||||
['<leader>w'] = { name = '[W]orkspace', _ = 'which_key_ignore' },
|
||||
['<leader>t'] = { name = '[T]oggle', _ = 'which_key_ignore' },
|
||||
['<leader>h'] = { name = 'Git [H]unk', _ = 'which_key_ignore' },
|
||||
['<leader>x'] = { name = 'Trouble [X]', _ = 'which_key_ignore' },
|
||||
}
|
||||
-- visual mode
|
||||
require('which-key').register({
|
||||
['<leader>h'] = { 'Git [H]unk' },
|
||||
}, { mode = 'v' })
|
||||
end,
|
||||
},
|
||||
|
||||
{ -- Fuzzy Finder (files, lsp, etc)
|
||||
'nvim-telescope/telescope.nvim',
|
||||
event = 'VimEnter',
|
||||
branch = '0.1.x',
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
{ -- If encountering errors, see telescope-fzf-native README for installation instructions
|
||||
'nvim-telescope/telescope-fzf-native.nvim',
|
||||
|
||||
-- `build` is used to run some command when the plugin is installed/updated.
|
||||
-- This is only run then, not every time Neovim starts up.
|
||||
build = 'make',
|
||||
|
||||
-- `cond` is a condition used to determine whether this plugin should be
|
||||
-- installed and loaded.
|
||||
cond = function()
|
||||
return vim.fn.executable 'make' == 1
|
||||
end,
|
||||
},
|
||||
{ 'nvim-telescope/telescope-ui-select.nvim' },
|
||||
|
||||
-- Useful for getting pretty icons, but requires a Nerd Font.
|
||||
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
|
||||
},
|
||||
config = function()
|
||||
-- Telescope is a fuzzy finder that comes with a lot of different things that
|
||||
-- it can fuzzy find! It's more than just a "file finder", it can search
|
||||
-- many different aspects of Neovim, your workspace, LSP, and more!
|
||||
--
|
||||
-- The easiest way to use Telescope, is to start by doing something like:
|
||||
-- :Telescope help_tags
|
||||
--
|
||||
-- After running this command, a window will open up and you're able to
|
||||
-- type in the prompt window. You'll see a list of `help_tags` options and
|
||||
-- a corresponding preview of the help.
|
||||
--
|
||||
-- Two important keymaps to use while in Telescope are:
|
||||
-- - Insert mode: <c-/>
|
||||
-- - Normal mode: ?
|
||||
--
|
||||
-- This opens a window that shows you all of the keymaps for the current
|
||||
-- Telescope picker. This is really useful to discover what Telescope can
|
||||
-- do as well as how to actually do it!
|
||||
|
||||
-- [[ Configure Telescope ]]
|
||||
-- See `:help telescope` and `:help telescope.setup()`
|
||||
require('telescope').setup {
|
||||
-- You can put your default mappings / updates / etc. in here
|
||||
-- All the info you're looking for is in `:help telescope.setup()`
|
||||
--
|
||||
defaults = {
|
||||
mappings = {
|
||||
n = {
|
||||
-- Add action to delete a buffer from the Telescope list
|
||||
['<c-d>'] = require('telescope.actions').delete_buffer,
|
||||
},
|
||||
i = {
|
||||
-- ['<c-enter>'] = 'to_fuzzy_refine',
|
||||
|
||||
-- Add action to delete a buffer from the Telescope list
|
||||
['<c-d>'] = require('telescope.actions').delete_buffer,
|
||||
},
|
||||
},
|
||||
},
|
||||
-- pickers = {}
|
||||
extensions = {
|
||||
['ui-select'] = {
|
||||
require('telescope.themes').get_dropdown(),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Enable Telescope extensions if they are installed
|
||||
pcall(require('telescope').load_extension, 'fzf')
|
||||
pcall(require('telescope').load_extension, 'ui-select')
|
||||
|
||||
-- See `:help telescope.builtin`
|
||||
local builtin = require 'telescope.builtin'
|
||||
vim.keymap.set('n', '<leader>sh', builtin.help_tags, { desc = '[S]earch [H]elp' })
|
||||
vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' })
|
||||
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
|
||||
vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
|
||||
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
|
||||
vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' })
|
||||
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
|
||||
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
|
||||
vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' })
|
||||
|
||||
-- vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
||||
vim.keymap.set('n', '<leader>s.', function()
|
||||
builtin.oldfiles {
|
||||
cwd_only = true,
|
||||
}
|
||||
end, { desc = '[S]earch Recent Files in CWD' })
|
||||
|
||||
vim.keymap.set('v', '<leader>g', function()
|
||||
builtin.grep_string {
|
||||
search = vim.getVisualSelection(),
|
||||
prompt_title = 'Grep all files',
|
||||
}
|
||||
end, { desc = '[G]rep everywhere' })
|
||||
|
||||
-- Slightly advanced example of overriding default behavior and theme
|
||||
vim.keymap.set('n', '<leader>/', function()
|
||||
-- You can pass additional configuration to Telescope to change the theme, layout, etc.
|
||||
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
})
|
||||
end, { desc = '[/] Fuzzily search in current buffer' })
|
||||
|
||||
-- It's also possible to pass additional configuration options.
|
||||
-- See `:help telescope.builtin.live_grep()` for information about particular keys
|
||||
vim.keymap.set('n', '<leader>s/', function()
|
||||
builtin.live_grep {
|
||||
grep_open_files = true,
|
||||
prompt_title = 'Live Grep in Open Files',
|
||||
}
|
||||
end, { desc = '[S]earch [/] in Open Files' })
|
||||
|
||||
-- Shortcut for searching your Neovim configuration files
|
||||
vim.keymap.set('n', '<leader>sn', function()
|
||||
builtin.find_files { cwd = vim.fn.stdpath 'config' }
|
||||
end, { desc = '[S]earch [N]eovim files' })
|
||||
end,
|
||||
},
|
||||
|
||||
{ -- LSP Configuration & Plugins
|
||||
'neovim/nvim-lspconfig',
|
||||
dependencies = {
|
||||
-- Automatically install LSPs and related tools to stdpath for Neovim
|
||||
{ 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||
|
||||
-- Useful status updates for LSP.
|
||||
-- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})`
|
||||
{ 'j-hui/fidget.nvim', opts = {} },
|
||||
|
||||
-- `neodev` configures Lua LSP for your Neovim config, runtime and plugins
|
||||
-- used for completion, annotations and signatures of Neovim apis
|
||||
{ 'folke/neodev.nvim', opts = {} },
|
||||
},
|
||||
config = function()
|
||||
-- LSP provides Neovim with features like:
|
||||
-- - Go to definition
|
||||
-- - Find references
|
||||
-- - Autocompletion
|
||||
-- - Symbol Search
|
||||
-- - and more!
|
||||
--
|
||||
-- Thus, Language Servers are external tools that must be installed separately from
|
||||
-- Neovim. This is where `mason` and related plugins come into play.
|
||||
--
|
||||
-- If you're wondering about lsp vs treesitter, you can check out the wonderfully
|
||||
-- and elegantly composed help section, `:help lsp-vs-treesitter`
|
||||
|
||||
-- This function gets run when an LSP attaches to a particular buffer.
|
||||
-- That is to say, every time a new file is opened that is associated with
|
||||
-- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this
|
||||
-- function will be executed to configure the current buffer
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }),
|
||||
callback = function(event)
|
||||
-- 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 map = function(keys, func, desc)
|
||||
vim.keymap.set('n', keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc })
|
||||
end
|
||||
|
||||
-- Jump to the definition of the word under your cursor.
|
||||
-- This is where a variable was first declared, or where a function is defined, etc.
|
||||
-- To jump back, press <C-t>.
|
||||
map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
|
||||
|
||||
-- Find references for the word under your cursor.
|
||||
map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
|
||||
|
||||
-- Jump to the implementation of the word under your cursor.
|
||||
-- Useful when your language has ways of declaring types without an actual implementation.
|
||||
map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
|
||||
|
||||
-- Jump to the type of the word under your cursor.
|
||||
-- Useful when you're not sure what type a variable is and you want to see
|
||||
-- the definition of its *type*, not where it was *defined*.
|
||||
map('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
|
||||
|
||||
-- Fuzzy find all the symbols in your current document.
|
||||
-- Symbols are things like variables, functions, types, etc.
|
||||
map('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
|
||||
|
||||
-- Fuzzy find all the symbols in your current workspace.
|
||||
-- Similar to document symbols, except searches over your entire project.
|
||||
map('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
|
||||
|
||||
-- Rename the variable under your cursor.
|
||||
-- Most Language Servers support renaming across files, etc.
|
||||
map('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
|
||||
|
||||
-- Execute a code action, usually your cursor needs to be on top of an error
|
||||
-- or a suggestion from your LSP for this to activate.
|
||||
map('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
|
||||
|
||||
-- Opens a popup that displays documentation about the word under your cursor
|
||||
-- See `:help K` for why this keymap.
|
||||
map('K', vim.lsp.buf.hover, 'Hover Documentation')
|
||||
|
||||
-- WARN: This is not Goto Definition, this is Goto Declaration.
|
||||
-- For example, in C this would take you to the header.
|
||||
map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
|
||||
|
||||
-- The following two autocommands are used to highlight references of the
|
||||
-- word under your cursor when your cursor rests there for a little while.
|
||||
-- See `:help CursorHold` for information about when this is executed
|
||||
--
|
||||
-- When you move your cursor, the highlights will be cleared (the second autocommand).
|
||||
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||
if client and client.server_capabilities.documentHighlightProvider then
|
||||
local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false })
|
||||
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
|
||||
buffer = event.buf,
|
||||
group = highlight_augroup,
|
||||
callback = vim.lsp.buf.document_highlight,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
|
||||
buffer = event.buf,
|
||||
group = highlight_augroup,
|
||||
callback = vim.lsp.buf.clear_references,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd('LspDetach', {
|
||||
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
|
||||
callback = function(event2)
|
||||
vim.lsp.buf.clear_references()
|
||||
vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf }
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- The following autocommand is used to enable inlay hints in your
|
||||
-- code, if the language server you are using supports them
|
||||
--
|
||||
-- This may be unwanted, since they displace some of your code
|
||||
if client and client.server_capabilities.inlayHintProvider and vim.lsp.inlay_hint then
|
||||
map('<leader>th', function()
|
||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||
end, '[T]oggle Inlay [H]ints')
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- LSP servers and clients are able to communicate to each other what features they support.
|
||||
-- By default, Neovim doesn't support everything that is in the LSP specification.
|
||||
-- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
|
||||
-- So, we create new capabilities with nvim cmp, and then broadcast that to the servers.
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_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. Available keys are:
|
||||
-- - cmd (table): Override the default command used to start the server
|
||||
-- - filetypes (table): Override the default list of associated filetypes for the server
|
||||
-- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features.
|
||||
-- - settings (table): Override the default settings passed when initializing the server.
|
||||
-- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
|
||||
--
|
||||
-- See `:help lspconfig-all` for a list of all the pre-configured LSPs
|
||||
local servers = {
|
||||
gopls = {
|
||||
gofumpt = true,
|
||||
},
|
||||
|
||||
html = {},
|
||||
|
||||
templ = {},
|
||||
|
||||
-- Some languages (like typescript) have entire language plugins that can be useful:
|
||||
-- https://github.com/pmizio/typescript-tools.nvim
|
||||
--
|
||||
-- But for many setups, the LSP (`tsserver`) will work just fine
|
||||
tsserver = {},
|
||||
|
||||
eslint_d = {},
|
||||
tailwindcss = {},
|
||||
|
||||
lua_ls = {
|
||||
settings = {
|
||||
Lua = {
|
||||
completion = {
|
||||
callSnippet = 'Replace',
|
||||
},
|
||||
-- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings
|
||||
-- diagnostics = { disable = { 'missing-fields' } },
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Ensure the servers and tools above are installed
|
||||
-- To check the current status of installed tools and/or manually install
|
||||
-- other tools, you can run
|
||||
-- :Mason
|
||||
--
|
||||
-- You can press `g?` for help in this menu.
|
||||
require('mason').setup()
|
||||
|
||||
-- You can add other tools here that you want Mason to install
|
||||
-- for you, so that they are available from within Neovim.
|
||||
local ensure_installed = vim.tbl_keys(servers or {})
|
||||
vim.list_extend(ensure_installed, {
|
||||
'stylua', -- Used to format Lua code
|
||||
'goimports', -- Used to format Go code
|
||||
'gofumpt', -- Used to format Go code
|
||||
})
|
||||
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
||||
|
||||
require('mason-lspconfig').setup {
|
||||
handlers = {
|
||||
function(server_name)
|
||||
local server = servers[server_name] or {}
|
||||
-- This handles overriding only values explicitly passed
|
||||
-- by the server configuration above. Useful when disabling
|
||||
-- certain features of an LSP (for example, turning off formatting for tsserver)
|
||||
server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
|
||||
require('lspconfig')[server_name].setup(server)
|
||||
end,
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
{ -- Autoformat
|
||||
'stevearc/conform.nvim',
|
||||
lazy = false,
|
||||
keys = {
|
||||
{
|
||||
'<leader>f',
|
||||
function()
|
||||
require('conform').format { async = true, lsp_fallback = true }
|
||||
end,
|
||||
mode = '',
|
||||
desc = '[F]ormat buffer',
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
notify_on_error = false,
|
||||
format_on_save = function(bufnr)
|
||||
-- Disable "format_on_save lsp_fallback" for languages that don't
|
||||
-- have a well standardized coding style. You can add additional
|
||||
-- languages here or re-enable it for the disabled ones.
|
||||
local disable_filetypes = { c = true, cpp = true }
|
||||
return {
|
||||
timeout_ms = 500,
|
||||
lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype],
|
||||
}
|
||||
end,
|
||||
formatters_by_ft = {
|
||||
go = { 'goimports', 'gofumpt' },
|
||||
lua = { 'stylua' },
|
||||
templ = { 'templ' },
|
||||
typescript = { 'eslint_d' },
|
||||
-- Conform can also run multiple formatters sequentially
|
||||
-- python = { "isort", "black" },
|
||||
--
|
||||
-- You can use a sub-list to tell conform to run *until* a formatter
|
||||
-- is found.
|
||||
-- javascript = { { "prettierd", "prettier" } },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
{ -- Autocompletion
|
||||
'hrsh7th/nvim-cmp',
|
||||
event = 'InsertEnter',
|
||||
dependencies = {
|
||||
-- Snippet Engine & its associated nvim-cmp source
|
||||
{
|
||||
'L3MON4D3/LuaSnip',
|
||||
build = (function()
|
||||
-- Build Step is needed for regex support in snippets.
|
||||
-- This step is not supported in many windows environments.
|
||||
-- Remove the below condition to re-enable on windows.
|
||||
if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then
|
||||
return
|
||||
end
|
||||
return 'make install_jsregexp'
|
||||
end)(),
|
||||
dependencies = {
|
||||
-- `friendly-snippets` contains a variety of premade snippets.
|
||||
-- See the README about individual language/framework/plugin snippets:
|
||||
-- https://github.com/rafamadriz/friendly-snippets
|
||||
{
|
||||
'rafamadriz/friendly-snippets',
|
||||
config = function()
|
||||
require('luasnip.loaders.from_vscode').lazy_load()
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
'saadparwaiz1/cmp_luasnip',
|
||||
|
||||
-- Adds other completion capabilities.
|
||||
-- nvim-cmp does not ship with all sources by default. They are split
|
||||
-- into multiple repos for maintenance purposes.
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
'hrsh7th/cmp-path',
|
||||
},
|
||||
config = function()
|
||||
-- See `:help cmp`
|
||||
local cmp = require 'cmp'
|
||||
local luasnip = require 'luasnip'
|
||||
luasnip.config.setup {}
|
||||
|
||||
cmp.setup {
|
||||
window = {
|
||||
-- Optionally add a border to the completions windows.
|
||||
-- Does not affect the <shift>-k window.
|
||||
-- completion = cmp.config.window.bordered(),
|
||||
-- documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
completion = { completeopt = 'menu,menuone,noinsert' },
|
||||
|
||||
-- For an understanding of why these mappings were
|
||||
-- chosen, you will need to read `:help ins-completion`
|
||||
--
|
||||
-- No, but seriously. Please read `:help ins-completion`, it is really good!
|
||||
mapping = cmp.mapping.preset.insert {
|
||||
-- Select the [n]ext item
|
||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||
-- Select the [p]revious item
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||
|
||||
-- Scroll the documentation window [b]ack / [f]orward
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
|
||||
-- Accept ([y]es) the completion.
|
||||
-- This will auto-import if your LSP supports it.
|
||||
-- This will expand snippets if the LSP sent a snippet.
|
||||
['<C-y>'] = cmp.mapping.confirm { select = true },
|
||||
|
||||
-- If you prefer more traditional completion keymaps,
|
||||
-- you can uncomment the following lines
|
||||
--['<CR>'] = cmp.mapping.confirm { select = true },
|
||||
--['<Tab>'] = cmp.mapping.select_next_item(),
|
||||
--['<S-Tab>'] = cmp.mapping.select_prev_item(),
|
||||
|
||||
-- Manually trigger a completion from nvim-cmp.
|
||||
-- Generally you don't need this, because nvim-cmp will display
|
||||
-- completions whenever it has completion options available.
|
||||
['<C-Space>'] = cmp.mapping.complete {},
|
||||
|
||||
-- Think of <c-l> as moving to the right of your snippet expansion.
|
||||
-- So if you have a snippet that's like:
|
||||
-- function $name($args)
|
||||
-- $body
|
||||
-- end
|
||||
--
|
||||
-- <c-l> will move you to the right of each of the expansion locations.
|
||||
-- <c-h> is similar, except moving you backwards.
|
||||
['<C-l>'] = cmp.mapping(function()
|
||||
if luasnip.expand_or_locally_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
['<C-h>'] = cmp.mapping(function()
|
||||
if luasnip.locally_jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
|
||||
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
|
||||
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
|
||||
},
|
||||
sources = {
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'path' },
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
{
|
||||
-- Set the colorscheme.
|
||||
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
|
||||
'catppuccin/nvim',
|
||||
name = 'catppuccin',
|
||||
priority = 1000, -- Make sure to load this before all the other start plugins.
|
||||
opts = {
|
||||
flavour = 'latte',
|
||||
integrations = {
|
||||
cmp = true,
|
||||
dap = true,
|
||||
diffview = true,
|
||||
gitsigns = true,
|
||||
mason = true,
|
||||
native_lsp = {
|
||||
enabled = true,
|
||||
virtual_text = {
|
||||
errors = { 'italic' },
|
||||
hints = { 'italic' },
|
||||
warnings = { 'italic' },
|
||||
information = { 'italic' },
|
||||
ok = { 'italic' },
|
||||
},
|
||||
underlines = {
|
||||
errors = { 'underline' },
|
||||
hints = { 'underline' },
|
||||
warnings = { 'underline' },
|
||||
information = { 'underline' },
|
||||
ok = { 'underline' },
|
||||
},
|
||||
inlay_hints = {
|
||||
background = true,
|
||||
},
|
||||
},
|
||||
telescope = true,
|
||||
which_key = true,
|
||||
},
|
||||
custom_highlights = function(C)
|
||||
return {
|
||||
WinSeparator = { fg = C.pink },
|
||||
NormalFloat = { bg = C.crust },
|
||||
Pmenu = { bg = C.crust },
|
||||
PmenuSel = { fg = C.text, bg = C.surface0, style = { 'bold' } },
|
||||
}
|
||||
end,
|
||||
},
|
||||
init = function()
|
||||
vim.cmd.colorscheme 'catppuccin'
|
||||
end,
|
||||
},
|
||||
|
||||
{ -- Collection of various small independent plugins/modules
|
||||
'echasnovski/mini.nvim',
|
||||
config = function()
|
||||
-- Better Around/Inside textobjects
|
||||
--
|
||||
-- Examples:
|
||||
-- - va) - [V]isually select [A]round [)]paren
|
||||
-- - yinq - [Y]ank [I]nside [N]ext [']quote
|
||||
-- - ci' - [C]hange [I]nside [']quote
|
||||
require('mini.ai').setup { n_lines = 500 }
|
||||
|
||||
-- Add/delete/replace surroundings (brackets, quotes, etc.)
|
||||
--
|
||||
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
|
||||
-- - sd' - [S]urround [D]elete [']quotes
|
||||
-- - sr)' - [S]urround [R]eplace [)] [']
|
||||
require('mini.surround').setup()
|
||||
|
||||
-- Startup dashboard
|
||||
require('mini.starter').setup {
|
||||
footer = '',
|
||||
}
|
||||
|
||||
-- ... and there is more!
|
||||
-- Check out: https://github.com/echasnovski/mini.nvim
|
||||
end,
|
||||
},
|
||||
{ -- Highlight, edit, and navigate code
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
build = ':TSUpdate',
|
||||
opts = {
|
||||
ensure_installed = { 'bash', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'vim', 'vimdoc', 'sql', 'go', 'templ', 'typescript', 'javascript' },
|
||||
-- Autoinstall languages that are not installed
|
||||
auto_install = true,
|
||||
highlight = {
|
||||
enable = true,
|
||||
-- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
|
||||
-- If you are experiencing weird indenting issues, add the language to
|
||||
-- the list of additional_vim_regex_highlighting and disabled languages for indent.
|
||||
additional_vim_regex_highlighting = { 'ruby' },
|
||||
},
|
||||
indent = { enable = true, disable = { 'ruby' } },
|
||||
},
|
||||
config = function(_, opts)
|
||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||
|
||||
-- Prefer git instead of curl in order to improve connectivity in some environments
|
||||
require('nvim-treesitter.install').prefer_git = true
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
require('nvim-treesitter.configs').setup(opts)
|
||||
|
||||
-- There are additional nvim-treesitter modules that you can use to interact
|
||||
-- with nvim-treesitter. You should go explore a few and see what interests you:
|
||||
--
|
||||
-- - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
|
||||
-- - Show your current context: https://github.com/nvim-treesitter/nvim-treesitter-context
|
||||
-- - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
|
||||
end,
|
||||
},
|
||||
--
|
||||
-- Here are some example plugins that I've included in the Kickstart repository.
|
||||
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||
--
|
||||
-- require 'kickstart.plugins.debug',
|
||||
-- require 'kickstart.plugins.indent_line',
|
||||
require 'kickstart.plugins.lint',
|
||||
require 'kickstart.plugins.autopairs',
|
||||
-- require 'kickstart.plugins.neo-tree',
|
||||
require 'kickstart.plugins.gitsigns',
|
||||
--
|
||||
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
|
||||
-- For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins`
|
||||
{ import = 'custom.plugins' },
|
||||
}, {
|
||||
ui = {
|
||||
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
||||
-- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table
|
||||
icons = vim.g.have_nerd_font and {} or {
|
||||
cmd = '⌘',
|
||||
config = '🛠',
|
||||
event = '📅',
|
||||
ft = '📂',
|
||||
init = '⚙',
|
||||
keys = '🗝',
|
||||
plugin = '🔌',
|
||||
runtime = '💻',
|
||||
require = '🌙',
|
||||
source = '📄',
|
||||
start = '🚀',
|
||||
task = '📌',
|
||||
lazy = '💤 ',
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- The line beneath this is called `modeline`. See `:help modeline`
|
||||
-- vim: ts=2 sts=2 sw=2 et
|
||||
11
nvim/lua/custom/plugins/dadbod.lua
Normal file
11
nvim/lua/custom/plugins/dadbod.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
-- UI for working with databases from within vim.
|
||||
-- https://github.com/tpope/vim-dadbod
|
||||
-- https://github.com/kristijanhusak/vim-dadbod-ui
|
||||
return {
|
||||
'tpope/vim-dadbod',
|
||||
dependencies = {
|
||||
'kristijanhusak/vim-dadbod-ui',
|
||||
'kristijanhusak/vim-dadbod-completion',
|
||||
},
|
||||
config = function() end,
|
||||
}
|
||||
32
nvim/lua/custom/plugins/focus.lua
Normal file
32
nvim/lua/custom/plugins/focus.lua
Normal file
@@ -0,0 +1,32 @@
|
||||
-- Resize window to prioritize the focused on.
|
||||
-- https://github.com/nvim-focus/focus.nvim
|
||||
return {
|
||||
'nvim-focus/focus.nvim',
|
||||
opts = {
|
||||
enable = true,
|
||||
ui = {
|
||||
-- Display line numbers in the focused window only.
|
||||
hybridnumber = true,
|
||||
|
||||
-- Display signcolumn in the focussed window only
|
||||
signcolumn = true,
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local ignore_buftypes = { 'dbui' }
|
||||
|
||||
local augroup = vim.api.nvim_create_augroup('FocusDisable', { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd('WinEnter', {
|
||||
group = augroup,
|
||||
callback = function(_)
|
||||
if vim.tbl_contains(ignore_buftypes, vim.bo.buftype) then
|
||||
vim.w.focus_disable = true
|
||||
else
|
||||
vim.w.focus_disable = false
|
||||
end
|
||||
end,
|
||||
desc = 'Disable focus autoresize for BufType',
|
||||
})
|
||||
end,
|
||||
}
|
||||
58
nvim/lua/custom/plugins/lualine.lua
Normal file
58
nvim/lua/custom/plugins/lualine.lua
Normal file
@@ -0,0 +1,58 @@
|
||||
-- Highly configurable status line
|
||||
-- https://github.com/nvim-lualine/lualine.nvim
|
||||
return {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||
opts = {
|
||||
options = {
|
||||
theme = 'catppuccin',
|
||||
icons_enabled = true,
|
||||
component_separators = { left = '', right = '' },
|
||||
section_separators = { left = '', right = '' },
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { 'mode' },
|
||||
lualine_b = { 'diagnostics' },
|
||||
lualine_c = {
|
||||
{
|
||||
'filename',
|
||||
file_status = true, -- Displays file status (readonly status, modified status)
|
||||
newfile_status = true, -- Display new file status (new file means no write after created)
|
||||
path = 1, -- Relative path
|
||||
shorting_target = 40, -- Shortens path to leave 40 spaces in the window
|
||||
symbols = {
|
||||
modified = '', -- Text to show when the file is modified.
|
||||
readonly = '', -- Text to show when the file is non-modifiable or readonly.
|
||||
unnamed = '[No Name]', -- Text to show for unnamed buffers.
|
||||
newfile = '', -- Text to show for newly created file before first write
|
||||
},
|
||||
},
|
||||
},
|
||||
lualine_x = { 'fileformat', 'filetype' },
|
||||
lualine_y = { 'progress' },
|
||||
lualine_z = { 'location' },
|
||||
},
|
||||
inactive_sections = {
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_c = {
|
||||
{
|
||||
'filename',
|
||||
file_status = true, -- Displays file status (readonly status, modified status)
|
||||
newfile_status = true, -- Display new file status (new file means no write after created)
|
||||
path = 1, -- Relative path
|
||||
shorting_target = 40, -- Shortens path to leave 40 spaces in the window
|
||||
symbols = {
|
||||
modified = '', -- Text to show when the file is modified.
|
||||
readonly = '', -- Text to show when the file is non-modifiable or readonly.
|
||||
unnamed = '[No Name]', -- Text to show for unnamed buffers.
|
||||
newfile = '', -- Text to show for newly created file before first write
|
||||
},
|
||||
},
|
||||
},
|
||||
lualine_x = { 'location' },
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
},
|
||||
},
|
||||
}
|
||||
11
nvim/lua/custom/plugins/nvim-treesitter-context.lua
Normal file
11
nvim/lua/custom/plugins/nvim-treesitter-context.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
-- Display context that has scrolled off the top of the screen.
|
||||
-- For example, signature of the current function, or if-case.
|
||||
-- https://github.com/nvim-treesitter/nvim-treesitter-context
|
||||
return {
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter-context',
|
||||
opts = {
|
||||
max_lines = 5,
|
||||
},
|
||||
},
|
||||
}
|
||||
17
nvim/lua/custom/plugins/todo-comments.lua
Normal file
17
nvim/lua/custom/plugins/todo-comments.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
-- Highlight todo, notes, etc in comments
|
||||
-- https://github.com/folke/todo-comments.nvim
|
||||
return {
|
||||
'folke/todo-comments.nvim',
|
||||
event = 'VimEnter',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
opts = {
|
||||
signs = false,
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
'<leader>st',
|
||||
'<cmd>TodoTelescope<cr>',
|
||||
desc = '[T]odo all files',
|
||||
},
|
||||
},
|
||||
}
|
||||
38
nvim/lua/custom/plugins/trouble.lua
Normal file
38
nvim/lua/custom/plugins/trouble.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
-- Friendly display of problems in the codebase
|
||||
-- https://github.com/folke/trouble.nvim
|
||||
return {
|
||||
'folke/trouble.nvim',
|
||||
keys = {
|
||||
{
|
||||
'<leader>xx',
|
||||
'<cmd>Trouble diagnostics toggle<cr>',
|
||||
desc = 'Diagnostics (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xX',
|
||||
'<cmd>Trouble diagnostics toggle filter.buf=0<cr>',
|
||||
desc = 'Buffer Diagnostics (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>cs',
|
||||
'<cmd>Trouble symbols toggle focus=false<cr>',
|
||||
desc = 'Symbols (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>cl',
|
||||
'<cmd>Trouble lsp toggle focus=false win.position=right<cr>',
|
||||
desc = 'LSP Definitions / references / ... (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xL',
|
||||
'<cmd>Trouble loclist toggle<cr>',
|
||||
desc = 'Location List (Trouble)',
|
||||
},
|
||||
{
|
||||
'<leader>xQ',
|
||||
'<cmd>Trouble qflist toggle<cr>',
|
||||
desc = 'Quickfix List (Trouble)',
|
||||
},
|
||||
},
|
||||
opts = {},
|
||||
}
|
||||
22
nvim/lua/custom/plugins/vim-tmux-navigator.lua
Normal file
22
nvim/lua/custom/plugins/vim-tmux-navigator.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
-- Seamless navigation between tmux and vim windows.
|
||||
-- https://github.com/christoomey/vim-tmux-navigator
|
||||
return {
|
||||
'christoomey/vim-tmux-navigator',
|
||||
cmd = {
|
||||
'TmuxNavigateLeft',
|
||||
'TmuxNavigateDown',
|
||||
'TmuxNavigateUp',
|
||||
'TmuxNavigateRight',
|
||||
'TmuxNavigatePrevious',
|
||||
},
|
||||
keys = {
|
||||
{ '<c-h>', '<cmd><C-U>TmuxNavigateLeft<cr>' },
|
||||
{ '<c-j>', '<cmd><C-U>TmuxNavigateDown<cr>' },
|
||||
{ '<c-k>', '<cmd><C-U>TmuxNavigateUp<cr>' },
|
||||
{ '<c-l>', '<cmd><C-U>TmuxNavigateRight<cr>' },
|
||||
{ '<c-\\>', '<cmd><C-U>TmuxNavigatePrevious<cr>' },
|
||||
},
|
||||
init = function()
|
||||
vim.g.tmux_navigator_disable_when_zoomed = 1
|
||||
end,
|
||||
}
|
||||
52
nvim/lua/kickstart/health.lua
Normal file
52
nvim/lua/kickstart/health.lua
Normal file
@@ -0,0 +1,52 @@
|
||||
--[[
|
||||
--
|
||||
-- This file is not required for your own configuration,
|
||||
-- but helps people determine if their system is setup correctly.
|
||||
--
|
||||
--]]
|
||||
|
||||
local check_version = function()
|
||||
local verstr = string.format('%s.%s.%s', vim.version().major, vim.version().minor, vim.version().patch)
|
||||
if not vim.version.cmp then
|
||||
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
|
||||
return
|
||||
end
|
||||
|
||||
if vim.version.cmp(vim.version(), { 0, 9, 4 }) >= 0 then
|
||||
vim.health.ok(string.format("Neovim version is: '%s'", verstr))
|
||||
else
|
||||
vim.health.error(string.format("Neovim out of date: '%s'. Upgrade to latest stable or nightly", verstr))
|
||||
end
|
||||
end
|
||||
|
||||
local check_external_reqs = function()
|
||||
-- Basic utils: `git`, `make`, `unzip`
|
||||
for _, exe in ipairs { 'git', 'make', 'unzip', 'rg' } do
|
||||
local is_executable = vim.fn.executable(exe) == 1
|
||||
if is_executable then
|
||||
vim.health.ok(string.format("Found executable: '%s'", exe))
|
||||
else
|
||||
vim.health.warn(string.format("Could not find executable: '%s'", exe))
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
return {
|
||||
check = function()
|
||||
vim.health.start 'kickstart.nvim'
|
||||
|
||||
vim.health.info [[NOTE: Not every warning is a 'must-fix' in `:checkhealth`
|
||||
|
||||
Fix only warnings for plugins and languages you intend to use.
|
||||
Mason will give warnings for languages that are not installed.
|
||||
You do not need to install, unless you want to use those languages!]]
|
||||
|
||||
local uv = vim.uv or vim.loop
|
||||
vim.health.info('System Information: ' .. vim.inspect(uv.os_uname()))
|
||||
|
||||
check_version()
|
||||
check_external_reqs()
|
||||
end,
|
||||
}
|
||||
16
nvim/lua/kickstart/plugins/autopairs.lua
Normal file
16
nvim/lua/kickstart/plugins/autopairs.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
-- autopairs
|
||||
-- https://github.com/windwp/nvim-autopairs
|
||||
|
||||
return {
|
||||
'windwp/nvim-autopairs',
|
||||
event = 'InsertEnter',
|
||||
-- Optional dependency
|
||||
dependencies = { 'hrsh7th/nvim-cmp' },
|
||||
config = function()
|
||||
require('nvim-autopairs').setup {}
|
||||
-- If you want to automatically add `(` after selecting a function or method
|
||||
local cmp_autopairs = require 'nvim-autopairs.completion.cmp'
|
||||
local cmp = require 'cmp'
|
||||
cmp.event:on('confirm_done', cmp_autopairs.on_confirm_done())
|
||||
end,
|
||||
}
|
||||
94
nvim/lua/kickstart/plugins/debug.lua
Normal file
94
nvim/lua/kickstart/plugins/debug.lua
Normal file
@@ -0,0 +1,94 @@
|
||||
-- debug.lua
|
||||
--
|
||||
-- Shows how to use the DAP plugin to debug your code.
|
||||
--
|
||||
-- Primarily focused on configuring the debugger for Go, but can
|
||||
-- be extended to other languages as well. That's why it's called
|
||||
-- kickstart.nvim and not kitchen-sink.nvim ;)
|
||||
|
||||
return {
|
||||
'mfussenegger/nvim-dap',
|
||||
dependencies = {
|
||||
-- Creates a beautiful debugger UI
|
||||
'rcarriga/nvim-dap-ui',
|
||||
|
||||
-- Required dependency for nvim-dap-ui
|
||||
'nvim-neotest/nvim-nio',
|
||||
|
||||
-- Installs the debug adapters for you
|
||||
'williamboman/mason.nvim',
|
||||
'jay-babu/mason-nvim-dap.nvim',
|
||||
|
||||
-- Add your own debuggers here
|
||||
'leoluz/nvim-dap-go',
|
||||
},
|
||||
config = function()
|
||||
local dap = require 'dap'
|
||||
local dapui = require 'dapui'
|
||||
|
||||
require('mason-nvim-dap').setup {
|
||||
-- Makes a best effort to setup the various debuggers with
|
||||
-- reasonable debug configurations
|
||||
automatic_installation = true,
|
||||
|
||||
-- You can provide additional configuration to the handlers,
|
||||
-- see mason-nvim-dap README for more information
|
||||
handlers = {},
|
||||
|
||||
-- You'll need to check that you have the required things installed
|
||||
-- online, please don't ask me how to install them :)
|
||||
ensure_installed = {
|
||||
-- Update this to ensure that you have the debuggers for the langs you want
|
||||
'delve',
|
||||
},
|
||||
}
|
||||
|
||||
-- Basic debugging keymaps, feel free to change to your liking!
|
||||
vim.keymap.set('n', '<F5>', dap.continue, { desc = 'Debug: Start/Continue' })
|
||||
vim.keymap.set('n', '<F1>', dap.step_into, { desc = 'Debug: Step Into' })
|
||||
vim.keymap.set('n', '<F2>', dap.step_over, { desc = 'Debug: Step Over' })
|
||||
vim.keymap.set('n', '<F3>', dap.step_out, { desc = 'Debug: Step Out' })
|
||||
vim.keymap.set('n', '<leader>b', dap.toggle_breakpoint, { desc = 'Debug: Toggle Breakpoint' })
|
||||
vim.keymap.set('n', '<leader>B', function()
|
||||
dap.set_breakpoint(vim.fn.input 'Breakpoint condition: ')
|
||||
end, { desc = 'Debug: Set Breakpoint' })
|
||||
|
||||
-- Dap UI setup
|
||||
-- For more information, see |:help nvim-dap-ui|
|
||||
dapui.setup {
|
||||
-- Set icons to characters that are more likely to work in every terminal.
|
||||
-- Feel free to remove or use ones that you like more! :)
|
||||
-- Don't feel like these are good choices.
|
||||
icons = { expanded = '▾', collapsed = '▸', current_frame = '*' },
|
||||
controls = {
|
||||
icons = {
|
||||
pause = '⏸',
|
||||
play = '▶',
|
||||
step_into = '⏎',
|
||||
step_over = '⏭',
|
||||
step_out = '⏮',
|
||||
step_back = 'b',
|
||||
run_last = '▶▶',
|
||||
terminate = '⏹',
|
||||
disconnect = '⏏',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
|
||||
vim.keymap.set('n', '<F7>', dapui.toggle, { desc = 'Debug: See last session result.' })
|
||||
|
||||
dap.listeners.after.event_initialized['dapui_config'] = dapui.open
|
||||
dap.listeners.before.event_terminated['dapui_config'] = dapui.close
|
||||
dap.listeners.before.event_exited['dapui_config'] = dapui.close
|
||||
|
||||
-- Install golang specific config
|
||||
require('dap-go').setup {
|
||||
delve = {
|
||||
-- On Windows delve must be run attached or it crashes.
|
||||
-- See https://github.com/leoluz/nvim-dap-go/blob/main/README.md#configuring
|
||||
detached = vim.fn.has 'win32' == 0,
|
||||
},
|
||||
}
|
||||
end,
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user