Compare commits

...

56 commits

Author SHA1 Message Date
Mira
f853ad7082 remove krita config, add jj config, update git config, move xonshrc to xdg dir, update gtk settings? remove dunstrc, add btop conf, update ghostty conf, add ghostty shaders, add hyfetch conf, remove glow conf, add mime apps, stub out jj stuff for starshup, add authorized_keys and zathura config 2025-12-21 10:18:06 -05:00
Mira
87ba144eb2 changed git 2025-12-21 10:18:06 -05:00
Mira
2fe9b89540 (mellinoe) sync 2025-12-21 10:18:05 -05:00
Mira
3f131b49a9 ghostty, sway keybinds 2025-12-21 10:18:05 -05:00
Mira
1a5097b94f remove nvim config, switch fonts to Berkeley Mono, remove swhkd, add xonsh and ghostty 2025-12-21 10:18:05 -05:00
Mira
f14d6e1570 (mellinoe) sync 2025-12-21 10:18:05 -05:00
Mira
61020b9be8 sync from auxin 2025-12-21 10:18:05 -05:00
Mira
a3a74c2823 sync from mellinoe 2025-12-21 10:18:05 -05:00
Mira
3b9e139a7d sync from auxin 2025-12-21 10:18:05 -05:00
Mira
d500b3291a adding mellinoe stuff 2025-12-21 10:18:05 -05:00
Mira
3137f17a47 updates 2025-12-21 10:18:05 -05:00
Mira
1fc0c632ed updates 2025-12-21 10:18:05 -05:00
Mira
e5463b53b4 updates 2025-12-21 10:18:05 -05:00
Mira
9ad0531aef updates 2025-12-21 10:18:05 -05:00
Mira
3354e3ab50 updates 2025-12-21 10:18:05 -05:00
Mira
a69dfc23d7 updates 2025-12-21 10:18:05 -05:00
Mira
7949054550 add tmux config 2025-12-21 10:18:05 -05:00
Mira
97e38395ad fix go path, migrate alacritty conf to toml 2025-12-21 10:18:05 -05:00
Mira
fc54f268b7 update rofi, sway config 2025-12-21 10:18:05 -05:00
Mira
a6289318cf edit tmux launching, fix nvim config on linux 2025-12-21 10:18:05 -05:00
Mira
3de861c2a0 update theme files 2025-12-21 10:18:05 -05:00
Mira
3fd357bd51 update gitconfig, nvim plugins 2025-12-21 10:18:05 -05:00
Mira
a2a0d9b3ae switch from zellij to tmux 2025-12-21 10:18:04 -05:00
Mira
6be036dd32 fix df? 2025-12-21 10:18:04 -05:00
Mira
7c54489c73 changes 2025-12-21 10:18:04 -05:00
Mira
0d9bc09269 changes 2025-12-21 10:18:04 -05:00
Mira
a3a743224b Update executable_dot_aliasrc 2025-12-21 10:18:04 -05:00
Mira
d6df3836cd update nvim config 2025-12-21 10:18:04 -05:00
Mira
6578c0a662 update neovim 2025-12-21 10:18:04 -05:00
Mira
20076725f1 update starship config, nvim 2025-12-21 10:18:04 -05:00
Mira
5d303dd787 update nvim 2025-12-21 10:18:04 -05:00
Mira
52cee79606 updates 2025-12-21 10:18:04 -05:00
Mira
96672e08ee updates 2025-12-21 10:18:04 -05:00
Mira
0ca179e015 updates 2025-12-21 10:18:04 -05:00
Mira
31603b901c updates 2025-12-21 10:18:04 -05:00
Mira
e6d257ed7c updates 2025-12-21 10:18:04 -05:00
Mira
f2576ad28b add swhkd 2025-12-21 10:18:04 -05:00
Mira
e851d02c88 more updates 2025-12-21 10:18:04 -05:00
Mira
7e317b5509 begin moving to sway + alacritty 2025-12-21 10:18:04 -05:00
Mira
c0dd3ff193 ignore .config/nvim on windows 2025-12-21 10:18:04 -05:00
Mira
d3e1d0a397 fix submodules 2025-12-21 10:18:04 -05:00
Mira
b21f261bdd update starship toml to add alpine icon 2025-12-21 10:18:04 -05:00
Mira
d6823166fb update nvim config 2025-12-21 10:18:03 -05:00
Mira
b9ad0de235 update windows ignorefiles, starship toml 2025-12-21 10:18:03 -05:00
Mira
9c3fbd16bb update vimrc 2025-12-21 10:18:03 -05:00
Mira
c2e2372d08 updates 2025-12-21 10:18:03 -05:00
Mira
6e0fd618e1 fix zsh issues 2025-12-21 10:18:03 -05:00
Mira
56f085fe21 add autosetupremote 2025-12-21 10:18:03 -05:00
Mira
09f8013d2b fix zsh histfile, add venv to starship 2025-12-21 10:18:03 -05:00
Mira
ab5065d4cc fix gpg?, neovim 2025-12-21 10:18:03 -05:00
Mira
5001105359 updates 2025-12-21 10:18:03 -05:00
Mira
2e32091c05 updates 2025-12-21 10:18:03 -05:00
Mira
6ee8c6d2c1 changes 2025-12-21 10:18:03 -05:00
Mira
09f6a498e2 Update executable_dot_bashrc 2025-12-21 10:18:03 -05:00
Mira
6cd96889fc Update executable_dot_zshrc 2025-12-21 10:18:03 -05:00
Mira
99b86d511c fix fastfetch check, undelay zoxide 2025-12-21 10:18:03 -05:00
74 changed files with 6249 additions and 379 deletions

View file

@ -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
View 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

@ -0,0 +1 @@
Subproject commit 23c86b37763f3662b40cbce638bacc8791894c41

View file

@ -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 }}

164
dot_envrc Normal file
View file

@ -0,0 +1,164 @@
#!/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 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 DOTNET_CLI_HOME="$XDG_DATA_HOME"/dotnet
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_CACHE="$XDG_CACHE_HOME"/npm
export NPM_CONFIG_INIT_MODULE="$XDG_CONFIG_HOME"/npm/config/npm-init.js
export NPM_CONFIG_PREFIX="$XDG_DATA_HOME/npm-global"
export NPM_CONFIG_TMP="$XDG_RUNTIME_DIR"/npm
export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
export PYENV_ROOT="$XDG_DATA_HOME/pyenv"
export PYTHONSTARTUP="$HOME"/python/pythonrc
export RUFF_CACHE_DIR="$XDG_CACHE_HOME/ruff"
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 XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc
export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java -Djavafx.cachedir=${XDG_CACHE_HOME}/openjfx"
export N_PREFIX="$HOME/.local"
###############
# 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
# swiftly
# Added by swiftly
. "/home/mira/.local/share/swiftly/env.sh"
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"

View file

@ -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

View 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

View file

@ -1,2 +0,0 @@
[install]
root = "/home/mira/.local/"

View file

@ -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"))}}

View file

@ -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

5
dot_profile Normal file
View file

@ -0,0 +1,5 @@
. "$HOME"/.envrc
if [ -f "$HOME/.rye/env" ]; then
. "$HOME/.rye/env"
fi

View file

@ -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"
}

View file

@ -1 +0,0 @@
[[ -f ~/.bashrc ]] && . ~/.bashrc

View file

@ -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

View file

@ -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"

View file

@ -6,4 +6,4 @@
export ZSH_DISABLE_COMPFIX=true export ZSH_DISABLE_COMPFIX=true
# Load .profile # Load .profile
[[ -f ~/.env ]] && . ~/.env [[ -f ~/.profile ]] && . ~/.profile

View file

@ -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,56 +59,64 @@ 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
if checkCommand sheldon; then
mkdir -p ~/.config/sheldon mkdir -p ~/.config/sheldon
touch ~/.config/sheldon/plugins.toml touch ~/.config/sheldon/plugins.toml
if checkCommand sheldon; then
eval "$(sheldon -q source)"; eval "$(sheldon -q source)";
elif checkCommand brew; then
brew install sheldon;
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)
@ -123,36 +129,45 @@ 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() {
# Set up broot if installed (a nicer tree, probably has other cool stuff I haven't looked at yet) local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
[ -e "$HOME"/.config/broot/launcher/bash/br ] && zsh-defer -t 15 eval "$(broot --print-shell-function $(basename $0))" yazi "$@" --cwd-file="$tmp"
# Set aliases if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
[ -f "$HOME/.aliasrc" ] && source "$HOME/.aliasrc" # >/dev/null 2>&1 &; cd -- "$cwd"
fi
if checkCommand hyfetch; then rm -f -- "$tmp"
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"

View file

@ -0,0 +1,257 @@
#? Config file for btop v. 1.4.5
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "Default"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = True
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = False
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = False
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
graph_symbol_gpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "memory"
#* Reverse sorting order, True or False.
proc_reversed = False
#* Show processes as a tree.
proc_tree = True
#* Use the cpu graph colors in the process list.
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = True
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = True
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
#* Show cpu graph for each process.
proc_cpu_graphs = True
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = True
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "Auto"
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "Auto"
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
show_gpu_info = "Auto"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = True
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
show_cpu_watts = True
#* Show cpu temperature.
check_temp = True
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
#* Show CPU frequency.
show_cpu_freq = True
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = False
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
#* If swap memory should be shown in memory box.
show_swap = True
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
#* If mem box should be split to also show disks info.
show_disks = True
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = True
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = False
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = False
#* Starts with the Network Interface specified here.
net_iface = ""
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
base_10_bitrate = "Auto"
#* Show battery stats in top right if battery is present.
show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Show power stats of battery next to charge indicator.
show_battery_watts = True
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = True
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
rsmi_measure_pcie_speeds = True
#* Horizontally mirror the GPU graph.
gpu_mirror_graph = True
#* Custom gpu0 model name, empty string to disable.
custom_gpu_name0 = ""
#* Custom gpu1 model name, empty string to disable.
custom_gpu_name1 = ""
#* Custom gpu2 model name, empty string to disable.
custom_gpu_name2 = ""
#* Custom gpu3 model name, empty string to disable.
custom_gpu_name3 = ""
#* Custom gpu4 model name, empty string to disable.
custom_gpu_name4 = ""
#* Custom gpu5 model name, empty string to disable.
custom_gpu_name5 = ""

View file

@ -0,0 +1,3 @@
[install]
root = "$HOME/.local/bin"

View file

@ -14,5 +14,4 @@ recipients = [
"6A10DF52E755E8174CD5C4C18ED045D80561353B", "6A10DF52E755E8174CD5C4C18ED045D80561353B",
"30FA9C303E45B42AA688839C557DE35A80C4461F" "30FA9C303E45B42AA688839C557DE35A80C4461F"
] ]
args = ["-v","--pinentry=loopback"]

View file

@ -0,0 +1,20 @@
[user]
email = {{ .email | quote }}
name = {{ .name | quote }}
[ui]
conflict_style = "git"
diff-formatter = ["difft", "--color=always", "$left", "$right"]
diff-editor = "meld"
merge-editor = ["meld", "$left", "$base", "$right", "-o", "$output"]
[merge-tools.meld]
program = "meld" # Defaults to the name of the tool if not specified
edit-args = ["--newtab", "$left", "$right"]
# [signing]
# behavior = "own"
# backend = "gpg"
[remotes.origin]
auto-track-bookmarks = "glob:*"

@ -0,0 +1 @@
Subproject commit 9d66d81da8d521941a349da26457f4965fd6fcbd

View file

@ -0,0 +1,42 @@
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
desktop-notifications = true
window-padding-x = 4,2
window-padding-y = 0
# sigh, do I really want this
minimum-contrast=1.3
shell-integration-features = ssh-terminfo
keybind = unconsumed:ctrl+shift+p=toggle_command_palette
custom-shader = ./trail.glsl
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=#74689F
palette = 9=#ed8096
palette = 10=#a0dc9b
palette = 11=#c1b254
palette = 12=#445f9b
palette = 13=#ee5e95
palette = 14=#5bcefa
palette = 15=#c1c7db

View file

@ -0,0 +1,143 @@
// Based on https://gist.github.com/chardskarth/95874c54e29da6b5a36ab7b50ae2d088
float ease(float x) {
return pow(1.0 - x, 10.0);
}
float sdBox(in vec2 p, in vec2 xy, in vec2 b)
{
vec2 d = abs(p - xy) - b;
return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0);
}
float getSdfRectangle(in vec2 p, in vec2 xy, in vec2 b)
{
vec2 d = abs(p - xy) - b;
return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0);
}
// Based on Inigo Quilez's 2D distance functions article: https://iquilezles.org/articles/distfunctions2d/
// Potencially optimized by eliminating conditionals and loops to enhance performance and reduce branching
float seg(in vec2 p, in vec2 a, in vec2 b, inout float s, float d) {
vec2 e = b - a;
vec2 w = p - a;
vec2 proj = a + e * clamp(dot(w, e) / dot(e, e), 0.0, 1.0);
float segd = dot(p - proj, p - proj);
d = min(d, segd);
float c0 = step(0.0, p.y - a.y);
float c1 = 1.0 - step(0.0, p.y - b.y);
float c2 = 1.0 - step(0.0, e.x * w.y - e.y * w.x);
float allCond = c0 * c1 * c2;
float noneCond = (1.0 - c0) * (1.0 - c1) * (1.0 - c2);
float flip = mix(1.0, -1.0, step(0.5, allCond + noneCond));
s *= flip;
return d;
}
float getSdfParallelogram(in vec2 p, in vec2 v0, in vec2 v1, in vec2 v2, in vec2 v3) {
float s = 1.0;
float d = dot(p - v0, p - v0);
d = seg(p, v0, v3, s, d);
d = seg(p, v1, v0, s, d);
d = seg(p, v2, v1, s, d);
d = seg(p, v3, v2, s, d);
return s * sqrt(d);
}
vec2 normalize(vec2 value, float isPosition) {
return (value * 2.0 - (iResolution.xy * isPosition)) / iResolution.y;
}
float blend(float t)
{
float sqr = t * t;
return sqr / (2.0 * (sqr - t) + 1.0);
}
float antialising(float distance) {
return 1. - smoothstep(0., normalize(vec2(2., 2.), 0.).x, distance);
}
float determineStartVertexFactor(vec2 a, vec2 b) {
// Conditions using step
float condition1 = step(b.x, a.x) * step(a.y, b.y); // a.x < b.x && a.y > b.y
float condition2 = step(a.x, b.x) * step(b.y, a.y); // a.x > b.x && a.y < b.y
// If neither condition is met, return 1 (else case)
return 1.0 - max(condition1, condition2);
}
vec2 getRectangleCenter(vec4 rectangle) {
return vec2(rectangle.x + (rectangle.z / 2.), rectangle.y - (rectangle.w / 2.));
}
const vec4 TRAIL_COLOR = vec4(0.117, 0.105, 0.188, 1.0); // yellow
const vec4 CURRENT_CURSOR_COLOR = TRAIL_COLOR;
const vec4 PREVIOUS_CURSOR_COLOR = TRAIL_COLOR;
const vec4 TRAIL_COLOR_ACCENT = vec4(0.313, 0.270, 0.450, 1.0);//(0.454, 0.407, 0.623, 1.0); // red-orange
const float DURATION = .5;
const float OPACITY = .2;
// Don't draw trail within that distance * cursor size.
// This prevents trails from appearing when typing.
const float DRAW_THRESHOLD = 1.5;
// Don't draw trails within the same line: same line jumps are usually where
// people expect them.
const bool HIDE_TRAILS_ON_THE_SAME_LINE = false;
void mainImage(out vec4 fragColor, in vec2 fragCoord)
{
#if !defined(WEB)
fragColor = texture(iChannel0, fragCoord.xy / iResolution.xy);
#endif
//Normalization for fragCoord to a space of -1 to 1;
vec2 vu = normalize(fragCoord, 1.);
vec2 offsetFactor = vec2(-.5, 0.5);
//Normalization for cursor position and size;
//cursor xy has the postion in a space of -1 to 1;
//zw has the width and height
vec4 currentCursor = vec4(normalize(iCurrentCursor.xy, 1.), normalize(iCurrentCursor.zw, 0.));
vec4 previousCursor = vec4(normalize(iPreviousCursor.xy, 1.), normalize(iPreviousCursor.zw, 0.));
//When drawing a parellelogram between cursors for the trail i need to determine where to start at the top-left or top-right vertex of the cursor
float vertexFactor = determineStartVertexFactor(currentCursor.xy, previousCursor.xy);
float invertedVertexFactor = 1.0 - vertexFactor;
//Set every vertex of my parellogram
vec2 v0 = vec2(currentCursor.x + currentCursor.z * vertexFactor, currentCursor.y - currentCursor.w);
vec2 v1 = vec2(currentCursor.x + currentCursor.z * invertedVertexFactor, currentCursor.y);
vec2 v2 = vec2(previousCursor.x + currentCursor.z * invertedVertexFactor, previousCursor.y);
vec2 v3 = vec2(previousCursor.x + currentCursor.z * vertexFactor, previousCursor.y - previousCursor.w);
vec4 newColor = vec4(fragColor);
float progress = blend(clamp((iTime - iTimeCursorChange) / DURATION, 0.0, 1));
float easedProgress = ease(progress);
//Distance between cursors determine the total length of the parallelogram;
vec2 centerCC = getRectangleCenter(currentCursor);
vec2 centerCP = getRectangleCenter(previousCursor);
float cursorSize = max(currentCursor.z, currentCursor.w);
float trailThreshold = DRAW_THRESHOLD * cursorSize;
float lineLength = distance(centerCC, centerCP);
//
bool isFarEnough = lineLength > trailThreshold;
bool isOnSeparateLine = HIDE_TRAILS_ON_THE_SAME_LINE ? currentCursor.y != previousCursor.y : true;
if (isFarEnough && isOnSeparateLine) {
float distanceToEnd = distance(vu.xy, centerCC);
float alphaModifier = distanceToEnd / (lineLength * (easedProgress));
if (alphaModifier > 1.0) { // this change fixed it for me.
alphaModifier = 1.0;
}
float sdfCursor = getSdfRectangle(vu, currentCursor.xy - (currentCursor.zw * offsetFactor), currentCursor.zw * 0.5);
float sdfTrail = getSdfParallelogram(vu, v0, v1, v2, v3);
newColor = mix(newColor, TRAIL_COLOR_ACCENT, 1.0 - smoothstep(sdfTrail, -0.01, 0.001));
newColor = mix(newColor, TRAIL_COLOR, antialising(sdfTrail));
newColor = mix(fragColor, newColor, 1.0 - alphaModifier);
fragColor = mix(newColor, fragColor, step(sdfCursor, 0));
}
}

View file

@ -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

View file

@ -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
@ -39,7 +52,7 @@ whitespace = fix
autocorrect = 50 autocorrect = 50
[safe] [safe]
directory = / directory = /etc/nixos
[rebase] [rebase]
autostash = true autostash = true
@ -50,3 +63,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

View file

@ -0,0 +1,78 @@
@define-color accent_color #5078a4;
@define-color accent_bg_color #0b5393;
@define-color accent_fg_color #ebf6ff;
@define-color destructive_color #f5a9b8;
@define-color destructive_bg_color #a04558;
@define-color destructive_fg_color #ebf6ff;
@define-color success_color #98db95;
@define-color success_bg_color #6fa47e;
@define-color success_fg_color #ebf6ff;
@define-color warning_color #ffe70a;
@define-color warning_bg_color #ccb700;
@define-color warning_fg_color rgba(1,2,6,0.8);
@define-color error_color #f5a9b8;
@define-color error_bg_color #a04558;
@define-color error_fg_color #ebf6ff;
@define-color window_bg_color #1e1b30;
@define-color window_fg_color #ebf6ff;
@define-color view_bg_color #010206;
@define-color view_fg_color #ebf6ff;
@define-color headerbar_bg_color #010206;
@define-color headerbar_fg_color #ebf6ff;
@define-color headerbar_border_color #ebf6ff;
@define-color headerbar_backdrop_color @window_bg_color;
@define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
@define-color card_bg_color rgba(255, 255, 255, 0.08);
@define-color card_fg_color #ebf6ff;
@define-color card_shade_color rgba(0, 0, 0, 0.36);
@define-color dialog_bg_color #010206;
@define-color dialog_fg_color #ebf6ff;
@define-color popover_bg_color #010206;
@define-color popover_fg_color #ebf6ff;
@define-color shade_color rgba(0, 0, 0, 0.36);
@define-color scrollbar_outline_color rgba(0, 0, 0, 0.5);
@define-color blue_1 #99c1f1;
@define-color blue_2 #62a0ea;
@define-color blue_3 #3584e4;
@define-color blue_4 #1c71d8;
@define-color blue_5 #1a5fb4;
@define-color green_1 #8ff0a4;
@define-color green_2 #57e389;
@define-color green_3 #33d17a;
@define-color green_4 #2ec27e;
@define-color green_5 #26a269;
@define-color yellow_1 #f9f06b;
@define-color yellow_2 #f8e45c;
@define-color yellow_3 #f6d32d;
@define-color yellow_4 #f5c211;
@define-color yellow_5 #e5a50a;
@define-color orange_1 #ffbe6f;
@define-color orange_2 #ffa348;
@define-color orange_3 #ff7800;
@define-color orange_4 #e66100;
@define-color orange_5 #c64600;
@define-color red_1 #f66151;
@define-color red_2 #ed333b;
@define-color red_3 #e01b24;
@define-color red_4 #c01c28;
@define-color red_5 #a51d2d;
@define-color purple_1 #dc8add;
@define-color purple_2 #c061cb;
@define-color purple_3 #9141ac;
@define-color purple_4 #813d9c;
@define-color purple_5 #613583;
@define-color brown_1 #cdab8f;
@define-color brown_2 #b5835a;
@define-color brown_3 #986a44;
@define-color brown_4 #865e3c;
@define-color brown_5 #63452c;
@define-color light_1 #ffffff;
@define-color light_2 #f6f5f4;
@define-color light_3 #deddda;
@define-color light_4 #c0bfbc;
@define-color light_5 #9a9996;
@define-color dark_1 #77767b;
@define-color dark_2 #5e5c64;
@define-color dark_3 #3d3846;
@define-color dark_4 #241f31;
@define-color dark_5 #000000;

View file

@ -0,0 +1,2 @@
[Settings]
gtk-application-prefer-dark-theme=0

View file

@ -0,0 +1,16 @@
{
"preset": "transgender",
"mode": "rgb",
"light_dark": "dark",
"lightness": 0.65,
"color_align": {
"mode": "horizontal",
"custom_colors": [],
"fore_back": null
},
"backend": "neofetch",
"args": null,
"distro": null,
"pride_month_shown": [],
"pride_month_disable": false
}

View 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"

View 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

View 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 windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows 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

View 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
}
}

View 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

View 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

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
#!/bin/sh
if [ -n "$FIFO_UEBERZUG" ]; then
printf '{"action": "remove", "identifier": "preview"}\n' >"$FIFO_UEBERZUG"
fi

View 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

View 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

View 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

View 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

View 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

View 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')

View 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
}
})
}

View 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
)
}
}}

View 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
}

View 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+.

View file

@ -1,3 +0,0 @@
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath=&runtimepath
source ~/.vimrc

View 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

View 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"

View file

@ -0,0 +1,78 @@
@define-color accent_color #5078a4;
@define-color accent_bg_color #0b5393;
@define-color accent_fg_color #ebf6ff;
@define-color destructive_color #f5a9b8;
@define-color destructive_bg_color #a04558;
@define-color destructive_fg_color #ebf6ff;
@define-color success_color #98db95;
@define-color success_bg_color #6fa47e;
@define-color success_fg_color #ebf6ff;
@define-color warning_color #ffe70a;
@define-color warning_bg_color #ccb700;
@define-color warning_fg_color rgba(1,2,6,0.8);
@define-color error_color #f5a9b8;
@define-color error_bg_color #a04558;
@define-color error_fg_color #ebf6ff;
@define-color window_bg_color #1e1b30;
@define-color window_fg_color #ebf6ff;
@define-color view_bg_color #010206;
@define-color view_fg_color #ebf6ff;
@define-color headerbar_bg_color #010206;
@define-color headerbar_fg_color #ebf6ff;
@define-color headerbar_border_color #ebf6ff;
@define-color headerbar_backdrop_color @window_bg_color;
@define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
@define-color card_bg_color rgba(255, 255, 255, 0.08);
@define-color card_fg_color #ebf6ff;
@define-color card_shade_color rgba(0, 0, 0, 0.36);
@define-color dialog_bg_color #010206;
@define-color dialog_fg_color #ebf6ff;
@define-color popover_bg_color #010206;
@define-color popover_fg_color #ebf6ff;
@define-color shade_color rgba(0, 0, 0, 0.36);
@define-color scrollbar_outline_color rgba(0, 0, 0, 0.5);
@define-color blue_1 #99c1f1;
@define-color blue_2 #62a0ea;
@define-color blue_3 #3584e4;
@define-color blue_4 #1c71d8;
@define-color blue_5 #1a5fb4;
@define-color green_1 #8ff0a4;
@define-color green_2 #57e389;
@define-color green_3 #33d17a;
@define-color green_4 #2ec27e;
@define-color green_5 #26a269;
@define-color yellow_1 #f9f06b;
@define-color yellow_2 #f8e45c;
@define-color yellow_3 #f6d32d;
@define-color yellow_4 #f5c211;
@define-color yellow_5 #e5a50a;
@define-color orange_1 #ffbe6f;
@define-color orange_2 #ffa348;
@define-color orange_3 #ff7800;
@define-color orange_4 #e66100;
@define-color orange_5 #c64600;
@define-color red_1 #f66151;
@define-color red_2 #ed333b;
@define-color red_3 #e01b24;
@define-color red_4 #c01c28;
@define-color red_5 #a51d2d;
@define-color purple_1 #dc8add;
@define-color purple_2 #c061cb;
@define-color purple_3 #9141ac;
@define-color purple_4 #813d9c;
@define-color purple_5 #613583;
@define-color brown_1 #cdab8f;
@define-color brown_2 #b5835a;
@define-color brown_3 #986a44;
@define-color brown_4 #865e3c;
@define-color brown_5 #63452c;
@define-color light_1 #ffffff;
@define-color light_2 #f6f5f4;
@define-color light_3 #deddda;
@define-color light_4 #c0bfbc;
@define-color light_5 #9a9996;
@define-color dark_1 #77767b;
@define-color dark_2 #5e5c64;
@define-color dark_3 #3d3846;
@define-color dark_4 #241f31;
@define-color dark_5 #000000;

View file

@ -0,0 +1,17 @@
[Settings]
gtk-theme-name=adw-gtk3-dark
gtk-icon-theme-name=Adwaita
gtk-font-name=Berkeley Mono 12
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=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium
gtk-xft-rgba=vrgb
gtk-application-prefer-dark-theme=1

View file

@ -0,0 +1,35 @@
[Added Associations]
x-scheme-handler/settings=io.elementary.switchboard.desktop;
application/x-xpinstall=org.gnome.FileRoller.desktop;
application/json=nvim.desktop;
x-scheme-handler/http=userapp-Firefox-KMQIN2.desktop;
x-scheme-handler/https=userapp-Firefox-KMQIN2.desktop;
text/html=userapp-Firefox-KMQIN2.desktop;
application/x-bittorrent=transmission-gtk.desktop;org.gnome.gedit.desktop;nvim.desktop;
video/mp4=vlc.desktop;org.gnome.Totem.desktop;
application/x-x509-ca-cert=org.gnome.gedit.desktop;
application/pgp-keys=nvim.desktop;
image/jpeg=qimgv.desktop;org.gnome.Shotwell-Viewer.desktop;sxiv.desktop;org.gimp.GIMP.desktop;org.gnome.eog.desktop;
image/webp=org.gimp.GIMP.desktop;
audio/mpeg=vlc.desktop;
image/x-canon-cr2=org.gnome.Shotwell-Viewer.desktop;
image/svg+xml=org.inkscape.Inkscape.desktop;
[Default Applications]
x-scheme-handler/settings=io.elementary.switchboard.desktop
x-scheme-handler/http=userapp-Firefox-KMQIN2.desktop
x-scheme-handler/https=userapp-Firefox-KMQIN2.desktop
x-scheme-handler/chrome=userapp-Firefox-KMQIN2.desktop
text/html=userapp-Firefox-KMQIN2.desktop
application/x-extension-htm=userapp-Firefox-KMQIN2.desktop
application/x-extension-html=userapp-Firefox-KMQIN2.desktop
application/x-extension-shtml=userapp-Firefox-KMQIN2.desktop
application/xhtml+xml=userapp-Firefox-KMQIN2.desktop
application/x-extension-xhtml=userapp-Firefox-KMQIN2.desktop
application/x-extension-xht=userapp-Firefox-KMQIN2.desktop
x-scheme-handler/about=firefox_firefox.desktop
x-scheme-handler/unknown=firefox_firefox.desktop
x-scheme-handler/prusaslicer=PrusaSlicerURLProtocol.desktop
application/pdf=org.pwmt.zathura.desktop
font/ttf=org.gnome.font-viewer.desktop
font/otf=org.gnome.font-viewer.desktop

View 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/"

View 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";
}
}

View 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;
}

View file

@ -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"]

View file

@ -9,12 +9,14 @@ $username\
[](bg:bright-red fg:bright-purple)\ [](bg:bright-red fg:bright-purple)\
$directory\ $directory\
[](fg:bright-red bg:bright-blue)\ [](fg:bright-red bg:bright-blue)\
$git_branch\ ${custom.jj}\
$git_status\ ${git_branch}\
$git_state\ ${git_status}\
${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\
@ -23,6 +25,7 @@ $rust\
$docker_context\ $docker_context\
[](fg:bright-green bg:bright-blue)\ [](fg:bright-green bg:bright-blue)\
$time\ $time\
${custom.foo}\
[ ](fg:bright-blue)\ [ ](fg:bright-blue)\
""" """
@ -61,20 +64,22 @@ CentOS = " "
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.
@ -91,7 +96,6 @@ symbol = " "
style = "bg:bright-green fg:black" style = "bg:bright-green fg:black"
format = '[ $symbol $context ]($style) $path' format = '[ $symbol $context ]($style) $path'
[git_branch] [git_branch]
symbol = "" symbol = ""
style = "bg:bright-blue fg:black" style = "bg:bright-blue fg:black"
@ -105,7 +109,16 @@ 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)'
@ -114,21 +127,27 @@ format = '[\($state( $progress_current of $progress_total)\)]($style) '
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"
@ -144,6 +163,8 @@ format = '[ $time ]($style)'
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
@ -152,12 +173,11 @@ disabled = false
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)"
@ -165,3 +185,59 @@ format = "[ $symbol $status ]($style)"
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)"
# custom module for jj status
[custom.jj]
description = "The current jj status"
when = "jj --ignore-working-copy root"
symbol = "🥋 "
shell = ["starship-jj", "starship", "prompt", "--ignore-working-copy"]
disabled = true
# command = '''
# jj log --revisions @ --no-graph --ignore-working-copy --color always --limit 1 --template '
# separate(" ",
# change_id.shortest(4),
# bookmarks,
# "|",
# concat(
# if(conflict, "💥"),
# if(divergent, "🚧"),
# if(hidden, "👻"),
# if(immutable, "🔒"),
# ),
# raw_escape_sequence("\x1b[1;32m") ++ if(empty, "(empty)"),
# raw_escape_sequence("\x1b[1;32m") ++ coalesce(
# truncate_end(29, description.first_line(), "…"),
# "(no description set)",
# ) ++ raw_escape_sequence("\x1b[0m"),
# )
# '
# '''
# [custom.git_status]
# ignore_timeout = true
# when = "bash -c'starship-jj --ignore-working-copy root'"
# command = "starship module git_status"
# description = "Only show git_status if we're not in a jj repo"
# style = "bg:bright-blue fg:black"
# format = 'jjs: [$output ]($style)'
#
#
# [custom.git_branch]
# command = "starship module git_branch"
# when = "bash -c'jj --ignore-working-copy root'"
# style = "bg:bright-blue fg:black"
# format = 'jjb: [$output ]($style)'
#
# [custom.git_state]
# command = "starship module git_state"
# when = "bash -c'jj --ignore-working-copy root'"
# style = "bg:bright-blue fg:black"
# format = 'jjst: [$output ]($style)'

View 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

View 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

View 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 windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows 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

View 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
}
}

View 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

View 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

View 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

View file

@ -0,0 +1 @@
en_US

View 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

View file

@ -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

View file

@ -0,0 +1,2 @@
[preferred]
default=gtk

View 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

View 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

View file

@ -0,0 +1,40 @@
set notification-error-bg "rgba(30,27,48,1)" # bg
set notification-error-fg "rgba(237,128,150,1)" # bright:red
set notification-warning-bg "rgba(30,27,48,1)" # bg
set notification-warning-fg "rgba(193,178,84,1)" # bright:yellow
set notification-bg "rgba(30,27,48,1)" # bg
set notification-fg "rgba(160,220,155,1)" # bright:green
set completion-bg "rgba(80,69,115,1)" # bg2
set completion-fg "rgba(235,246,255,1)" # fg
set completion-group-bg "rgba(30,27,48,1)" # bg1
set completion-group-fg "rgba(116,110,149,1)" # gray
set completion-highlight-bg "rgba(68,95,155,1)" # bright:blue
set completion-highlight-fg "rgba(80,69,115,1)" # bg2
# Define the color in index mode
set index-bg "rgba(80,69,115,1)" # bg2
set index-fg "rgba(235,246,255,1)" # fg
set index-active-bg "rgba(68,95,155,1)" # bright:blue
set index-active-fg "rgba(80,69,115,1)" # bg2
set inputbar-bg "rgba(30,27,48,1)" # bg
set inputbar-fg "rgba(235,246,255,1)" # fg
set statusbar-bg "rgba(80,69,115,1)" # bg2
set statusbar-fg "rgba(235,246,255,1)" # fg
set highlight-color "rgba(193,178,84,0.5)" # bright:yellow
set highlight-active-color "rgba(234,169,80,0.5)" # bright:orange
set default-bg "rgba(30,27,48,1)" # bg
set default-fg "rgba(235,246,255,1)" # fg
set render-loading true
set render-loading-bg "rgba(30,27,48,1)" # bg
set render-loading-fg "rgba(235,246,255,1)" # fg
# Recolor book content's color
set recolor-lightcolor "rgba(30,27,48,1)" # bg
set recolor-darkcolor "rgba(235,246,255,1)" # fg
set recolor "true"
set recolor-keephue "true" # keep original color

View file

@ -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"

View file

@ -0,0 +1,12 @@
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIMggnmTj7KL409V2mtbPgKERbmyJAeCGBcyzxWW+arRZAAAABHNzaDo= yubikey-black
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAltYcKHavkQBJFlogNuT3JhX6ob30V3EYje4pOQBLgq gpg\mira.kristipati@gmail.com
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEKT/rbUu87QyRD7L/QSr+lQMJz2m/mdqlqyCQEMwUJj gpgssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEw3/9inZC/MRPkuOF6T5LiFoOlgo5HZVIM36IC+hlzJ gpg\mira-yubikey-black
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFdRtpQWCPyQQuzcwlbFukGZSlRTcfNzG840kMvbuPwr gpg\kristipati.ajay@gmail.com
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIA0ikP2zdDBaJZ+aoE6jFz3UpCyHjz1r1QtuZTAvTpx zagreusd25519
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJx1GWB1xkE+ECavUypp99FqmB4emiw+j2PpsxN8OXpa gpg\mira@xn--2dkua.xn--tckwe
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINa3w6lweeP4XBokNCEJb86th9S81WQQ+LVVwCRpADap kristipati.ajay@gmail.com
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOY3LSWsg9XK1rI7r2E+1tmX3Vi7W5opwkvqO6AsduZR gpg\ArgentumCation
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDA+Hrb45HQrcBe+gXQz4goWw0PBWdmAWMQ0RWrHXwvkWXM4KsXXrUP7qijEPPtDvJG3JL4Ifsbj+VIN7RprjE5wfvkIxlmnluUK6m2u8r8BlNDhFW5wjoA6PBuHhqYEKGbdqm5s+3WaZt8l2EERyIV87YJPbxNpwc175J3mWYWesvxSp/uNxcXEbOClr+jHXVxztno3XVoVXfpiFfjSsUgprQonbPYiKdfiLwFeXHI03vZlWfmEjERzBE+Ro5ireJ8JVNjKOgiw7aU6tQAyDKe2NkcyTV/tO/OdUSGlnO3Nc3qHHE9B0OTdoKPpiv5A1GdmJWub7UNJKzKB1y7eSGHU3X/FVMSCf9eZUmLIMxWcu1y6GrH1CHIpdqPk+rw6lfjkFg1dDL2f3CXoAwLIEFVaUzI+Gg7BC9Z2jUWTkaj7KoI4sN65PzqrNiJ5QfUjlGh1T0hgMB/QwGarPUilBljGUo7IQfcleDQF3Y5F05Amjr6isZ9ONpeOlCegUB6BIU= mira@epinephrine
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDDD48bhv1AEPhbrGIKxf+XTSWMyxu2qBeaN4nZNZ0YMyinltHd6/VaDEZIzCvadBi3Rc9oTdJIEiXzcMTKj26DacuAuh+YPMvoA0I+lfT36q2SZmWIaVSREtfYYdluJtAyiLvFTkv6G0p5c/x1v9ovEXY3OYo1lnio7j0SmBpj4R9UQJYJhohJLtJCTdfutSuQVclhx/kiytdmFqsCDlCI0EaNxTFS861iTmm2ZjKm7o8ohevxPmnXAHizIBOAZDzbhJ61sPLKIOLWWgJNiK04YUDsBToZBOpeLEnNGkkKY++V4u+5tGI5L1RlVwoGSSB40aY5WLouFmeVE/f42nVuTIF2r/UDjsxeiUdivai+L5xNiqHa5JRWg4+at1lYWGdpineXOPYF6MmzkV+HQMvxC8YhG7ig7W+V7KCfKzMy8EEej+gIMxGFqr6CJQCDXZxqt5o0+Ksh7IMw8AEcrBszuMdJEE/7E/XUnYQHfGUNgFvFwKVzPjOSzbwHMfWPI1k= root@epinephrine
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDm1kPy3bxyLX2nUwvETrsBbjmPDHEvKxmzn9dCoaa/C1tWttrvaXUhYZ6svftR7ofqjCailq1WHU4qkIlfz6Hxwq/mxZdOGRg3A2lzDgbJ5C9RSA8LIfYht2UhbqW40wHCEa1B6+bcwLHFWbDyoeT+NQO007lK4Tu1OY3nTNz3QFJgxAPtFuqQSTFpkxL8JZetQtc/KwJ5ofZBZ+nFc4PUstPE47uf4OEOaKY+fbDZ2bf8tmybGhVq6Oc+BQKij5usnQLTeN8XyVxPxGvXahXHx7ESnp//wCs6DrzoMHBbAVFVXS+w6ZzX2el9gCAcUeyZt8iu0zl9GxnVkpyQzHuuBgYON3orYaCdM5vRCnECFoK8XNwP45jNPzFxrIpSYeJ4tR4uhLxCfD3OHB/BQtOQsEdMJvnLnynzyWePeweTe2S1+ohg9zskyxt9c2rSxw8OlWdHds32JuWka6mTJCdfZgHaNY+Ppz1NEo5XYIfz9Jt0vevmaCVbBHo73Tyh6+k= norepinephrine
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDmOATOG9brF/pBmMufk0LQkPQuLwgZAOZMeHCSdOpr+4Tap/mmqCHGtDL/JW6KsDfFpOFmdnSoeihVPGT3r/Mixt3cGOJlzoWXDt2bHyaEOsLz5B3MuYqBIXG3d2wvxharbmlVg3xyArSaCtuBZcopC5rXajnrPW4HxW+pxPC1NsL3RRGSF0edWdJVdX8oJJBsMMUzfeWh1bxEz2iLKMSYb6KPbQITwFTr+RuiEIppOW3n0zJko1wNG8oWTOgHdkmY4C4rUOk6KgW4qs19t7Mjlc7CnZa3XV7/0DcxERGsphpKvS7dpnEtOt7RaHUr/t0V3yLgl58MPbJKG6WSNIRaXZ0EPSlzz8k+4JjuEFdCDg7WjEDSZsBS9U4AyYQjlEwrkinT7g+LUVKYEDqb0hE539SwARvHZsOXrRgtA+Jh2CJIb/rRWfQRkgxpT9hKiBfYbSj8qbphUrbJ/g72UOQyhIbEW8fF9vmWY75NV/X2+EFZyF56ZhvLFk08sjGIF+s= u0_a441@localhost