Compare commits
55 commits
f853ad7082
...
0b013c2b2a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0b013c2b2a | ||
|
|
713fda355e | ||
|
|
5c07f66f92 | ||
|
|
2eac48ffb6 | ||
|
|
4e5d4ff812 | ||
|
|
f803285bfc | ||
|
|
3baef4563c | ||
|
|
718a6d2e5c | ||
|
|
5654110e96 | ||
|
|
62e170b6e4 | ||
|
|
5ae1c1fe3b | ||
|
|
025d14ee2e | ||
|
|
29b0de2015 | ||
|
|
7af2a5e131 | ||
|
|
ab7465777d | ||
|
|
45e272024b | ||
|
|
d7775e801f | ||
|
|
3d555709f7 | ||
|
|
35c5dfd5ac | ||
|
|
17e8488bd4 | ||
|
|
62608e0130 | ||
|
|
08894a100e | ||
|
|
20518f86a0 | ||
|
|
dabbdc466e | ||
|
|
c181feede2 | ||
|
|
995d5221c3 | ||
|
|
8e6e817286 | ||
|
|
e33fd36c41 | ||
|
|
8059080fbd | ||
|
|
10c08743db | ||
|
|
71cec63f8c | ||
|
|
b0f4176c7e | ||
|
|
a0880f22e9 | ||
|
|
7f81c97591 | ||
|
|
1d7b058ddd | ||
|
|
4480d70d15 | ||
|
|
ba98df8075 | ||
|
|
a64485d60e | ||
|
|
aaa4f43052 | ||
|
|
434829cdf1 | ||
|
|
905df85c4f | ||
|
|
5415006f3d | ||
|
|
3f14b48dc3 | ||
|
|
65d364c98e | ||
|
|
78910e2d9c | ||
|
|
c736a235f8 | ||
|
|
e637aba535 | ||
|
|
de2be46c2f | ||
|
|
3b403a69a2 | ||
|
|
3ab0904979 | ||
|
|
19eddf5ab4 | ||
|
|
626eaa1472 | ||
|
|
e39dc9b3c6 | ||
|
|
1e16431a0f | ||
|
|
3c29da2d0a |
68 changed files with 7058 additions and 371 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
# Files to ignore on windows
|
# Files to ignore on windows
|
||||||
{{- if eq .chezmoi.os "windows" }}
|
{{- if eq .chezmoi.os "windows" }}
|
||||||
|
,bash_profile
|
||||||
.bashrc
|
.bashrc
|
||||||
.nix-channels
|
.nix-channels
|
||||||
.vimrc
|
.vimrc
|
||||||
|
|
@ -10,7 +11,15 @@
|
||||||
.config/sheldon
|
.config/sheldon
|
||||||
.config/Yubico
|
.config/Yubico
|
||||||
.config/zellij
|
.config/zellij
|
||||||
|
.config/kritarc
|
||||||
|
.config/kritashortcutsrc
|
||||||
|
.config/dunst/dunstrc
|
||||||
|
.config/rofi/wal.rasi
|
||||||
|
.config/nvim
|
||||||
|
.config/sway/outputs
|
||||||
|
.config/systemd/user/default.target.wants
|
||||||
.inputrc
|
.inputrc
|
||||||
|
.env
|
||||||
{{- end }}
|
{{- end }}
|
||||||
# Windows specific files
|
# Windows specific files
|
||||||
{{- if ne .chezmoi.os "windows" }}
|
{{- if ne .chezmoi.os "windows" }}
|
||||||
|
|
|
||||||
15
.gitmodules
vendored
Normal file
15
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
[submodule "AppData/Local/external_nvim"]
|
||||||
|
path = AppData/Local/external_nvim
|
||||||
|
url = https://git.argentumcation.com/mira/nvim-config
|
||||||
|
[submodule "private_dot_config/external_nvim"]
|
||||||
|
path = private_dot_config/external_nvim
|
||||||
|
url = https://git.argentumcation.com/mira/nvim-config.git
|
||||||
|
[submodule "private_dot_config/sway/external_blocks"]
|
||||||
|
path = private_dot_config/sway/external_blocks
|
||||||
|
url = https://github.com/vivien/i3blocks-contrib
|
||||||
|
[submodule "private_dot_config/external_i3blocks"]
|
||||||
|
path = private_dot_config/external_i3blocks
|
||||||
|
url = https://github.com/vivien/i3blocks-contrib
|
||||||
|
[submodule "private_dot_config/nvim-config"]
|
||||||
|
path = private_dot_config/nvim-config
|
||||||
|
url = https://git.argentumcation.com/mira/nvim-config.git
|
||||||
1
AppData/Local/external_nvim
Submodule
1
AppData/Local/external_nvim
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 23c86b37763f3662b40cbce638bacc8791894c41
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
[install]
|
|
||||||
{{ if eq .chezmoi.os "windows" -}}
|
|
||||||
root = "{{ .chezmoi.homeDir }}/Programs"
|
|
||||||
{{ else if eq .chezmoi.os "linux" -}}
|
|
||||||
root = "{{ .chezmoi.homeDir }}/.local/"
|
|
||||||
{{- end }}
|
|
||||||
154
dot_envrc
Normal file
154
dot_envrc
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
# ~/.profile: executed by the command interpreter for login shells.
|
||||||
|
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
|
||||||
|
# exists.
|
||||||
|
# see /usr/share/doc/bash/examples/startup-files for examples.
|
||||||
|
# the files are located in the bash-doc package.
|
||||||
|
|
||||||
|
# the default umask is set in /etc/profile; for setting the umask
|
||||||
|
# for ssh logins, install and configure the libpam-umask package.
|
||||||
|
#umask 022
|
||||||
|
|
||||||
|
export TZ=":/etc/localtime"
|
||||||
|
|
||||||
|
#################
|
||||||
|
# XDG Base Dirs #
|
||||||
|
#################
|
||||||
|
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_STATE_HOME="$HOME/.local/state"
|
||||||
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
|
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
|
||||||
|
#################
|
||||||
|
# XDG User Dirs #
|
||||||
|
#################
|
||||||
|
# . "$XDG_CONFIG_HOME/user-dirs.dirs"
|
||||||
|
export XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||||
|
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||||
|
export XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||||||
|
export XDG_MUSIC_DIR="$HOME/Music"
|
||||||
|
export XDG_PICTURES_DIR="$HOME/Pictures"
|
||||||
|
export XDG_VIDEOS_DIR="$HOME/Videos"
|
||||||
|
|
||||||
|
########################
|
||||||
|
# Default file viewers #
|
||||||
|
########################
|
||||||
|
|
||||||
|
export EDITOR=nvim
|
||||||
|
export PAGER=moar
|
||||||
|
export OPENER=xdg-open
|
||||||
|
|
||||||
|
#######
|
||||||
|
# IME #
|
||||||
|
#######
|
||||||
|
|
||||||
|
export GTK_IM_MODULE=fcitx
|
||||||
|
export QT_IM_MODULE=fcitx
|
||||||
|
export XMODIFIERS=@im=fcitx
|
||||||
|
|
||||||
|
|
||||||
|
################################
|
||||||
|
# pls use the goddamn xdg dirs #
|
||||||
|
################################
|
||||||
|
|
||||||
|
# If you use non-default GnuPG Home directory, you will need to edit all
|
||||||
|
# socket files to use the values of gpgconf --list-dirs.
|
||||||
|
# If you set your SSH_AUTH_SOCK manually, keep in mind that your socket
|
||||||
|
# location may be different if you are using a custom GNUPGHOME
|
||||||
|
export GOPATH="$XDG_DATA_HOME"/go
|
||||||
|
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||||
|
|
||||||
|
# export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
|
||||||
|
#export PNPM_HOME="$XDG_DATA_HOME/pnpm"
|
||||||
|
alias adb='HOME="$XDG_DATA_HOME"/android adb'
|
||||||
|
alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts"
|
||||||
|
export ANDROID_USER_HOME="$XDG_DATA_HOME"/android
|
||||||
|
export AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config
|
||||||
|
export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials
|
||||||
|
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||||
|
export CARGO_INSTALL_ROOT="$HOME/.local"
|
||||||
|
export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
|
||||||
|
export ERRFILE="$XDG_CACHE_HOME/X11/xsession-errors"
|
||||||
|
export GOPATH="$XDG_DATA_HOME"/go
|
||||||
|
export GRADLE_USER_HOME="$XDG_DATA_HOME/gradle"
|
||||||
|
export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
|
||||||
|
export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority
|
||||||
|
export INPUTRC="$XDG_CONFIG_HOME/readline/inputrc"
|
||||||
|
export IPYTHONDIR="$XDG_CONFIG_HOME/ipython"
|
||||||
|
export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter
|
||||||
|
export LESSHISTFILE="$XDG_STATE_HOME/less/history"
|
||||||
|
export MYPY_CACHE_DIR="$XDG_CACHE_HOME"/mypy
|
||||||
|
export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
|
||||||
|
export NPM_CONFIG_PREFIX="$XDG_DATA_HOME/npm-global"
|
||||||
|
export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
|
||||||
|
export PYTHONSTARTUP="$HOME"/python/pythonrc
|
||||||
|
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
|
||||||
|
export TERMINFO="$XDG_DATA_HOME"/terminfo
|
||||||
|
export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo
|
||||||
|
export TLDR_CACHE_DIR="$XDG_CACHE_HOME"/tldr
|
||||||
|
export WINEPREFIX="$XDG_DATA_HOME"/wine
|
||||||
|
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
|
||||||
|
export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
|
||||||
|
export XCURSOR_PATH=/usr/share/icons:$XDG_DATA_HOME/icons
|
||||||
|
export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java -Djavafx.cachedir=${XDG_CACHE_HOME}/openjfx"
|
||||||
|
|
||||||
|
###############
|
||||||
|
# SET UP PATH #
|
||||||
|
###############
|
||||||
|
# nix
|
||||||
|
if [ -e "$HOME"/.nix-profile/etc/profile.d/nix.sh ]; then
|
||||||
|
. "$HOME"/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
elif [ -e "$HOME"/.nix-profile/bin ]; then
|
||||||
|
export PATH="$PATH:/nix/var/nix/profiles/default/bin"
|
||||||
|
export PATH="$HOME/.nix-profile/bin:$PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# User bin folder
|
||||||
|
#[ "${PATH#*"$HOME"/.local/bin:}" = "$PATH" ] && export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
|
||||||
|
# go
|
||||||
|
[ "${PATH#*"$GOPATH/bin"}" = "$PATH" ] && export PATH="$GOPATH/bin:$PATH"
|
||||||
|
|
||||||
|
# homebrew
|
||||||
|
[ -e /home/linuxbrew/.linuxbrew/bin/brew ] && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
[ "${PATH#*$PNPM_HOME:}" = "$PATH" ] && export PATH="$PNPM_HOME:$PATH"
|
||||||
|
|
||||||
|
# npm
|
||||||
|
[ "${PATH#*$NPM_CONFIG_PREFIX/bin:}" = "$PATH" ] && export PATH="$NPM_CONFIG_PREFIX/bin:$PATH"
|
||||||
|
|
||||||
|
# cargo
|
||||||
|
if [[ -f "$CARGO_HOME/env" ]]; then
|
||||||
|
. "$CARGO_HOME/env"
|
||||||
|
elif [[ -f ~/.local/share/cargo/env ]]; then
|
||||||
|
. ~/.local/share/cargo/env
|
||||||
|
fi
|
||||||
|
|
||||||
|
export NVM_DIR="$HOME/.config/nvm"
|
||||||
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
|
# bun completions
|
||||||
|
[ -s "/home/akristip/.bun/_bun" ] && source "$HOME/.bun/_bun"
|
||||||
|
# bun
|
||||||
|
export BUN_INSTALL="$HOME/.bun"
|
||||||
|
export PATH="$BUN_INSTALL/bin:$PATH"
|
||||||
|
# pnpm
|
||||||
|
export PNPM_HOME="$XDG_DATA_HOME/pnpm"
|
||||||
|
case ":$PATH:" in
|
||||||
|
*":$PNPM_HOME:"*) ;;
|
||||||
|
*) export PATH="$PNPM_HOME:$PATH" ;;
|
||||||
|
esac
|
||||||
|
# pnpm end
|
||||||
|
export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive
|
||||||
|
# this better fix libadwaita?
|
||||||
|
export ADW_DISABLE_PORTAL=1
|
||||||
|
# fix firefox wayland?
|
||||||
|
export MOZ_ENABLE_WAYLAND=1
|
||||||
|
# fix sway setting env vars?
|
||||||
|
export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:-sway}"
|
||||||
|
# fix font rendering?
|
||||||
|
export FREETYPE_PROPERTIES="truetype:interpreter-version=40 cff:no-stem-darkening=0 autofitter:no-stem-darkening=0"
|
||||||
|
|
||||||
11
dot_inputrc
11
dot_inputrc
|
|
@ -1,11 +0,0 @@
|
||||||
set editing-mode vi
|
|
||||||
set keymap vi
|
|
||||||
set show-mode-in-prompt on
|
|
||||||
set show-all-if-ambiguous on
|
|
||||||
$if term=linux
|
|
||||||
set vi-ins-mode-string \1\e[?0c\2
|
|
||||||
set vi-cmd-mode-string \1\e[?8c\2
|
|
||||||
$else
|
|
||||||
set vi-ins-mode-string \1\e[6 q\2
|
|
||||||
set vi-cmd-mode-string \1\e[2 q\2
|
|
||||||
$endif
|
|
||||||
24
dot_local/bin/executable_lfub
Normal file
24
dot_local/bin/executable_lfub
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -n "$DISPLAY" ]; then
|
||||||
|
export FIFO_UEBERZUG="${TMPDIR:-/tmp}/lf-ueberzug-$$"
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
exec 3>&-
|
||||||
|
rm "$FIFO_UEBERZUG"
|
||||||
|
}
|
||||||
|
|
||||||
|
mkfifo "$FIFO_UEBERZUG"
|
||||||
|
ueberzug layer -s <"$FIFO_UEBERZUG" &
|
||||||
|
exec 3>"$FIFO_UEBERZUG"
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
if ! [ -d "$HOME/.cache/lf" ]; then
|
||||||
|
mkdir -p "$HOME/.cache/lf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
lf "$@" 3>&-
|
||||||
|
else
|
||||||
|
exec lf "$@"
|
||||||
|
fi
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
enable-ssh-support
|
||||||
{{- if eq .chezmoi.os "windows" -}}
|
{{- if eq .chezmoi.os "windows" -}}
|
||||||
pinentry-program pinentry.exe
|
pinentry-program pinentry.exe
|
||||||
{{- else if (and (eq .chezmoi.os "linux") (.chezmoi.kernel.osrelease | lower | contains "microsoft"))}}
|
{{- else if (and (eq .chezmoi.os "linux") (.chezmoi.kernel.osrelease | lower | contains "microsoft"))}}
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
https://github.com/nix-community/NUR/archive/master.tar.gz nur
|
# https://github.com/nix-community/NUR/archive/master.tar.gz nur
|
||||||
https://nixos.org/channels/nixpkgs-unstable nixpkgs
|
https://nixos.org/channels/nixpkgs-unstable nixpkgs
|
||||||
|
|
|
||||||
2
dot_profile
Normal file
2
dot_profile
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
. "$HOME"/.envrc
|
||||||
|
. "$HOME/.rye/env"
|
||||||
39
dot_xonshrc
Normal file
39
dot_xonshrc
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
source-bash ~/.envrc --overwrite-aliases
|
||||||
|
# Zoxide
|
||||||
|
execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide')
|
||||||
|
|
||||||
|
xontrib load coreutils
|
||||||
|
xontrib load vox
|
||||||
|
xontrib load autovox
|
||||||
|
xontrib load prompt_starship
|
||||||
|
xontrib load bashisms
|
||||||
|
xontrib load sh
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: Does this work?
|
||||||
|
def yy(args=None):
|
||||||
|
import tempfile
|
||||||
|
"""
|
||||||
|
Yazi file manager wrapper that follows directory changes.
|
||||||
|
Usage: y() or y('some/path')
|
||||||
|
"""
|
||||||
|
with tempfile.NamedTemporaryFile(prefix='yazi-cwd.', suffix='.tmp') as tmp:
|
||||||
|
# Build command arguments
|
||||||
|
cmd_args = ['yazi']
|
||||||
|
if args:
|
||||||
|
cmd_args.append(str(args))
|
||||||
|
cmd_args.append(f'--cwd-file={tmp.name}')
|
||||||
|
|
||||||
|
# Run yazi
|
||||||
|
@(cmd_args)
|
||||||
|
|
||||||
|
# Read new working directory
|
||||||
|
try:
|
||||||
|
with open(tmp.name) as f:
|
||||||
|
new_cwd = f.read().strip()
|
||||||
|
|
||||||
|
# Change directory if valid and different
|
||||||
|
if new_cwd and os.path.isdir(new_cwd) and new_cwd != os.getcwd():
|
||||||
|
cd @(new_cwd)
|
||||||
|
except (IOError, OSError):
|
||||||
|
pass
|
||||||
|
|
@ -1,4 +1,11 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
lf () {
|
||||||
|
# `command` is needed in case `lfcd` is aliased to `lf`
|
||||||
|
cd "$(command lf -print-last-dir "$@")"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
load_aliases() {
|
load_aliases() {
|
||||||
local TIMEFMT='\%J\n%mE:'
|
local TIMEFMT='\%J\n%mE:'
|
||||||
local OLDPATH=$PATH
|
local OLDPATH=$PATH
|
||||||
|
|
@ -11,7 +18,7 @@ load_aliases() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
checkCommand() {
|
checkCommand() {
|
||||||
$CHECK "$1" >/dev/null 2>&1
|
"$CHECK" "$1" >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
# make a directory and cd to it
|
# make a directory and cd to it
|
||||||
|
|
@ -30,33 +37,36 @@ load_aliases() {
|
||||||
alias musl-go="GOBIN=$HOME/bin CGO_ENABLED=1 CC=musl-gcc go install --ldflags '-linkmode external -extldflags=-static'"
|
alias musl-go="GOBIN=$HOME/bin CGO_ENABLED=1 CC=musl-gcc go install --ldflags '-linkmode external -extldflags=-static'"
|
||||||
|
|
||||||
# Replace df with duf
|
# Replace df with duf
|
||||||
if checkCommand duf; then
|
if checkCommand dfrs; then
|
||||||
alias df="duf"
|
alias df="dfrs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if checkCommand edit; then
|
||||||
|
alias ed="edit"
|
||||||
|
fi
|
||||||
# Replace diff with delta
|
# Replace diff with delta
|
||||||
if checkCommand delta; then
|
if checkCommand delta; then
|
||||||
alias diff="delta"
|
alias diff="delta"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# replaces gnu coreutils with the rust versions, cp and mv are worth
|
# replaces gnu coreutils with the rust versions, cp and mv are worth
|
||||||
if checkCommand coreutils; then
|
# if checkCommand coreutils; then
|
||||||
alias cp="coreutils cp -g"
|
# alias cp="coreutils cp -g"
|
||||||
alias mv="coreutils mv -g"
|
# alias mv="coreutils mv -g"
|
||||||
alias hashsum="coreutils hashsum"
|
# alias hashsum="coreutils hashsum"
|
||||||
#alias more="coreutils more"
|
# #alias more="coreutils more"
|
||||||
alias cut="coreutils cut"
|
# alias cut="coreutils cut"
|
||||||
alias chmod="coreutils chmod"
|
# alias chmod="coreutils chmod"
|
||||||
alias chown="coreutils chown"
|
# alias chown="coreutils chown"
|
||||||
alias chroot="coreutils chroot"
|
# alias chroot="coreutils chroot"
|
||||||
alias echo="coreutils echo"
|
# alias echo="coreutils echo"
|
||||||
alias head="coreutils head"
|
# alias head="coreutils head"
|
||||||
alias kill="coreutils kill"
|
# alias kill="coreutils kill"
|
||||||
alias ln="coreutils ln"
|
# alias ln="coreutils ln"
|
||||||
alias mkdir="coreutils mkdir"
|
# alias mkdir="coreutils mkdir"
|
||||||
alias nohup="coreutils nohup"
|
# alias nohup="coreutils nohup"
|
||||||
alias tail="coreutils tail"
|
# alias tail="coreutils tail"
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
# Replace find with fd
|
# Replace find with fd
|
||||||
if checkCommand fd; then
|
if checkCommand fd; then
|
||||||
|
|
@ -80,6 +90,8 @@ load_aliases() {
|
||||||
# Replace cat with bat
|
# Replace cat with bat
|
||||||
if checkCommand bat; then
|
if checkCommand bat; then
|
||||||
alias cat="bat"
|
alias cat="bat"
|
||||||
|
alias batlog="bat --paging=never -l log"
|
||||||
|
alias battail="tail -f | bat --paging=never -l log"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Replace tree with broot
|
# Replace tree with broot
|
||||||
|
|
@ -122,6 +134,23 @@ load_aliases() {
|
||||||
# fi
|
# fi
|
||||||
# }
|
# }
|
||||||
fi
|
fi
|
||||||
|
if checkCommand swhkd; then
|
||||||
|
alias reload-swhkd="sudo pkill -HUP swhkd"
|
||||||
|
fi
|
||||||
|
if checkCommand fdfind; then
|
||||||
|
alias fd="fdfind"
|
||||||
|
fi
|
||||||
|
|
||||||
|
alias icat="kitty +kitten icat"
|
||||||
}
|
}
|
||||||
load_aliases
|
load_aliases
|
||||||
unset -f load_aliases
|
unset -f load_aliases
|
||||||
|
|
||||||
|
function yy() {
|
||||||
|
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||||
|
yazi "$@" --cwd-file="$tmp"
|
||||||
|
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||||
|
builtin cd -- "$cwd"
|
||||||
|
fi
|
||||||
|
rm -f -- "$tmp"
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
|
||||||
|
|
@ -10,11 +10,11 @@ checkCommand(){
|
||||||
type "$1" >/dev/null 2>&1
|
type "$1" >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
# If you have zellij installed, this will auto start it
|
# # If you have zellij installed, this will auto start it
|
||||||
if [ -z "$ZELLIJ" ] && checkCommand zellij; then
|
# if [ -z "$ZELLIJ" ] && checkCommand zellij; then
|
||||||
#export ZELLIJ_AUTO_ATTACH=true
|
# #export ZELLIJ_AUTO_ATTACH=true
|
||||||
exec zellij
|
# exec zellij
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
# Speed up shell load on WSL
|
# Speed up shell load on WSL
|
||||||
OLDPATH=$PATH
|
OLDPATH=$PATH
|
||||||
|
|
@ -105,3 +105,5 @@ else #Fallback prompt
|
||||||
fi
|
fi
|
||||||
PATH=$OLDPATH
|
PATH=$OLDPATH
|
||||||
unset OLDPATH
|
unset OLDPATH
|
||||||
|
|
||||||
|
# export UUID=552fbc4c-1e9b-11b2-a85c-a01fe49e12ee
|
||||||
|
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# ~/.profile: executed by the command interpreter for login shells.
|
|
||||||
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
|
|
||||||
# exists.
|
|
||||||
# see /usr/share/doc/bash/examples/startup-files for examples.
|
|
||||||
# the files are located in the bash-doc package.
|
|
||||||
|
|
||||||
# the default umask is set in /etc/profile; for setting the umask
|
|
||||||
# for ssh logins, install and configure the libpam-umask package.
|
|
||||||
#umask 022
|
|
||||||
|
|
||||||
# XDG Base Dirs
|
|
||||||
XDG_DATA_HOME="$HOME/.local/share"
|
|
||||||
XDG_CONFIG_HOME="$HOME/.config"
|
|
||||||
XDG_STATE_HOME="$HOME/.local/state"
|
|
||||||
XDG_CACHE_HOME="$HOME/.cache"
|
|
||||||
|
|
||||||
|
|
||||||
[[ "$TERM_PROGRAM" = "vscode" ]] && . "$(code --locate-shell-integration-path $0)"
|
|
||||||
|
|
||||||
# set PATH so it includes user's private bin if it exists
|
|
||||||
if [ -d "$HOME/bin" ] ; then
|
|
||||||
PATH="$HOME/bin:$PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# set PATH so it includes user's private bin if it exists
|
|
||||||
if [ -d "$HOME/.local/bin" ] ; then
|
|
||||||
PATH="$HOME/.local/bin:$PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source Cargo Environment
|
|
||||||
if [[ -f "$HOME/.cargo/env" ]]; then
|
|
||||||
. "$HOME/.cargo/env";
|
|
||||||
#else
|
|
||||||
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source Nix Environment
|
|
||||||
if [ -e "$HOME"/.nix-profile/etc/profile.d/nix.sh ]; then
|
|
||||||
. "$HOME"/.nix-profile/etc/profile.d/nix.sh
|
|
||||||
# else
|
|
||||||
# echo "If this doesn't work, comment out this part of .zshenv"
|
|
||||||
# sh <(curl -L https://nixos.org/nix/install) --no-daemon;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add Ruby
|
|
||||||
#[ "${PATH#*"$HOME"/.local/share/gem/ruby/*/bin:}" = "$PATH" ] && export PATH="$HOME/.local/share/gem/ruby/*/bin:$PATH"
|
|
||||||
|
|
||||||
# User bin folder
|
|
||||||
[ "${PATH#*"$HOME"/.local/bin:}" = "$PATH" ] && export PATH="$HOME/.local/bin:$PATH"
|
|
||||||
|
|
||||||
# add nodejs
|
|
||||||
# [ "${PATH#*"$HOME"/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:}" = "$PATH" ] && export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
|
|
||||||
|
|
||||||
# add go
|
|
||||||
[ "${PATH#*"$HOME"/go/bin:}" = "$PATH" ] && export PATH="$HOME/go/bin:$PATH"
|
|
||||||
|
|
||||||
# Set PATH, MANPATH, etc., for Homebrew.
|
|
||||||
[ -e /home/linuxbrew/.linuxbrew/bin/brew ] && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
|
|
||||||
|
|
||||||
# pnpm
|
|
||||||
export PNPM_HOME="$XDG_DATA_HOME/pnpm"
|
|
||||||
[ "${PATH#*$PNPM_HOME:}" = "$PATH" ] && export PATH="$PNPM_HOME:$PATH"
|
|
||||||
|
|
||||||
# Make Cargo install to user bin directory
|
|
||||||
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
|
||||||
export CARGO_INSTALL_ROOT="$HOME/.local"
|
|
||||||
|
|
||||||
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
|
||||||
|
|
||||||
# If you use non-default GnuPG Home directory, you will need to edit all
|
|
||||||
# socket files to use the values of gpgconf --list-dirs.
|
|
||||||
# If you set your SSH_AUTH_SOCK manually, keep in mind that your socket
|
|
||||||
# location may be different if you are using a custom GNUPGHOME
|
|
||||||
|
|
||||||
export LESSHISTFILE="$XDG_STATE_HOME/less/history"
|
|
||||||
|
|
||||||
export INPUTRC="$XDG_CONFIG_HOME/readline/inputrc"
|
|
||||||
|
|
@ -6,4 +6,4 @@
|
||||||
export ZSH_DISABLE_COMPFIX=true
|
export ZSH_DISABLE_COMPFIX=true
|
||||||
|
|
||||||
# Load .profile
|
# Load .profile
|
||||||
[[ -f ~/.env ]] && . ~/.env
|
[[ -f ~/.profile ]] && . ~/.profile
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,12 @@
|
||||||
#!/bin/zsh
|
#!/bin/zsh
|
||||||
# Runs for interactive shells
|
# Runs for interactive shells
|
||||||
|
|
||||||
export START="${START:=$(date '+%s.%N')}"
|
|
||||||
|
|
||||||
checkCommand(){
|
checkCommand(){
|
||||||
type "$1" >/dev/null 2>&1
|
type "$1" >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
# If you have zellij installed, this will auto start it
|
|
||||||
if [ -z "$ZELLIJ" ] && checkCommand zellij; then
|
# Set aliases
|
||||||
#export ZELLIJ_AUTO_ATTACH=true
|
[ -f "$HOME/.aliasrc" ] && source "$HOME/.aliasrc" # >/dev/null 2>&1 &;
|
||||||
exec zellij
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Speed up shell load on WSL
|
# Speed up shell load on WSL
|
||||||
OLDPATH=$PATH
|
OLDPATH=$PATH
|
||||||
|
|
@ -22,8 +18,10 @@ PATH=$(echo "$PATH" | sed -e 's/\/mnt\/.*\?://g')
|
||||||
|
|
||||||
# Set where history is saved and how much to save
|
# Set where history is saved and how much to save
|
||||||
HISTFILE="$XDG_STATE_HOME/zsh/history"
|
HISTFILE="$XDG_STATE_HOME/zsh/history"
|
||||||
|
[ ! -e $HISTFILE ] && mkdir -p "$XDG_STATE_HOME/zsh" && touch $HISTFILE
|
||||||
HISTSIZE=10000
|
HISTSIZE=10000
|
||||||
SAVEHIST=10000
|
SAVEHIST=$HISTSIZE
|
||||||
|
HISTDUP=erase
|
||||||
|
|
||||||
# disable system beep on error
|
# disable system beep on error
|
||||||
setopt BEEP
|
setopt BEEP
|
||||||
|
|
@ -34,16 +32,19 @@ setopt nomatch
|
||||||
# report status of bg jobs immediately
|
# report status of bg jobs immediately
|
||||||
setopt notify
|
setopt notify
|
||||||
#dedupe history, and append to histfile after every command
|
#dedupe history, and append to histfile after every command
|
||||||
setopt histfindnodups histsavenodups incappendhistory
|
setopt hist_find_no_dups hist_save_no_dups hist_ignore_dups appendhistory sharehistory
|
||||||
# correct all arguments in a line
|
|
||||||
setopt correctall
|
|
||||||
# vim style line editing
|
# vim style line editing
|
||||||
bindkey -v
|
bindkey -v
|
||||||
# make file name completion case-insensitive
|
# make file name completion case-insensitive
|
||||||
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
||||||
zstyle ':completion:*' cache-path $XDG_CACHE_HOME/zsh/zcompcache
|
zstyle ':completion:*' cache-path $XDG_CACHE_HOME/zsh/zcompcache
|
||||||
|
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
||||||
|
zstyle ':completion:*' menu no
|
||||||
|
zstyle 'fzf-tab:complete:cd:*' fzf-preview `ls $realpath`
|
||||||
|
zstyle 'fzf-tab:complete:__zoxide_z:*' fzf-preview `ls $realpath`
|
||||||
|
|
||||||
# Move completions to XDG Dir
|
# Move completions to XDG Dir
|
||||||
|
autoload -Uz compinit
|
||||||
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
|
compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -51,9 +52,6 @@ compinit -d "$XDG_CACHE_HOME"/zsh/zcompdump-"$ZSH_VERSION"
|
||||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||||
HYPHEN_INSENSITIVE="true"
|
HYPHEN_INSENSITIVE="true"
|
||||||
|
|
||||||
# Enable command auto-correction.
|
|
||||||
ENABLE_CORRECTION="true"
|
|
||||||
|
|
||||||
# Display red dots whilst waiting for completion.
|
# Display red dots whilst waiting for completion.
|
||||||
COMPLETION_WAITING_DOTS="true"
|
COMPLETION_WAITING_DOTS="true"
|
||||||
|
|
||||||
|
|
@ -61,98 +59,115 @@ COMPLETION_WAITING_DOTS="true"
|
||||||
ZSH_AUTOSUGGEST_MANUAL_REBIND="true"
|
ZSH_AUTOSUGGEST_MANUAL_REBIND="true"
|
||||||
|
|
||||||
# fix home end and delete buttons
|
# fix home end and delete buttons
|
||||||
bindkey "${terminfo[khome]}" beginning-of-line
|
# create a zkbd compatible hash;
|
||||||
bindkey "${terminfo[kend]}" end-of-line
|
# to add other keys to this hash, see: man 5 terminfo
|
||||||
bindkey "${terminfo[kdch1]}" delete-char
|
typeset -g -A key
|
||||||
|
|
||||||
#if ! checkCommand gum && checkCommand go; then
|
key[Home]="${terminfo[khome]}"
|
||||||
# # TODO
|
key[End]="${terminfo[kend]}"
|
||||||
#fi
|
key[Insert]="${terminfo[kich1]}"
|
||||||
|
key[Backspace]="${terminfo[kbs]}"
|
||||||
|
key[Delete]="${terminfo[kdch1]}"
|
||||||
|
key[Up]="${terminfo[kcuu1]}"
|
||||||
|
key[Down]="${terminfo[kcud1]}"
|
||||||
|
key[Left]="${terminfo[kcub1]}"
|
||||||
|
key[Right]="${terminfo[kcuf1]}"
|
||||||
|
key[PageUp]="${terminfo[kpp]}"
|
||||||
|
key[PageDown]="${terminfo[knp]}"
|
||||||
|
key[Shift-Tab]="${terminfo[kcbt]}"
|
||||||
|
|
||||||
|
# setup key accordingly
|
||||||
|
[[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line
|
||||||
|
[[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line
|
||||||
|
[[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode
|
||||||
|
[[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char
|
||||||
|
[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char
|
||||||
|
[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-history
|
||||||
|
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-history
|
||||||
|
[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char
|
||||||
|
[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char
|
||||||
|
[[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history
|
||||||
|
[[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history
|
||||||
|
[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete
|
||||||
|
|
||||||
|
# Finally, make sure the terminal is in application mode, when zle is
|
||||||
|
# active. Only then are the values from $terminfo valid.
|
||||||
|
if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
|
||||||
|
autoload -Uz add-zle-hook-widget
|
||||||
|
function zle_application_mode_start { echoti smkx }
|
||||||
|
function zle_application_mode_stop { echoti rmkx }
|
||||||
|
add-zle-hook-widget -Uz zle-line-init zle_application_mode_start
|
||||||
|
add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop
|
||||||
|
fi
|
||||||
|
|
||||||
#Allows fuzzy-finding
|
#Allows fuzzy-finding
|
||||||
if checkCommand fzf; then
|
if checkCommand fzf; then
|
||||||
export FZF_BASE=$(which fzf)
|
export FZF_BASE=$(which fzf)
|
||||||
else
|
|
||||||
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf;
|
|
||||||
~/.fzf/install --bin;
|
|
||||||
mkdir -p ~/.local/bin;
|
|
||||||
mv ~/.fzf/bin/* ~/.local/bin/;
|
|
||||||
rm -rf ~/.fzf;
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#todo: install if not found
|
#todo: install if not found
|
||||||
# Load plugins
|
# Load plugins
|
||||||
mkdir -p ~/.config/sheldon
|
|
||||||
touch ~/.config/sheldon/plugins.toml
|
|
||||||
if checkCommand sheldon; then
|
if checkCommand sheldon; then
|
||||||
eval "$(sheldon -q source)";
|
mkdir -p ~/.config/sheldon
|
||||||
elif checkCommand brew; then
|
touch ~/.config/sheldon/plugins.toml
|
||||||
brew install sheldon;
|
eval "$(sheldon -q source)";
|
||||||
elif checkCommand cargo; then
|
|
||||||
cargo install sheldon
|
|
||||||
else
|
|
||||||
curl --proto '=https' -fLsS https://rossmacarthur.github.io/install/crate.sh \
|
|
||||||
| bash -s -- --repo rossmacarthur/sheldon --to ~/.local/bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
#zplug "plugins/git", from:oh-my-zsh, lazy:on
|
|
||||||
#zplug "plugins/vi-mode", from:oh-my-zsh
|
|
||||||
#zplug "plugins/adb", from:oh-my-zsh, lazy:on
|
|
||||||
#zplug "plugins/pip", from:oh-my-zsh, lazy:on
|
|
||||||
|
|
||||||
|
|
||||||
# set colors if pywal is installed
|
|
||||||
if checkCommand wal && [ -z "$SSH_TTY" ]; then
|
|
||||||
eval 'cat ~/.cache/wal/sequences &'
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# if ssh-agent isn't running, run it
|
# if ssh-agent isn't running, run it
|
||||||
if ! pgrep -u "$USER" '(ssh|gpg)-agent' >/dev/null; then
|
if ! pgrep -u "$USER" '(ssh|gpg)-agent' >/dev/null; then
|
||||||
if checkCommand gpg-agent; then
|
if checkCommand gpg-agent; then
|
||||||
gpg-agent --daemon --enable-ssh-support;
|
gpg-agent --daemon --enable-ssh-support >> "$HOME/.ssh-agent.env";
|
||||||
unset SSH_AGENT_PID;
|
unset SSH_AGENT_PID;
|
||||||
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-socket);
|
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-socket);
|
||||||
export GPG_TTY=$(tty)
|
export GPG_TTY=$(tty)
|
||||||
gpg-connect-agent updatestartuptty /bye >/dev/null
|
gpg-connect-agent updatestartuptty /bye >/dev/null
|
||||||
elif checkCommand ssh-agent; then
|
elif checkCommand ssh-agent; then
|
||||||
ssh-agent > "$HOME/.ssh-agent.env";
|
ssh-agent > "$HOME/.ssh-agent.env";
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$SSH_AUTH_SOCK" ] && [ -f ~/.ssh-agent.env ]; then
|
if [ ! -f "$SSH_AUTH_SOCK" ] && [ -f ~/.ssh-agent.env ]; then
|
||||||
source "$HOME/.ssh-agent.env" >/dev/null
|
source "$HOME/.ssh-agent.env" >/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -f ~/.zsh_history ]] && touch ~/.zsh_history
|
|
||||||
|
|
||||||
# Set up mcfly if installed (lets you search through history easily with ctrl+r)
|
# Set up mcfly if installed (lets you search through history easily with ctrl+r)
|
||||||
if checkCommand mcfly; then
|
if checkCommand mcfly; then
|
||||||
zsh-defer _evalcache mcfly init zsh
|
export MCFLY_KEY_SCHEME=vim
|
||||||
|
export MCFLY_FUZZY=2
|
||||||
|
eval "$(mcfly init zsh)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# set up zoxide if installed (lets you jump through folders easily using the z and zi commands instead of cd)
|
# set up zoxide if installed (lets you jump through folders easily using the z and zi commands instead of cd)
|
||||||
if checkCommand zoxide; then
|
if checkCommand zoxide; then
|
||||||
zsh-defer _evalcache zoxide init zsh
|
eval "$(zoxide init zsh)"
|
||||||
fi
|
fi
|
||||||
|
# if checkCommand direnv; then
|
||||||
#if "$(checkCommand notify-send)"; then
|
# eval "$(direnv hook zsh)"
|
||||||
# notify-send() { wsl-notify-send.exe --category $WSL_DISTRO_NAME "${@}"; }
|
# fi
|
||||||
#fi
|
if checkCommand yazi; then
|
||||||
|
function yy() {
|
||||||
|
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||||
# Set up broot if installed (a nicer tree, probably has other cool stuff I haven't looked at yet)
|
yazi "$@" --cwd-file="$tmp"
|
||||||
[ -e "$HOME"/.config/broot/launcher/bash/br ] && zsh-defer -t 15 eval "$(broot --print-shell-function $(basename $0))"
|
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||||
# Set aliases
|
cd -- "$cwd"
|
||||||
[ -f "$HOME/.aliasrc" ] && source "$HOME/.aliasrc" # >/dev/null 2>&1 &;
|
fi
|
||||||
|
rm -f -- "$tmp"
|
||||||
if checkCommand hyfetch; then
|
}
|
||||||
hyfetch -b fastfetch
|
fi
|
||||||
|
if checkCommand mirafetch; then
|
||||||
|
RUST_BACKTRACE=1 mirafetch
|
||||||
fi
|
fi
|
||||||
END="$(date '+%s.%N')"
|
|
||||||
PATH=$OLDPATH
|
PATH=$OLDPATH
|
||||||
printf "Startup Time: %.2fms\n" $((1000 * (END - START)))
|
|
||||||
# todo: install if not found
|
|
||||||
checkCommand starship && eval "$(starship init $(basename $0))"
|
|
||||||
unset OLDPATH
|
unset OLDPATH
|
||||||
unset START
|
checkCommand starship && eval "$(starship init zsh)"
|
||||||
unset END
|
|
||||||
|
# TODO: move these
|
||||||
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
|
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||||
|
|
||||||
|
# bun completions
|
||||||
|
[ -s "/home/akristip/.bun/_bun" ] && source "/home/akristip/.bun/_bun"
|
||||||
|
# bun
|
||||||
|
export BUN_INSTALL="$HOME/.bun"
|
||||||
|
export PATH="$BUN_INSTALL/bin:$PATH"
|
||||||
|
|
||||||
|
|
|
||||||
3
private_dot_config/cargo/config.toml
Normal file
3
private_dot_config/cargo/config.toml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
[install]
|
||||||
|
root = "$HOME/.local/bin"
|
||||||
|
|
||||||
|
|
@ -14,5 +14,4 @@ recipients = [
|
||||||
"6A10DF52E755E8174CD5C4C18ED045D80561353B",
|
"6A10DF52E755E8174CD5C4C18ED045D80561353B",
|
||||||
"30FA9C303E45B42AA688839C557DE35A80C4461F"
|
"30FA9C303E45B42AA688839C557DE35A80C4461F"
|
||||||
]
|
]
|
||||||
|
args = ["-v","--pinentry=loopback"]
|
||||||
|
|
||||||
|
|
|
||||||
459
private_dot_config/dunst/dunstrc
Normal file
459
private_dot_config/dunst/dunstrc
Normal file
|
|
@ -0,0 +1,459 @@
|
||||||
|
# See dunst(5) for all configuration options
|
||||||
|
|
||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = mouse
|
||||||
|
|
||||||
|
### Geometry ###
|
||||||
|
|
||||||
|
# dynamic width from 0 to 300
|
||||||
|
# width = (0, 300)
|
||||||
|
# constant width of 300
|
||||||
|
width = 300
|
||||||
|
|
||||||
|
# The maximum height of a single notification, excluding the frame.
|
||||||
|
height = 300
|
||||||
|
|
||||||
|
# Position the notification in the top right corner
|
||||||
|
origin = top-right
|
||||||
|
|
||||||
|
# Offset from the origin
|
||||||
|
offset = 10x50
|
||||||
|
|
||||||
|
# Scale factor. It is auto-detected if value is 0.
|
||||||
|
scale = 0 # 1.5
|
||||||
|
|
||||||
|
# Maximum number of notification (0 means no limit)
|
||||||
|
notification_limit = 20
|
||||||
|
|
||||||
|
### Progress bar ###
|
||||||
|
|
||||||
|
# Turn on the progess bar. It appears when a progress hint is passed with
|
||||||
|
# for example dunstify -h int:value:12
|
||||||
|
progress_bar = true
|
||||||
|
|
||||||
|
# Set the progress bar height. This includes the frame, so make sure
|
||||||
|
# it's at least twice as big as the frame width.
|
||||||
|
progress_bar_height = 10
|
||||||
|
|
||||||
|
# Set the frame width of the progress bar
|
||||||
|
progress_bar_frame_width = 1
|
||||||
|
|
||||||
|
# Set the minimum width for the progress bar
|
||||||
|
progress_bar_min_width = 150
|
||||||
|
|
||||||
|
# Set the maximum width for the progress bar
|
||||||
|
progress_bar_max_width = 300
|
||||||
|
|
||||||
|
# Corner radius for the progress bar. 0 disables rounded corners.
|
||||||
|
progress_bar_corner_radius = 0
|
||||||
|
|
||||||
|
# Corner radius for the icon image.
|
||||||
|
icon_corner_radius = 0
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of
|
||||||
|
# notification_limit).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
|
||||||
|
transparency = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# If gap_size is greater than 0, this setting will be ignored.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Padding between text and icon.
|
||||||
|
text_icon_padding = 0
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 2
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
frame_color = "#51545a"
|
||||||
|
|
||||||
|
# Size of gap to display between notifications - requires a compositor.
|
||||||
|
# If value is greater than 0, separator_height will be ignored and a border
|
||||||
|
# of size frame_width will be drawn around each notification instead.
|
||||||
|
# Click events on gaps do not currently propagate to applications below.
|
||||||
|
gap_size = 4
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = auto
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# A client can set the 'transient' hint to bypass this. See the rules
|
||||||
|
# section for how to disable this if necessary
|
||||||
|
# idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
font = Comic Shanns, Atkinson Hyperlegible, FontAwesome 12
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# %% Literal %
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Vertical alignment of message text and icon.
|
||||||
|
# Possible values are "top", "center" and "bottom".
|
||||||
|
vertical_alignment = center
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Specify where to make an ellipsis in long lines.
|
||||||
|
# Possible values are "start", "middle" and "end".
|
||||||
|
ellipsize = middle
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Stack together notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of stacked notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Recursive icon lookup. You can set a single theme, instead of having to
|
||||||
|
# define all lookup paths.
|
||||||
|
enable_recursive_icon_lookup = true
|
||||||
|
|
||||||
|
# Set icon theme (only used for recursive icon lookup)
|
||||||
|
icon_theme = Adwaita
|
||||||
|
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||||
|
# icon_theme = "Adwaita, breeze"
|
||||||
|
|
||||||
|
# Align icons left/right/top/off
|
||||||
|
icon_position = left
|
||||||
|
|
||||||
|
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||||
|
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||||
|
# max_icon_size takes precedence over this.
|
||||||
|
min_icon_size = 32
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 32
|
||||||
|
|
||||||
|
# Paths to default icons (only neccesary when not using recursive icon lookup)
|
||||||
|
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/xdg-open
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Define the corner radius of the notification window
|
||||||
|
# in pixel size. If the radius is 0, you have no rounded
|
||||||
|
# corners.
|
||||||
|
# The radius will be automatically lowered if it exceeds half of the
|
||||||
|
# notification height to avoid clipping text and/or icons.
|
||||||
|
corner_radius = 8
|
||||||
|
|
||||||
|
# Ignore the dbus closeNotification message.
|
||||||
|
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||||
|
# parameter, an application may close the notification sent before the
|
||||||
|
# user defined timeout.
|
||||||
|
ignore_dbusclose = false
|
||||||
|
|
||||||
|
### Wayland ###
|
||||||
|
# These settings are Wayland-specific. They have no effect when using X11
|
||||||
|
|
||||||
|
# Uncomment this if you want to let notications appear under fullscreen
|
||||||
|
# applications (default: overlay)
|
||||||
|
# layer = top
|
||||||
|
|
||||||
|
# Set this to true to use X11 output on Wayland.
|
||||||
|
force_xwayland = false
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
### mouse
|
||||||
|
|
||||||
|
# Defines list of actions for each mouse event
|
||||||
|
# Possible values are:
|
||||||
|
# * none: Don't do anything.
|
||||||
|
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||||
|
# such action, open the context menu.
|
||||||
|
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||||
|
# ones, open the context menu.
|
||||||
|
# * close_current: Close current notification.
|
||||||
|
# * close_all: Close all notifications.
|
||||||
|
# * context: Open context menu for the notification.
|
||||||
|
# * context_all: Open context menu for all notifications.
|
||||||
|
# These values can be strung together for each mouse event, and
|
||||||
|
# will be executed in sequence.
|
||||||
|
mouse_left_click = do_action, close_current
|
||||||
|
mouse_middle_click = close_all
|
||||||
|
mouse_right_click = close_current
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#010206"
|
||||||
|
foreground = "#EBF6ff"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#1E1B30BF"
|
||||||
|
foreground = "#EBF6ff"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#A04558"
|
||||||
|
foreground = "#EBF6ff"
|
||||||
|
frame_color = "#f5a9b8"
|
||||||
|
timeout = 0
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
#
|
||||||
|
# Messages can be matched by
|
||||||
|
# appname (discouraged, see desktop_entry)
|
||||||
|
# body
|
||||||
|
# category
|
||||||
|
# desktop_entry
|
||||||
|
# icon
|
||||||
|
# match_transient
|
||||||
|
# msg_urgency
|
||||||
|
# stack_tag
|
||||||
|
# summary
|
||||||
|
#
|
||||||
|
# and you can override the
|
||||||
|
# background
|
||||||
|
# foreground
|
||||||
|
# format
|
||||||
|
# frame_color
|
||||||
|
# fullscreen
|
||||||
|
# new_icon
|
||||||
|
# set_stack_tag
|
||||||
|
# set_transient
|
||||||
|
# set_category
|
||||||
|
# timeout
|
||||||
|
# urgency
|
||||||
|
# icon_position
|
||||||
|
# skip_display
|
||||||
|
# history_ignore
|
||||||
|
# action_name
|
||||||
|
# word_wrap
|
||||||
|
# ellipsize
|
||||||
|
# alignment
|
||||||
|
# hide_text
|
||||||
|
#
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||||
|
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||||
|
# the desktop-entry won't get localized.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||||
|
# client
|
||||||
|
#[transient_disable]
|
||||||
|
# match_transient = yes
|
||||||
|
# set_transient = no
|
||||||
|
#
|
||||||
|
# Make the handling of transient notifications more strict by making them not
|
||||||
|
# be placed in history.
|
||||||
|
#[transient_history_ignore]
|
||||||
|
# match_transient = yes
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
# fullscreen values
|
||||||
|
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||||
|
# delay: displays the new notification, if there is no fullscreen window active
|
||||||
|
# If the notification is already drawn, it won't get undrawn.
|
||||||
|
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||||
|
# withdrawn from screen again and will get delayed like a new notification
|
||||||
|
#[fullscreen_delay_everything]
|
||||||
|
# fullscreen = delay
|
||||||
|
#[fullscreen_show_critical]
|
||||||
|
# msg_urgency = critical
|
||||||
|
# fullscreen = show
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# skip_display = true
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[skip-display]
|
||||||
|
# # This notification will not be displayed, but will be included in the history
|
||||||
|
# summary = "foobar"
|
||||||
|
# skip_display = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
#[stack-volumes]
|
||||||
|
# appname = "some_volume_notifiers"
|
||||||
|
# set_stack_tag = "volume"
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
||||||
7
private_dot_config/executable_kritadisplayrc
Normal file
7
private_dot_config/executable_kritadisplayrc
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[General]
|
||||||
|
EnableHiDPI=true
|
||||||
|
EnableSingleApplication=true
|
||||||
|
LogUsage=true
|
||||||
|
OpenGLRenderer=auto
|
||||||
|
canvasState=OPENGL_SUCCESS
|
||||||
|
rootSurfaceFormat=bt709-g22
|
||||||
904
private_dot_config/executable_kritarc
Normal file
904
private_dot_config/executable_kritarc
Normal file
File diff suppressed because one or more lines are too long
2
private_dot_config/executable_kritashortcutsrc
Normal file
2
private_dot_config/executable_kritashortcutsrc
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
[Shortcuts]
|
||||||
|
KisToolSelectPolygonal=Ctrl+Alt+P
|
||||||
1
private_dot_config/external_i3blocks
Submodule
1
private_dot_config/external_i3blocks
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 9d66d81da8d521941a349da26457f4965fd6fcbd
|
||||||
35
private_dot_config/ghostty/config
Normal file
35
private_dot_config/ghostty/config
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
clipboard-read = allow
|
||||||
|
clipboard-write = allow
|
||||||
|
clipboard-trim-trailing-spaces = true
|
||||||
|
window-theme = dark
|
||||||
|
mouse-shift-capture = true
|
||||||
|
gtk-titlebar = false
|
||||||
|
gtk-wide-tabs = false
|
||||||
|
font-family = Berkeley Mono
|
||||||
|
confirm-close-surface = false
|
||||||
|
|
||||||
|
window-padding-x = 4,2
|
||||||
|
window-padding-y = 0
|
||||||
|
|
||||||
|
minimum-contrast=1
|
||||||
|
|
||||||
|
|
||||||
|
background = #010206
|
||||||
|
foreground = #ebf6ff
|
||||||
|
palette = 0=#1e1b30
|
||||||
|
palette = 1=#a04558
|
||||||
|
palette = 2=#76aa73
|
||||||
|
palette = 3=#ad9d3d
|
||||||
|
palette = 4=#334773
|
||||||
|
palette = 5=#a34a78
|
||||||
|
palette = 6=#2a97b1
|
||||||
|
palette = 7=#9a9ab8
|
||||||
|
# palette = 8=#504573
|
||||||
|
palette = 8=#74689F
|
||||||
|
palette = 9=#ed8096
|
||||||
|
palette = 10=#a0dc9b
|
||||||
|
palette = 11=#c1b254
|
||||||
|
palette = 12=#445f9b
|
||||||
|
palette = 13=#ee5e95
|
||||||
|
palette = 14=#5bcefa
|
||||||
|
palette = 15=#c1c7db
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
[user]
|
|
||||||
email = "akristip@cisco.com"
|
|
||||||
name = "Mira Kristipati"
|
|
||||||
|
|
||||||
[core]
|
|
||||||
editor = nvim
|
|
||||||
pager = delta
|
|
||||||
# Remove Carriage Returns
|
|
||||||
autocrlf = input
|
|
||||||
eol = lf
|
|
||||||
|
|
||||||
[interactive]
|
|
||||||
diffFilter = delta --color-only
|
|
||||||
|
|
||||||
[delta]
|
|
||||||
navigate = true # use n and N to move between diff sections
|
|
||||||
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
|
|
||||||
|
|
||||||
[merge]
|
|
||||||
conflictstyle = diff3
|
|
||||||
|
|
||||||
[diff]
|
|
||||||
colorMoved = default
|
|
||||||
mnemonicPrefix = true
|
|
||||||
renames = true
|
|
||||||
algorithm = patience
|
|
||||||
|
|
||||||
[pull]
|
|
||||||
rebase = merges
|
|
||||||
autoSetupRemote = true
|
|
||||||
default = simple
|
|
||||||
followTags = true
|
|
||||||
|
|
||||||
[apply]
|
|
||||||
whitespace = fix
|
|
||||||
|
|
||||||
[help]
|
|
||||||
#Automatically fix commands and run after 0.5s
|
|
||||||
autocorrect = 50
|
|
||||||
|
|
||||||
[safe]
|
|
||||||
directory = /
|
|
||||||
|
|
||||||
[rebase]
|
|
||||||
autostash = true
|
|
||||||
|
|
||||||
[log]
|
|
||||||
abbrevCommit = true
|
|
||||||
|
|
||||||
[rerere]
|
|
||||||
autoupdate = true
|
|
||||||
enabled = true
|
|
||||||
|
|
@ -4,20 +4,33 @@ name = {{ .name | quote }}
|
||||||
|
|
||||||
[core]
|
[core]
|
||||||
editor = nvim
|
editor = nvim
|
||||||
pager = delta
|
# pager = delta
|
||||||
# Remove Carriage Returns
|
# Remove Carriage Returns
|
||||||
autocrlf = input
|
autocrlf = input
|
||||||
eol = lf
|
eol = lf
|
||||||
|
|
||||||
|
[pager]
|
||||||
|
difftool = true
|
||||||
|
|
||||||
[interactive]
|
[interactive]
|
||||||
diffFilter = delta --color-only
|
# diffFilter = delta --color-only
|
||||||
|
|
||||||
[delta]
|
[delta]
|
||||||
navigate = true # use n and N to move between diff sections
|
navigate = true # use n and N to move between diff sections
|
||||||
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
|
light = false # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)
|
||||||
|
|
||||||
|
[diff]
|
||||||
|
tool = difftastic
|
||||||
|
|
||||||
|
[difftool]
|
||||||
|
prompt = false
|
||||||
|
|
||||||
|
[difftool "difftastic"]
|
||||||
|
cmd = difft "$LOCAL" "$REMOTE"
|
||||||
|
|
||||||
[merge]
|
[merge]
|
||||||
conflictstyle = diff3
|
# TODO: set this to meld or nvimdiff
|
||||||
|
conflictstyle = zdiff3
|
||||||
|
|
||||||
[diff]
|
[diff]
|
||||||
colorMoved = default
|
colorMoved = default
|
||||||
|
|
@ -40,6 +53,9 @@ autocorrect = 50
|
||||||
|
|
||||||
[safe]
|
[safe]
|
||||||
directory = /
|
directory = /
|
||||||
|
directory = /etc/nixos
|
||||||
|
directory = /home/mira/docker/config/argentumcation.com
|
||||||
|
directory = /home/mira/docker/Dockerfiles/argentumcation.com
|
||||||
|
|
||||||
[rebase]
|
[rebase]
|
||||||
autostash = true
|
autostash = true
|
||||||
|
|
@ -50,3 +66,18 @@ abbrevCommit = true
|
||||||
[rerere]
|
[rerere]
|
||||||
autoupdate = true
|
autoupdate = true
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
||||||
|
[push]
|
||||||
|
autoSetupRemote = true
|
||||||
|
|
||||||
|
[alias]
|
||||||
|
lg = log --graph --branches --oneline
|
||||||
|
st = status
|
||||||
|
gud = !git commit -am --no-edit --amend && git push --force-with-lease
|
||||||
|
|
||||||
|
[filter "lfs"]
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
|
||||||
65
private_dot_config/i3/config
Normal file
65
private_dot_config/i3/config
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
# This file has been auto-generated by i3-config-wizard(1).
|
||||||
|
# It will not be overwritten, so edit it as you like.
|
||||||
|
#
|
||||||
|
# Should you change your keyboard layout some time, delete
|
||||||
|
# this file and re-run i3-config-wizard(1).
|
||||||
|
#
|
||||||
|
|
||||||
|
# i3 config file (v4)
|
||||||
|
#
|
||||||
|
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
include "keybinds"
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
set $ws21 "21"
|
||||||
|
set $ws22 "22"
|
||||||
|
set $ws23 "23"
|
||||||
|
set $ws24 "24"
|
||||||
|
set $ws25 "25"
|
||||||
|
set $ws26 "26"
|
||||||
|
set $ws27 "27"
|
||||||
|
set $ws28 "28"
|
||||||
|
set $ws29 "29"
|
||||||
|
set $ws20 "20"
|
||||||
|
|
||||||
|
|
||||||
|
include "xorg"
|
||||||
|
|
||||||
|
#compositor
|
||||||
|
exec_always --no-startup-id picom --corner-radius 4 -i 0.99 -b
|
||||||
|
|
||||||
|
#QT Themes?
|
||||||
|
#exec sh 'export QT_QPA_PLATFORMTHEME=qt5ct'
|
||||||
|
|
||||||
|
exec dunst &
|
||||||
|
exec_always swhks &
|
||||||
|
exec_always pkexec swhkd
|
||||||
|
exec nm-tray
|
||||||
|
exec xsettingsd
|
||||||
|
#border size
|
||||||
|
default_border normal 1
|
||||||
|
#Set up monitors
|
||||||
|
# exec ~/.screenlayout/main.sh
|
||||||
|
# exec ~/tablet.sh
|
||||||
|
|
||||||
|
tiling_drag titlebar
|
||||||
|
gaps inner 5
|
||||||
|
exec nm-applet
|
||||||
|
include "theme"
|
||||||
163
private_dot_config/i3/i3blocks.conf
Normal file
163
private_dot_config/i3/i3blocks.conf
Normal file
|
|
@ -0,0 +1,163 @@
|
||||||
|
# i3blocks config file
|
||||||
|
#
|
||||||
|
# Please see man i3blocks for a complete reference!
|
||||||
|
# The man page is also hosted at http://vivien.github.io/i3blocks
|
||||||
|
#
|
||||||
|
# List of valid properties:
|
||||||
|
#
|
||||||
|
# align
|
||||||
|
# color
|
||||||
|
# command
|
||||||
|
# full_text
|
||||||
|
# instance
|
||||||
|
# interval
|
||||||
|
# label
|
||||||
|
# min_width
|
||||||
|
# name
|
||||||
|
# separator
|
||||||
|
# separator_block_width
|
||||||
|
# short_text
|
||||||
|
# signal
|
||||||
|
# urgent
|
||||||
|
|
||||||
|
# Global properties
|
||||||
|
#
|
||||||
|
# The top properties below are applied to every block, but can be overridden.
|
||||||
|
# Each block command defaults to the script name to avoid boilerplate.
|
||||||
|
command=~/.config/i3/blocks/$BLOCK_NAME
|
||||||
|
separator_block_width=15
|
||||||
|
markup=none
|
||||||
|
|
||||||
|
# Volume indicator
|
||||||
|
#
|
||||||
|
# The first parameter sets the step (and units to display)
|
||||||
|
# The second parameter overrides the mixer selection
|
||||||
|
# See the script for details.
|
||||||
|
[volume]
|
||||||
|
#label=VOL
|
||||||
|
label=♪
|
||||||
|
#instance=Master
|
||||||
|
#instance=PCM
|
||||||
|
interval=1
|
||||||
|
signal=10
|
||||||
|
NATURAL_MAPPING=1
|
||||||
|
|
||||||
|
# Memory usage
|
||||||
|
#
|
||||||
|
# The type defaults to "mem" if the instance is not specified.
|
||||||
|
[memory]
|
||||||
|
label=MEM
|
||||||
|
separator=false
|
||||||
|
interval=30
|
||||||
|
|
||||||
|
[memory]
|
||||||
|
label=SWAP
|
||||||
|
instance=swap
|
||||||
|
separator=false
|
||||||
|
interval=30
|
||||||
|
|
||||||
|
# Disk usage
|
||||||
|
#
|
||||||
|
# The directory defaults to $HOME if the instance is not specified.
|
||||||
|
# The script may be called with a optional argument to set the alert
|
||||||
|
# (defaults to 10 for 10%).
|
||||||
|
[disk]
|
||||||
|
label=
|
||||||
|
#instance=/mnt/data
|
||||||
|
interval=30
|
||||||
|
|
||||||
|
[disk]
|
||||||
|
markup=pango
|
||||||
|
label=
|
||||||
|
instance=/
|
||||||
|
interval=30
|
||||||
|
# Network interface monitoring
|
||||||
|
#
|
||||||
|
# If the instance is not specified, use the interface used for default route.
|
||||||
|
# The address can be forced to IPv4 or IPv6 with -4 or -6 switches.
|
||||||
|
[iface]
|
||||||
|
#instance=wlan0
|
||||||
|
color=#00FF00
|
||||||
|
interval=10
|
||||||
|
separator=false
|
||||||
|
|
||||||
|
[wifi]
|
||||||
|
#instance=wlp3s0
|
||||||
|
interval=10
|
||||||
|
#separator=false
|
||||||
|
|
||||||
|
#[bandwidth]
|
||||||
|
#instance=eth0
|
||||||
|
#interval=5
|
||||||
|
|
||||||
|
# CPU usage
|
||||||
|
#
|
||||||
|
# The script may be called with -w and -c switches to specify thresholds,
|
||||||
|
# see the script for details.
|
||||||
|
#[cpu_usage]
|
||||||
|
#label=CPU
|
||||||
|
#interval=10
|
||||||
|
#min_width=CPU: 100.00%
|
||||||
|
#separator=false
|
||||||
|
|
||||||
|
|
||||||
|
# Battery indicator
|
||||||
|
#
|
||||||
|
# The battery instance defaults to 0.
|
||||||
|
#[battery]
|
||||||
|
#label=BAT
|
||||||
|
#label=⚡
|
||||||
|
#instance=1
|
||||||
|
#interval=30
|
||||||
|
|
||||||
|
#[battery2]
|
||||||
|
#label=⚡
|
||||||
|
#markup=pango
|
||||||
|
#interval=30
|
||||||
|
|
||||||
|
# Temperature
|
||||||
|
#
|
||||||
|
# Support multiple chips, though lm-sensors.
|
||||||
|
# The script may be called with -w and -c switches to specify thresholds,
|
||||||
|
# see the script for details.
|
||||||
|
[temperature]
|
||||||
|
label=🌡️
|
||||||
|
interval=10
|
||||||
|
SENSOR_CHIP='k10temp-pci-00c3'
|
||||||
|
|
||||||
|
# Date Time
|
||||||
|
#
|
||||||
|
[time]
|
||||||
|
command=date '+%a %b %_d %Y %l:%M:%S'
|
||||||
|
interval=1
|
||||||
|
|
||||||
|
# Generic media player support
|
||||||
|
#
|
||||||
|
# This displays "ARTIST - SONG" if a music is playing.
|
||||||
|
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
|
||||||
|
#[mediaplayer]
|
||||||
|
#instance=spotify
|
||||||
|
#interval=5
|
||||||
|
#signal=10
|
||||||
|
|
||||||
|
# OpenVPN support
|
||||||
|
#
|
||||||
|
# Support multiple VPN, with colors.
|
||||||
|
#[openvpn]
|
||||||
|
#interval=20
|
||||||
|
|
||||||
|
# Key indicators
|
||||||
|
#
|
||||||
|
# Add the following bindings to i3 config file:
|
||||||
|
#
|
||||||
|
# bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks
|
||||||
|
# bindsym --release Num_Lock exec pkill -SIGRTMIN+11 i3blocks
|
||||||
|
#[keyindicator]
|
||||||
|
#instance=CAPS
|
||||||
|
#interval=once
|
||||||
|
#signal=11
|
||||||
|
|
||||||
|
#[keyindicator]
|
||||||
|
#instance=NUM
|
||||||
|
#interval=once
|
||||||
|
#signal=11
|
||||||
151
private_dot_config/i3/keybinds
Normal file
151
private_dot_config/i3/keybinds
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
|
||||||
|
# start a terminal
|
||||||
|
bindsym $mod+Shift+Return exec alacritty
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# change focus
|
||||||
|
bindsym $mod+j focus left
|
||||||
|
bindsym $mod+k focus down
|
||||||
|
bindsym $mod+l focus up
|
||||||
|
bindsym $mod+semicolon focus right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
bindsym $mod+Shift+j move left
|
||||||
|
bindsym $mod+Shift+k move down
|
||||||
|
bindsym $mod+Shift+l move up
|
||||||
|
bindsym $mod+Shift+semicolon move right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor 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
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+h split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+v split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
#bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
bindsym $mod+d focus child
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace $ws1
|
||||||
|
bindsym $mod+2 workspace $ws2
|
||||||
|
bindsym $mod+3 workspace $ws3
|
||||||
|
bindsym $mod+4 workspace $ws4
|
||||||
|
bindsym $mod+5 workspace $ws5
|
||||||
|
bindsym $mod+6 workspace $ws6
|
||||||
|
bindsym $mod+7 workspace $ws7
|
||||||
|
bindsym $mod+8 workspace $ws8
|
||||||
|
bindsym $mod+9 workspace $ws9
|
||||||
|
bindsym $mod+0 workspace $ws10
|
||||||
|
|
||||||
|
|
||||||
|
bindsym $mod+Mod2+KP_1 workspace $ws21
|
||||||
|
bindsym $mod+Mod2+KP_2 workspace $ws22
|
||||||
|
bindsym $mod+Mod2+KP_3 workspace $ws23
|
||||||
|
bindsym $mod+Mod2+KP_4 workspace $ws24
|
||||||
|
bindsym $mod+Mod2+KP_5 workspace $ws25
|
||||||
|
bindsym $mod+Mod2+KP_6 workspace $ws26
|
||||||
|
bindsym $mod+Mod2+KP_7 workspace $ws27
|
||||||
|
bindsym $mod+Mod2+KP_8 workspace $ws28
|
||||||
|
bindsym $mod+Mod2+KP_9 workspace $ws29
|
||||||
|
bindsym $mod+Mod2+KP_0 workspace $ws20
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||||
|
|
||||||
|
bindsym $mod+Shift+Mod2+KP_End move container to workspace $ws21
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Down move container to workspace $ws22
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Next move container to workspace $ws23
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Left move container to workspace $ws24
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Begin move container to workspace $ws25
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Right move container to workspace $ws26
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Home move container to workspace $ws27
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Up move container to workspace $ws28
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Prior move container to workspace $ws29
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Insert move container to workspace $ws20
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
|
||||||
|
# Pressing left will shrink the window’s width.
|
||||||
|
# Pressing right will grow the window’s width.
|
||||||
|
# Pressing up will shrink the window’s height.
|
||||||
|
# Pressing down will grow the window’s height.
|
||||||
|
bindsym j resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym k resize grow height 10 px or 10 ppt
|
||||||
|
bindsym l resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# same bindings, but for the arrow keys
|
||||||
|
bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or $mod+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
# Make the currently focused window a scratchpad
|
||||||
|
bindsym $mod+Shift+minus move scratchpad
|
||||||
|
|
||||||
|
# Show the first scratchpad window
|
||||||
|
bindsym $mod+minus scratchpad show
|
||||||
|
|
||||||
|
#move to other monitor
|
||||||
|
bindsym $mod+x move container to output right
|
||||||
|
bindsym $mod+z move workspace to output right
|
||||||
|
bindsym $mod+n move container to output down
|
||||||
|
bindsym $mod+m move workspace to output down
|
||||||
|
|
||||||
|
bindsym $mod+Shift+x move container to output left
|
||||||
|
bindsym $mod+Shift+z move workspace to output left
|
||||||
|
bindsym $mod+Shift+n move container to output up
|
||||||
|
bindsym $mod+Shift+m move workspace to output up
|
||||||
|
|
||||||
33
private_dot_config/i3/theme
Normal file
33
private_dot_config/i3/theme
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Colors
|
||||||
|
set $fg #EBF6FF
|
||||||
|
set $bg #504573
|
||||||
|
set $inactive #1E1B30
|
||||||
|
set $urgent #A04558
|
||||||
|
# class border backgr. text indicator child_border
|
||||||
|
client.focused $bg $bg $fg $bg $bg
|
||||||
|
client.focused_inactive $inactive $inactive $fg $bg $bg
|
||||||
|
client.unfocused $inactive $inactive $fg $bg $bg
|
||||||
|
client.urgent $urgent $urgent $fg $bg $bg
|
||||||
|
client.placeholder $bg $bg $fg $bg $bg
|
||||||
|
client.background $bg
|
||||||
|
|
||||||
|
font pango:Monocraft Nerd Font, Atkinson Hyperlegible bold 9
|
||||||
|
|
||||||
|
bar {
|
||||||
|
status_command i3blocks -c ~/.config/sway/i3blocks.conf
|
||||||
|
font pango:Monocraft Nerd Font, Symbols Nerd Font, FontAwesome 10
|
||||||
|
#mode hide
|
||||||
|
colors {
|
||||||
|
background $inactive
|
||||||
|
statusline $fg
|
||||||
|
separator $fg
|
||||||
|
|
||||||
|
focused_workspace $bg $bg $fg
|
||||||
|
active_workspace $inactive $inactive $fg
|
||||||
|
inactive_workspace $inactive $inactive $fg
|
||||||
|
urgent_workspace $urgent $urgent $fg
|
||||||
|
binding_mode $urgent $urgent $fg
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
38
private_dot_config/i3/xorg
Normal file
38
private_dot_config/i3/xorg
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
|
||||||
|
# Pulse Audio controls
|
||||||
|
#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% #increase sound volume
|
||||||
|
#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% #decrease sound volume
|
||||||
|
#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # mute sound
|
||||||
|
|
||||||
|
#extra keys?
|
||||||
|
#bindsym XF86AudioStop
|
||||||
|
#bindsym XF86AudioMedia
|
||||||
|
#bindsym XF86HomePage
|
||||||
|
|
||||||
|
# Sreen brightness controls
|
||||||
|
# if requires sudo, run chmod +s $(which light)
|
||||||
|
bindsym XF86MonBrightnessUp exec brightnessctl -e s 5%+ # increase screen brightness
|
||||||
|
bindsym XF86MonBrightnessDown exec brightnessctl -e s 5%- # decrease screen brightness#bindsym XF86Mail exec light -U 5
|
||||||
|
#bindsym XF86Calculator exec light -A 5
|
||||||
|
|
||||||
|
# Media player controls
|
||||||
|
bindsym XF86AudioPlay exec playerctl play
|
||||||
|
bindsym XF86AudioPause exec playerctl pause
|
||||||
|
bindsym XF86AudioNext exec playerctl next
|
||||||
|
bindsym XF86AudioPrev exec playerctl previous
|
||||||
|
|
||||||
|
#background image
|
||||||
|
exec_always --no-startup-id feh --bg-fill "00 Setup/wallpaper.png" --no-fehbg
|
||||||
|
# I forget but probably important
|
||||||
|
# exec gnome-settings-daemon
|
||||||
|
# fix audio
|
||||||
|
# exec alsactl restore
|
||||||
|
|
||||||
|
#if no polkit, run gnome polkit (does this even work?)
|
||||||
|
# exec_always --no-startup-id /usr/lib/polkit-kde-authentication-agent-1
|
||||||
|
|
||||||
|
# Touchpad settings
|
||||||
|
exec_always xinput set-prop "SYNA8017:00 06CB:CEB2 Touchpad" "libinput Natural Scrolling Enabled" 1
|
||||||
|
exec_always xinput set-prop "SYNA8017:00 06CB:CEB2 Touchpad" "libinput Enabled" 1
|
||||||
22
private_dot_config/kitty/colors.conf
Normal file
22
private_dot_config/kitty/colors.conf
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Color theme: 3024 Night
|
||||||
|
# Auto-generated by Gogh (https://Gogh-Co.github.io/Gogh/)
|
||||||
|
|
||||||
|
color0 #1e1b30
|
||||||
|
color1 #a04558
|
||||||
|
color2 #76AA73
|
||||||
|
color3 #AD9D3D
|
||||||
|
color4 #334773
|
||||||
|
color5 #A34A78
|
||||||
|
color6 #2A97B1
|
||||||
|
color7 #9A9AB8
|
||||||
|
color8 #504573
|
||||||
|
color9 #ED8096
|
||||||
|
color10 #A0DC9B
|
||||||
|
color11 #C1B254
|
||||||
|
color12 #445F9B
|
||||||
|
color13 #EE5E95
|
||||||
|
color14 #5BCEFA
|
||||||
|
color15 #C1C7DB
|
||||||
|
background #010206
|
||||||
|
foreground #EBF6FF
|
||||||
|
cursor #EBF6FF
|
||||||
2206
private_dot_config/kitty/kitty.conf
Normal file
2206
private_dot_config/kitty/kitty.conf
Normal file
File diff suppressed because it is too large
Load diff
4
private_dot_config/lf/executable_clear_img.sh
Normal file
4
private_dot_config/lf/executable_clear_img.sh
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
if [ -n "$FIFO_UEBERZUG" ]; then
|
||||||
|
printf '{"action": "remove", "identifier": "preview"}\n' >"$FIFO_UEBERZUG"
|
||||||
|
fi
|
||||||
6
private_dot_config/lf/executable_draw_img.sh
Normal file
6
private_dot_config/lf/executable_draw_img.sh
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
if [ -n "$FIFO_UEBERZUG" ]; then
|
||||||
|
path="$(printf '%s' "$1" | sed 's/\\/\\\\/g;s/"/\\"/g')"
|
||||||
|
printf '{"action": "add", "identifier": "preview", "x": %d, "y": %d, "width": %d, "height": %d, "scaler": "contain", "scaling_position_x": 0.5, "scaling_position_y": 0.5, "path": "%s"}\n' \
|
||||||
|
"$4" "$5" "$2" "$3" "$1" >"$FIFO_UEBERZUG"
|
||||||
|
fi
|
||||||
44
private_dot_config/lf/executable_previewer.sh
Normal file
44
private_dot_config/lf/executable_previewer.sh
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/sh
|
||||||
|
draw() {
|
||||||
|
~/.config/lf/draw_img.sh "$@"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
hash() {
|
||||||
|
printf '%s/.cache/lf/%s' "$HOME" \
|
||||||
|
"$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}')"
|
||||||
|
}
|
||||||
|
|
||||||
|
cache() {
|
||||||
|
if [ -f "$1" ]; then
|
||||||
|
draw "$@"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
file="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [ -n "$FIFO_UEBERZUG" ]; then
|
||||||
|
case "$(file -Lb --mime-type -- "$file")" in
|
||||||
|
image/*)
|
||||||
|
orientation="$(identify -format '%[EXIF:Orientation]\n' -- "$file")"
|
||||||
|
if [ -n "$orientation" ] && [ "$orientation" != 1 ]; then
|
||||||
|
cache="$(hash "$file").jpg"
|
||||||
|
cache "$cache" "$@"
|
||||||
|
convert -- "$file" -auto-orient "$cache"
|
||||||
|
draw "$cache" "$@"
|
||||||
|
else
|
||||||
|
draw "$file" "$@"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
video/*)
|
||||||
|
cache="$(hash "$file").jpg"
|
||||||
|
cache "$cache" "$@"
|
||||||
|
ffmpegthumbnailer -i "$file" -o "$cache" -s 0
|
||||||
|
draw "$cache" "$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
file -Lb -- "$1" | fold -s -w "$width"
|
||||||
|
exit 0
|
||||||
76
private_dot_config/lf/lfrc
Normal file
76
private_dot_config/lf/lfrc
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
set hidden!
|
||||||
|
set shell zsh
|
||||||
|
set mouse
|
||||||
|
|
||||||
|
cmd open ${{
|
||||||
|
case $(file --mime-type "$f" -bL) in
|
||||||
|
text/*|application/json) $EDITOR "$f";;
|
||||||
|
video/*|image/*|/application/pdf) $OPENER "$f" & disown;;
|
||||||
|
*) $OPENER "$f" ;;
|
||||||
|
esac
|
||||||
|
}}
|
||||||
|
|
||||||
|
# trash
|
||||||
|
cmd trash %trash-put $fx
|
||||||
|
map x trash
|
||||||
|
map DD delete
|
||||||
|
|
||||||
|
|
||||||
|
# make file/dir
|
||||||
|
cmd mkdir %{{
|
||||||
|
echo "Name: "
|
||||||
|
read ans
|
||||||
|
if [[ "$ans" == */ ]]; then
|
||||||
|
mkdir -p "$ans";
|
||||||
|
else
|
||||||
|
mkdir -p "$(dirname $ans)";
|
||||||
|
touch "$ans";
|
||||||
|
fi
|
||||||
|
}}
|
||||||
|
|
||||||
|
map a mkdir
|
||||||
|
|
||||||
|
cmd sudo_mkdir ${{
|
||||||
|
echo "Name: "
|
||||||
|
read ans
|
||||||
|
if [[ "$ans" == */ ]]; then
|
||||||
|
sudo mkdir -p "$ans";
|
||||||
|
else
|
||||||
|
sudo mkdir -p "$(dirname $ans)";
|
||||||
|
sudo touch "$ans";
|
||||||
|
fi
|
||||||
|
}}
|
||||||
|
map A sudo_mkdir
|
||||||
|
|
||||||
|
|
||||||
|
# fzf search
|
||||||
|
cmd fzf_jump ${{
|
||||||
|
res="$(find . -maxdepth 3 | fzf --reverse --header='Jump to location')"
|
||||||
|
if [ -n "$res" ]; then
|
||||||
|
if [ -d "$res" ]; then
|
||||||
|
cmd="cd"
|
||||||
|
else
|
||||||
|
cmd="select"
|
||||||
|
fi
|
||||||
|
res="$(printf '%s' "$res" | sed 's/\\/\\\\/g;s/"/\\"/g')"
|
||||||
|
lf -remote "send $id $cmd \"$res\""
|
||||||
|
fi
|
||||||
|
}}
|
||||||
|
map <c-f> :fzf_jump
|
||||||
|
|
||||||
|
cmd unarchive ${{
|
||||||
|
case "$f" in
|
||||||
|
*.zip) unzip "$f" ;;
|
||||||
|
*.tar*) tar -xvf "$f" ;;
|
||||||
|
*) echo "Unsupported format" ;;
|
||||||
|
}}
|
||||||
|
|
||||||
|
cmd zip %zip -r "$f" "$f"
|
||||||
|
cmd xz %tar -cJvf "$f.tar.xz" "$f"
|
||||||
|
cmd gz %tar -czvf "$f.tar.gz" "$f"
|
||||||
|
cmd zstd %tar -cvf --zstd "$f.tar.zst" "$f"
|
||||||
|
|
||||||
|
map au unarchive
|
||||||
|
|
||||||
|
set previewer ~/.config/lf/previewer.sh
|
||||||
|
set cleaner ~/.config/lf/clear_img.sh
|
||||||
10
private_dot_config/mako/config
Normal file
10
private_dot_config/mako/config
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
font=Berkeley Mono, FontAwesome 11
|
||||||
|
max-icon-size=32
|
||||||
|
height=300
|
||||||
|
width=300
|
||||||
|
background-color=#1e1b30cc
|
||||||
|
text-color=#fbfbff
|
||||||
|
border-radius=8
|
||||||
|
border-color=#746e95
|
||||||
|
default-timeout=10000
|
||||||
|
layer=overlay
|
||||||
845
private_dot_config/nushell/config.nu
Normal file
845
private_dot_config/nushell/config.nu
Normal file
|
|
@ -0,0 +1,845 @@
|
||||||
|
# Nushell Config File
|
||||||
|
#
|
||||||
|
# version = "0.91.0"
|
||||||
|
|
||||||
|
# For more information on defining custom themes, see
|
||||||
|
# https://www.nushell.sh/book/coloring_and_theming.html
|
||||||
|
# And here is the theme collection
|
||||||
|
# https://github.com/nushell/nu_scripts/tree/main/themes
|
||||||
|
let dark_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: white
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
# eg) {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
||||||
|
bool: light_cyan
|
||||||
|
int: white
|
||||||
|
filesize: cyan
|
||||||
|
duration: white
|
||||||
|
date: purple
|
||||||
|
range: white
|
||||||
|
float: white
|
||||||
|
string: white
|
||||||
|
nothing: white
|
||||||
|
binary: white
|
||||||
|
cell-path: white
|
||||||
|
row_index: green_bold
|
||||||
|
record: white
|
||||||
|
list: white
|
||||||
|
block: white
|
||||||
|
hints: dark_gray
|
||||||
|
search_result: { bg: red fg: white }
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_external_resolved: light_yellow_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b}
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_keyword: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
}
|
||||||
|
|
||||||
|
let light_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: dark_gray
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
# eg) {|| if $in { 'dark_cyan' } else { 'dark_gray' } }
|
||||||
|
bool: dark_cyan
|
||||||
|
int: dark_gray
|
||||||
|
filesize: cyan_bold
|
||||||
|
duration: dark_gray
|
||||||
|
date: purple
|
||||||
|
range: dark_gray
|
||||||
|
float: dark_gray
|
||||||
|
string: dark_gray
|
||||||
|
nothing: dark_gray
|
||||||
|
binary: dark_gray
|
||||||
|
cell-path: dark_gray
|
||||||
|
row_index: green_bold
|
||||||
|
record: dark_gray
|
||||||
|
list: dark_gray
|
||||||
|
block: dark_gray
|
||||||
|
hints: dark_gray
|
||||||
|
search_result: { fg: white bg: red }
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_external_resolved: light_purple_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b}
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_keyword: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
}
|
||||||
|
|
||||||
|
# External completer example
|
||||||
|
# let carapace_completer = {|spans|
|
||||||
|
# carapace $spans.0 nushell ...$spans | from json
|
||||||
|
# }
|
||||||
|
|
||||||
|
# The default config record. This is where much of your global configuration is setup.
|
||||||
|
$env.config = {
|
||||||
|
show_banner: false # true or false to enable or disable the welcome banner at startup
|
||||||
|
|
||||||
|
ls: {
|
||||||
|
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
|
||||||
|
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
|
||||||
|
}
|
||||||
|
|
||||||
|
rm: {
|
||||||
|
always_trash: false # always act as if -t was given. Can be overridden with -p
|
||||||
|
}
|
||||||
|
|
||||||
|
table: {
|
||||||
|
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
||||||
|
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
||||||
|
show_empty: true # show 'empty list' and 'empty record' placeholders for command output
|
||||||
|
padding: { left: 1, right: 1 } # a left right padding of each column in a table
|
||||||
|
trim: {
|
||||||
|
methodology: wrapping # wrapping or truncating
|
||||||
|
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
||||||
|
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
||||||
|
}
|
||||||
|
header_on_separator: false # show header text on separator/border line
|
||||||
|
# abbreviated_row_count: 10 # limit data rows from top and bottom after reaching a set point
|
||||||
|
}
|
||||||
|
|
||||||
|
error_style: "fancy" # "fancy" or "plain" for screen reader-friendly error messages
|
||||||
|
|
||||||
|
# datetime_format determines what a datetime rendered in the shell would look like.
|
||||||
|
# Behavior without this configuration point will be to "humanize" the datetime display,
|
||||||
|
# showing something like "a day ago."
|
||||||
|
datetime_format: {
|
||||||
|
# normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables
|
||||||
|
# table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format
|
||||||
|
}
|
||||||
|
|
||||||
|
explore: {
|
||||||
|
status_bar_background: { fg: "#1D1F21", bg: "#C4C9C6" },
|
||||||
|
command_bar_text: { fg: "#C4C9C6" },
|
||||||
|
highlight: { fg: "black", bg: "yellow" },
|
||||||
|
status: {
|
||||||
|
error: { fg: "white", bg: "red" },
|
||||||
|
warn: {}
|
||||||
|
info: {}
|
||||||
|
},
|
||||||
|
table: {
|
||||||
|
split_line: { fg: "#404040" },
|
||||||
|
selected_cell: { bg: light_blue },
|
||||||
|
selected_row: {},
|
||||||
|
selected_column: {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
history: {
|
||||||
|
max_size: 100_000 # Session has to be reloaded for this to take effect
|
||||||
|
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
||||||
|
file_format: "plaintext" # "sqlite" or "plaintext"
|
||||||
|
isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions.
|
||||||
|
}
|
||||||
|
|
||||||
|
completions: {
|
||||||
|
case_sensitive: false # set to true to enable case-sensitive completions
|
||||||
|
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
||||||
|
partial: true # set this to false to prevent partial filling of the prompt
|
||||||
|
algorithm: "prefix" # prefix or fuzzy
|
||||||
|
external: {
|
||||||
|
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
|
||||||
|
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||||
|
completer: null # check 'carapace_completer' above as an example
|
||||||
|
}
|
||||||
|
use_ls_colors: true # set this to true to enable file/path/directory completions using LS_COLORS
|
||||||
|
}
|
||||||
|
|
||||||
|
filesize: {
|
||||||
|
metric: false # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
|
||||||
|
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, auto
|
||||||
|
}
|
||||||
|
|
||||||
|
cursor_shape: {
|
||||||
|
emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default)
|
||||||
|
vi_insert: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default)
|
||||||
|
vi_normal: underscore # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default)
|
||||||
|
}
|
||||||
|
|
||||||
|
color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
|
||||||
|
use_grid_icons: true
|
||||||
|
footer_mode: "25" # always, never, number_of_rows, auto
|
||||||
|
float_precision: 2 # the precision for displaying floats in tables
|
||||||
|
buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
||||||
|
use_ansi_coloring: true
|
||||||
|
bracketed_paste: true # enable bracketed paste, currently useless on windows
|
||||||
|
edit_mode: emacs # emacs, vi
|
||||||
|
shell_integration: false # enables terminal shell integration. Off by default, as some terminals have issues with this.
|
||||||
|
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||||
|
use_kitty_protocol: false # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this.
|
||||||
|
highlight_resolved_externals: false # true enables highlighting of external commands in the repl resolved by which.
|
||||||
|
|
||||||
|
plugins: {} # Per-plugin configuration. See https://www.nushell.sh/contributor-book/plugins.html#configuration.
|
||||||
|
|
||||||
|
hooks: {
|
||||||
|
pre_prompt: [{ null }] # run before the prompt is shown
|
||||||
|
pre_execution: [{ null }] # run before the repl input is run
|
||||||
|
env_change: {
|
||||||
|
PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input
|
||||||
|
}
|
||||||
|
display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline
|
||||||
|
command_not_found: { null } # return an error message when a command is not found
|
||||||
|
}
|
||||||
|
|
||||||
|
menus: [
|
||||||
|
# Configuration for default nushell menus
|
||||||
|
# Note the lack of source parameter
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: columnar
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: { attr: r }
|
||||||
|
description_text: yellow
|
||||||
|
match_text: { attr: u }
|
||||||
|
selected_match_text: { attr: ur }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: ide_completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: ide
|
||||||
|
min_completion_width: 0,
|
||||||
|
max_completion_width: 50,
|
||||||
|
max_completion_height: 10, # will be limited by the available lines in the terminal
|
||||||
|
padding: 0,
|
||||||
|
border: true,
|
||||||
|
cursor_offset: 0,
|
||||||
|
description_mode: "prefer_right"
|
||||||
|
min_description_width: 0
|
||||||
|
max_description_width: 50
|
||||||
|
max_description_height: 10
|
||||||
|
description_offset: 1
|
||||||
|
# If true, the cursor pos will be corrected, so the suggestions match up with the typed text
|
||||||
|
#
|
||||||
|
# C:\> str
|
||||||
|
# str join
|
||||||
|
# str trim
|
||||||
|
# str split
|
||||||
|
correct_cursor_pos: false
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: { attr: r }
|
||||||
|
description_text: yellow
|
||||||
|
match_text: { attr: u }
|
||||||
|
selected_match_text: { attr: ur }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: list
|
||||||
|
page_size: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: description
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
selection_rows: 4
|
||||||
|
description_rows: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
keybindings: [
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: tab
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
{ edit: complete }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: ide_completion_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_n
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: ide_completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
{ edit: complete }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_r
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: history_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: f1
|
||||||
|
mode: [emacs, vi_insert, vi_normal]
|
||||||
|
event: { send: menu name: help_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: completion_previous_menu
|
||||||
|
modifier: shift
|
||||||
|
keycode: backtab
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: menuprevious }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: next_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { send: menupagenext }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_or_previous_page_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menupageprevious }
|
||||||
|
{ edit: undo }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: escape
|
||||||
|
modifier: none
|
||||||
|
keycode: escape
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: esc } # NOTE: does not appear to work
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cancel_command
|
||||||
|
modifier: control
|
||||||
|
keycode: char_c
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrlc }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: quit_shell
|
||||||
|
modifier: control
|
||||||
|
keycode: char_d
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: ctrld }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: clear_screen
|
||||||
|
modifier: control
|
||||||
|
keycode: char_l
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: clearscreen }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: search_history
|
||||||
|
modifier: control
|
||||||
|
keycode: char_q
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: searchhistory }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: open_command_editor
|
||||||
|
modifier: control
|
||||||
|
keycode: char_o
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: openeditor }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: none
|
||||||
|
keycode: up
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuup }
|
||||||
|
{ send: up }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: none
|
||||||
|
keycode: down
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menudown }
|
||||||
|
{ send: down }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuleft }
|
||||||
|
{ send: left }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ send: menuright }
|
||||||
|
{ send: right }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: left
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: right
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: none
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_a
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: none
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ edit: movetolineend }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_e
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ edit: movetolineend }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_start
|
||||||
|
modifier: control
|
||||||
|
keycode: home
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolinestart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_to_line_end
|
||||||
|
modifier: control
|
||||||
|
keycode: end
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { edit: movetolineend }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_up
|
||||||
|
modifier: control
|
||||||
|
keycode: char_p
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuup }
|
||||||
|
{ send: up }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_down
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menudown }
|
||||||
|
{ send: down }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspace }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: backspace
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: none
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: delete }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_forward
|
||||||
|
modifier: control
|
||||||
|
keycode: delete
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: delete }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_character_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_h
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspace }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: [emacs, vi_insert]
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: none
|
||||||
|
keycode: backspace
|
||||||
|
mode: vi_normal
|
||||||
|
event: { edit: moveleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: newline_or_run_command
|
||||||
|
modifier: none
|
||||||
|
keycode: enter
|
||||||
|
mode: emacs
|
||||||
|
event: { send: enter }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menuleft }
|
||||||
|
{ send: left }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_right_or_take_history_hint
|
||||||
|
modifier: control
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintcomplete }
|
||||||
|
{ send: menuright }
|
||||||
|
{ send: right }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: redo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_g
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: redo }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_change
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: undo }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: paste_before
|
||||||
|
modifier: control
|
||||||
|
keycode: char_y
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: pastecutbufferbefore }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_word_left
|
||||||
|
modifier: control
|
||||||
|
keycode: char_w
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutwordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_line_to_end
|
||||||
|
modifier: control
|
||||||
|
keycode: char_k
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cuttoend }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_line_from_start
|
||||||
|
modifier: control
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutfromstart }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: swap_graphemes
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: swapgraphemes }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: left
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: right
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_left
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_b
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: movewordleft }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: move_one_word_right_or_take_history_hint
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_f
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: historyhintwordcomplete }
|
||||||
|
{ edit: movewordright }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_forward
|
||||||
|
modifier: alt
|
||||||
|
keycode: delete
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: deleteword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: backspace
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: delete_one_word_backward
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_m
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: backspaceword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_word_to_right
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_d
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutwordright }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: upper_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_u
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: uppercaseword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: lower_case_word
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_l
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: lowercaseword }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: capitalize_char
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: capitalizechar }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: copy_selection
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_c
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: copyselection }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: cut_selection
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: cutselection }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: select_all
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_a
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: selectall }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: paste
|
||||||
|
modifier: control_shift
|
||||||
|
keycode: char_v
|
||||||
|
mode: emacs
|
||||||
|
event: { edit: pastecutbufferbefore }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
use direnv.nu
|
||||||
|
use starship.nu
|
||||||
|
source zoxide.nu
|
||||||
|
source yazi.nu
|
||||||
56
private_dot_config/nushell/env.nu
Normal file
56
private_dot_config/nushell/env.nu
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
# Nushell Environment Config File
|
||||||
|
#
|
||||||
|
# version = "0.91.0"
|
||||||
|
#
|
||||||
|
|
||||||
|
# Use nushell functions to define your right and left prompt
|
||||||
|
# $env.PROMPT_COMMAND = {|| create_left_prompt }
|
||||||
|
# FIXME: This default is not implemented in rust code as of 2023-09-08.
|
||||||
|
# $env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
|
||||||
|
|
||||||
|
# The prompt indicators are environmental variables that represent
|
||||||
|
# the state of the prompt
|
||||||
|
# $env.PROMPT_INDICATOR = {|| "> " }
|
||||||
|
$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " }
|
||||||
|
$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " }
|
||||||
|
$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " }
|
||||||
|
|
||||||
|
# Specifies how environment variables are:
|
||||||
|
# - converted from a string to a value on Nushell startup (from_string)
|
||||||
|
# - converted from a value back to a string when running external commands (to_string)
|
||||||
|
# Note: The conversions happen *after* config.nu is loaded
|
||||||
|
$env.ENV_CONVERSIONS = {
|
||||||
|
"PATH": {
|
||||||
|
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||||
|
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||||
|
}
|
||||||
|
"Path": {
|
||||||
|
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
|
||||||
|
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Directories to search for scripts when calling source or use
|
||||||
|
# The default for this is $nu.default-config-dir/scripts
|
||||||
|
$env.NU_LIB_DIRS = [
|
||||||
|
($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts
|
||||||
|
]
|
||||||
|
# Directories to search for plugin binaries when calling register
|
||||||
|
# The default for this is $nu.default-config-dir/plugins
|
||||||
|
$env.NU_PLUGIN_DIRS = [
|
||||||
|
($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins
|
||||||
|
]
|
||||||
|
|
||||||
|
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
|
||||||
|
# $env.PATH = ($env.PATH | split row (char esep) | prepend '/some/path')
|
||||||
|
# An alternate way to add entries to $env.PATH is to use the custom command `path add`
|
||||||
|
# which is built into the nushell stdlib:
|
||||||
|
# use std "path add"
|
||||||
|
# $env.PATH = ($env.PATH | split row (char esep))
|
||||||
|
# path add /some/path
|
||||||
|
# path add ($env.CARGO_HOME | path join "bin")
|
||||||
|
# path add ($env.HOME | path join ".local" "bin")
|
||||||
|
# $env.PATH = ($env.PATH | uniq)
|
||||||
|
|
||||||
|
# To load from a custom file you can use:
|
||||||
|
# source ($nu.default-config-dir | path join 'custom.nu')
|
||||||
17
private_dot_config/nushell/scripts/direnv.nu
Normal file
17
private_dot_config/nushell/scripts/direnv.nu
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
export-env {
|
||||||
|
$env.config = ( $env.config | upsert hooks.env_change.PWD { |config|
|
||||||
|
let o = ($config | get -i hooks.env_change.PWD)
|
||||||
|
let val = { ||
|
||||||
|
if (which direnv | is-empty) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
direnv export json | from json | default {} | load-env
|
||||||
|
}
|
||||||
|
if $o == null {
|
||||||
|
$val
|
||||||
|
} else {
|
||||||
|
$o | append $val
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
38
private_dot_config/nushell/scripts/starship.nu
Normal file
38
private_dot_config/nushell/scripts/starship.nu
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
# this file is both a valid
|
||||||
|
# - overlay which can be loaded with `overlay use starship.nu`
|
||||||
|
# - module which can be used with `use starship.nu`
|
||||||
|
# - script which can be used with `source starship.nu`
|
||||||
|
export-env { $env.STARSHIP_SHELL = "nu"; load-env {
|
||||||
|
STARSHIP_SESSION_KEY: (random chars -l 16)
|
||||||
|
PROMPT_MULTILINE_INDICATOR: (
|
||||||
|
^starship prompt --continuation
|
||||||
|
)
|
||||||
|
|
||||||
|
# Does not play well with default character module.
|
||||||
|
# TODO: Also Use starship vi mode indicators?
|
||||||
|
PROMPT_INDICATOR: ""
|
||||||
|
|
||||||
|
PROMPT_COMMAND: {||
|
||||||
|
# jobs are not supported
|
||||||
|
(
|
||||||
|
^starship prompt
|
||||||
|
--cmd-duration $env.CMD_DURATION_MS
|
||||||
|
$"--status=($env.LAST_EXIT_CODE)"
|
||||||
|
--terminal-width (term size).columns
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
config: ($env.config? | default {} | merge {
|
||||||
|
render_right_prompt_on_last_line: true
|
||||||
|
})
|
||||||
|
|
||||||
|
PROMPT_COMMAND_RIGHT: {||
|
||||||
|
(
|
||||||
|
^starship prompt
|
||||||
|
--right
|
||||||
|
--cmd-duration $env.CMD_DURATION_MS
|
||||||
|
$"--status=($env.LAST_EXIT_CODE)"
|
||||||
|
--terminal-width (term size).columns
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}}
|
||||||
9
private_dot_config/nushell/scripts/yazi.nu
Normal file
9
private_dot_config/nushell/scripts/yazi.nu
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
def --env yy [...args] {
|
||||||
|
let tmp = (mktemp -t "yazi-cwd.XXXXXX")
|
||||||
|
yazi ...$args --cwd-file $tmp
|
||||||
|
let cwd = (open $tmp)
|
||||||
|
if $cwd != "" and $cwd != $env.PWD {
|
||||||
|
cd $cwd
|
||||||
|
}
|
||||||
|
rm -fp $tmp
|
||||||
|
}
|
||||||
60
private_dot_config/nushell/scripts/zoxide.nu
Normal file
60
private_dot_config/nushell/scripts/zoxide.nu
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
# Code generated by zoxide. DO NOT EDIT.
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Hook configuration for zoxide.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Initialize hook to add new entries to the database.
|
||||||
|
if (not ($env | default false __zoxide_hooked | get __zoxide_hooked)) {
|
||||||
|
$env.__zoxide_hooked = true
|
||||||
|
$env.config = ($env | default {} config).config
|
||||||
|
$env.config = ($env.config | default {} hooks)
|
||||||
|
$env.config = ($env.config | update hooks ($env.config.hooks | default {} env_change))
|
||||||
|
$env.config = ($env.config | update hooks.env_change ($env.config.hooks.env_change | default [] PWD))
|
||||||
|
$env.config = ($env.config | update hooks.env_change.PWD ($env.config.hooks.env_change.PWD | append {|_, dir|
|
||||||
|
zoxide add -- $dir
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# When using zoxide with --no-cmd, alias these internal functions as desired.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Jump to a directory using only keywords.
|
||||||
|
def --env __zoxide_z [...rest:string] {
|
||||||
|
let arg0 = ($rest | append '~').0
|
||||||
|
let path = if (($rest | length) <= 1) and ($arg0 == '-' or ($arg0 | path expand | path type) == dir) {
|
||||||
|
$arg0
|
||||||
|
} else {
|
||||||
|
(zoxide query --exclude $env.PWD -- ...$rest | str trim -r -c "\n")
|
||||||
|
}
|
||||||
|
cd $path
|
||||||
|
}
|
||||||
|
|
||||||
|
# Jump to a directory using interactive search.
|
||||||
|
def --env __zoxide_zi [...rest:string] {
|
||||||
|
cd $'(zoxide query --interactive -- ...$rest | str trim -r -c "\n")'
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Commands for zoxide. Disable these using --no-cmd.
|
||||||
|
#
|
||||||
|
|
||||||
|
alias z = __zoxide_z
|
||||||
|
alias zi = __zoxide_zi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Add this to your env file (find it by running `$nu.env-path` in Nushell):
|
||||||
|
#
|
||||||
|
# zoxide init nushell | save -f ~/.zoxide.nu
|
||||||
|
#
|
||||||
|
# Now, add this to the end of your config file (find it by running
|
||||||
|
# `$nu.config-path` in Nushell):
|
||||||
|
#
|
||||||
|
# source ~/.zoxide.nu
|
||||||
|
#
|
||||||
|
# Note: zoxide only supports Nushell v0.89.0+.
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
set runtimepath^=~/.vim runtimepath+=~/.vim/after
|
|
||||||
let &packpath=&runtimepath
|
|
||||||
source ~/.vimrc
|
|
||||||
37
private_dot_config/paru/executable_paru.conf
Normal file
37
private_dot_config/paru/executable_paru.conf
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
#
|
||||||
|
# $PARU_CONF
|
||||||
|
# /etc/paru.conf
|
||||||
|
# ~/.config/paru/paru.conf
|
||||||
|
#
|
||||||
|
# See the paru.conf(5) manpage for options
|
||||||
|
|
||||||
|
#
|
||||||
|
# GENERAL OPTIONS
|
||||||
|
#
|
||||||
|
[options]
|
||||||
|
PgpFetch
|
||||||
|
Devel
|
||||||
|
Provides
|
||||||
|
DevelSuffixes = -git -cvs -svn -bzr -darcs -always
|
||||||
|
#BottomUp
|
||||||
|
#RemoveMake
|
||||||
|
SudoLoop
|
||||||
|
#UseAsk
|
||||||
|
#CombinedUpgrade
|
||||||
|
#CleanAfter
|
||||||
|
#UpgradeMenu
|
||||||
|
#NewsOnUpgrade
|
||||||
|
SkipReview
|
||||||
|
|
||||||
|
#LocalRepo
|
||||||
|
#Chroot
|
||||||
|
#Sign
|
||||||
|
#SignDb
|
||||||
|
|
||||||
|
#
|
||||||
|
# Binary OPTIONS
|
||||||
|
#
|
||||||
|
#[bin]
|
||||||
|
#FileManager = vifm
|
||||||
|
#MFlags = --skippgpcheck
|
||||||
|
#Sudo = doas
|
||||||
10
private_dot_config/private_glow/glow.yml
Normal file
10
private_dot_config/private_glow/glow.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
# style name or JSON path (default "auto")
|
||||||
|
style: "~/.config/glow/lunar-witch.json"
|
||||||
|
# show local files only; no network (TUI-mode only)
|
||||||
|
local: false
|
||||||
|
# mouse support (TUI-mode only)
|
||||||
|
mouse: true
|
||||||
|
# use pager to display markdown
|
||||||
|
pager: true
|
||||||
|
# word-wrap at width
|
||||||
|
width: 120
|
||||||
198
private_dot_config/private_glow/lunar-witch.json
Normal file
198
private_dot_config/private_glow/lunar-witch.json
Normal file
|
|
@ -0,0 +1,198 @@
|
||||||
|
{
|
||||||
|
"document": {
|
||||||
|
"block_prefix": "\n",
|
||||||
|
"block_suffix": "\n",
|
||||||
|
"color": "#EBF6FF",
|
||||||
|
"margin": 2
|
||||||
|
},
|
||||||
|
"block_quote": {
|
||||||
|
"indent": 1,
|
||||||
|
"indent_token": "│ "
|
||||||
|
},
|
||||||
|
"paragraph": {},
|
||||||
|
"list": {
|
||||||
|
"level_indent": 2
|
||||||
|
},
|
||||||
|
"heading": {
|
||||||
|
"block_suffix": "\n",
|
||||||
|
"color": "#5BCEFA",
|
||||||
|
"bold": true
|
||||||
|
},
|
||||||
|
"h1": {
|
||||||
|
"prefix": " ",
|
||||||
|
"suffix": " ",
|
||||||
|
"color": "#EBF6FF",
|
||||||
|
"background_color": "#0B5393",
|
||||||
|
"bold": true
|
||||||
|
},
|
||||||
|
"h2": {
|
||||||
|
"prefix": "## "
|
||||||
|
},
|
||||||
|
"h3": {
|
||||||
|
"prefix": "### "
|
||||||
|
},
|
||||||
|
"h4": {
|
||||||
|
"prefix": "#### "
|
||||||
|
},
|
||||||
|
"h5": {
|
||||||
|
"prefix": "##### "
|
||||||
|
},
|
||||||
|
"h6": {
|
||||||
|
"prefix": "###### ",
|
||||||
|
"color": "#98DB95",
|
||||||
|
"bold": false
|
||||||
|
},
|
||||||
|
"text": {},
|
||||||
|
"strikethrough": {
|
||||||
|
"crossed_out": true
|
||||||
|
},
|
||||||
|
"emph": {
|
||||||
|
"italic": true,
|
||||||
|
"color": "#F4B766"
|
||||||
|
},
|
||||||
|
"strong": {
|
||||||
|
"bold": true,
|
||||||
|
"color": "#A34A78"
|
||||||
|
},
|
||||||
|
"hr": {
|
||||||
|
"color": "#808082",
|
||||||
|
"format": "\n--------\n"
|
||||||
|
},
|
||||||
|
"item": {
|
||||||
|
"block_prefix": "• "
|
||||||
|
},
|
||||||
|
"enumeration": {
|
||||||
|
"block_prefix": ". "
|
||||||
|
},
|
||||||
|
"task": {
|
||||||
|
"ticked": "[✓] ",
|
||||||
|
"unticked": "[ ] "
|
||||||
|
},
|
||||||
|
"link": {
|
||||||
|
"color": "#445F9B",
|
||||||
|
"underline": true
|
||||||
|
},
|
||||||
|
"link_text": {
|
||||||
|
"color": "#445F9B",
|
||||||
|
"bold": true
|
||||||
|
},
|
||||||
|
"image": {
|
||||||
|
"color": "#A34A78",
|
||||||
|
"underline": true
|
||||||
|
},
|
||||||
|
"image_text": {
|
||||||
|
"color": "#A34A78",
|
||||||
|
"format": "Image: {{.text}} →"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"prefix": "`",
|
||||||
|
"suffix": "`",
|
||||||
|
"color": "#EBF6FF",
|
||||||
|
"background_color": "#2A2644"
|
||||||
|
},
|
||||||
|
"code_block": {
|
||||||
|
"color": "#2A97B1",
|
||||||
|
"background_color": "#2A2644",
|
||||||
|
"margin": 2,
|
||||||
|
"chroma": {
|
||||||
|
"text": {
|
||||||
|
"color": "#EBF6FF"
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"color": "#EBF6FF",
|
||||||
|
"background_color": "#A04558"
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"color": "#BFBFC0"
|
||||||
|
},
|
||||||
|
"comment_preproc": {
|
||||||
|
"color": "#F4B766"
|
||||||
|
},
|
||||||
|
"keyword": {
|
||||||
|
"color": "#0B5393"
|
||||||
|
},
|
||||||
|
"keyword_reserved": {
|
||||||
|
"color": "#EE5E95"
|
||||||
|
},
|
||||||
|
"keyword_namespace": {
|
||||||
|
"color": "#EE5E95"
|
||||||
|
},
|
||||||
|
"keyword_type": {
|
||||||
|
"color": "#445F9B"
|
||||||
|
},
|
||||||
|
"operator": {
|
||||||
|
"color": "#F4B766"
|
||||||
|
},
|
||||||
|
"punctuation": {
|
||||||
|
"color": "#FFE70A"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"color": "#BFBFC0"
|
||||||
|
},
|
||||||
|
"name_builtin": {
|
||||||
|
"color": "#EE5E95"
|
||||||
|
},
|
||||||
|
"name_tag": {
|
||||||
|
"color": "#A34A78"
|
||||||
|
},
|
||||||
|
"name_attribute": {
|
||||||
|
"color": "#445F9B"
|
||||||
|
},
|
||||||
|
"name_class": {
|
||||||
|
"color": "#EBF6FF",
|
||||||
|
"underline": true,
|
||||||
|
"bold": true
|
||||||
|
},
|
||||||
|
"name_constant": {},
|
||||||
|
"name_decorator": {
|
||||||
|
"color": "#FFE70A"
|
||||||
|
},
|
||||||
|
"name_exception": {},
|
||||||
|
"name_function": {
|
||||||
|
"color": "#6FA47E"
|
||||||
|
},
|
||||||
|
"name_other": {},
|
||||||
|
"literal": {},
|
||||||
|
"literal_number": {
|
||||||
|
"color": "#98DB95"
|
||||||
|
},
|
||||||
|
"literal_date": {},
|
||||||
|
"literal_string": {
|
||||||
|
"color": "#6FA47E"
|
||||||
|
},
|
||||||
|
"literal_string_escape": {
|
||||||
|
"color": "#6FA47E"
|
||||||
|
},
|
||||||
|
"generic_deleted": {
|
||||||
|
"color": "#F5A9B8"
|
||||||
|
},
|
||||||
|
"generic_emph": {
|
||||||
|
"italic": true
|
||||||
|
},
|
||||||
|
"generic_inserted": {
|
||||||
|
"color": "#98DB95"
|
||||||
|
},
|
||||||
|
"generic_strong": {
|
||||||
|
"bold": true
|
||||||
|
},
|
||||||
|
"generic_subheading": {
|
||||||
|
"color": "#BFBFC0"
|
||||||
|
},
|
||||||
|
"background": {
|
||||||
|
"background_color": "#2A2644"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"table": {
|
||||||
|
"center_separator": "┼",
|
||||||
|
"column_separator": "│",
|
||||||
|
"row_separator": "─"
|
||||||
|
},
|
||||||
|
"definition_list": {},
|
||||||
|
"definition_term": {},
|
||||||
|
"definition_description": {
|
||||||
|
"block_prefix": "\n🠶 "
|
||||||
|
},
|
||||||
|
"html_block": {},
|
||||||
|
"html_span": {}
|
||||||
|
}
|
||||||
18
private_dot_config/private_gtk-2.0/gtkrc
Normal file
18
private_dot_config/private_gtk-2.0/gtkrc
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
# DO NOT EDIT! This file will be overwritten by LXAppearance.
|
||||||
|
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
||||||
|
|
||||||
|
include "/home/mira/.gtkrc-2.0.mine"
|
||||||
|
gtk-theme-name="adw-gtk3-dark"
|
||||||
|
gtk-icon-theme-name="Yaru-blue-dark"
|
||||||
|
gtk-font-name="Atkinson Hyperlegible 11"
|
||||||
|
gtk-cursor-theme-name="DMZ-Black"
|
||||||
|
gtk-cursor-theme-size=24
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_BOTH
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
|
gtk-button-images=1
|
||||||
|
gtk-menu-images=1
|
||||||
|
gtk-enable-event-sounds=0
|
||||||
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle="hintfull"
|
||||||
15
private_dot_config/private_user-dirs.dirs
Normal file
15
private_dot_config/private_user-dirs.dirs
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
# This file is written by xdg-user-dirs-update
|
||||||
|
# If you want to change or add directories, just edit the line you're
|
||||||
|
# interested in. All local changes will be retained on the next run.
|
||||||
|
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||||
|
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||||
|
# absolute path. No other format is supported.
|
||||||
|
#
|
||||||
|
XDG_DESKTOP_DIR="$HOME/"
|
||||||
|
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||||
|
XDG_TEMPLATES_DIR="$HOME/"
|
||||||
|
XDG_PUBLICSHARE_DIR="$HOME/"
|
||||||
|
XDG_DOCUMENTS_DIR="$HOME/"
|
||||||
|
XDG_MUSIC_DIR="$HOME/Music"
|
||||||
|
XDG_PICTURES_DIR="$HOME/Pictures"
|
||||||
|
XDG_VIDEOS_DIR="$HOME/"
|
||||||
156
private_dot_config/rofi/config.rasi
Normal file
156
private_dot_config/rofi/config.rasi
Normal file
|
|
@ -0,0 +1,156 @@
|
||||||
|
configuration {
|
||||||
|
modes: "window,drun,run,ssh,combi";
|
||||||
|
/*font: "FOT-UDKakugo_Large Pr6N semibold 12";*/
|
||||||
|
font: "TX-02 bold 12";
|
||||||
|
/* location: 0;*/
|
||||||
|
/* yoffset: 0;*/
|
||||||
|
/* xoffset: 0;*/
|
||||||
|
/* fixed-num-lines: true;*/
|
||||||
|
/* show-icons: false;*/
|
||||||
|
/* 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-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;*/
|
||||||
|
/* 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;*/
|
||||||
|
/* 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: true;
|
||||||
|
/* application-fallback-icon: ;*/
|
||||||
|
/* refilter-timeout-limit: 300;*/
|
||||||
|
/* xserver-i300-workaround: false;*/
|
||||||
|
/* completer-mode: "recursivebrowser";*/
|
||||||
|
/* 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";*/
|
||||||
|
/* 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";
|
||||||
|
}
|
||||||
|
}
|
||||||
174
private_dot_config/rofi/lunar-witch.rasi
Normal file
174
private_dot_config/rofi/lunar-witch.rasi
Normal file
|
|
@ -0,0 +1,174 @@
|
||||||
|
/**
|
||||||
|
* rofi -dump-theme output.
|
||||||
|
* Rofi version: 1.7.5+wayland2-dev
|
||||||
|
**/
|
||||||
|
* {
|
||||||
|
red: #A04558;
|
||||||
|
blue: #334773;
|
||||||
|
background: #1E1B30;
|
||||||
|
lightbg: #2A2644;
|
||||||
|
foreground: #BFBFC0;
|
||||||
|
lightfg: #BFBFC0;
|
||||||
|
spacing: 1;
|
||||||
|
selected-active-foreground: var(background);
|
||||||
|
separatorcolor: var(foreground);
|
||||||
|
urgent-foreground: var(red);
|
||||||
|
alternate-urgent-background: var(lightbg);
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: var(foreground);
|
||||||
|
normal-background: var(background);
|
||||||
|
selected-urgent-background: var(red);
|
||||||
|
alternate-active-background: var(lightbg);
|
||||||
|
alternate-normal-foreground: var(foreground);
|
||||||
|
urgent-background: var(background);
|
||||||
|
selected-normal-foreground: var(lightbg);
|
||||||
|
active-foreground: var(blue);
|
||||||
|
selected-active-background: var(blue);
|
||||||
|
active-background: var(background);
|
||||||
|
selected-normal-background: var(lightfg);
|
||||||
|
alternate-normal-background: var(lightbg);
|
||||||
|
selected-urgent-foreground: var(background);
|
||||||
|
normal-foreground: var(foreground);
|
||||||
|
alternate-urgent-foreground: var(red);
|
||||||
|
alternate-active-foreground: var(blue);
|
||||||
|
}
|
||||||
|
element {
|
||||||
|
padding: 1px ;
|
||||||
|
cursor: pointer;
|
||||||
|
spacing: 5px ;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
element normal.normal {
|
||||||
|
background-color: var(normal-background);
|
||||||
|
text-color: var(normal-foreground);
|
||||||
|
}
|
||||||
|
element normal.urgent {
|
||||||
|
background-color: var(urgent-background);
|
||||||
|
text-color: var(urgent-foreground);
|
||||||
|
}
|
||||||
|
element normal.active {
|
||||||
|
background-color: var(active-background);
|
||||||
|
text-color: var(active-foreground);
|
||||||
|
}
|
||||||
|
element selected.normal {
|
||||||
|
background-color: var(selected-normal-background);
|
||||||
|
text-color: var(selected-normal-foreground);
|
||||||
|
}
|
||||||
|
element selected.urgent {
|
||||||
|
background-color: var(selected-urgent-background);
|
||||||
|
text-color: var(selected-urgent-foreground);
|
||||||
|
}
|
||||||
|
element selected.active {
|
||||||
|
background-color: var(selected-active-background);
|
||||||
|
text-color: var(selected-active-foreground);
|
||||||
|
}
|
||||||
|
element alternate.normal {
|
||||||
|
background-color: var(alternate-normal-background);
|
||||||
|
text-color: var(alternate-normal-foreground);
|
||||||
|
}
|
||||||
|
element alternate.urgent {
|
||||||
|
background-color: var(alternate-urgent-background);
|
||||||
|
text-color: var(alternate-urgent-foreground);
|
||||||
|
}
|
||||||
|
element alternate.active {
|
||||||
|
background-color: var(alternate-active-background);
|
||||||
|
text-color: var(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: var(background);
|
||||||
|
border: 0;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
mainbox {
|
||||||
|
padding: 0.1em;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
message {
|
||||||
|
padding: 1px ;
|
||||||
|
border-color: var(separatorcolor);
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
}
|
||||||
|
textbox {
|
||||||
|
text-color: var(foreground);
|
||||||
|
}
|
||||||
|
listview {
|
||||||
|
padding: 2px 0px 0px ;
|
||||||
|
scrollbar: true;
|
||||||
|
border-color: var(separatorcolor);
|
||||||
|
spacing: 2px ;
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 2px solid 0px 0px ;
|
||||||
|
}
|
||||||
|
scrollbar {
|
||||||
|
width: 4px ;
|
||||||
|
padding: 0;
|
||||||
|
handle-width: 8px ;
|
||||||
|
border: 0;
|
||||||
|
handle-color: var(normal-foreground);
|
||||||
|
}
|
||||||
|
sidebar {
|
||||||
|
border-color: var(separatorcolor);
|
||||||
|
border: 2px dash 0px 0px ;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
cursor: pointer;
|
||||||
|
spacing: 0;
|
||||||
|
text-color: var(normal-foreground);
|
||||||
|
}
|
||||||
|
button selected {
|
||||||
|
background-color: var(selected-normal-background);
|
||||||
|
text-color: var(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: var(normal-foreground);
|
||||||
|
children: [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ];
|
||||||
|
}
|
||||||
|
case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: var(normal-foreground);
|
||||||
|
}
|
||||||
|
entry {
|
||||||
|
text-color: var(normal-foreground);
|
||||||
|
cursor: text;
|
||||||
|
spacing: 0;
|
||||||
|
placeholder-color: Gray;
|
||||||
|
placeholder: "Type to filter";
|
||||||
|
}
|
||||||
|
prompt {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: var(normal-foreground);
|
||||||
|
}
|
||||||
|
textbox-prompt-colon {
|
||||||
|
margin: 0px 0.3000em 0.0000em 0.0000em ;
|
||||||
|
expand: false;
|
||||||
|
str: ":";
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
|
@ -32,7 +32,6 @@ apply = ["defer-medium"]
|
||||||
|
|
||||||
[plugins.zsh-autosuggestions]
|
[plugins.zsh-autosuggestions]
|
||||||
github = 'zsh-users/zsh-autosuggestions'
|
github = 'zsh-users/zsh-autosuggestions'
|
||||||
apply = ["defer"]
|
|
||||||
|
|
||||||
[plugins.bash-completions-fallback]
|
[plugins.bash-completions-fallback]
|
||||||
github = '3v1n0/zsh-bash-completions-fallback'
|
github = '3v1n0/zsh-bash-completions-fallback'
|
||||||
|
|
@ -40,19 +39,18 @@ apply = ["defer-more"]
|
||||||
|
|
||||||
[plugins.fzf-tab]
|
[plugins.fzf-tab]
|
||||||
github = 'Aloxaf/fzf-tab'
|
github = 'Aloxaf/fzf-tab'
|
||||||
apply = ["defer"]
|
|
||||||
|
|
||||||
[plugins.zsh-cargo-completion]
|
# [plugins.zsh-cargo-completion]
|
||||||
github = 'MenkeTechnologies/zsh-cargo-completion'
|
# github = 'MenkeTechnologies/zsh-cargo-completion'
|
||||||
apply = ["defer"]
|
# apply = ["defer"]
|
||||||
|
|
||||||
[plugins.click-completion]
|
[plugins.click-completion]
|
||||||
github = 'click-contrib/click-completion'
|
github = 'click-contrib/click-completion'
|
||||||
apply = ["defer"]
|
apply = ["defer"]
|
||||||
|
|
||||||
#[plugins.zsh-direnv]
|
[plugins.zsh-direnv]
|
||||||
#github = 'ptavares/zsh-direnv'
|
github = 'ptavares/zsh-direnv'
|
||||||
#apply = ["defer"]
|
apply = ["defer"]
|
||||||
|
|
||||||
[plugins.undollar]
|
[plugins.undollar]
|
||||||
github = 'zpm-zsh/undollar'
|
github = 'zpm-zsh/undollar'
|
||||||
|
|
@ -73,10 +71,6 @@ apply = ["defer"]
|
||||||
#[plugins.aliases]
|
#[plugins.aliases]
|
||||||
#remote = 'https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/aliases'
|
#remote = 'https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/aliases'
|
||||||
|
|
||||||
[plugins.zsh-vim-plugin]
|
|
||||||
github = 'nviennot/zsh-vim-plugin'
|
|
||||||
apply = ["defer"]
|
|
||||||
|
|
||||||
[plugins.docker-zsh-completion]
|
[plugins.docker-zsh-completion]
|
||||||
github = 'greymd/docker-zsh-completion'
|
github = 'greymd/docker-zsh-completion'
|
||||||
apply = ["defer"]
|
apply = ["defer"]
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,10 @@ $directory\
|
||||||
$git_branch\
|
$git_branch\
|
||||||
$git_status\
|
$git_status\
|
||||||
$git_state\
|
$git_state\
|
||||||
[](fg:bright-blue bg:bright-cyan )\
|
[](fg:bright-blue bg:bright-cyan)\
|
||||||
$c\
|
$c\
|
||||||
$golang\
|
$golang\
|
||||||
|
$python\
|
||||||
$gradle\
|
$gradle\
|
||||||
$java\
|
$java\
|
||||||
$nodejs\
|
$nodejs\
|
||||||
|
|
@ -32,6 +33,7 @@ $status\
|
||||||
[](bg:bright-red fg:bright-blue)
|
[](bg:bright-red fg:bright-blue)
|
||||||
$cmd_duration\
|
$cmd_duration\
|
||||||
$hostname\
|
$hostname\
|
||||||
|
$sudo\
|
||||||
[](fg:bright-blue)
|
[](fg:bright-blue)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -60,21 +62,23 @@ CentOS = " "
|
||||||
# AlmaLinux = " "
|
# AlmaLinux = " "
|
||||||
NixOS = " "
|
NixOS = " "
|
||||||
Windows = " "
|
Windows = " "
|
||||||
Macos = " "
|
Macos = ""
|
||||||
|
Alpine = " "
|
||||||
|
|
||||||
[directory]
|
[directory]
|
||||||
style = "bg:bright-red fg:black"
|
style = "bg:bright-red fg:black"
|
||||||
format = "[ $path ]($style)"
|
format = "[ $path ]($style)"
|
||||||
truncation_length = 3
|
|
||||||
truncation_symbol = "…/"
|
truncation_symbol = "…/"
|
||||||
|
truncation_length = 1
|
||||||
|
fish_style_pwd_dir_length = 2
|
||||||
|
|
||||||
# Here is how you can shorten some long paths by text replacement
|
# Here is how you can shorten some long paths by text replacement
|
||||||
# similar to mapped_locations in Oh My Posh:
|
# similar to mapped_locations in Oh My Posh:
|
||||||
[directory.substitutions]
|
# [directory.substitutions]
|
||||||
"Documents" = " "
|
# "Documents" = " "
|
||||||
"Downloads" = " "
|
# "Downloads" = " "
|
||||||
"Music" = " "
|
# "Music" = " "
|
||||||
"Pictures" = " "
|
# "Pictures" = " "
|
||||||
# Keep in mind that the order matters. For example:
|
# Keep in mind that the order matters. For example:
|
||||||
# "Important Documents" = " "
|
# "Important Documents" = " "
|
||||||
# will not be replaced, because "Documents" was already substituted before.
|
# will not be replaced, because "Documents" was already substituted before.
|
||||||
|
|
@ -82,7 +86,7 @@ truncation_symbol = "…/"
|
||||||
# "Important " = " "
|
# "Important " = " "
|
||||||
|
|
||||||
[c]
|
[c]
|
||||||
symbol = " "
|
symbol = ""
|
||||||
style = "bg:bright-cyan fg:black"
|
style = "bg:bright-cyan fg:black"
|
||||||
format = '[ $symbol ($version) ]($style)'
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
|
@ -98,37 +102,52 @@ style = "bg:bright-blue fg:black"
|
||||||
format = '[ $symbol $branch ]($style)'
|
format = '[ $symbol $branch ]($style)'
|
||||||
|
|
||||||
[git_commit]
|
[git_commit]
|
||||||
symbol = ""
|
symbol = " "
|
||||||
style = "bg:bright-blue fg:black"
|
style = "bg:bright-blue fg:black"
|
||||||
format = "[($hash$tag)]($style) "
|
format = "[($hash$tag)]($style) "
|
||||||
|
|
||||||
[git_status]
|
[git_status]
|
||||||
style = "bg:bright-blue fg:black"
|
style = "bg:bright-blue fg:black"
|
||||||
format = '[$all_status$ahead_behind ]($style)'
|
format = '[$all_status$ahead_behind]($style)'
|
||||||
|
renamed = ' '
|
||||||
|
stashed = ' '
|
||||||
|
modified = ' '
|
||||||
|
untracked = ''
|
||||||
|
conflicted = ''
|
||||||
|
staged = ' '
|
||||||
|
up_to_date = ' '
|
||||||
|
diverged = ''
|
||||||
|
deleted = ''
|
||||||
|
|
||||||
[git_state]
|
[git_state]
|
||||||
style = "bg:bright-blue fg:black"
|
style = "bg:bright-blue fg:black"
|
||||||
format = '[\($state( $progress_current of $progress_total)\)]($style) '
|
format = '[\($state( $progress_current of $progress_total)\)]($style)'
|
||||||
|
|
||||||
[golang]
|
[golang]
|
||||||
symbol = " "
|
symbol = ""
|
||||||
style = "bg:bright-cyan fg:black"
|
style = "bg:bright-cyan fg:black"
|
||||||
format = '[ $symbol ($version) ]($style)'
|
format = '[$symbol($version) ]($style)'
|
||||||
|
version_format = "v${major}.${minor}"
|
||||||
|
|
||||||
[gradle]
|
[gradle]
|
||||||
style = "bg:bright-cyan fg:black"
|
style = "bg:bright-cyan fg:black"
|
||||||
format = '[ $symbol ($version) ]($style)'
|
format = '[($symbol$version)]($style)'
|
||||||
|
|
||||||
[java]
|
[java]
|
||||||
symbol = " "
|
symbol = ""
|
||||||
style = "bg:bright-cyan fg:black"
|
style = "bg:bright-cyan fg:black"
|
||||||
format = '[ $symbol ($version) ]($style)'
|
format = '[($symbol$version)]($style)'
|
||||||
|
|
||||||
[nodejs]
|
[nodejs]
|
||||||
symbol = ""
|
symbol = ""
|
||||||
style = "bg:bright-cyan fg:black"
|
style = "bg:bright-cyan fg:black"
|
||||||
format = '[ $symbol ($version) ]($style)'
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[python]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:bright-cyan fg:black"
|
||||||
|
format = '[ ${symbol}${pyenv_prefix}(${version} )(\($virtualenv\))]($style)'
|
||||||
|
|
||||||
[rust]
|
[rust]
|
||||||
symbol = ""
|
symbol = ""
|
||||||
style = "bg:bright-cyan fg:black"
|
style = "bg:bright-cyan fg:black"
|
||||||
|
|
@ -141,27 +160,34 @@ style = "bg:bright-blue fg:black"
|
||||||
format = '[ $time ]($style)'
|
format = '[ $time ]($style)'
|
||||||
|
|
||||||
[shell]
|
[shell]
|
||||||
bash_indicator = ""
|
bash_indicator = " "
|
||||||
powershell_indicator = ""
|
powershell_indicator = " "
|
||||||
zsh_indicator = ""
|
zsh_indicator = " "
|
||||||
|
nu_indicator = "ν"
|
||||||
|
xonsh_indicator = "🐚"
|
||||||
style = "bg:bright-purple fg:black"
|
style = "bg:bright-purple fg:black"
|
||||||
format = '[$indicator ]($style)'
|
format = '[$indicator]($style)'
|
||||||
disabled = false
|
disabled = false
|
||||||
|
|
||||||
[cmd_duration]
|
[cmd_duration]
|
||||||
format = "[ $duration]($style)"
|
format = "[ $duration]($style)"
|
||||||
style = "fg:black bg:bright-blue"
|
style = "fg:black bg:bright-blue"
|
||||||
show_milliseconds = true
|
show_milliseconds = true
|
||||||
show_notifications = true
|
|
||||||
|
|
||||||
[status]
|
[status]
|
||||||
disabled=false
|
disabled=false
|
||||||
style="fg:black bg:bright-red"
|
style="fg:black bg:bright-red"
|
||||||
symbol=""
|
symbol=" "
|
||||||
# success_symbol=""
|
# success_symbol=""
|
||||||
format = "[ $symbol $status ]($style)"
|
format = "[ $symbol$status]($style)"
|
||||||
|
|
||||||
[hostname]
|
[hostname]
|
||||||
style="bg:bright-blue fg:black"
|
style="bg:bright-blue fg:black"
|
||||||
ssh_symbol="@"
|
ssh_symbol="@"
|
||||||
format='[ $ssh_symbol$hostname ]($style)'
|
format='[ $ssh_symbol$hostname ]($style)'
|
||||||
|
|
||||||
|
[sudo]
|
||||||
|
style="bg:bright-blue fg:black"
|
||||||
|
disabled = false
|
||||||
|
symbol=" "
|
||||||
|
format = "[ $symbol]($style)"
|
||||||
|
|
|
||||||
59
private_dot_config/sway/config
Normal file
59
private_dot_config/sway/config
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
include /etc/sway/config.d/*
|
||||||
|
include /etc/sway/config.d/50-systemd-user.conf
|
||||||
|
set $mod Mod4
|
||||||
|
|
||||||
|
include "theme"
|
||||||
|
include "wayland"
|
||||||
|
include "outputs"
|
||||||
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
|
# is used in the bar {} block below.
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
|
||||||
|
for_window [app_id="flameshot"] border pixel 0, floating enable, fullscreen disable, move absolute position 0 0
|
||||||
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
set $ws21 "21"
|
||||||
|
set $ws22 "22"
|
||||||
|
set $ws23 "23"
|
||||||
|
set $ws24 "24"
|
||||||
|
set $ws25 "25"
|
||||||
|
set $ws26 "26"
|
||||||
|
set $ws27 "27"
|
||||||
|
set $ws28 "28"
|
||||||
|
set $ws29 "29"
|
||||||
|
set $ws20 "20"
|
||||||
|
exec_always systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
exec_always dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
||||||
|
|
||||||
|
include "keybinds"
|
||||||
|
|
||||||
|
#border size
|
||||||
|
default_border normal 1
|
||||||
|
|
||||||
|
gaps inner 5
|
||||||
|
# polkit
|
||||||
|
exec_always --no-startup-id /usr/bin/lxpolkit
|
||||||
|
exec_always --no-startup-id /usr/bin/lxqt-policykit-agent
|
||||||
|
#notif daemon
|
||||||
|
# exec dunst
|
||||||
|
exec mako
|
||||||
|
# exec_always fcitx5
|
||||||
|
exec wl-paste --watch cliphist store
|
||||||
|
exec gnome-keyring-daemon -r
|
||||||
|
exec ~/.config/swhkd/hotkeys.sh
|
||||||
|
exec udiskie
|
||||||
|
exec nm-tray
|
||||||
146
private_dot_config/sway/i3blocks.conf
Normal file
146
private_dot_config/sway/i3blocks.conf
Normal file
|
|
@ -0,0 +1,146 @@
|
||||||
|
# i3blocks config file
|
||||||
|
#
|
||||||
|
# Please see man i3blocks for a complete reference!
|
||||||
|
# The man page is also hosted at http://vivien.github.io/i3blocks
|
||||||
|
#
|
||||||
|
# List of valid properties:
|
||||||
|
#
|
||||||
|
# align
|
||||||
|
# color
|
||||||
|
# command
|
||||||
|
# full_text
|
||||||
|
# instance
|
||||||
|
# interval
|
||||||
|
# label
|
||||||
|
# min_width
|
||||||
|
# name
|
||||||
|
# separator
|
||||||
|
# separator_block_width
|
||||||
|
# short_text
|
||||||
|
# signal
|
||||||
|
# urgent
|
||||||
|
|
||||||
|
# Global properties
|
||||||
|
#
|
||||||
|
# The top properties below are applied to every block, but can be overridden.
|
||||||
|
# Each block command defaults to the script name to avoid boilerplate.
|
||||||
|
command=~/.config/i3blocks/$BLOCK_NAME/$BLOCK_NAME
|
||||||
|
separator_block_width=15
|
||||||
|
markup=none
|
||||||
|
|
||||||
|
# Volume indicator
|
||||||
|
#
|
||||||
|
# The first parameter sets the step (and units to display)
|
||||||
|
# The second parameter overrides the mixer selection
|
||||||
|
# See the script for details.
|
||||||
|
[volume-pipewire]
|
||||||
|
interval=persist
|
||||||
|
signal=1
|
||||||
|
AUDIO_HIGH_SYMBOL=
|
||||||
|
AUDIO_MED_SYMBOL=
|
||||||
|
AUDIO_LOW_SYMBOL=
|
||||||
|
AUDIO_MUTED_SYMBOL=
|
||||||
|
SUBSCRIBE=1
|
||||||
|
LONG_FORMAT=${SYMB} ${VOL}%
|
||||||
|
|
||||||
|
# Memory usage
|
||||||
|
#
|
||||||
|
# The type defaults to "mem" if the instance is not specified.
|
||||||
|
[memory]
|
||||||
|
label=
|
||||||
|
separator=false
|
||||||
|
interval=30
|
||||||
|
|
||||||
|
[memory]
|
||||||
|
label=
|
||||||
|
instance=swap
|
||||||
|
separator=true
|
||||||
|
interval=30
|
||||||
|
|
||||||
|
# Disk usage
|
||||||
|
#
|
||||||
|
# The directory defaults to $HOME if the instance is not specified.
|
||||||
|
# The script may be called with a optional argument to set the alert
|
||||||
|
# (defaults to 10 for 10%).
|
||||||
|
[disk]
|
||||||
|
label=
|
||||||
|
separator=false
|
||||||
|
#instance=/mnt/data
|
||||||
|
interval=30
|
||||||
|
|
||||||
|
[disk]
|
||||||
|
markup=pango
|
||||||
|
label=
|
||||||
|
instance=/
|
||||||
|
interval=30
|
||||||
|
# Network interface monitoring
|
||||||
|
#
|
||||||
|
# If the instance is not specified, use the interface used for default route.
|
||||||
|
# The address can be forced to IPv4 or IPv6 with -4 or -6 switches.
|
||||||
|
[iface]
|
||||||
|
color=#A0DC9B
|
||||||
|
interval=10
|
||||||
|
separator=false
|
||||||
|
|
||||||
|
[wifi]
|
||||||
|
interval=10
|
||||||
|
COLOR_GE80=#A0DC9B
|
||||||
|
COLOR_GE60=#C1B254
|
||||||
|
COLOR_GE40=#EAA950
|
||||||
|
COLOR_LOWR=#EE5E95
|
||||||
|
COLOR_DOWN=#A04558
|
||||||
|
|
||||||
|
# Battery indicator
|
||||||
|
#
|
||||||
|
# The battery instance defaults to 0.
|
||||||
|
[battery]
|
||||||
|
label=
|
||||||
|
instance=1
|
||||||
|
interval=30
|
||||||
|
|
||||||
|
# Temperature
|
||||||
|
#
|
||||||
|
# Support multiple chips, though lm-sensors.
|
||||||
|
# The script may be called with -w and -c switches to specify thresholds,
|
||||||
|
# see the script for details.
|
||||||
|
# [temperature]
|
||||||
|
# label=🌡️
|
||||||
|
# interval=10
|
||||||
|
# SENSOR_CHIP='k10temp-pci-00c3'
|
||||||
|
|
||||||
|
# Date Time
|
||||||
|
#
|
||||||
|
[time]
|
||||||
|
command=date '+%a %b %_d %Y %l:%M:%S'
|
||||||
|
interval=1
|
||||||
|
|
||||||
|
# Generic media player support
|
||||||
|
#
|
||||||
|
# This displays "ARTIST - SONG" if a music is playing.
|
||||||
|
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
|
||||||
|
#[mediaplayer]
|
||||||
|
#instance=spotify
|
||||||
|
#interval=5
|
||||||
|
#signal=10
|
||||||
|
|
||||||
|
# OpenVPN support
|
||||||
|
#
|
||||||
|
# Support multiple VPN, with colors.
|
||||||
|
#[openvpn]
|
||||||
|
#interval=20
|
||||||
|
|
||||||
|
# Key indicators
|
||||||
|
#
|
||||||
|
# Add the following bindings to i3 config file:
|
||||||
|
#
|
||||||
|
# bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks
|
||||||
|
# bindsym --release Num_Lock exec pkill -SIGRTMIN+11 i3blocks
|
||||||
|
#[keyindicator]
|
||||||
|
#instance=CAPS
|
||||||
|
#interval=once
|
||||||
|
#signal=11
|
||||||
|
|
||||||
|
#[keyindicator]
|
||||||
|
#instance=NUM
|
||||||
|
#interval=once
|
||||||
|
#signal=11
|
||||||
175
private_dot_config/sway/keybinds
Normal file
175
private_dot_config/sway/keybinds
Normal file
|
|
@ -0,0 +1,175 @@
|
||||||
|
# start a terminal
|
||||||
|
bindsym $mod+Return exec ghostty
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# change focus
|
||||||
|
bindsym $mod+j focus left
|
||||||
|
bindsym $mod+k focus down
|
||||||
|
bindsym $mod+l focus up
|
||||||
|
bindsym $mod+semicolon focus right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
bindsym $mod+Shift+j move left
|
||||||
|
bindsym $mod+Shift+k move down
|
||||||
|
bindsym $mod+Shift+l move up
|
||||||
|
bindsym $mod+Shift+semicolon move right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor 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
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+h split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+v split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
#bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
bindsym $mod+d focus child
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace $ws1
|
||||||
|
bindsym $mod+2 workspace $ws2
|
||||||
|
bindsym $mod+3 workspace $ws3
|
||||||
|
bindsym $mod+4 workspace $ws4
|
||||||
|
bindsym $mod+5 workspace $ws5
|
||||||
|
bindsym $mod+6 workspace $ws6
|
||||||
|
bindsym $mod+7 workspace $ws7
|
||||||
|
bindsym $mod+8 workspace $ws8
|
||||||
|
bindsym $mod+9 workspace $ws9
|
||||||
|
bindsym $mod+0 workspace $ws10
|
||||||
|
|
||||||
|
|
||||||
|
bindsym $mod+Mod2+KP_1 workspace $ws21
|
||||||
|
bindsym $mod+Mod2+KP_2 workspace $ws22
|
||||||
|
bindsym $mod+Mod2+KP_3 workspace $ws23
|
||||||
|
bindsym $mod+Mod2+KP_4 workspace $ws24
|
||||||
|
bindsym $mod+Mod2+KP_5 workspace $ws25
|
||||||
|
bindsym $mod+Mod2+KP_6 workspace $ws26
|
||||||
|
bindsym $mod+Mod2+KP_7 workspace $ws27
|
||||||
|
bindsym $mod+Mod2+KP_8 workspace $ws28
|
||||||
|
bindsym $mod+Mod2+KP_9 workspace $ws29
|
||||||
|
bindsym $mod+Mod2+KP_0 workspace $ws20
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||||
|
|
||||||
|
bindsym $mod+Shift+Mod2+KP_End move container to workspace $ws21
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Down move container to workspace $ws22
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Next move container to workspace $ws23
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Left move container to workspace $ws24
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Begin move container to workspace $ws25
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Right move container to workspace $ws26
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Home move container to workspace $ws27
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Up move container to workspace $ws28
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Prior move container to workspace $ws29
|
||||||
|
bindsym $mod+Shift+Mod2+KP_Insert move container to workspace $ws20
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
|
||||||
|
# Pressing left will shrink the window’s width.
|
||||||
|
# Pressing right will grow the window’s width.
|
||||||
|
# Pressing up will shrink the window’s height.
|
||||||
|
# Pressing down will grow the window’s height.
|
||||||
|
bindsym j resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym k resize grow height 10 px or 10 ppt
|
||||||
|
bindsym l resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# same bindings, but for the arrow keys
|
||||||
|
bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or $mod+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
# Make the currently focused window a scratchpad
|
||||||
|
bindsym $mod+Shift+minus move scratchpad
|
||||||
|
|
||||||
|
# Show the first scratchpad window
|
||||||
|
bindsym $mod+minus scratchpad show
|
||||||
|
|
||||||
|
#move to other monitor
|
||||||
|
bindsym $mod+x move container to output right
|
||||||
|
bindsym $mod+z move workspace to output right
|
||||||
|
bindsym $mod+n move container to output down
|
||||||
|
bindsym $mod+m move workspace to output down
|
||||||
|
|
||||||
|
bindsym $mod+Shift+x move container to output left
|
||||||
|
bindsym $mod+Shift+z move workspace to output left
|
||||||
|
bindsym $mod+Shift+n move container to output up
|
||||||
|
bindsym $mod+Shift+m move workspace to output up
|
||||||
|
|
||||||
|
# Pipewire controls
|
||||||
|
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||||
|
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||||
|
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
bindsym XF86AudioPlay exec playerctl play-pause
|
||||||
|
bindsym XF86AudioNext exec playerctl next
|
||||||
|
bindsym XF86AudioPrev exec playerctl previous
|
||||||
|
|
||||||
|
# Sreen brightness controls
|
||||||
|
bindsym XF86MonBrightnessUp exec brightnessctl -e s 5%+
|
||||||
|
bindsym XF86MonBrightnessDown exec brightnessctl -e s 5%-
|
||||||
|
|
||||||
|
|
||||||
|
bindsym $mod+b exec xdg-open http://
|
||||||
|
# bindsym $mod+Shift+e exec zsh -c "rofi -show p -modi p:'rofi-power-menu --symbols-font \"Symbols Nerd Font Mono\"' -theme lunar-witch"
|
||||||
|
bindsym $mod+Shift+e exec zsh -c "rofi -show p -modi p:'rofi-power-menu' -theme lunar-witch"
|
||||||
|
bindsym $mod+space exec zsh -c "rofi -combi-modi 'drun#run' -show combi -show-icons -theme lunar-witch"
|
||||||
|
|
||||||
|
bindsym Print exec zsh -c 'grim - | tee "$XDG_PICTURES_DIR/screenshots/$(date -Is).png" | wl-copy -t image/png'
|
||||||
|
bindsym Shift+Print exec zsh -c 'grim -g "$(slurp)" - | tee "$XDG_PICTURES_DIR/screenshots/$(date -Is).png" | wl-copy -t image/png'
|
||||||
|
bindsym Ctrl+Print exec TEMP=$(mktemp); grim -g "$(slurp)" $TEMP && notify-send "$TEMP" && flatpak run org.gimp.GIMP -- $TEMP
|
||||||
|
|
||||||
|
bindsym $mod+Shift+v exec cliphist list | rofi -dmenu -display-columns 2 -p "Select item to copy" -lines 10 -width 35 -theme lunar-witch | cliphist decode | wl-copy
|
||||||
|
|
||||||
|
# bindsym $mod+Shift+. exec rofi -show emoji -modi emoji -theme lunar-witch | cb
|
||||||
36
private_dot_config/sway/theme
Normal file
36
private_dot_config/sway/theme
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
# Colors
|
||||||
|
set $fg #EBF6FF
|
||||||
|
set $bg #74689F
|
||||||
|
set $inactive #1E1B30
|
||||||
|
set $urgent #A04558
|
||||||
|
# class border backgr. text indicator child_border
|
||||||
|
client.focused $bg $bg $fg $bg $bg
|
||||||
|
client.focused_inactive $inactive $inactive $fg $bg $bg
|
||||||
|
client.unfocused $inactive $inactive $fg $bg $bg
|
||||||
|
client.urgent $urgent $urgent $fg $bg $bg
|
||||||
|
client.placeholder $bg $bg $fg $bg $bg
|
||||||
|
client.background $bg
|
||||||
|
|
||||||
|
# font pango:Atkinson Hyperlegible bold 9
|
||||||
|
# font pango:FOT-UDKakugo_Large Pr6N semibold 10
|
||||||
|
font pango:Berkeley Mono Bold 11
|
||||||
|
|
||||||
|
bar {
|
||||||
|
status_command i3blocks -c ~/.config/sway/i3blocks.conf
|
||||||
|
# font pango:MonaspiceNe NF, CommitMono Nerd Font, FontAwesome 9
|
||||||
|
font pango:Berkeley Mono bold 11
|
||||||
|
#mode hide
|
||||||
|
colors {
|
||||||
|
background $inactive
|
||||||
|
statusline $fg
|
||||||
|
separator $fg
|
||||||
|
|
||||||
|
focused_workspace $bg $bg $fg
|
||||||
|
active_workspace $inactive $inactive $fg
|
||||||
|
inactive_workspace $inactive $inactive $fg
|
||||||
|
urgent_workspace $urgent $urgent $fg
|
||||||
|
binding_mode $urgent $urgent $fg
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
22
private_dot_config/sway/wayland
Normal file
22
private_dot_config/sway/wayland
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Sway specific config
|
||||||
|
# Logout
|
||||||
|
# bindsym $mod+Shift+e exec "swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit Sway?' -B 'Yes, exit Sway' 'swaymsg exit'"
|
||||||
|
|
||||||
|
# screenshots
|
||||||
|
# bindsym --release Print exec grimshot --notify copy
|
||||||
|
# bindsym --release Shift+Print exec grimshot --notify copy anything
|
||||||
|
|
||||||
|
# Touchpad controls
|
||||||
|
input "2362:628:PIXA3854:00_093A:0274_Touchpad" {
|
||||||
|
tap enabled
|
||||||
|
natural_scroll enabled
|
||||||
|
}
|
||||||
|
|
||||||
|
#Set up monitors
|
||||||
|
# output eDP-1 res 2256x1504 scale 1.00
|
||||||
|
|
||||||
|
#Wallpaper
|
||||||
|
output * bg ~/00 Setup/wallpaper.png fill
|
||||||
|
|
||||||
|
# TODO setup tablet
|
||||||
|
exec ~/tablet.sh
|
||||||
10
private_dot_config/systemd/user/hotkeys.service
Normal file
10
private_dot_config/systemd/user/hotkeys.service
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
[Unit]
|
||||||
|
Description=swhkd hotkey daemon
|
||||||
|
BindsTo=default.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=bash -l $HOME/.config/swhkd/hotkeys.sh
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
|
||||||
57
private_dot_config/tmux/executable_tmux.conf
Normal file
57
private_dot_config/tmux/executable_tmux.conf
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
# Tell tmux to use 256-color internally
|
||||||
|
set -ga terminal-overrides ",xterm-256color:Tc"
|
||||||
|
|
||||||
|
# use C-a as prefix
|
||||||
|
set-option -g prefix C-a
|
||||||
|
bind-key a send-prefix
|
||||||
|
|
||||||
|
# C-a C-a for last window
|
||||||
|
bind-key C-a last-window
|
||||||
|
|
||||||
|
# 1-index windows
|
||||||
|
set -g base-index 1
|
||||||
|
|
||||||
|
# no delay after prefix
|
||||||
|
set -s escape-time 0
|
||||||
|
|
||||||
|
# resize to smallest active client
|
||||||
|
setw -g aggressive-resize on
|
||||||
|
|
||||||
|
# Set status bar
|
||||||
|
set -g status-bg black
|
||||||
|
set -g status-fg white
|
||||||
|
set -g status-left ""
|
||||||
|
set -g status-right "#[fg=green]#H"
|
||||||
|
|
||||||
|
# vi bindings
|
||||||
|
setw -g mode-keys vi
|
||||||
|
|
||||||
|
# mouse enable
|
||||||
|
set -g mouse on
|
||||||
|
|
||||||
|
# split panes using | and -
|
||||||
|
bind | split-window -h
|
||||||
|
bind h split-window -h
|
||||||
|
bind - split-window -v
|
||||||
|
bind v split-window -v
|
||||||
|
unbind '"'
|
||||||
|
unbind %
|
||||||
|
|
||||||
|
# switch panes using Alt-arrow without prefix
|
||||||
|
bind -n M-Left select-pane -L
|
||||||
|
bind -n M-Right select-pane -R
|
||||||
|
bind -n M-Up select-pane -U
|
||||||
|
bind -n M-Down select-pane -D
|
||||||
|
|
||||||
|
bind-key -n C-Space new-window
|
||||||
|
bind-key -n C-S-Left prev
|
||||||
|
bind-key -n C-S-Right next
|
||||||
|
# bind -n C-left swap-window -t -1
|
||||||
|
# bind -n C-right swap-window -t +1
|
||||||
|
|
||||||
|
# reload config file (change file location to your the tmux.conf you want to use)
|
||||||
|
bind r source-file "$XDG_CONFIG_HOME/tmux.conf"
|
||||||
|
|
||||||
|
# don't rename windows automatically
|
||||||
|
set-option -g allow-rename off
|
||||||
|
set -g set-clipboard on
|
||||||
1
private_dot_config/user-dirs.locale
Normal file
1
private_dot_config/user-dirs.locale
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
en_US
|
||||||
48
private_dot_config/vim/vim.md
Normal file
48
private_dot_config/vim/vim.md
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
# General Plugins
|
||||||
|
## [Goyo] (https://github.com/junegunn/goyo.vim)
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [Easymotion] (https://github.com/easymotion/vim-easymotion)
|
||||||
|
- `\\w` lets you jump to any word ahead
|
||||||
|
- `\\b` is backwards
|
||||||
|
- `\\{h,j,k,l}` jump in a direction (doesn't work with arrow keys)
|
||||||
|
- `\\f<char>` lets you jump to instances of `<char`
|
||||||
|
|
||||||
|
## [Ranger] (https://github.com/francoiscabrol/ranger.vim)
|
||||||
|
- Requires ranger to be installed
|
||||||
|
- `\f` to open ranger
|
||||||
|
- `:RangerNewTab` to open selected file in new tab
|
||||||
|
|
||||||
|
## [Signify] (https://github.com/mhinz/vim-signify)
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [Lightline] (https://github.com/itchyny/lightline.vim)
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [DelimitMate] (https://github.com/Raimondi/delimitMate)
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [LanguageClient] (https://github.com/autozimu/LanguageClient-neovim)
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [Commentary] (https://github.com/tpope/vim-commentary)
|
||||||
|
- `gcc`: toggle comment line
|
||||||
|
- `gc<motion>`: toggle comment on motion
|
||||||
|
|
||||||
|
## [NerdTree] ()
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [NerdTree Tabs] ()
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [Grep] ()
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [CSApprox] ()
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [Tagbar] ()
|
||||||
|
- TODO
|
||||||
|
|
||||||
|
## [indentline] ()
|
||||||
|
- TODO
|
||||||
|
|
@ -1,37 +1,96 @@
|
||||||
" Install vim-plug if not found
|
" Install vim-plug if not found
|
||||||
if empty(glob('~/.vim/autoload/plug.vim'))
|
if empty(glob('~/.config/vim/autoload/plug.vim'))
|
||||||
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
|
silent !curl -fLo ~/.config/vim/autoload/plug.vim --create-dirs
|
||||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||||
endif
|
endif
|
||||||
|
if empty(glob('~/.local/share/nvim/site/autoload/plug.vim'))
|
||||||
|
silent !curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
|
||||||
|
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
set laststatus=2 "lightline requires it?
|
set laststatus=2 "lightline requires it?
|
||||||
"Setup Plugins
|
"Setup Plugins
|
||||||
call plug#begin()
|
call plug#begin()
|
||||||
|
|
||||||
|
"*********************
|
||||||
|
" General Plugins
|
||||||
|
"*********************
|
||||||
|
|
||||||
|
"distraction free writing
|
||||||
Plug 'junegunn/goyo.vim'
|
Plug 'junegunn/goyo.vim'
|
||||||
|
|
||||||
|
"ranger - file manager
|
||||||
Plug 'francoiscabrol/ranger.vim'
|
Plug 'francoiscabrol/ranger.vim'
|
||||||
Plug 'rbgrouleff/bclose.vim'
|
|
||||||
Plug 'airblade/vim-gitgutter' "may cause lag
|
" Easymotion
|
||||||
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' }
|
Plug 'easymotion/vim-easymotion'
|
||||||
|
let g:EasyMotion_smartcase = 1
|
||||||
|
|
||||||
|
" Signify - show vcs changes
|
||||||
|
if has('nvim') || has('patch-8.0.902')
|
||||||
|
Plug 'mhinz/vim-signify'
|
||||||
|
set updatetime=100
|
||||||
|
else
|
||||||
|
Plug 'mhinz/vim-signify', { 'tag': 'legacy' }
|
||||||
|
endif
|
||||||
|
|
||||||
" Line
|
" Line
|
||||||
Plug 'itchyny/lightline.vim'
|
Plug 'itchyny/lightline.vim'
|
||||||
Plug 'cespare/vim-toml'
|
|
||||||
"pywal
|
" LSP Server
|
||||||
if has('wal')
|
Plug 'autozimu/LanguageClient-neovim', {
|
||||||
Plug 'dylanaraps/wal.vim'
|
\ 'branch': 'next',
|
||||||
endif
|
\ 'do': 'bash install.sh',
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" FZF
|
||||||
|
Plug 'junegunn/fzf'
|
||||||
|
|
||||||
|
" Async.vim - backport nvim async to vim
|
||||||
|
Plug 'prabirshrestha/async.vim'
|
||||||
|
|
||||||
"Auto add delimiters
|
"Auto add delimiters
|
||||||
Plug 'Raimondi/delimitMate'
|
Plug 'Raimondi/delimitMate'
|
||||||
|
|
||||||
"Linting
|
"Linting
|
||||||
Plug 'dense-analysis/ale'
|
"Plug 'dense-analysis/ale'
|
||||||
|
|
||||||
" Commenting
|
" Commenting
|
||||||
Plug 'tpope/vim-commentary'
|
Plug 'tpope/vim-commentary'
|
||||||
|
|
||||||
|
"Copy using OSC52
|
||||||
|
Plug 'ojroques/vim-oscyank', {'branch': 'main'}
|
||||||
|
|
||||||
|
Plug 'scrooloose/nerdtree'
|
||||||
|
Plug 'jistr/vim-nerdtree-tabs'
|
||||||
|
Plug 'vim-scripts/grep.vim'
|
||||||
|
Plug 'vim-scripts/CSApprox'
|
||||||
|
Plug 'majutsushi/tagbar'
|
||||||
|
Plug 'Yggdroot/indentLine'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"*********************
|
||||||
|
" Language Specific
|
||||||
|
"*********************
|
||||||
|
|
||||||
" c
|
" c
|
||||||
Plug 'vim-scripts/c.vim', {'for': ['c', 'cpp']}
|
Plug 'vim-scripts/c.vim', {'for': ['c', 'cpp']}
|
||||||
Plug 'ludwig/split-manpage.vim'
|
|
||||||
|
" go
|
||||||
|
Plug 'fatih/vim-go', {'do': ':GoInstallBinaries', 'for': 'go'}
|
||||||
|
|
||||||
|
" html
|
||||||
|
Plug 'hail2u/vim-css3-syntax', {'for': ['html','css']}
|
||||||
|
Plug 'gko/vim-coloresque'
|
||||||
|
Plug 'skammer/vim-css-color'
|
||||||
|
Plug 'tpope/vim-haml', {'for': 'html'}
|
||||||
|
Plug 'mattn/emmet-vim', {'for': 'html'}
|
||||||
|
|
||||||
|
" javascript
|
||||||
|
"" Javascript Bundle
|
||||||
|
Plug 'jelera/vim-javascript-syntax'
|
||||||
|
|
||||||
" latex
|
" latex
|
||||||
if has('nvim')
|
if has('nvim')
|
||||||
|
|
@ -43,45 +102,29 @@ if has('nvim')
|
||||||
let g:tex_conceal='abdmg'
|
let g:tex_conceal='abdmg'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" haskell
|
|
||||||
"" Haskell Bundle
|
|
||||||
Plug 'eagletmt/neco-ghc', {'for': 'haskell'}
|
|
||||||
Plug 'dag/vim2hs', {'for': 'haskell'}
|
|
||||||
Plug 'pbrisbin/vim-syntax-shakespeare', {'for': 'haskell'}
|
|
||||||
|
|
||||||
|
|
||||||
" html
|
|
||||||
"" HTML Bundle
|
|
||||||
Plug 'hail2u/vim-css3-syntax', {'for': ['html','css']}
|
|
||||||
Plug 'gko/vim-coloresque', {'for': ['html','css']}
|
|
||||||
Plug 'tpope/vim-haml', {'for': 'html'}
|
|
||||||
Plug 'mattn/emmet-vim', {'for': 'html'}
|
|
||||||
" python
|
" python
|
||||||
"" Python Bundle
|
|
||||||
Plug 'davidhalter/jedi-vim', {'for': 'python' }
|
Plug 'davidhalter/jedi-vim', {'for': 'python' }
|
||||||
Plug 'raimon49/requirements.txt.vim', {'for': 'requirements'}
|
Plug 'raimon49/requirements.txt.vim', {'for': 'requirements'}
|
||||||
|
|
||||||
|
" ruby
|
||||||
|
Plug 'tpope/vim-rails'
|
||||||
|
Plug 'tpope/vim-rake'
|
||||||
|
Plug 'tpope/vim-projectionist'
|
||||||
|
Plug 'thoughtbot/vim-rspec'
|
||||||
|
Plug 'ecomba/vim-ruby-refactoring', {'tag': 'main'}
|
||||||
|
|
||||||
" rust
|
" rust
|
||||||
" Vim racer
|
" Code completion for rust using Racer
|
||||||
Plug 'racer-rust/vim-racer', {'for': 'rust'}
|
Plug 'racer-rust/vim-racer', {'for': 'rust'}
|
||||||
|
|
||||||
" Rust.vim
|
|
||||||
Plug 'rust-lang/rust.vim', {'for': 'rust'}
|
Plug 'rust-lang/rust.vim', {'for': 'rust'}
|
||||||
|
|
||||||
" Async.vim
|
|
||||||
Plug 'prabirshrestha/async.vim'
|
|
||||||
|
|
||||||
" Vim lsp
|
|
||||||
Plug 'prabirshrestha/vim-lsp'
|
|
||||||
|
|
||||||
if has('nvim')
|
if has('nvim')
|
||||||
" Asyncomplete.vim
|
Plug 'simrat39/rust-tools.nvim', {'for': 'rust'}
|
||||||
Plug 'prabirshrestha/asyncomplete.vim'
|
Plug 'Saecki/crates.nvim', {'for': 'rust'}
|
||||||
|
|
||||||
" Asyncomplete lsp.vim
|
|
||||||
Plug 'prabirshrestha/asyncomplete-lsp.vim'
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" toml
|
||||||
|
Plug 'cespare/vim-toml'
|
||||||
|
|
||||||
" typescript
|
" typescript
|
||||||
Plug 'leafgarland/typescript-vim', {'for': 'typescript'}
|
Plug 'leafgarland/typescript-vim', {'for': 'typescript'}
|
||||||
Plug 'HerringtonDarkholme/yats.vim', {'for': 'typescript'}
|
Plug 'HerringtonDarkholme/yats.vim', {'for': 'typescript'}
|
||||||
|
|
@ -90,34 +133,43 @@ Plug 'HerringtonDarkholme/yats.vim', {'for': 'typescript'}
|
||||||
Plug 'tpope/vim-fugitive'
|
Plug 'tpope/vim-fugitive'
|
||||||
Plug 'tpope/vim-rhubarb' " required by fugitive to :Gbrowse
|
Plug 'tpope/vim-rhubarb' " required by fugitive to :Gbrowse
|
||||||
|
|
||||||
"Copy using OSC52
|
|
||||||
Plug 'ojroques/vim-oscyank', {'branch': 'main'}
|
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
|
||||||
" Run PlugInstall if there are missing plugins
|
"****************
|
||||||
|
" Plugin Setup
|
||||||
|
"****************
|
||||||
|
|
||||||
|
" Run PlugInstall Vif there are missing plugins
|
||||||
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
||||||
\| PlugInstall --sync | source $MYVIMRC
|
\| PlugInstall --sync | source $MYVIMRC
|
||||||
\| endif
|
\| endif
|
||||||
|
|
||||||
|
" OSCYank setup
|
||||||
if exists('##TextYankPost')
|
if exists('##TextYankPost')
|
||||||
autocmd TextYankPost * if v:event.operator is 'y' && v:event.regname is '' | execute 'OSCYank"' | endif
|
autocmd TextYankPost * if v:event.operator is 'y' && v:event.regname is '' | execute 'OSCYankVisual"' | endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
try
|
|
||||||
colorscheme wal
|
" status line
|
||||||
catch /^Vim\%((\a\+)\)\=:E185/
|
set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)\
|
||||||
try
|
if exists("*fugitive#statusline")
|
||||||
colorscheme catppuccin
|
set statusline+=%{fugitive#statusline()}
|
||||||
let g:lightline = {'colorscheme': 'catppuccin'}
|
endif
|
||||||
catch /^Vim\%((\a\+)\)\=:E185/
|
|
||||||
endtry
|
" Goyo Keybind
|
||||||
endtry
|
map <leader>g :Goyo \| set linebreak<CR>
|
||||||
"set notermguicolors
|
|
||||||
|
|
||||||
|
"****************
|
||||||
|
" Vim Setup
|
||||||
|
"****************
|
||||||
|
|
||||||
set nocompatible
|
set nocompatible
|
||||||
filetype on
|
filetype on
|
||||||
filetype plugin on
|
filetype plugin on
|
||||||
filetype indent on
|
filetype indent on
|
||||||
syntax on
|
syntax on " syntax higlighting
|
||||||
|
set hidden "enable hidden buffers
|
||||||
set noshowmode "conflicts with airline
|
set noshowmode "conflicts with airline
|
||||||
set mouse=a "mouse anywhere
|
set mouse=a "mouse anywhere
|
||||||
set number "line numbers
|
set number "line numbers
|
||||||
|
|
@ -127,13 +179,17 @@ set hlsearch "highlight search
|
||||||
set ignorecase "case insensitive?
|
set ignorecase "case insensitive?
|
||||||
set smartcase "only case insensitive for lowercase
|
set smartcase "only case insensitive for lowercase
|
||||||
set incsearch
|
set incsearch
|
||||||
|
|
||||||
set showmatch " show matching brace
|
set showmatch " show matching brace
|
||||||
|
" indentations
|
||||||
set autoindent "auto indent
|
set autoindent "auto indent
|
||||||
set smartindent "smart indent
|
set smartindent "smart indent
|
||||||
|
set expandtab
|
||||||
set tabstop=4
|
set tabstop=4
|
||||||
set shiftwidth=4
|
set shiftwidth=4
|
||||||
|
set softtabstop=0
|
||||||
|
|
||||||
set ruler
|
set ruler
|
||||||
set expandtab
|
|
||||||
" Autocomplete
|
" Autocomplete
|
||||||
set wildmode=longest:list:full
|
set wildmode=longest:list:full
|
||||||
set wildmenu
|
set wildmenu
|
||||||
|
|
@ -148,10 +204,14 @@ cmap w!! !sudo tee % > /dev/null
|
||||||
nnoremap n nzzzv
|
nnoremap n nzzzv
|
||||||
nnoremap N Nzzzv
|
nnoremap N Nzzzv
|
||||||
|
|
||||||
" status line
|
"" no one is really happy until you have this shortcuts
|
||||||
set statusline=%F%m%r%h%w%=(%{&ff}/%Y)\ (line\ %l\/%L,\ col\ %c)\
|
cnoreabbrev W! w!
|
||||||
if exists("*fugitive#statusline")
|
cnoreabbrev Q! q!
|
||||||
set statusline+=%{fugitive#statusline()}
|
cnoreabbrev Qall! qall!
|
||||||
endif
|
cnoreabbrev Wq wq
|
||||||
|
cnoreabbrev Wa wa
|
||||||
map <leader>g :Goyo \| set linebreak<CR>
|
cnoreabbrev wQ wq
|
||||||
|
cnoreabbrev WQ wq
|
||||||
|
cnoreabbrev W w
|
||||||
|
cnoreabbrev Q q
|
||||||
|
cnoreabbrev Qall qall
|
||||||
2
private_dot_config/xdg-desktop-portal/portals.conf
Normal file
2
private_dot_config/xdg-desktop-portal/portals.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
[preferred]
|
||||||
|
default=gtk
|
||||||
6
private_dot_config/xdg-desktop-portal/sway-portals.conf
Normal file
6
private_dot_config/xdg-desktop-portal/sway-portals.conf
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
[preferred]
|
||||||
|
# use xdg-desktop-portal-gtk for every portal interface
|
||||||
|
default=wlr;gtk
|
||||||
|
# except for the xdg-desktop-portal-wlr supplied interfaces
|
||||||
|
org.freedesktop.impl.portal.Screencast=wlr
|
||||||
|
org.freedesktop.impl.portal.Screenshot=wlr
|
||||||
|
|
@ -222,7 +222,7 @@ themes {
|
||||||
}
|
}
|
||||||
base16 {
|
base16 {
|
||||||
fg 15
|
fg 15
|
||||||
bg 8
|
bg 0
|
||||||
red 9
|
red 9
|
||||||
green 10
|
green 10
|
||||||
yellow 11
|
yellow 11
|
||||||
|
|
@ -230,7 +230,7 @@ themes {
|
||||||
magenta 13
|
magenta 13
|
||||||
orange 16
|
orange 16
|
||||||
cyan 14
|
cyan 14
|
||||||
black 0
|
black 8
|
||||||
white 15
|
white 15
|
||||||
}
|
}
|
||||||
// Catppuccin Theme:
|
// Catppuccin Theme:
|
||||||
|
|
@ -292,12 +292,25 @@ themes {
|
||||||
white "#cdd6f4"
|
white "#cdd6f4"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lunar-witch {
|
||||||
|
fg "#EBF6FF"
|
||||||
|
bg "#010206"
|
||||||
|
red "#A04558"
|
||||||
|
green "#6FA47E"
|
||||||
|
yellow "#CCB700"
|
||||||
|
blue "#334773"
|
||||||
|
magenta "#A34A76"
|
||||||
|
orange "#F4B766"
|
||||||
|
cyan "#2A97B1"
|
||||||
|
black "#1E1B30"
|
||||||
|
white "#BFBFC0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Choose the theme that is specified in the themes section.
|
// Choose the theme that is specified in the themes section.
|
||||||
// Default: default
|
// Default: default
|
||||||
//
|
//
|
||||||
theme "base16"
|
theme "lunar-witch"
|
||||||
|
|
||||||
// The name of the default layout to load on startup
|
// The name of the default layout to load on startup
|
||||||
// Default: "default"
|
// Default: "default"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue