first commit
This commit is contained in:
93
README.md
Normal file
93
README.md
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
# dotfiles
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Getting started
|
||||||
|
|
||||||
|
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
|
||||||
|
|
||||||
|
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
|
||||||
|
|
||||||
|
## Add your files
|
||||||
|
|
||||||
|
* [Create](https://docs.gitlab.com/user/project/repository/web_editor/#create-a-file) or [upload](https://docs.gitlab.com/user/project/repository/web_editor/#upload-a-file) files
|
||||||
|
* [Add files using the command line](https://docs.gitlab.com/topics/git/add_files/#add-files-to-a-git-repository) or push an existing Git repository with the following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd existing_repo
|
||||||
|
git remote add origin http://gitlab.mattserver.net/root/dotfiles.git
|
||||||
|
git branch -M main
|
||||||
|
git push -uf origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
## Integrate with your tools
|
||||||
|
|
||||||
|
* [Set up project integrations](http://gitlab.mattserver.net/root/dotfiles/-/settings/integrations)
|
||||||
|
|
||||||
|
## Collaborate with your team
|
||||||
|
|
||||||
|
* [Invite team members and collaborators](https://docs.gitlab.com/user/project/members/)
|
||||||
|
* [Create a new merge request](https://docs.gitlab.com/user/project/merge_requests/creating_merge_requests/)
|
||||||
|
* [Automatically close issues from merge requests](https://docs.gitlab.com/user/project/issues/managing_issues/#closing-issues-automatically)
|
||||||
|
* [Enable merge request approvals](https://docs.gitlab.com/user/project/merge_requests/approvals/)
|
||||||
|
* [Set auto-merge](https://docs.gitlab.com/user/project/merge_requests/auto_merge/)
|
||||||
|
|
||||||
|
## Test and Deploy
|
||||||
|
|
||||||
|
Use the built-in continuous integration in GitLab.
|
||||||
|
|
||||||
|
* [Get started with GitLab CI/CD](https://docs.gitlab.com/ci/quick_start/)
|
||||||
|
* [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/user/application_security/sast/)
|
||||||
|
* [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/topics/autodevops/requirements/)
|
||||||
|
* [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/user/clusters/agent/)
|
||||||
|
* [Set up protected environments](https://docs.gitlab.com/ci/environments/protected_environments/)
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
# Editing this README
|
||||||
|
|
||||||
|
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
|
||||||
|
|
||||||
|
## Suggestions for a good README
|
||||||
|
|
||||||
|
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
|
||||||
|
|
||||||
|
## Name
|
||||||
|
Choose a self-explaining name for your project.
|
||||||
|
|
||||||
|
## Description
|
||||||
|
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
|
||||||
|
|
||||||
|
## Badges
|
||||||
|
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
|
||||||
|
|
||||||
|
## Visuals
|
||||||
|
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
|
||||||
|
|
||||||
|
## Roadmap
|
||||||
|
If you have ideas for releases in the future, it is a good idea to list them in the README.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
State if you are open to contributions and what your requirements are for accepting them.
|
||||||
|
|
||||||
|
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
|
||||||
|
|
||||||
|
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
|
||||||
|
|
||||||
|
## Authors and acknowledgment
|
||||||
|
Show your appreciation to those who have contributed to the project.
|
||||||
|
|
||||||
|
## License
|
||||||
|
For open source projects, say how it is licensed.
|
||||||
|
|
||||||
|
## Project status
|
||||||
|
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
|
||||||
261
bash/.bashrc
Normal file
261
bash/.bashrc
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
export BASH_SILENCE_DEPRECATION_WARNING=1
|
||||||
|
export TERM=xterm-256color
|
||||||
|
|
||||||
|
#export PATH=$PATH:/Users/matt/go/bin
|
||||||
|
export PATH=$PATH:~/go/bin
|
||||||
|
export PATH=$PATH:/usr/local/go/bin
|
||||||
|
export PATH=$PATH:/Users/matt/Development/Applications/dart-sass
|
||||||
|
|
||||||
|
set -o vi
|
||||||
|
bind -m vi-command 'Control-l: clear-screen'
|
||||||
|
bind -m vi-insert 'Control-l: clear-screen'
|
||||||
|
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
alias vi=nvim
|
||||||
|
alias py=python3
|
||||||
|
|
||||||
|
# Git aliases
|
||||||
|
alias ga='git add'
|
||||||
|
alias gcm='git commit -m'
|
||||||
|
alias gst='git status'
|
||||||
|
alias gp='git push'
|
||||||
|
|
||||||
|
alias k9s='$HOME/dotfiles/k9s/.config/k9s/k9s-theme-sync.sh'
|
||||||
|
alias oc='opencode'
|
||||||
|
|
||||||
|
alias vd='vd --theme asciimono'
|
||||||
|
|
||||||
|
export EDITOR='nvim'
|
||||||
|
export PATH=$PATH:/home/matt/Applications/lua_ls/bin
|
||||||
|
|
||||||
|
# k9s
|
||||||
|
export K9S_CONFIG_DIR=~/.config/k9s
|
||||||
|
|
||||||
|
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||||
|
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||||
|
# for examples
|
||||||
|
#
|
||||||
|
n ()
|
||||||
|
{
|
||||||
|
# Block nesting of nnn in subshells
|
||||||
|
[ "${NNNLVL:-0}" -eq 0 ] || {
|
||||||
|
echo "nnn is already running"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set)
|
||||||
|
# If NNN_TMPFILE is set to a custom path, it must be exported for nnn to
|
||||||
|
# see. To cd on quit only on ^G, remove the "export" and make sure not to
|
||||||
|
# use a custom path, i.e. set NNN_TMPFILE *exactly* as follows:
|
||||||
|
# NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd"
|
||||||
|
export NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd"
|
||||||
|
|
||||||
|
# Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn
|
||||||
|
# stty start undef
|
||||||
|
# stty stop undef
|
||||||
|
# stty lwrap undef
|
||||||
|
# stty lnext undef
|
||||||
|
|
||||||
|
# The command builtin allows one to alias nnn to n, if desired, without
|
||||||
|
# making an infinitely recursive alias
|
||||||
|
command nnn -C "$@"
|
||||||
|
|
||||||
|
[ ! -f "$NNN_TMPFILE" ] || {
|
||||||
|
. "$NNN_TMPFILE"
|
||||||
|
rm -f -- "$NNN_TMPFILE" > /dev/null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
case $- in
|
||||||
|
*i*) ;;
|
||||||
|
*) return;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# don't put duplicate lines or lines starting with space in the history.
|
||||||
|
# See bash(1) for more options
|
||||||
|
HISTCONTROL=ignoreboth
|
||||||
|
|
||||||
|
# append to the history file, don't overwrite it
|
||||||
|
shopt -s histappend
|
||||||
|
|
||||||
|
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||||
|
HISTSIZE=1000
|
||||||
|
HISTFILESIZE=2000
|
||||||
|
|
||||||
|
# check the window size after each command and, if necessary,
|
||||||
|
# update the values of LINES and COLUMNS.
|
||||||
|
shopt -s checkwinsize
|
||||||
|
|
||||||
|
# If set, the pattern "**" used in a pathname expansion context will
|
||||||
|
# match all files and zero or more directories and subdirectories.
|
||||||
|
#shopt -s globstar
|
||||||
|
|
||||||
|
# make less more friendly for non-text input files, see lesspipe(1)
|
||||||
|
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||||
|
|
||||||
|
# set variable identifying the chroot you work in (used in the prompt below)
|
||||||
|
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||||
|
debian_chroot=$(cat /etc/debian_chroot)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||||
|
case "$TERM" in
|
||||||
|
xterm-color|*-256color) color_prompt=yes;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||||
|
# off by default to not distract the user: the focus in a terminal window
|
||||||
|
# should be on the output of commands, not on the prompt
|
||||||
|
#force_color_prompt=yes
|
||||||
|
|
||||||
|
if [ -n "$force_color_prompt" ]; then
|
||||||
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
|
# We have color support; assume it's compliant with Ecma-48
|
||||||
|
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||||
|
# a case would tend to support setf rather than setaf.)
|
||||||
|
color_prompt=yes
|
||||||
|
else
|
||||||
|
color_prompt=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$color_prompt" = yes ]; then
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
|
||||||
|
else
|
||||||
|
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\n\$ '
|
||||||
|
fi
|
||||||
|
unset color_prompt force_color_prompt
|
||||||
|
|
||||||
|
# If this is an xterm set the title to user@host:dir
|
||||||
|
case "$TERM" in
|
||||||
|
xterm*|rxvt*)
|
||||||
|
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# enable color support of ls and also add handy aliases
|
||||||
|
if [ -x /usr/bin/dircolors ]; then
|
||||||
|
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
#alias dir='dir --color=auto'
|
||||||
|
#alias vdir='vdir --color=auto'
|
||||||
|
|
||||||
|
#alias grep='grep --color=auto'
|
||||||
|
#alias fgrep='fgrep --color=auto'
|
||||||
|
#alias egrep='egrep --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# colored GCC warnings and errors
|
||||||
|
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||||
|
|
||||||
|
# some more ls aliases
|
||||||
|
alias ll='ls -l'
|
||||||
|
alias la='ls -A'
|
||||||
|
alias l='ls -CF'
|
||||||
|
|
||||||
|
# Alias definitions.
|
||||||
|
# You may want to put all your additions into a separate file like
|
||||||
|
# ~/.bash_aliases, instead of adding them here directly.
|
||||||
|
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||||
|
|
||||||
|
if [ -f ~/.bash_aliases ]; then
|
||||||
|
. ~/.bash_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
# enable programmable completion features (you don't need to enable
|
||||||
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||||
|
# sources /etc/bash.bashrc).
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
#. "$HOME/.cargo/env"
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# bun
|
||||||
|
export BUN_INSTALL="$HOME/.bun"
|
||||||
|
export PATH=$BUN_INSTALL/bin:$PATH
|
||||||
|
|
||||||
|
|
||||||
|
ALACRITTY_DARK='
|
||||||
|
[colors.primary]
|
||||||
|
background = "#000000"
|
||||||
|
foreground = "#abb2bf"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "#282c34"
|
||||||
|
blue = "#61afef"
|
||||||
|
cyan = "#56b6c2"
|
||||||
|
green = "#98c379"
|
||||||
|
magenta = "#c678dd"
|
||||||
|
red = "#e06c75"
|
||||||
|
white = "#bfc5ce"
|
||||||
|
yellow = "#e5c07b"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "#282c34"
|
||||||
|
blue = "#61afef"
|
||||||
|
cyan = "#56b6c2"
|
||||||
|
green = "#98c379"
|
||||||
|
magenta = "#c678dd"
|
||||||
|
red = "#e06c75"
|
||||||
|
white = "#abb2bf"
|
||||||
|
yellow = "#e5c07b"
|
||||||
|
|
||||||
|
[font]
|
||||||
|
normal = { family = "Hack Nerd Font Mono", style = "Regular" }
|
||||||
|
'
|
||||||
|
|
||||||
|
ALACRITTY_LIGHT='
|
||||||
|
[colors.primary]
|
||||||
|
foreground = "#2a2b33"
|
||||||
|
background = "#ffffff"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "#000000"
|
||||||
|
red = "#b6443a"
|
||||||
|
green = "#40803f"
|
||||||
|
yellow = "#795300"
|
||||||
|
blue = "#3360c1"
|
||||||
|
magenta = "#841e83"
|
||||||
|
cyan = "#006996"
|
||||||
|
white = "#ccccc0"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "#000000"
|
||||||
|
red = "#b6443a"
|
||||||
|
green = "#40803f"
|
||||||
|
yellow = "#795300"
|
||||||
|
blue = "#3360c1"
|
||||||
|
magenta = "#841e83"
|
||||||
|
cyan = "#006996"
|
||||||
|
white = "#ccccc0"
|
||||||
|
|
||||||
|
[font]
|
||||||
|
normal = { family = "Hack Nerd Font Mono", style = "Regular" }
|
||||||
|
'
|
||||||
|
|
||||||
|
# Load bash-completion
|
||||||
|
# if [ -f "$(brew --prefix)/etc/profile.d/bash_completion.sh" ]; then
|
||||||
|
# source "$(brew --prefix)/etc/profile.d/bash_completion.sh"
|
||||||
|
# fi
|
||||||
|
|
||||||
|
alias ad="echo -e \"\${ALACRITTY_DARK}\" > ~/.config/alacritty/alacritty.toml"
|
||||||
|
alias al="echo -e \"\${ALACRITTY_LIGHT}\" > ~/.config/alacritty/alacritty.toml"
|
||||||
|
|
||||||
|
alias kc=kubecolor
|
||||||
|
# complete -o default -F __start_kubectl kc
|
||||||
|
# source <(kubectl completion bash)
|
||||||
|
|
||||||
|
export MANPAGER='nvim +Man!'
|
||||||
|
|
||||||
|
export FLYCTL_INSTALL="/home/matt/.fly"
|
||||||
|
export PATH="$FLYCTL_INSTALL/bin:$PATH"
|
||||||
|
export PATH="$PATH:/Users/matt/.foundry/bin"
|
||||||
26
ghostty/.config/ghostty/config
Normal file
26
ghostty/.config/ghostty/config
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# theme = onedark
|
||||||
|
theme = dark:onedark,light:onelight
|
||||||
|
|
||||||
|
# fonts
|
||||||
|
font-family = SFMono Nerd Font
|
||||||
|
# font-style = Regular
|
||||||
|
# font-style-bold = Regular
|
||||||
|
font-thicken = true
|
||||||
|
macos-titlebar-style = hidden
|
||||||
|
|
||||||
|
# linux
|
||||||
|
# gtk-titlebar = false
|
||||||
|
|
||||||
|
# cursor
|
||||||
|
shell-integration-features = no-cursor
|
||||||
|
cursor-style = block
|
||||||
|
|
||||||
|
# background
|
||||||
|
background-image = ~/.config/ghostty/earth.png
|
||||||
|
background-image-opacity = 0
|
||||||
|
background-image-fit = cover
|
||||||
|
|
||||||
|
macos-icon = xray
|
||||||
|
|
||||||
|
# shader
|
||||||
|
# custom-shader = ~/.config/ghostty/starfield.glsl
|
||||||
161
ghostty/.config/ghostty/cursor_blaze.glsl
Normal file
161
ghostty/.config/ghostty/cursor_blaze.glsl
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
float sdBox(in vec2 p, in vec2 xy, in vec2 b)
|
||||||
|
{
|
||||||
|
vec2 d = abs(p - xy) - b;
|
||||||
|
return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// //Author: https://iquilezles.org/articles/distfunctions2d/
|
||||||
|
float sdTrail(in vec2 p, in vec2 v0, in vec2 v1, in vec2 v2, in vec2 v3)
|
||||||
|
{
|
||||||
|
float d = dot(p - v0, p - v0);
|
||||||
|
float s = 1.0;
|
||||||
|
|
||||||
|
// Edge from v3 to v0
|
||||||
|
{
|
||||||
|
vec2 e = v3 - v0;
|
||||||
|
vec2 w = p - v0;
|
||||||
|
vec2 b = w - e * clamp(dot(w, e) / dot(e, e), 0.0, 1.0);
|
||||||
|
d = min(d, dot(b, b));
|
||||||
|
|
||||||
|
// Compute branchless boolean conditions:
|
||||||
|
float c0 = step(0.0, p.y - v0.y); // 1 if (p.y >= v0.y)
|
||||||
|
float c1 = 1.0 - step(0.0, p.y - v3.y); // 1 if (p.y < v3.y)
|
||||||
|
float c2 = 1.0 - step(0.0, e.x * w.y - e.y * w.x); // 1 if (e.x*w.y > e.y*w.x)
|
||||||
|
float allCond = c0 * c1 * c2;
|
||||||
|
float noneCond = (1.0 - c0) * (1.0 - c1) * (1.0 - c2);
|
||||||
|
// If either allCond or noneCond is 1, then flip factor becomes -1.
|
||||||
|
float flip = mix(1.0, -1.0, step(0.5, allCond + noneCond));
|
||||||
|
s *= flip;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Edge from v0 to v1
|
||||||
|
{
|
||||||
|
vec2 e = v0 - v1;
|
||||||
|
vec2 w = p - v1;
|
||||||
|
vec2 b = w - e * clamp(dot(w, e) / dot(e, e), 0.0, 1.0);
|
||||||
|
d = min(d, dot(b, b));
|
||||||
|
|
||||||
|
float c0 = step(0.0, p.y - v1.y);
|
||||||
|
float c1 = 1.0 - step(0.0, p.y - v0.y);
|
||||||
|
float c2 = 1.0 - step(0.0, e.x * w.y - e.y * w.x);
|
||||||
|
float allCond = c0 * c1 * c2;
|
||||||
|
float noneCond = (1.0 - c0) * (1.0 - c1) * (1.0 - c2);
|
||||||
|
float flip = mix(1.0, -1.0, step(0.5, allCond + noneCond));
|
||||||
|
s *= flip;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Edge from v1 to v2
|
||||||
|
{
|
||||||
|
vec2 e = v1 - v2;
|
||||||
|
vec2 w = p - v2;
|
||||||
|
vec2 b = w - e * clamp(dot(w, e) / dot(e, e), 0.0, 1.0);
|
||||||
|
d = min(d, dot(b, b));
|
||||||
|
|
||||||
|
float c0 = step(0.0, p.y - v2.y);
|
||||||
|
float c1 = 1.0 - step(0.0, p.y - v1.y);
|
||||||
|
float c2 = 1.0 - step(0.0, e.x * w.y - e.y * w.x);
|
||||||
|
float allCond = c0 * c1 * c2;
|
||||||
|
float noneCond = (1.0 - c0) * (1.0 - c1) * (1.0 - c2);
|
||||||
|
float flip = mix(1.0, -1.0, step(0.5, allCond + noneCond));
|
||||||
|
s *= flip;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Edge from v2 to v3
|
||||||
|
{
|
||||||
|
vec2 e = v2 - v3;
|
||||||
|
vec2 w = p - v3;
|
||||||
|
vec2 b = w - e * clamp(dot(w, e) / dot(e, e), 0.0, 1.0);
|
||||||
|
d = min(d, dot(b, b));
|
||||||
|
|
||||||
|
float c0 = step(0.0, p.y - v3.y);
|
||||||
|
float c1 = 1.0 - step(0.0, p.y - v2.y);
|
||||||
|
float c2 = 1.0 - step(0.0, e.x * w.y - e.y * w.x);
|
||||||
|
float allCond = c0 * c1 * c2;
|
||||||
|
float noneCond = (1.0 - c0) * (1.0 - c1) * (1.0 - c2);
|
||||||
|
float flip = mix(1.0, -1.0, step(0.5, allCond + noneCond));
|
||||||
|
s *= flip;
|
||||||
|
}
|
||||||
|
|
||||||
|
return s * sqrt(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 normalize(vec2 value, float isPosition) {
|
||||||
|
return (value * 2.0 - (iResolution.xy * isPosition)) / iResolution.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
float ParametricBlend(float t)
|
||||||
|
{
|
||||||
|
float sqr = t * t;
|
||||||
|
return sqr / (2.0 * (sqr - t) + 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
float antialising(float distance) {
|
||||||
|
return 1. - smoothstep(0., normalize(vec2(2., 2.), 0.).x, distance);
|
||||||
|
}
|
||||||
|
|
||||||
|
float determineStartVertexFactor(vec2 a, vec2 b) {
|
||||||
|
// Conditions using step
|
||||||
|
float condition1 = step(b.x, a.x) * step(a.y, b.y); // a.x < b.x && a.y > b.y
|
||||||
|
float condition2 = step(a.x, b.x) * step(b.y, a.y); // a.x > b.x && a.y < b.y
|
||||||
|
|
||||||
|
// If neither condition is met, return 1 (else case)
|
||||||
|
return 1.0 - max(condition1, condition2);
|
||||||
|
}
|
||||||
|
|
||||||
|
const vec4 TRAIL_COLOR = vec4(1.0, 0.725, 0.161, 1.0);
|
||||||
|
const vec4 TRAIL_COLOR_ACCENT = vec4(1.0, 0., 0., 1.0);
|
||||||
|
// const vec4 TRAIL_COLOR = vec4(0.482, 0.886, 1.0, 1.0);
|
||||||
|
// const vec4 TRAIL_COLOR_ACCENT = vec4(0.0, 0.424, 1.0, 1.0);
|
||||||
|
const vec4 CURRENT_CURSOR_COLOR = TRAIL_COLOR;
|
||||||
|
const vec4 PREVIOUS_CURSOR_COLOR = TRAIL_COLOR;
|
||||||
|
const float DURATION = 0.2;
|
||||||
|
|
||||||
|
void mainImage(out vec4 fragColor, in vec2 fragCoord)
|
||||||
|
{
|
||||||
|
#if !defined(WEB)
|
||||||
|
fragColor = texture(iChannel0, fragCoord.xy / iResolution.xy);
|
||||||
|
#endif
|
||||||
|
//Normalization for fragCoord to a space of -1 to 1;
|
||||||
|
vec2 vu = normalize(fragCoord, 1.);
|
||||||
|
vec2 offsetFactor = vec2(-.5, 0.5);
|
||||||
|
|
||||||
|
//Normalization for cursor position and size;
|
||||||
|
//cursor xy has the postion in a space of -1 to 1;
|
||||||
|
//zw has the width and height
|
||||||
|
vec4 currentCursor = vec4(normalize(iCurrentCursor.xy, 1.), normalize(iCurrentCursor.zw, 0.));
|
||||||
|
vec4 previousCursor = vec4(normalize(iPreviousCursor.xy, 1.), normalize(iPreviousCursor.zw, 0.));
|
||||||
|
|
||||||
|
//When drawing a parellelogram between cursors for the trail i need to determine where to start at the top-left or top-right vertex of the cursor
|
||||||
|
float vertexFactor = determineStartVertexFactor(currentCursor.xy, previousCursor.xy);
|
||||||
|
float invertedVertexFactor = 1.0 - vertexFactor;
|
||||||
|
|
||||||
|
//Set every vertex of my parellogram
|
||||||
|
vec2 v0 = vec2(currentCursor.x + currentCursor.z * vertexFactor, currentCursor.y - currentCursor.w);
|
||||||
|
vec2 v1 = vec2(currentCursor.x + currentCursor.z * invertedVertexFactor, currentCursor.y);
|
||||||
|
vec2 v2 = vec2(previousCursor.x + currentCursor.z * invertedVertexFactor, previousCursor.y);
|
||||||
|
vec2 v3 = vec2(previousCursor.x + currentCursor.z * vertexFactor, previousCursor.y - previousCursor.w);
|
||||||
|
|
||||||
|
vec4 newColor = vec4(fragColor);
|
||||||
|
|
||||||
|
float progress = ParametricBlend(clamp((iTime - iTimeCursorChange) / DURATION, 0.0, 1.0));
|
||||||
|
|
||||||
|
//Distance between cursors determine the total length of the parallelogram;
|
||||||
|
float lineLength = distance(currentCursor.xy, previousCursor.xy);
|
||||||
|
float distanceToEnd = distance(vu.xy, vec2(currentCursor.x + (currentCursor.z / 2.), currentCursor.y - (currentCursor.w / 2.)));
|
||||||
|
float alphaModifier = distanceToEnd / (lineLength * (1.0 - progress));
|
||||||
|
|
||||||
|
// float d2 = sdTrail(vu, v0, v1, v2, v3);
|
||||||
|
// newColor = mix(newColor, TRAIL_COLOR_ACCENT, 1.0 - smoothstep(d2, -0.01, 0.001));
|
||||||
|
// newColor = mix(newColor, TRAIL_COLOR, 1.0 - smoothstep(d2, -0.01, 0.001));
|
||||||
|
// newColor = mix(newColor, TRAIL_COLOR, antialising(d2));
|
||||||
|
|
||||||
|
float cCursorDistance = sdBox(vu, currentCursor.xy - (currentCursor.zw * offsetFactor), currentCursor.zw * 0.5);
|
||||||
|
newColor = mix(newColor, TRAIL_COLOR_ACCENT, 1.0 - smoothstep(cCursorDistance, -0.000, 0.003 * (1. - progress)));
|
||||||
|
newColor = mix(newColor, CURRENT_CURSOR_COLOR, 1.0 - smoothstep(cCursorDistance, -0.000, 0.003 * (1. - progress)));
|
||||||
|
|
||||||
|
// float pCursorDistance = sdBox(vu, previousCursor.xy - (previousCursor.zw * offsetFactor), previousCursor.zw * 0.5);
|
||||||
|
// newColor = mix(newColor, PREVIOUS_CURSOR_COLOR, antialising(pCursorDistance));
|
||||||
|
|
||||||
|
fragColor = mix(fragColor, newColor, 1.);
|
||||||
|
// fragColor = mix(fragColor, newColor, 1.0 - alphaModifier);
|
||||||
|
}
|
||||||
BIN
ghostty/.config/ghostty/earth.png
Normal file
BIN
ghostty/.config/ghostty/earth.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 MiB |
156
ghostty/.config/ghostty/starfield.glsl
Normal file
156
ghostty/.config/ghostty/starfield.glsl
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
// flip this: false = white stars on dark bg, true = dark stars on light bg
|
||||||
|
const bool invertStars = false;
|
||||||
|
|
||||||
|
// how dark the inverted stars are (0.0 = pure black, 1.0 = invisible/white)
|
||||||
|
const float invertedStarBrightness = 0.7;
|
||||||
|
|
||||||
|
// transparent background
|
||||||
|
const bool transparent = true;
|
||||||
|
|
||||||
|
// terminal contents luminance threshold to be considered background (0.0 to 1.0)
|
||||||
|
const float threshold = 0.15;
|
||||||
|
|
||||||
|
// divisions of grid
|
||||||
|
const float repeats = 6.;
|
||||||
|
|
||||||
|
// number of layers
|
||||||
|
const float layers = 3.;
|
||||||
|
|
||||||
|
float luminance(vec3 color) {
|
||||||
|
return dot(color, vec3(0.2126, 0.7152, 0.0722));
|
||||||
|
}
|
||||||
|
|
||||||
|
float N21(vec2 p) {
|
||||||
|
p = fract(p * vec2(233.34, 851.73));
|
||||||
|
p += dot(p, p + 23.45);
|
||||||
|
return fract(p.x * p.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 N22(vec2 p) {
|
||||||
|
float n = N21(p);
|
||||||
|
return vec2(n, N21(p + n));
|
||||||
|
}
|
||||||
|
|
||||||
|
mat2 scale(vec2 _scale) {
|
||||||
|
return mat2(_scale.x, 0.0,
|
||||||
|
0.0, _scale.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2D Noise based on Morgan McGuire
|
||||||
|
float noise(in vec2 st) {
|
||||||
|
vec2 i = floor(st);
|
||||||
|
vec2 f = fract(st);
|
||||||
|
|
||||||
|
// Four corners in 2D of a tile
|
||||||
|
float a = N21(i);
|
||||||
|
float b = N21(i + vec2(1.0, 0.0));
|
||||||
|
float c = N21(i + vec2(0.0, 1.0));
|
||||||
|
float d = N21(i + vec2(1.0, 1.0));
|
||||||
|
|
||||||
|
// Smooth Interpolation
|
||||||
|
vec2 u = f * f * (3.0 - 2.0 * f); // Cubic Hermite Curve
|
||||||
|
|
||||||
|
// Mix 4 corners percentages
|
||||||
|
return mix(a, b, u.x) +
|
||||||
|
(c - a) * u.y * (1.0 - u.x) +
|
||||||
|
(d - b) * u.x * u.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
float perlin2(vec2 uv, int octaves, float pscale) {
|
||||||
|
float col = 1.;
|
||||||
|
float initScale = 4.;
|
||||||
|
for (int l = 0; l < octaves; l++) {
|
||||||
|
float val = noise(uv * initScale);
|
||||||
|
if (col <= 0.01) {
|
||||||
|
col = 0.;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
val -= 0.01;
|
||||||
|
val *= 0.5;
|
||||||
|
col *= val;
|
||||||
|
initScale *= pscale;
|
||||||
|
}
|
||||||
|
return col;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 stars(vec2 uv, float offset) {
|
||||||
|
float timeScale = -(iTime * 0.01 + offset) / layers;
|
||||||
|
float trans = fract(timeScale);
|
||||||
|
float newRnd = floor(timeScale);
|
||||||
|
vec3 col = vec3(0.);
|
||||||
|
|
||||||
|
// Translate uv then scale for center
|
||||||
|
uv -= vec2(0.5);
|
||||||
|
uv = scale(vec2(trans)) * uv;
|
||||||
|
uv += vec2(0.5);
|
||||||
|
|
||||||
|
// Create square aspect ratio
|
||||||
|
uv.x *= iResolution.x / iResolution.y;
|
||||||
|
|
||||||
|
// Create boxes
|
||||||
|
uv *= repeats;
|
||||||
|
|
||||||
|
// Get position
|
||||||
|
vec2 ipos = floor(uv);
|
||||||
|
|
||||||
|
// Return uv as 0 to 1
|
||||||
|
uv = fract(uv);
|
||||||
|
|
||||||
|
// Calculate random xy and size
|
||||||
|
vec2 rndXY = N22(newRnd + ipos * (offset + 1.)) * 0.9 + 0.05;
|
||||||
|
float rndSize = N21(ipos) * 200. + 500.;
|
||||||
|
|
||||||
|
vec2 j = (rndXY - uv) * rndSize;
|
||||||
|
float sparkle = 1. / dot(j, j);
|
||||||
|
|
||||||
|
col += vec3(1.0) * sparkle;
|
||||||
|
|
||||||
|
col *= smoothstep(1., 0.8, trans);
|
||||||
|
return col;
|
||||||
|
}
|
||||||
|
|
||||||
|
void mainImage(out vec4 fragColor, in vec2 fragCoord)
|
||||||
|
{
|
||||||
|
// Normalized pixel coordinates (from 0 to 1)
|
||||||
|
vec2 uv = fragCoord / iResolution.xy;
|
||||||
|
|
||||||
|
vec3 col = vec3(0.);
|
||||||
|
|
||||||
|
for (float i = 0.; i < layers; i++) {
|
||||||
|
col += stars(uv, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clamp sparkle intensity
|
||||||
|
col = clamp(col, 0.0, 1.0);
|
||||||
|
|
||||||
|
// Invert: white sparkle on black bg becomes dark sparkle on white bg
|
||||||
|
if (invertStars) {
|
||||||
|
col = vec3(1.0) - col;
|
||||||
|
col = mix(col, vec3(1.0), invertedStarBrightness);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sample the terminal screen texture including alpha channel
|
||||||
|
vec4 terminalColor = texture(iChannel0, uv);
|
||||||
|
|
||||||
|
if (transparent) {
|
||||||
|
col = invertStars ? col * terminalColor.rgb : col + terminalColor.rgb;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mask: detect background pixels of terminal content
|
||||||
|
// For light bg, background has HIGH luminance; for dark bg, background has LOW luminance
|
||||||
|
float termLum = luminance(terminalColor.rgb);
|
||||||
|
float mask;
|
||||||
|
if (invertStars) {
|
||||||
|
// Light bg: background is bright, text is dark — show stars where luminance is HIGH
|
||||||
|
mask = step(1.0 - threshold, termLum);
|
||||||
|
} else {
|
||||||
|
// Dark bg: background is dark, text is bright — show stars where luminance is LOW
|
||||||
|
mask = 1.0 - step(threshold, termLum);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 blendedColor = mix(terminalColor.rgb, col, mask);
|
||||||
|
|
||||||
|
// Apply terminal's alpha to control overall opacity
|
||||||
|
fragColor = vec4(blendedColor, terminalColor.a);
|
||||||
|
}
|
||||||
|
|
||||||
18
ghostty/.config/ghostty/themes/onedark
Normal file
18
ghostty/.config/ghostty/themes/onedark
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
palette = 0=#282c34
|
||||||
|
palette = 1=#e06c75
|
||||||
|
palette = 2=#98c379
|
||||||
|
palette = 3=#e5c07b
|
||||||
|
palette = 4=#61afef
|
||||||
|
palette = 5=#c678dd
|
||||||
|
palette = 6=#56b6c2
|
||||||
|
palette = 7=#abb2bf
|
||||||
|
palette = 8=#5f687b
|
||||||
|
palette = 9=#e06c75
|
||||||
|
palette = 10=#98c379
|
||||||
|
palette = 11=#e5c07b
|
||||||
|
palette = 12=#61afef
|
||||||
|
palette = 13=#c678dd
|
||||||
|
palette = 14=#56b6c2
|
||||||
|
palette = 15=#bfc5ce
|
||||||
|
background = #111111
|
||||||
|
foreground = #abb2bf
|
||||||
18
ghostty/.config/ghostty/themes/onelight
Normal file
18
ghostty/.config/ghostty/themes/onelight
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
palette = 0=#000000
|
||||||
|
palette = 1=#b6443a
|
||||||
|
palette = 2=#40803f
|
||||||
|
palette = 3=#795300
|
||||||
|
palette = 4=#3360c1
|
||||||
|
palette = 5=#841e83
|
||||||
|
palette = 6=#006996
|
||||||
|
palette = 7=#6d6d59
|
||||||
|
palette = 8=#000000
|
||||||
|
palette = 9=#b6443a
|
||||||
|
palette = 10=#40803f
|
||||||
|
palette = 11=#795300
|
||||||
|
palette = 12=#3360c1
|
||||||
|
palette = 13=#841e83
|
||||||
|
palette = 14=#006996
|
||||||
|
palette = 15=#ccccc0
|
||||||
|
background = #eeeeee
|
||||||
|
foreground = #2a2b33
|
||||||
9
k9s/.config/k9s/aliases.yaml
Normal file
9
k9s/.config/k9s/aliases.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
aliases:
|
||||||
|
dp: deployments
|
||||||
|
sec: v1/secrets
|
||||||
|
jo: jobs
|
||||||
|
cr: clusterroles
|
||||||
|
crb: clusterrolebindings
|
||||||
|
ro: roles
|
||||||
|
rb: rolebindings
|
||||||
|
np: networkpolicies
|
||||||
0
k9s/.config/k9s/clusters/hi
Normal file
0
k9s/.config/k9s/clusters/hi
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
benchmarks:
|
||||||
|
defaults:
|
||||||
|
concurrency: 2
|
||||||
|
requests: 200
|
||||||
12
k9s/.config/k9s/clusters/kind-kind/kind-kind/config.yaml
Normal file
12
k9s/.config/k9s/clusters/kind-kind/kind-kind/config.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
k9s:
|
||||||
|
cluster: kind-kind
|
||||||
|
namespace:
|
||||||
|
active: default
|
||||||
|
lockFavorites: false
|
||||||
|
favorites:
|
||||||
|
- default
|
||||||
|
view:
|
||||||
|
active: context
|
||||||
|
featureGates:
|
||||||
|
nodeShell: false
|
||||||
|
portForwardAddress: localhost
|
||||||
43
k9s/.config/k9s/config.yaml
Normal file
43
k9s/.config/k9s/config.yaml
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
k9s:
|
||||||
|
liveViewAutoRefresh: false
|
||||||
|
screenDumpDir: /Users/matt/Library/Application Support/k9s/screen-dumps
|
||||||
|
refreshRate: 2
|
||||||
|
maxConnRetry: 5
|
||||||
|
readOnly: false
|
||||||
|
noExitOnCtrlC: false
|
||||||
|
ui:
|
||||||
|
enableMouse: false
|
||||||
|
headless: true
|
||||||
|
logoless: false
|
||||||
|
crumbsless: false
|
||||||
|
reactive: false
|
||||||
|
noIcons: false
|
||||||
|
defaultsToFullScreen: false
|
||||||
|
skin: onedark
|
||||||
|
skipLatestRevCheck: false
|
||||||
|
disablePodCounting: false
|
||||||
|
shellPod:
|
||||||
|
image: busybox:1.35.0
|
||||||
|
namespace: default
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 100Mi
|
||||||
|
imageScans:
|
||||||
|
enable: false
|
||||||
|
exclusions:
|
||||||
|
namespaces: []
|
||||||
|
labels: {}
|
||||||
|
logger:
|
||||||
|
tail: 100
|
||||||
|
buffer: 5000
|
||||||
|
sinceSeconds: -1
|
||||||
|
textWrap: false
|
||||||
|
disableAutoscroll: false
|
||||||
|
showTime: false
|
||||||
|
thresholds:
|
||||||
|
cpu:
|
||||||
|
critical: 90
|
||||||
|
warn: 70
|
||||||
|
memory:
|
||||||
|
critical: 90
|
||||||
|
warn: 70
|
||||||
17
k9s/.config/k9s/k9s-theme-sync.sh
Executable file
17
k9s/.config/k9s/k9s-theme-sync.sh
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
appearance=$(defaults read -g AppleInterfaceStyle 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ "$appearance" = "Dark" ]]; then
|
||||||
|
skin="onedark"
|
||||||
|
else
|
||||||
|
skin="onelight"
|
||||||
|
fi
|
||||||
|
|
||||||
|
config_file="$HOME/dotfiles/k9s/.config/k9s/config.yaml"
|
||||||
|
|
||||||
|
if [[ -f "$config_file" ]]; then
|
||||||
|
sed -i '' "s/skin: .*/skin: $skin/" "$config_file"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec k9s "$@"
|
||||||
12241
k9s/.config/k9s/k9s.log
Normal file
12241
k9s/.config/k9s/k9s.log
Normal file
File diff suppressed because it is too large
Load Diff
15
k9s/.config/k9s/plugins/debug-container.yaml
Normal file
15
k9s/.config/k9s/plugins/debug-container.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
plugins:
|
||||||
|
#--- Create debug container for selected pod in current namespace
|
||||||
|
# See https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container
|
||||||
|
debug:
|
||||||
|
shortCut: Shift-D
|
||||||
|
description: Add debug container
|
||||||
|
dangerous: true
|
||||||
|
scopes:
|
||||||
|
- containers
|
||||||
|
command: bash
|
||||||
|
background: false
|
||||||
|
confirm: true
|
||||||
|
args:
|
||||||
|
- -c
|
||||||
|
- "kubectl debug -it --context $CONTEXT -n=$NAMESPACE $POD --target=$NAME --image=nicolaka/netshoot:v0.14 --profile=sysadmin --share-processes -- bash"
|
||||||
108
k9s/.config/k9s/skins/onedark.yaml
Normal file
108
k9s/.config/k9s/skins/onedark.yaml
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
foreground: &foreground "#abb2bf"
|
||||||
|
background: &background "transparent"
|
||||||
|
black: &black "#282c34"
|
||||||
|
blue: &blue "#61afef"
|
||||||
|
green: &green "#98c379"
|
||||||
|
grey: &grey "#abb2bf"
|
||||||
|
orange: &orange "#ffb86c"
|
||||||
|
purple: &purple "#c678dd"
|
||||||
|
red: &red "#e06370"
|
||||||
|
yellow: &yellow "#e5c07b"
|
||||||
|
yellow_bright: &yellow_bright "#d19a66"
|
||||||
|
|
||||||
|
k9s:
|
||||||
|
body:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
logoColor: *green
|
||||||
|
prompt:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
suggestColor: *orange
|
||||||
|
info:
|
||||||
|
fgColor: *grey
|
||||||
|
sectionColor: *green
|
||||||
|
help:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
keyColor: *yellow
|
||||||
|
numKeyColor: *blue
|
||||||
|
sectionColor: *purple
|
||||||
|
dialog:
|
||||||
|
fgColor: *black
|
||||||
|
bgColor: *background
|
||||||
|
buttonFgColor: *foreground
|
||||||
|
buttonBgColor: *green
|
||||||
|
buttonFocusFgColor: *black
|
||||||
|
buttonFocusBgColor: *blue
|
||||||
|
labelFgColor: *orange
|
||||||
|
fieldFgColor: *blue
|
||||||
|
frame:
|
||||||
|
border:
|
||||||
|
fgColor: *green
|
||||||
|
focusColor: *blue
|
||||||
|
menu:
|
||||||
|
fgColor: *grey
|
||||||
|
keyColor: *yellow
|
||||||
|
numKeyColor: *yellow
|
||||||
|
crumbs:
|
||||||
|
fgColor: *black
|
||||||
|
bgColor: *green
|
||||||
|
activeColor: *yellow
|
||||||
|
status:
|
||||||
|
newColor: *blue
|
||||||
|
modifyColor: *green
|
||||||
|
addColor: *grey
|
||||||
|
pendingColor: *orange
|
||||||
|
errorColor: *red
|
||||||
|
highlightColor: *yellow
|
||||||
|
killColor: *purple
|
||||||
|
completedColor: *grey
|
||||||
|
title:
|
||||||
|
fgColor: *blue
|
||||||
|
bgColor: *background
|
||||||
|
highlightColor: *purple
|
||||||
|
counterColor: *foreground
|
||||||
|
filterColor: *blue
|
||||||
|
views:
|
||||||
|
charts:
|
||||||
|
bgColor: *background
|
||||||
|
defaultDialColors:
|
||||||
|
- *green
|
||||||
|
- *red
|
||||||
|
defaultChartColors:
|
||||||
|
- *green
|
||||||
|
- *red
|
||||||
|
table:
|
||||||
|
fgColor: *yellow
|
||||||
|
bgColor: *background
|
||||||
|
cursorFgColor: *black
|
||||||
|
cursorBgColor: *blue
|
||||||
|
markColor: *yellow_bright
|
||||||
|
header:
|
||||||
|
fgColor: *grey
|
||||||
|
bgColor: *background
|
||||||
|
sorterColor: *orange
|
||||||
|
xray:
|
||||||
|
fgColor: *blue
|
||||||
|
bgColor: *background
|
||||||
|
cursorColor: *foreground
|
||||||
|
graphicColor: *yellow_bright
|
||||||
|
showIcons: false
|
||||||
|
yaml:
|
||||||
|
keyColor: *red
|
||||||
|
colonColor: *grey
|
||||||
|
valueColor: *grey
|
||||||
|
logs:
|
||||||
|
fgColor: *grey
|
||||||
|
bgColor: *background
|
||||||
|
indicator:
|
||||||
|
fgColor: *blue
|
||||||
|
bgColor: *background
|
||||||
|
toggleOnColor: *red
|
||||||
|
toggleOffColor: *grey
|
||||||
|
help:
|
||||||
|
fgColor: *grey
|
||||||
|
bgColor: *background
|
||||||
|
indicator:
|
||||||
|
fgColor: *blue
|
||||||
113
k9s/.config/k9s/skins/onelight.yaml
Normal file
113
k9s/.config/k9s/skins/onelight.yaml
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# OneLight Skin
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Styles...
|
||||||
|
foreground: &foreground "#2a2b33"
|
||||||
|
background: &background "#eeeeee"
|
||||||
|
black: &black "#000000"
|
||||||
|
blue: &blue "#3360c1"
|
||||||
|
green: &green "#40803f"
|
||||||
|
grey: &grey "#2a2b33"
|
||||||
|
orange: &orange "#ffb86c"
|
||||||
|
purple: &purple "#841e83"
|
||||||
|
red: &red "#b6443a"
|
||||||
|
yellow: &yellow "#795300"
|
||||||
|
|
||||||
|
# Skin...
|
||||||
|
k9s:
|
||||||
|
body:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
logoColor: *green
|
||||||
|
prompt:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
suggestColor: *orange
|
||||||
|
info:
|
||||||
|
fgColor: *grey
|
||||||
|
sectionColor: *green
|
||||||
|
help:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
keyColor: *yellow
|
||||||
|
numKeyColor: *blue
|
||||||
|
sectionColor: *purple
|
||||||
|
dialog:
|
||||||
|
fgColor: *black
|
||||||
|
bgColor: *background
|
||||||
|
buttonFgColor: *foreground
|
||||||
|
buttonBgColor: *green
|
||||||
|
buttonFocusFgColor: *black
|
||||||
|
buttonFocusBgColor: *blue
|
||||||
|
labelFgColor: *orange
|
||||||
|
fieldFgColor: *blue
|
||||||
|
frame:
|
||||||
|
border:
|
||||||
|
fgColor: *foreground
|
||||||
|
focusColor: *blue
|
||||||
|
menu:
|
||||||
|
fgColor: *grey
|
||||||
|
keyColor: *yellow
|
||||||
|
numKeyColor: *yellow
|
||||||
|
crumbs:
|
||||||
|
fgColor: *background
|
||||||
|
bgColor: *green
|
||||||
|
activeColor: *yellow
|
||||||
|
status:
|
||||||
|
newColor: *blue
|
||||||
|
modifyColor: *green
|
||||||
|
addColor: *grey
|
||||||
|
pendingColor: *orange
|
||||||
|
errorColor: *red
|
||||||
|
highlightColor: *yellow
|
||||||
|
killColor: *purple
|
||||||
|
completedColor: *grey
|
||||||
|
title:
|
||||||
|
fgColor: *blue
|
||||||
|
bgColor: *background
|
||||||
|
highlightColor: *purple
|
||||||
|
counterColor: *foreground
|
||||||
|
filterColor: *blue
|
||||||
|
views:
|
||||||
|
charts:
|
||||||
|
bgColor: *background
|
||||||
|
defaultDialColors:
|
||||||
|
- *green
|
||||||
|
- *red
|
||||||
|
defaultChartColors:
|
||||||
|
- *green
|
||||||
|
- *red
|
||||||
|
table:
|
||||||
|
fgColor: *yellow
|
||||||
|
bgColor: *background
|
||||||
|
cursorFgColor: *background
|
||||||
|
cursorBgColor: *blue
|
||||||
|
markColor: *yellow
|
||||||
|
header:
|
||||||
|
fgColor: *grey
|
||||||
|
bgColor: *background
|
||||||
|
sorterColor: *orange
|
||||||
|
xray:
|
||||||
|
fgColor: *blue
|
||||||
|
bgColor: *background
|
||||||
|
cursorColor: *foreground
|
||||||
|
graphicColor: *yellow
|
||||||
|
showIcons: false
|
||||||
|
yaml:
|
||||||
|
keyColor: *red
|
||||||
|
colonColor: *grey
|
||||||
|
valueColor: *grey
|
||||||
|
logs:
|
||||||
|
fgColor: *grey
|
||||||
|
bgColor: *background
|
||||||
|
indicator:
|
||||||
|
fgColor: *blue
|
||||||
|
bgColor: *background
|
||||||
|
toggleOnColor: *red
|
||||||
|
toggleOffColor: *grey
|
||||||
|
help:
|
||||||
|
fgColor: *grey
|
||||||
|
bgColor: *background
|
||||||
|
indicator:
|
||||||
|
fgColor: *blue
|
||||||
44
k9s/.config/k9s/skins/transparent.yaml
Normal file
44
k9s/.config/k9s/skins/transparent.yaml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Transparent skin
|
||||||
|
# Preserve your terminal session background color
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Skin...
|
||||||
|
k9s:
|
||||||
|
body:
|
||||||
|
bgColor: default
|
||||||
|
prompt:
|
||||||
|
bgColor: default
|
||||||
|
info:
|
||||||
|
sectionColor: default
|
||||||
|
dialog:
|
||||||
|
bgColor: default
|
||||||
|
labelFgColor: default
|
||||||
|
fieldFgColor: default
|
||||||
|
frame:
|
||||||
|
crumbs:
|
||||||
|
bgColor: default
|
||||||
|
title:
|
||||||
|
bgColor: default
|
||||||
|
counterColor: default
|
||||||
|
menu:
|
||||||
|
fgColor: default
|
||||||
|
views:
|
||||||
|
charts:
|
||||||
|
bgColor: default
|
||||||
|
table:
|
||||||
|
bgColor: default
|
||||||
|
header:
|
||||||
|
fgColor: default
|
||||||
|
bgColor: default
|
||||||
|
xray:
|
||||||
|
bgColor: default
|
||||||
|
logs:
|
||||||
|
bgColor: default
|
||||||
|
indicator:
|
||||||
|
bgColor: default
|
||||||
|
toggleOnColor: default
|
||||||
|
toggleOffColor: default
|
||||||
|
yaml:
|
||||||
|
colonColor: default
|
||||||
|
valueColor: default
|
||||||
4
nvim-termux/.config/nvim/init.lua
Normal file
4
nvim-termux/.config/nvim/init.lua
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
-- Minimal Neovim config for Termux - Orgmode focused
|
||||||
|
require('plugins')
|
||||||
|
require('settings')
|
||||||
|
require('maps')
|
||||||
62
nvim-termux/.config/nvim/lua/maps.lua
Normal file
62
nvim-termux/.config/nvim/lua/maps.lua
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
vim.keymap.set('n', '<M-h>', '5<C-w><', { desc = 'Resize left' })
|
||||||
|
vim.keymap.set('n', '<M-j>', '5<C-w>+', { desc = 'Resize down' })
|
||||||
|
vim.keymap.set('n', '<M-k>', '5<C-w>-', { desc = 'Resize up' })
|
||||||
|
vim.keymap.set('n', '<M-l>', '5<C-w>>', { desc = 'Resize right' })
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>ev', ':edit $MYVIMRC<CR>', { noremap = true })
|
||||||
|
|
||||||
|
-- Map Ctrl+Shift+h/j/k/l to resize panes
|
||||||
|
local builtin = require('telescope.builtin')
|
||||||
|
|
||||||
|
-- nnn
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-f>', ':NnnPicker %:p:h<CR>', { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap('t', '<C-f>', '<cmd>NnnPicker %:p:h<CR>', { noremap = true })
|
||||||
|
|
||||||
|
-- nvim-tree
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-b>', '<cmd>NvimTreeToggle <CR>', { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>b', ':NvimTreeResize ', { noremap = true })
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
vim.keymap.set('n', '<C-l>', builtin.find_files, {})
|
||||||
|
vim.keymap.set('n', '<C-k>', builtin.live_grep, {})
|
||||||
|
vim.keymap.set('n', '<C-p>', builtin.commands, {})
|
||||||
|
|
||||||
|
-- etc
|
||||||
|
vim.keymap.set('n', '?', ':WhichKey<CR>', {})
|
||||||
|
|
||||||
|
-- zen mode
|
||||||
|
vim.keymap.set('n', '<leader>z', ':ZenMode<CR>', { silent = true })
|
||||||
|
|
||||||
|
-- Language shortcuts
|
||||||
|
vim.keymap.set('i', '<C-e>', 'if err != nil {}<Left>', { noremap = true })
|
||||||
|
|
||||||
|
vim.cmd [[autocmd BufWritePre *.go lua vim.lsp.buf.format()]]
|
||||||
|
|
||||||
|
-- Change Tabs
|
||||||
|
vim.keymap.set('n', '<leader>1', '1gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>2', '2gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>3', '3gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>4', '4gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>5', '5gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>6', '6gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>7', '7gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>8', '8gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>9', '9gt', {})
|
||||||
|
|
||||||
|
-- DAP
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>d', ':DapViewToggle<cr>', { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>w', ':DapViewWatch<cr>', { noremap = true })
|
||||||
|
vim.keymap.set('n', '<F5>', function() require('dap').continue() end)
|
||||||
|
vim.keymap.set('n', '<F6>', function() require('dap').restart() end)
|
||||||
|
vim.keymap.set('n', '<F10>', function() require('dap').step_over() end)
|
||||||
|
vim.keymap.set('n', '<F11>', function() require('dap').step_into() end)
|
||||||
|
vim.keymap.set('n', '<F12>', function() require('dap').step_out() end)
|
||||||
|
vim.keymap.set('n', '<leader>b', function() require('dap').toggle_breakpoint() end)
|
||||||
|
|
||||||
|
-- Copilot
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-C>', ':CopilotChatToggle <CR>', { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('i', '<C-J>', 'copilot#Accept("<CR>")', { expr=true, noremap = true, silent = true })
|
||||||
|
vim.keymap.set('i', '<C-H>', '<Plug>(copilot-accept-word)', { noremap=true, silent=true })
|
||||||
|
vim.keymap.set("i", "<C-U>", '<Plug>(copilot-next)', { noremap=true, silent=true })
|
||||||
|
vim.keymap.set("i", "<C-B>", '<Plug>(copilot-previous)', { noremap=true, silent=true })
|
||||||
|
vim.g.copilot_no_tab_map = true
|
||||||
113
nvim-termux/.config/nvim/lua/plugins.lua
Normal file
113
nvim-termux/.config/nvim/lua/plugins.lua
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not vim.loop.fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
|
"--branch=stable", -- latest stable release
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
-- Install Plugins
|
||||||
|
require('lazy').setup({
|
||||||
|
-- LSP
|
||||||
|
'luukvbaal/nnn.nvim',
|
||||||
|
'nvim-tree/nvim-tree.lua',
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
'nvim-telescope/telescope-ui-select.nvim',
|
||||||
|
{
|
||||||
|
"nvim-orgmode/orgmode",
|
||||||
|
dependencies = {
|
||||||
|
"lukas-reineke/headlines.nvim",
|
||||||
|
},
|
||||||
|
event = 'VeryLazy',
|
||||||
|
ft = { 'org' },
|
||||||
|
config = function()
|
||||||
|
require("orgmode").setup({
|
||||||
|
org_startup_indented = true, -- ← this gives Emacs-style virtual indentation under headings (huge for legibility)
|
||||||
|
org_agenda_files = '~/org/**/*',
|
||||||
|
org_default_notes_file = '~/org/scratch.org',
|
||||||
|
org_startup_indented = true,
|
||||||
|
org_deadline_warning_days = 0,
|
||||||
|
org_agenda_custom_commands = {
|
||||||
|
w = {
|
||||||
|
description = "Work",
|
||||||
|
types = {
|
||||||
|
{
|
||||||
|
type = 'agenda',
|
||||||
|
org_agenda_tag_filter_preset = 'work'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
p = {
|
||||||
|
description = "Personal",
|
||||||
|
types = {
|
||||||
|
{
|
||||||
|
type = 'agenda',
|
||||||
|
org_agenda_tag_filter_preset = 'personal'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
require("headlines").setup({
|
||||||
|
org = {
|
||||||
|
fat_headlines = false, -- ← no more huge blocks
|
||||||
|
headline_highlights = { "Headline1", "Headline2", "Headline3", "Headline4" },
|
||||||
|
quote_string = "│", -- thinner vertical bar for quotes (optional but nicer)
|
||||||
|
quote_highlight = "Quote",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Initialize Plugins
|
||||||
|
require('nnn').setup({
|
||||||
|
picker = {
|
||||||
|
cmd = "nnn -C",
|
||||||
|
style = { border = "rounded" },
|
||||||
|
fullscreen = false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
local function tree_on_attach(bufnr)
|
||||||
|
local api = require('nvim-tree.api')
|
||||||
|
api.config.mappings.default_on_attach(bufnr)
|
||||||
|
vim.keymap.del('n', '<C-e>', { buffer = bufnr })
|
||||||
|
vim.keymap.set("n", "<M-h>", function() api.tree.resize({ relative = -5 }) end, { buffer = bufnr })
|
||||||
|
vim.keymap.set("n", "<M-l>", function() api.tree.resize({ relative = 5 }) end, { buffer = bufnr })
|
||||||
|
end
|
||||||
|
require('nvim-tree').setup({
|
||||||
|
on_attach = tree_on_attach,
|
||||||
|
view = {
|
||||||
|
side = "left",
|
||||||
|
},
|
||||||
|
tab = {
|
||||||
|
sync = {
|
||||||
|
open = true,
|
||||||
|
close = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
require('telescope').setup({
|
||||||
|
defaults = {
|
||||||
|
file_ignore_patterns = {
|
||||||
|
"%.git/",
|
||||||
|
"node_modules/",
|
||||||
|
"%.DS_Store",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pickers = {
|
||||||
|
find_files = {
|
||||||
|
hidden = true,
|
||||||
|
no_ignore = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
require("telescope").load_extension("ui-select")
|
||||||
52
nvim-termux/.config/nvim/lua/settings.lua
Normal file
52
nvim-termux/.config/nvim/lua/settings.lua
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
vim.o.mouse = "a"
|
||||||
|
vim.o.shiftwidth = 4
|
||||||
|
vim.o.tabstop = 4
|
||||||
|
vim.o.expandtab = true
|
||||||
|
vim.o.autoindent = true
|
||||||
|
vim.o.foldmethod = "indent"
|
||||||
|
vim.o.foldlevel = 99
|
||||||
|
vim.o.wrap = false
|
||||||
|
vim.wo.number = true
|
||||||
|
vim.wo.relativenumber = true
|
||||||
|
vim.g.mapleader = ' '
|
||||||
|
vim.o.splitright = true
|
||||||
|
-- vim.o.scrolloff = 999
|
||||||
|
-- vim.o.clipboard="unnamedplus"
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
pattern = "markdown",
|
||||||
|
command = "setlocal wrap linebreak",
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
pattern = "org",
|
||||||
|
command = "setlocal shiftwidth=2 tabstop=2 expandtab",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Highlighting for orgmode files with highlight.nvim
|
||||||
|
vim.api.nvim_create_autocmd("ColorScheme", {
|
||||||
|
callback = function()
|
||||||
|
local cursorline = vim.api.nvim_get_hl(0, { name = "CursorLine" })
|
||||||
|
local sep = vim.api.nvim_get_hl(0, { name = "WinSeparator" }).fg
|
||||||
|
or vim.api.nvim_get_hl(0, { name = "Comment" }).fg
|
||||||
|
|
||||||
|
vim.api.nvim_set_hl(0, "Headline1", { bg = cursorline.bg, underline = true, sp = sep })
|
||||||
|
vim.api.nvim_set_hl(0, "Headline2", { bg = cursorline.bg, underline = true, sp = sep })
|
||||||
|
vim.api.nvim_set_hl(0, "Headline3", { bg = cursorline.bg, underline = true, sp = sep })
|
||||||
|
vim.api.nvim_set_hl(0, "Headline4", { bg = cursorline.bg, underline = true, sp = sep })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Global colorscheme based on terminal colors
|
||||||
|
vim.cmd([[
|
||||||
|
autocmd ColorScheme * highlight Statement cterm=bold ctermfg=5
|
||||||
|
autocmd ColorScheme * highlight Keyword ctermfg=5
|
||||||
|
autocmd ColorScheme * highlight Type ctermfg=6
|
||||||
|
autocmd ColorScheme * highlight Function cterm=bold ctermfg=4
|
||||||
|
autocmd ColorScheme * highlight Constant ctermfg=3
|
||||||
|
autocmd ColorScheme * highlight String ctermfg=2
|
||||||
|
" autocmd ColorScheme * highlight Comment cterm=italic ctermfg=lightgray
|
||||||
|
|
||||||
|
syntax on
|
||||||
|
set notermguicolors
|
||||||
|
colorscheme default
|
||||||
|
]])
|
||||||
6
nvim/.config/nvim/init.lua
Normal file
6
nvim/.config/nvim/init.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
require('plugins')
|
||||||
|
require('lsp')
|
||||||
|
require('settings')
|
||||||
|
require('maps')
|
||||||
|
require('line')
|
||||||
|
|
||||||
30
nvim/.config/nvim/lazy-lock.json
Normal file
30
nvim/.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"CopilotChat.nvim": { "branch": "main", "commit": "743d6005fb412c85309d3f3aa45f18f3a2fb2098" },
|
||||||
|
"LuaSnip": { "branch": "master", "commit": "1f4ad8bb72bdeb60975e98652636b991a9b7475d" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||||
|
"copilot.vim": { "branch": "release", "commit": "a12fd5672110c8aa7e3c8419e28c96943ca179be" },
|
||||||
|
"formatter.nvim": { "branch": "master", "commit": "b9d7f853da1197b83b8edb4cc4952f7ad3a42e41" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "9f3c6dd7868bcc116e9c1c1929ce063b978fa519" },
|
||||||
|
"headlines.nvim": { "branch": "master", "commit": "bf17c96a836ea27c0a7a2650ba385a7783ed322e" },
|
||||||
|
"helm-ls.nvim": { "branch": "main", "commit": "f0b9a1723890971a6d84890b50dbf5f40974ea1b" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||||
|
"leetcode.nvim": { "branch": "master", "commit": "fdd3f91800b3983e27bc9fcfb99cfa7293d7f11a" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
|
||||||
|
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||||
|
"nnn.nvim": { "branch": "master", "commit": "efe690293eee87558f034a83ed96157e52639cdb" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
|
||||||
|
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
|
||||||
|
"nvim-dap": { "branch": "master", "commit": "b516f20b487b0ac6a281e376dfac1d16b5040041" },
|
||||||
|
"nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" },
|
||||||
|
"nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "ead0f5f342d8d323441e7d4b88f0fc436a81ad5f" },
|
||||||
|
"nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
|
||||||
|
"nvim-tree.lua": { "branch": "master", "commit": "c8d8d515c29f0f0b1a352e0d75616f74f42fc03b" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||||
|
"orgmode": { "branch": "master", "commit": "f3ea61f6d71486c9062d40efe3c882050758e9b3" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||||
|
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||||
|
"telescope.nvim": { "branch": "master", "commit": "5255aa27c422de944791318024167ad5d40aad20" },
|
||||||
|
"zen-mode.nvim": { "branch": "main", "commit": "8564ce6d29ec7554eb9df578efa882d33b3c23a7" }
|
||||||
|
}
|
||||||
30
nvim/.config/nvim/lua/line.lua
Normal file
30
nvim/.config/nvim/lua/line.lua
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
-- 1) define a global helper to fetch counts
|
||||||
|
function _G.lsp_diag_status()
|
||||||
|
local buf = 0 -- current buffer
|
||||||
|
local errs = #vim.diagnostic.get(buf, { severity = vim.diagnostic.severity.ERROR })
|
||||||
|
local warns = #vim.diagnostic.get(buf, { severity = vim.diagnostic.severity.WARN })
|
||||||
|
local infos = #vim.diagnostic.get(buf, { severity = vim.diagnostic.severity.INFO })
|
||||||
|
local hints = #vim.diagnostic.get(buf, { severity = vim.diagnostic.severity.HINT })
|
||||||
|
if errs + warns + infos + hints == 0 then
|
||||||
|
return "" -- no diagnostics → empty
|
||||||
|
end
|
||||||
|
-- only show non-zero categories
|
||||||
|
local parts = {}
|
||||||
|
if errs > 0 then table.insert(parts, "E:"..errs) end
|
||||||
|
if warns > 0 then table.insert(parts, "W:"..warns) end
|
||||||
|
if infos > 0 then table.insert(parts, "I:"..infos) end
|
||||||
|
if hints > 0 then table.insert(parts, "H:"..hints) end
|
||||||
|
return table.concat(parts, " ")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- 2) wire it into your statusline
|
||||||
|
-- %< … left-side, %= split, … right-side
|
||||||
|
vim.o.statusline = table.concat({
|
||||||
|
"%<%f", -- file path, cut off if too long
|
||||||
|
"%m%r%h", -- modified/read-only/help flags
|
||||||
|
-- "%=", -- right align from here
|
||||||
|
"%{v:lua.lsp_diag_status()}", -- << your diagnostics <<
|
||||||
|
"%=",
|
||||||
|
"%l:%c %p%%", -- line:col and percent through file
|
||||||
|
}, " ")
|
||||||
|
|
||||||
167
nvim/.config/nvim/lua/lsp.lua
Normal file
167
nvim/.config/nvim/lua/lsp.lua
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
-- Add additional capabilities supported by nvim-cmp
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
|
|
||||||
|
vim.lsp.config('*', {
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Enable some language servers with the additional completion capabilities
|
||||||
|
local servers = { 'lua_ls', 'pyright', 'gopls', 'clangd', 'helm_ls', 'bashls', 'angularls', 'djls' }
|
||||||
|
for _, lsp in ipairs(servers) do
|
||||||
|
vim.lsp.enable(lsp)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- HTML LSP
|
||||||
|
vim.lsp.config('html', {
|
||||||
|
filetypes = { "html", "templ", "javascript", "css" },
|
||||||
|
capabilities = capabilities,
|
||||||
|
init_options = {
|
||||||
|
configurationSection = { "html", "css", "javascript" },
|
||||||
|
embeddedLanguages = { css = true, javascript = true },
|
||||||
|
provideFormatter = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
vim.lsp.enable('html')
|
||||||
|
|
||||||
|
-- CSS LSP
|
||||||
|
vim.lsp.config('cssls', {
|
||||||
|
filetypes = { "css", "scss", "less" },
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
vim.lsp.enable('cssls')
|
||||||
|
|
||||||
|
-- TypeScript LSP
|
||||||
|
vim.lsp.config('ts_ls', {
|
||||||
|
filetypes = { "typescript", "typescriptreact", "javascript", "javascriptreact", "html" },
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
vim.lsp.enable('ts_ls')
|
||||||
|
|
||||||
|
-- JSON LSP
|
||||||
|
vim.lsp.config('jsonls', {
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
vim.lsp.enable('jsonls')
|
||||||
|
|
||||||
|
-- Emmet LSP
|
||||||
|
vim.lsp.config('emmet_ls', {
|
||||||
|
filetypes = { "html", "template", "javascript" },
|
||||||
|
})
|
||||||
|
vim.lsp.enable('emmet_ls')
|
||||||
|
|
||||||
|
-- YAML LSP
|
||||||
|
vim.lsp.config('yamlls', {
|
||||||
|
capabilities = capabilities,
|
||||||
|
settings = {
|
||||||
|
yaml = {
|
||||||
|
schemas = {
|
||||||
|
kubernetes = "*.yaml",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
vim.lsp.enable('yamlls')
|
||||||
|
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({"BufRead", "BufNewFile"}, {
|
||||||
|
pattern = "*.jenkinsfile",
|
||||||
|
command = "set filetype=groovy"
|
||||||
|
})
|
||||||
|
|
||||||
|
-- luasnip setup
|
||||||
|
local luasnip = require('luasnip')
|
||||||
|
|
||||||
|
-- nvim-cmp setup
|
||||||
|
local cmp = require('cmp')
|
||||||
|
cmp.setup {
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<C-u>'] = cmp.mapping.scroll_docs(-4), -- Up
|
||||||
|
['<C-d>'] = cmp.mapping.scroll_docs(4), -- Down
|
||||||
|
-- C-b (back) C-f (forward) for snippet placeholder navigation.
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
},
|
||||||
|
['<Tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
['<S-Tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
}),
|
||||||
|
sources = {
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'luasnip' },
|
||||||
|
{ name = 'orgmode' },
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = {
|
||||||
|
style = "minimal",
|
||||||
|
border = "rounded",
|
||||||
|
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder,CursorLine:PmenuSel,Search:None',
|
||||||
|
},
|
||||||
|
documentation = {
|
||||||
|
style = "minimal",
|
||||||
|
border = "rounded",
|
||||||
|
winhighlight = 'Normal:Normal,FloatBorder:FloatBorder'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Bordered LSP UI
|
||||||
|
local float = { focusable = true, style = "minimal", border = "rounded", }
|
||||||
|
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, float)
|
||||||
|
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, float)
|
||||||
|
|
||||||
|
-- Global mappings.
|
||||||
|
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||||
|
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float)
|
||||||
|
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
|
||||||
|
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
|
||||||
|
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist)
|
||||||
|
vim.api.nvim_set_keymap('i', '<c-n>', '<c-x><c-o>', { noremap = true, silent = true })
|
||||||
|
|
||||||
|
-- Use LspAttach autocommand to only map the following keys
|
||||||
|
-- after the language server attaches to the current buffer
|
||||||
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
|
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
|
||||||
|
callback = function(ev)
|
||||||
|
-- Enable completion triggered by <c-x><c-o>
|
||||||
|
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
|
||||||
|
|
||||||
|
-- Buffer local mappings.
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
local opts = { buffer = ev.buf }
|
||||||
|
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
|
||||||
|
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
|
||||||
|
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
||||||
|
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
|
||||||
|
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
|
||||||
|
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
|
||||||
|
vim.keymap.set('n', '<space>wl', function()
|
||||||
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||||
|
end, opts)
|
||||||
|
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
|
||||||
|
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
|
||||||
|
vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
|
||||||
|
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
|
||||||
|
vim.keymap.set('n', '<space>f', function()
|
||||||
|
vim.lsp.buf.format { async = true }
|
||||||
|
end, opts)
|
||||||
|
end,
|
||||||
|
})
|
||||||
62
nvim/.config/nvim/lua/maps.lua
Normal file
62
nvim/.config/nvim/lua/maps.lua
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
vim.keymap.set('n', '<M-h>', '5<C-w><', { desc = 'Resize left' })
|
||||||
|
vim.keymap.set('n', '<M-j>', '5<C-w>+', { desc = 'Resize down' })
|
||||||
|
vim.keymap.set('n', '<M-k>', '5<C-w>-', { desc = 'Resize up' })
|
||||||
|
vim.keymap.set('n', '<M-l>', '5<C-w>>', { desc = 'Resize right' })
|
||||||
|
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>ev', ':edit $MYVIMRC<CR>', { noremap = true })
|
||||||
|
|
||||||
|
-- Map Ctrl+Shift+h/j/k/l to resize panes
|
||||||
|
local builtin = require('telescope.builtin')
|
||||||
|
|
||||||
|
-- nnn
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-f>', ':NnnPicker %:p:h<CR>', { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap('t', '<C-f>', '<cmd>NnnPicker %:p:h<CR>', { noremap = true })
|
||||||
|
|
||||||
|
-- nvim-tree
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-b>', '<cmd>NvimTreeToggle <CR>', { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>b', ':NvimTreeResize ', { noremap = true })
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
vim.keymap.set('n', '<C-l>', builtin.find_files, {})
|
||||||
|
vim.keymap.set('n', '<C-k>', builtin.live_grep, {})
|
||||||
|
vim.keymap.set('n', '<C-p>', builtin.commands, {})
|
||||||
|
|
||||||
|
-- etc
|
||||||
|
vim.keymap.set('n', '?', ':WhichKey<CR>', {})
|
||||||
|
|
||||||
|
-- zen mode
|
||||||
|
vim.keymap.set('n', '<leader>z', ':ZenMode<CR>', { silent = true })
|
||||||
|
|
||||||
|
-- Language shortcuts
|
||||||
|
vim.keymap.set('i', '<C-e>', 'if err != nil {}<Left>', { noremap = true })
|
||||||
|
|
||||||
|
vim.cmd [[autocmd BufWritePre *.go lua vim.lsp.buf.format()]]
|
||||||
|
|
||||||
|
-- Change Tabs
|
||||||
|
vim.keymap.set('n', '<leader>1', '1gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>2', '2gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>3', '3gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>4', '4gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>5', '5gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>6', '6gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>7', '7gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>8', '8gt', {})
|
||||||
|
vim.keymap.set('n', '<leader>9', '9gt', {})
|
||||||
|
|
||||||
|
-- DAP
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>d', ':DapViewToggle<cr>', { noremap = true })
|
||||||
|
vim.api.nvim_set_keymap('n', '<leader>w', ':DapViewWatch<cr>', { noremap = true })
|
||||||
|
vim.keymap.set('n', '<F5>', function() require('dap').continue() end)
|
||||||
|
vim.keymap.set('n', '<F6>', function() require('dap').restart() end)
|
||||||
|
vim.keymap.set('n', '<F10>', function() require('dap').step_over() end)
|
||||||
|
vim.keymap.set('n', '<F11>', function() require('dap').step_into() end)
|
||||||
|
vim.keymap.set('n', '<F12>', function() require('dap').step_out() end)
|
||||||
|
vim.keymap.set('n', '<leader>b', function() require('dap').toggle_breakpoint() end)
|
||||||
|
|
||||||
|
-- Copilot
|
||||||
|
vim.api.nvim_set_keymap('n', '<C-C>', ':CopilotChatToggle <CR>', { noremap = true, silent = true })
|
||||||
|
vim.api.nvim_set_keymap('i', '<C-J>', 'copilot#Accept("<CR>")', { expr=true, noremap = true, silent = true })
|
||||||
|
vim.keymap.set('i', '<C-H>', '<Plug>(copilot-accept-word)', { noremap=true, silent=true })
|
||||||
|
vim.keymap.set("i", "<C-U>", '<Plug>(copilot-next)', { noremap=true, silent=true })
|
||||||
|
vim.keymap.set("i", "<C-B>", '<Plug>(copilot-previous)', { noremap=true, silent=true })
|
||||||
|
vim.g.copilot_no_tab_map = true
|
||||||
208
nvim/.config/nvim/lua/plugins.lua
Normal file
208
nvim/.config/nvim/lua/plugins.lua
Normal file
@@ -0,0 +1,208 @@
|
|||||||
|
-- Bootstrap lazy.nvim
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not vim.loop.fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
|
"--branch=stable", -- latest stable release
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
-- Install Plugins
|
||||||
|
require('lazy').setup({
|
||||||
|
-- Core
|
||||||
|
'williamboman/mason.nvim',
|
||||||
|
-- LSP
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
'hrsh7th/nvim-cmp',
|
||||||
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
|
'folke/neodev.nvim',
|
||||||
|
'qvalentin/helm-ls.nvim',
|
||||||
|
{ 'L3MON4D3/LuaSnip', version = 'v2.1.0' },
|
||||||
|
-- DAP
|
||||||
|
'mfussenegger/nvim-dap',
|
||||||
|
'rcarriga/nvim-dap-ui',
|
||||||
|
'nvim-neotest/nvim-nio',
|
||||||
|
'leoluz/nvim-dap-go',
|
||||||
|
-- 'mfussenegger/nvim-dap-python',
|
||||||
|
-- Visual
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
'luukvbaal/nnn.nvim',
|
||||||
|
'nvim-tree/nvim-tree.lua',
|
||||||
|
'lewis6991/gitsigns.nvim',
|
||||||
|
'mhartington/formatter.nvim',
|
||||||
|
{
|
||||||
|
'folke/zen-mode.nvim',
|
||||||
|
opts = {
|
||||||
|
window = {
|
||||||
|
width = 0.5,
|
||||||
|
options = {
|
||||||
|
signcolumn = "no",
|
||||||
|
number = false,
|
||||||
|
relativenumber = false,
|
||||||
|
linebreak = true,
|
||||||
|
wrap = true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"CopilotC-Nvim/CopilotChat.nvim",
|
||||||
|
dependencies = {
|
||||||
|
{ "github/copilot.vim" }, -- or zbirenbaum/copilot.lua
|
||||||
|
},
|
||||||
|
build = "make tiktoken", -- Only on MacOS or Linux
|
||||||
|
opts = {
|
||||||
|
window = {
|
||||||
|
layout = 'replace',
|
||||||
|
},
|
||||||
|
mappings = {
|
||||||
|
accept_diff = false, -- disables the default <C-y> “accept nearest diff”
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- Utility
|
||||||
|
'windwp/nvim-autopairs',
|
||||||
|
'nvim-telescope/telescope.nvim',
|
||||||
|
'nvim-telescope/telescope-ui-select.nvim',
|
||||||
|
'nvim-lua/plenary.nvim',
|
||||||
|
-- 'folke/which-key.nvim',
|
||||||
|
{
|
||||||
|
"nvim-orgmode/orgmode",
|
||||||
|
dependencies = {
|
||||||
|
"lukas-reineke/headlines.nvim",
|
||||||
|
},
|
||||||
|
event = 'VeryLazy',
|
||||||
|
ft = { 'org' },
|
||||||
|
config = function()
|
||||||
|
require("orgmode").setup({
|
||||||
|
org_startup_indented = true, -- ← this gives Emacs-style virtual indentation under headings (huge for legibility)
|
||||||
|
org_agenda_files = '~/org/**/*',
|
||||||
|
org_default_notes_file = '~/org/scratch.org',
|
||||||
|
org_startup_indented = true,
|
||||||
|
org_deadline_warning_days = 0,
|
||||||
|
org_agenda_custom_commands = {
|
||||||
|
w = {
|
||||||
|
description = "Work",
|
||||||
|
types = {
|
||||||
|
{
|
||||||
|
type = 'agenda',
|
||||||
|
org_agenda_tag_filter_preset = 'work'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
p = {
|
||||||
|
description = "Personal",
|
||||||
|
types = {
|
||||||
|
{
|
||||||
|
type = 'agenda',
|
||||||
|
org_agenda_tag_filter_preset = 'personal'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
require("headlines").setup({
|
||||||
|
org = {
|
||||||
|
fat_headlines = false, -- ← no more huge blocks
|
||||||
|
headline_highlights = { "Headline1", "Headline2", "Headline3", "Headline4" },
|
||||||
|
quote_string = "│", -- thinner vertical bar for quotes (optional but nicer)
|
||||||
|
quote_highlight = "Quote",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
-- Study
|
||||||
|
{
|
||||||
|
"kawre/leetcode.nvim",
|
||||||
|
dependencies = {
|
||||||
|
-- include a picker of your choice, see picker section for more details
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
lang = "python3"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Initialize Plugins
|
||||||
|
require("mason").setup()
|
||||||
|
require('neodev').setup()
|
||||||
|
require('nvim-treesitter.configs').setup {
|
||||||
|
ensured_installed = { "go", "bash", "javascript", "html", "lua", "org" },
|
||||||
|
sync_install = false,
|
||||||
|
auto_install = true,
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
additional_vim_regex_highlighting = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
require('nnn').setup({
|
||||||
|
picker = {
|
||||||
|
cmd = "nnn -C",
|
||||||
|
style = { border = "rounded" },
|
||||||
|
fullscreen = false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
local function tree_on_attach(bufnr)
|
||||||
|
local api = require('nvim-tree.api')
|
||||||
|
api.config.mappings.default_on_attach(bufnr)
|
||||||
|
vim.keymap.del('n', '<C-e>', { buffer = bufnr })
|
||||||
|
vim.keymap.set("n", "<M-h>", function() api.tree.resize({ relative = -5 }) end, { buffer = bufnr })
|
||||||
|
vim.keymap.set("n", "<M-l>", function() api.tree.resize({ relative = 5 }) end, { buffer = bufnr })
|
||||||
|
end
|
||||||
|
require('nvim-tree').setup({
|
||||||
|
on_attach = tree_on_attach,
|
||||||
|
view = {
|
||||||
|
side = "left",
|
||||||
|
},
|
||||||
|
tab = {
|
||||||
|
sync = {
|
||||||
|
open = true,
|
||||||
|
close = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
-- require('gitsigns').setup()
|
||||||
|
require('formatter').setup({
|
||||||
|
filetype = {
|
||||||
|
python = {
|
||||||
|
function()
|
||||||
|
return {
|
||||||
|
exe = "black",
|
||||||
|
args = { "--quiet", "-" },
|
||||||
|
stdin = true
|
||||||
|
}
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
require('telescope').setup({
|
||||||
|
defaults = {
|
||||||
|
file_ignore_patterns = {
|
||||||
|
"%.git/",
|
||||||
|
"node_modules/",
|
||||||
|
"%.DS_Store",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pickers = {
|
||||||
|
find_files = {
|
||||||
|
hidden = true,
|
||||||
|
no_ignore = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
require("telescope").load_extension("ui-select")
|
||||||
|
require('nvim-autopairs').setup()
|
||||||
|
-- require('which-key').setup()
|
||||||
|
|
||||||
|
-- DAP Setup
|
||||||
|
-- require('dap-python').setup('~/venv/bin/python')
|
||||||
|
require('dap-go').setup()
|
||||||
53
nvim/.config/nvim/lua/settings.lua
Normal file
53
nvim/.config/nvim/lua/settings.lua
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
vim.o.mouse = "a"
|
||||||
|
vim.o.shiftwidth = 4
|
||||||
|
vim.o.tabstop = 4
|
||||||
|
vim.o.expandtab = true
|
||||||
|
vim.o.autoindent = true
|
||||||
|
vim.o.foldmethod = "indent"
|
||||||
|
vim.o.foldlevel = 99
|
||||||
|
vim.o.wrap = false
|
||||||
|
vim.wo.number = true
|
||||||
|
vim.wo.relativenumber = true
|
||||||
|
vim.g.mapleader = ' '
|
||||||
|
vim.o.splitright = true
|
||||||
|
-- vim.o.scrolloff = 999
|
||||||
|
-- vim.o.clipboard="unnamedplus"
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
pattern = "markdown",
|
||||||
|
command = "setlocal wrap linebreak",
|
||||||
|
})
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
pattern = "org",
|
||||||
|
command = "setlocal shiftwidth=2 tabstop=2 expandtab",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Highlighting for orgmode files with highlight.nvim
|
||||||
|
vim.api.nvim_create_autocmd("ColorScheme", {
|
||||||
|
callback = function()
|
||||||
|
local cursorline = vim.api.nvim_get_hl(0, { name = "CursorLine" })
|
||||||
|
local sep = vim.api.nvim_get_hl(0, { name = "WinSeparator" }).fg
|
||||||
|
or vim.api.nvim_get_hl(0, { name = "Comment" }).fg
|
||||||
|
|
||||||
|
vim.api.nvim_set_hl(0, "Headline1", { bg = cursorline.bg, underline = true, sp = sep })
|
||||||
|
vim.api.nvim_set_hl(0, "Headline2", { bg = cursorline.bg, underline = true, sp = sep })
|
||||||
|
vim.api.nvim_set_hl(0, "Headline3", { bg = cursorline.bg, underline = true, sp = sep })
|
||||||
|
vim.api.nvim_set_hl(0, "Headline4", { bg = cursorline.bg, underline = true, sp = sep })
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Global colorscheme based on terminal colors
|
||||||
|
vim.cmd("Copilot disable")
|
||||||
|
vim.cmd([[
|
||||||
|
autocmd ColorScheme * highlight Statement cterm=bold ctermfg=5
|
||||||
|
autocmd ColorScheme * highlight Keyword ctermfg=5
|
||||||
|
autocmd ColorScheme * highlight Type ctermfg=6
|
||||||
|
autocmd ColorScheme * highlight Function cterm=bold ctermfg=4
|
||||||
|
autocmd ColorScheme * highlight Constant ctermfg=3
|
||||||
|
autocmd ColorScheme * highlight String ctermfg=2
|
||||||
|
" autocmd ColorScheme * highlight Comment cterm=italic ctermfg=lightgray
|
||||||
|
|
||||||
|
syntax on
|
||||||
|
set notermguicolors
|
||||||
|
colorscheme default
|
||||||
|
]])
|
||||||
21
skhd/.skhdrc
Normal file
21
skhd/.skhdrc
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# fast focus desktop
|
||||||
|
alt - 1 : yabai -m space --focus 1
|
||||||
|
alt - 2 : yabai -m space --focus 2
|
||||||
|
alt - 3 : yabai -m space --focus 3
|
||||||
|
alt - 4 : yabai -m space --focus 4
|
||||||
|
alt - 5 : yabai -m space --focus 5
|
||||||
|
alt - 6 : yabai -m space --focus 6
|
||||||
|
alt - 7 : yabai -m space --focus 7
|
||||||
|
alt - 8 : yabai -m space --focus 8
|
||||||
|
alt - 9 : yabai -m space --focus 9
|
||||||
|
|
||||||
|
# send window to desktop and follow focus
|
||||||
|
shift + alt - 1 : yabai -m window --space 1; yabai -m space --focus
|
||||||
|
shift + alt - 2 : yabai -m window --space 2; yabai -m space --focus
|
||||||
|
shift + alt - 3 : yabai -m window --space 3; yabai -m space --focus
|
||||||
|
shift + alt - 4 : yabai -m window --space 4; yabai -m space --focus
|
||||||
|
shift + alt - 5 : yabai -m window --space 5; yabai -m space --focus
|
||||||
|
shift + alt - 6 : yabai -m window --space 6; yabai -m space --focus
|
||||||
|
shift + alt - 7 : yabai -m window --space 7; yabai -m space --focus
|
||||||
|
shift + alt - 8 : yabai -m window --space 8; yabai -m space --focus
|
||||||
|
shift + alt - 9 : yabai -m window --space 9; yabai -m space --focus
|
||||||
32
termux/.termux/colors-light.properties
Normal file
32
termux/.termux/colors-light.properties
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Termux colors - One Light theme (matches Ghostty)
|
||||||
|
# Generated from ghostty/.config/ghostty/themes/onelight
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
color0=#000000
|
||||||
|
color1=#b6443a
|
||||||
|
color2=#40803f
|
||||||
|
color3=#795300
|
||||||
|
color4=#3360c1
|
||||||
|
color5=#841e83
|
||||||
|
color6=#006996
|
||||||
|
color7=#6d6d59
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
color8=#000000
|
||||||
|
color9=#b6443a
|
||||||
|
color10=#40803f
|
||||||
|
color11=#795300
|
||||||
|
color12=#3360c1
|
||||||
|
color13=#841e83
|
||||||
|
color14=#006996
|
||||||
|
color15=#ccccc0
|
||||||
|
|
||||||
|
# Background and foreground
|
||||||
|
background=#eeeeee
|
||||||
|
foreground=#2a2b33
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
cursor=#2a2b33
|
||||||
|
|
||||||
|
# Selection
|
||||||
|
selection=#ccccc0
|
||||||
32
termux/.termux/colors.properties
Normal file
32
termux/.termux/colors.properties
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Termux colors - One Dark theme (matches Ghostty)
|
||||||
|
# Generated from ghostty/.config/ghostty/themes/onedark
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
color0=#282c34
|
||||||
|
color1=#e06c75
|
||||||
|
color2=#98c379
|
||||||
|
color3=#e5c07b
|
||||||
|
color4=#61afef
|
||||||
|
color5=#c678dd
|
||||||
|
color6=#56b6c2
|
||||||
|
color7=#abb2bf
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
color8=#5f687b
|
||||||
|
color9=#e06c75
|
||||||
|
color10=#98c379
|
||||||
|
color11=#e5c07b
|
||||||
|
color12=#61afef
|
||||||
|
color13=#c678dd
|
||||||
|
color14=#56b6c2
|
||||||
|
color15=#bfc5ce
|
||||||
|
|
||||||
|
# Background and foreground
|
||||||
|
background=#111111
|
||||||
|
foreground=#abb2bf
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
cursor=#abb2bf
|
||||||
|
|
||||||
|
# Selection
|
||||||
|
selection=#282c34
|
||||||
16
termux/.termux/termux.properties
Normal file
16
termux/.termux/termux.properties
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Termux app settings
|
||||||
|
# Place at ~/.termux/termux.properties
|
||||||
|
|
||||||
|
# Font
|
||||||
|
# Install: pkg install termux-api && termux-setup-storage
|
||||||
|
# Then place font in ~/.termux/font.ttf
|
||||||
|
# Using JetBrains Mono or SF Mono if available
|
||||||
|
|
||||||
|
# Extra keys for easier typing on mobile
|
||||||
|
extra-keys = [['ESC','TAB','/','-','HOME','UP','END','PGUP'],['CTRL','ALT','KEYBOARD','LEFT','DOWN','RIGHT','PGDN','BACKSLASH']]
|
||||||
|
|
||||||
|
# Bell
|
||||||
|
bell-character = ignore
|
||||||
|
|
||||||
|
# Terminal transcript
|
||||||
|
# termux-transcript-mode = true
|
||||||
27
termux/switch-theme.sh
Executable file
27
termux/switch-theme.sh
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Switch between dark and light themes in Termux
|
||||||
|
|
||||||
|
THEME=${1:-dark}
|
||||||
|
TERMUX_DIR="$HOME/.termux"
|
||||||
|
|
||||||
|
case $THEME in
|
||||||
|
dark|onedark)
|
||||||
|
cp "$TERMUX_DIR/colors.properties" "$TERMUX_DIR/colors-current.properties.bak" 2>/dev/null
|
||||||
|
cp "$TERMUX_DIR/colors.properties" "$TERMUX_DIR/colors-current.properties"
|
||||||
|
echo "Switched to One Dark theme"
|
||||||
|
;;
|
||||||
|
light|onelight)
|
||||||
|
cp "$TERMUX_DIR/colors.properties" "$TERMUX_DIR/colors-current.properties.bak" 2>/dev/null
|
||||||
|
cp "$TERMUX_DIR/colors-light.properties" "$TERMUX_DIR/colors.properties"
|
||||||
|
echo "Switched to One Light theme"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {dark|light}"
|
||||||
|
echo " dark/onedark - Switch to One Dark theme"
|
||||||
|
echo " light/onelight - Switch to One Light theme"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Reload Termux styling
|
||||||
|
termux-reload-settings 2>/dev/null || echo "Run 'termux-reload-settings' or restart Termux to apply changes"
|
||||||
63
tmux/.tmux.conf
Normal file
63
tmux/.tmux.conf
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# set-option -g default-command "exec /usr/local/bin/bash --login"
|
||||||
|
set-option -g status-style bg=default
|
||||||
|
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "pbcopy"
|
||||||
|
|
||||||
|
# Enable mouse
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# Set the control character to Ctrl+Spacebar (instead of Ctrl+B)
|
||||||
|
set -g prefix C-space
|
||||||
|
unbind-key C-b
|
||||||
|
bind-key C-space send-prefix
|
||||||
|
|
||||||
|
# Set new panes to open in current directory
|
||||||
|
bind c new-window -c "#{pane_current_path}"
|
||||||
|
bind '"' split-window -c "#{pane_current_path}"
|
||||||
|
bind % split-window -h -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
# Move panes with vim keys
|
||||||
|
bind h select-pane -L
|
||||||
|
bind j select-pane -D
|
||||||
|
bind k select-pane -U
|
||||||
|
bind l select-pane -R
|
||||||
|
|
||||||
|
# Resize panes with vim keys
|
||||||
|
bind-key -r H resize-pane -L 5
|
||||||
|
bind-key -r J resize-pane -D 5
|
||||||
|
bind-key -r K resize-pane -U 5
|
||||||
|
bind-key -r L resize-pane -R 5
|
||||||
|
|
||||||
|
# Pane movement between windows
|
||||||
|
bind-key m command-prompt -p "send pane to:" "join-pane -t :'%%'"
|
||||||
|
|
||||||
|
# Disable escape time to remove delay in nvim
|
||||||
|
set -s escape-time 0
|
||||||
|
|
||||||
|
# True color support
|
||||||
|
set -g default-terminal "tmux-256color"
|
||||||
|
set-option -ga terminal-overrides ",*256col*:Tc"
|
||||||
|
|
||||||
|
set -g status-style "fg=blue"
|
||||||
|
set -g window-status-current-style "fg=green"
|
||||||
|
set -g pane-active-border-style "fg=blue"
|
||||||
|
|
||||||
|
setw -g mode-keys vi
|
||||||
|
bind -T copy-mode-vi 'v' send -X begin-selection
|
||||||
|
bind -T copy-mode-vi 'y' send -X copy-pipe-and-cancel "pbcopy"
|
||||||
|
|
||||||
|
set -g status-right ""
|
||||||
|
|
||||||
|
# Activate OFF mode
|
||||||
|
bind o \
|
||||||
|
set prefix None \;\
|
||||||
|
set key-table off \;\
|
||||||
|
set status-style "fg=brightblack" \;\
|
||||||
|
set window-status-current-style "fg=brightblack"
|
||||||
|
|
||||||
|
# Disable OFF mode
|
||||||
|
bind -T off O \
|
||||||
|
set -u prefix \;\
|
||||||
|
set -u key-table \;\
|
||||||
|
set -u status-style \;\
|
||||||
|
set -u window-status-current-style
|
||||||
|
|
||||||
Reference in New Issue
Block a user