Compare commits

...

55 commits

Author SHA1 Message Date
Anish Kristipati
0b013c2b2a
changed git 2025-12-05 11:47:47 -05:00
=
713fda355e (mellinoe) sync 2025-08-22 11:06:20 -04:00
=
5c07f66f92 ghostty, sway keybinds 2025-01-14 21:16:50 -05:00
=
2eac48ffb6 remove nvim config, switch fonts to Berkeley Mono, remove swhkd, add xonsh and ghostty 2025-01-06 09:31:15 -05:00
=
4e5d4ff812 (mellinoe) sync 2024-08-21 12:34:13 -04:00
ArgentumCation
f803285bfc sync from auxin 2024-08-04 22:53:39 -04:00
=
3baef4563c sync from mellinoe 2024-08-04 22:45:25 -04:00
ArgentumCation
718a6d2e5c sync from auxin 2024-07-02 20:42:51 -04:00
Mira Kristipati
5654110e96 adding mellinoe stuff 2024-07-02 20:25:00 -04:00
Mira Kristipati
62e170b6e4 updates 2024-06-25 13:25:17 -04:00
Mira Kristipati
5ae1c1fe3b updates 2024-06-25 13:20:56 -04:00
Mira Kristipati
025d14ee2e updates 2024-05-21 16:37:00 -04:00
Mira Kristipati
29b0de2015 updates 2024-05-17 00:10:56 -04:00
Mira Kristipati
7af2a5e131 updates 2024-04-14 20:34:40 -04:00
Mira Kristipati
ab7465777d updates 2024-03-19 22:42:07 -04:00
ArgentumCation
45e272024b add tmux config 2024-03-17 19:10:33 -04:00
ArgentumCation
d7775e801f fix go path, migrate alacritty conf to toml 2024-03-17 19:10:10 -04:00
Mira Kristipati
3d555709f7 update rofi, sway config 2024-03-12 16:07:59 -04:00
Mira
35c5dfd5ac edit tmux launching, fix nvim config on linux 2024-02-29 10:50:24 -05:00
Mira
17e8488bd4 update theme files 2024-02-29 10:42:34 -05:00
Mira
62608e0130 update gitconfig, nvim plugins 2024-02-29 10:42:34 -05:00
ArgentumCation
08894a100e switch from zellij to tmux 2024-01-06 10:00:26 -05:00
ArgentumCation
20518f86a0 fix df? 2023-12-16 22:33:57 -05:00
ArgentumCation
dabbdc466e changes 2023-12-16 15:00:16 -05:00
ArgentumCation
c181feede2 changes 2023-12-16 14:58:48 -05:00
mira
995d5221c3 Update executable_dot_aliasrc 2023-12-14 14:31:29 -05:00
Mira
8e6e817286 update nvim config 2023-12-11 22:31:04 -05:00
Mira
e33fd36c41 update neovim 2023-12-11 21:58:40 -05:00
Mira
8059080fbd update starship config, nvim 2023-12-11 21:43:40 -05:00
ArgentumCation
10c08743db update nvim 2023-12-11 21:36:42 -05:00
ArgentumCation
71cec63f8c updates 2023-12-10 16:56:58 -05:00
Mira Velturu
b0f4176c7e updates 2023-11-24 15:44:17 -05:00
Mira Velturu
a0880f22e9 updates 2023-11-21 22:08:12 -05:00
Mira Velturu
7f81c97591 updates 2023-11-20 12:05:43 -05:00
Mira Velturu
1d7b058ddd updates 2023-11-19 13:29:02 -05:00
Mira Velturu
4480d70d15 add swhkd 2023-11-19 13:22:51 -05:00
Mira Velturu
ba98df8075 more updates 2023-11-19 12:29:24 -05:00
Mira Velturu
a64485d60e begin moving to sway + alacritty 2023-11-15 21:30:00 -05:00
Mira
aaa4f43052 ignore .config/nvim on windows 2023-11-13 23:33:01 -05:00
Mira Kristipati
434829cdf1 fix submodules 2023-11-13 21:55:22 -05:00
Mira Kristipati
905df85c4f update starship toml to add alpine icon 2023-11-13 21:34:18 -05:00
Mira Kristipati
5415006f3d update nvim config 2023-11-13 21:31:42 -05:00
Mira
3f14b48dc3 update windows ignorefiles, starship toml 2023-11-13 23:05:55 -05:00
Mira
65d364c98e update vimrc 2023-11-07 21:59:10 -05:00
Mira Kristipati
78910e2d9c updates 2023-11-07 21:53:21 -05:00
Mira Kristipati
c736a235f8 fix zsh issues 2023-10-15 20:33:41 -04:00
Mira
e637aba535 add autosetupremote 2023-10-15 19:35:26 -04:00
Mira Kristipati
de2be46c2f fix zsh histfile, add venv to starship 2023-09-26 07:51:13 +00:00
Mira Kristipati
3b403a69a2 fix gpg?, neovim 2023-09-25 21:09:11 +00:00
ArgentumCation
3ab0904979 updates 2023-09-14 13:22:03 -04:00
Mira Kristipati
19eddf5ab4 updates 2023-09-09 14:23:17 -04:00
ArgentumCation
626eaa1472 changes 2023-08-03 10:57:56 -04:00
mira
e39dc9b3c6 Update executable_dot_bashrc 2023-07-04 23:33:24 -04:00
mira
1e16431a0f Update executable_dot_zshrc 2023-07-04 23:33:04 -04:00
Mira Velturu
3c29da2d0a fix fastfetch check, undelay zoxide 2023-06-28 11:41:18 -04:00
68 changed files with 7058 additions and 371 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 }}

154
dot_envrc Normal file
View file

@ -0,0 +1,154 @@
#!/usr/bin/env sh
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
export TZ=":/etc/localtime"
#################
# XDG Base Dirs #
#################
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_STATE_HOME="$HOME/.local/state"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
#################
# XDG User Dirs #
#################
# . "$XDG_CONFIG_HOME/user-dirs.dirs"
export XDG_DESKTOP_DIR="$HOME/Desktop"
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
export XDG_DOCUMENTS_DIR="$HOME/Documents"
export XDG_MUSIC_DIR="$HOME/Music"
export XDG_PICTURES_DIR="$HOME/Pictures"
export XDG_VIDEOS_DIR="$HOME/Videos"
########################
# Default file viewers #
########################
export EDITOR=nvim
export PAGER=moar
export OPENER=xdg-open
#######
# IME #
#######
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
################################
# pls use the goddamn xdg dirs #
################################
# If you use non-default GnuPG Home directory, you will need to edit all
# socket files to use the values of gpgconf --list-dirs.
# If you set your SSH_AUTH_SOCK manually, keep in mind that your socket
# location may be different if you are using a custom GNUPGHOME
export GOPATH="$XDG_DATA_HOME"/go
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
# export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc
#export PNPM_HOME="$XDG_DATA_HOME/pnpm"
alias adb='HOME="$XDG_DATA_HOME"/android adb'
alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts"
export ANDROID_USER_HOME="$XDG_DATA_HOME"/android
export AWS_CONFIG_FILE="$XDG_CONFIG_HOME"/aws/config
export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME"/aws/credentials
export CARGO_HOME="$XDG_DATA_HOME/cargo"
export CARGO_INSTALL_ROOT="$HOME/.local"
export DOCKER_CONFIG="$XDG_CONFIG_HOME"/docker
export ERRFILE="$XDG_CACHE_HOME/X11/xsession-errors"
export GOPATH="$XDG_DATA_HOME"/go
export GRADLE_USER_HOME="$XDG_DATA_HOME/gradle"
export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc
export ICEAUTHORITY="$XDG_CACHE_HOME"/ICEauthority
export INPUTRC="$XDG_CONFIG_HOME/readline/inputrc"
export IPYTHONDIR="$XDG_CONFIG_HOME/ipython"
export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter
export LESSHISTFILE="$XDG_STATE_HOME/less/history"
export MYPY_CACHE_DIR="$XDG_CACHE_HOME"/mypy
export NODE_REPL_HISTORY="$XDG_DATA_HOME"/node_repl_history
export NPM_CONFIG_PREFIX="$XDG_DATA_HOME/npm-global"
export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel
export PYTHONSTARTUP="$HOME"/python/pythonrc
export RUSTUP_HOME="$XDG_DATA_HOME"/rustup
export TERMINFO="$XDG_DATA_HOME"/terminfo
export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo
export TLDR_CACHE_DIR="$XDG_CACHE_HOME"/tldr
export WINEPREFIX="$XDG_DATA_HOME"/wine
export WORKON_HOME="$XDG_DATA_HOME/virtualenvs"
export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
export XCURSOR_PATH=/usr/share/icons:$XDG_DATA_HOME/icons
export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java -Djavafx.cachedir=${XDG_CACHE_HOME}/openjfx"
###############
# SET UP PATH #
###############
# nix
if [ -e "$HOME"/.nix-profile/etc/profile.d/nix.sh ]; then
. "$HOME"/.nix-profile/etc/profile.d/nix.sh
elif [ -e "$HOME"/.nix-profile/bin ]; then
export PATH="$PATH:/nix/var/nix/profiles/default/bin"
export PATH="$HOME/.nix-profile/bin:$PATH"
fi
# User bin folder
#[ "${PATH#*"$HOME"/.local/bin:}" = "$PATH" ] && export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
# go
[ "${PATH#*"$GOPATH/bin"}" = "$PATH" ] && export PATH="$GOPATH/bin:$PATH"
# homebrew
[ -e /home/linuxbrew/.linuxbrew/bin/brew ] && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# pnpm
[ "${PATH#*$PNPM_HOME:}" = "$PATH" ] && export PATH="$PNPM_HOME:$PATH"
# npm
[ "${PATH#*$NPM_CONFIG_PREFIX/bin:}" = "$PATH" ] && export PATH="$NPM_CONFIG_PREFIX/bin:$PATH"
# cargo
if [[ -f "$CARGO_HOME/env" ]]; then
. "$CARGO_HOME/env"
elif [[ -f ~/.local/share/cargo/env ]]; then
. ~/.local/share/cargo/env
fi
export NVM_DIR="$HOME/.config/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# bun completions
[ -s "/home/akristip/.bun/_bun" ] && source "$HOME/.bun/_bun"
# bun
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
# pnpm
export PNPM_HOME="$XDG_DATA_HOME/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
# pnpm end
export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive
# this better fix libadwaita?
export ADW_DISABLE_PORTAL=1
# fix firefox wayland?
export MOZ_ENABLE_WAYLAND=1
# fix sway setting env vars?
export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:-sway}"
# fix font rendering?
export FREETYPE_PROPERTIES="truetype:interpreter-version=40 cff:no-stem-darkening=0 autofitter:no-stem-darkening=0"

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

2
dot_profile Normal file
View file

@ -0,0 +1,2 @@
. "$HOME"/.envrc
. "$HOME/.rye/env"

39
dot_xonshrc Normal file
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

@ -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,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,459 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
### Geometry ###
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 300
# The maximum height of a single notification, excluding the frame.
height = 300
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
offset = 10x50
# Scale factor. It is auto-detected if value is 0.
scale = 0 # 1.5
# Maximum number of notification (0 means no limit)
notification_limit = 20
### Progress bar ###
# Turn on the progess bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Corner radius for the progress bar. 0 disables rounded corners.
progress_bar_corner_radius = 0
# Corner radius for the icon image.
icon_corner_radius = 0
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
# If gap_size is greater than 0, this setting will be ignored.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 2
# Defines color of the frame around the notification window.
frame_color = "#51545a"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
# of size frame_width will be drawn around each notification instead.
# Click events on gaps do not currently propagate to applications below.
gap_size = 4
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = auto
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = Comic Shanns, Atkinson Hyperlegible, FontAwesome 12
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Recursive icon lookup. You can set a single theme, instead of having to
# define all lookup paths.
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
icon_theme = Adwaita
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
# Align icons left/right/top/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
# Paths to default icons (only neccesary when not using recursive icon lookup)
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 8
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = do_action, close_current
mouse_middle_click = close_all
mouse_right_click = close_current
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#010206"
foreground = "#EBF6ff"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_normal]
background = "#1E1B30BF"
foreground = "#EBF6ff"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_critical]
background = "#A04558"
foreground = "#EBF6ff"
frame_color = "#f5a9b8"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#default_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View file

@ -0,0 +1,7 @@
[General]
EnableHiDPI=true
EnableSingleApplication=true
LogUsage=true
OpenGLRenderer=auto
canvasState=OPENGL_SUCCESS
rootSurfaceFormat=bt709-g22

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
[Shortcuts]
KisToolSelectPolygonal=Ctrl+Alt+P

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

View file

@ -0,0 +1,35 @@
clipboard-read = allow
clipboard-write = allow
clipboard-trim-trailing-spaces = true
window-theme = dark
mouse-shift-capture = true
gtk-titlebar = false
gtk-wide-tabs = false
font-family = Berkeley Mono
confirm-close-surface = false
window-padding-x = 4,2
window-padding-y = 0
minimum-contrast=1
background = #010206
foreground = #ebf6ff
palette = 0=#1e1b30
palette = 1=#a04558
palette = 2=#76aa73
palette = 3=#ad9d3d
palette = 4=#334773
palette = 5=#a34a78
palette = 6=#2a97b1
palette = 7=#9a9ab8
# palette = 8=#504573
palette = 8=#74689F
palette = 9=#ed8096
palette = 10=#a0dc9b
palette = 11=#c1b254
palette = 12=#445f9b
palette = 13=#ee5e95
palette = 14=#5bcefa
palette = 15=#c1c7db

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
@ -40,6 +53,9 @@ autocorrect = 50
[safe] [safe]
directory = / directory = /
directory = /etc/nixos
directory = /home/mira/docker/config/argentumcation.com
directory = /home/mira/docker/Dockerfiles/argentumcation.com
[rebase] [rebase]
autostash = true autostash = true
@ -50,3 +66,18 @@ abbrevCommit = true
[rerere] [rerere]
autoupdate = true autoupdate = true
enabled = true enabled = true
[push]
autoSetupRemote = true
[alias]
lg = log --graph --branches --oneline
st = status
gud = !git commit -am --no-edit --amend && git push --force-with-lease
[filter "lfs"]
process = git-lfs filter-process
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f

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,10 @@
# style name or JSON path (default "auto")
style: "~/.config/glow/lunar-witch.json"
# show local files only; no network (TUI-mode only)
local: false
# mouse support (TUI-mode only)
mouse: true
# use pager to display markdown
pager: true
# word-wrap at width
width: 120

View file

@ -0,0 +1,198 @@
{
"document": {
"block_prefix": "\n",
"block_suffix": "\n",
"color": "#EBF6FF",
"margin": 2
},
"block_quote": {
"indent": 1,
"indent_token": "│ "
},
"paragraph": {},
"list": {
"level_indent": 2
},
"heading": {
"block_suffix": "\n",
"color": "#5BCEFA",
"bold": true
},
"h1": {
"prefix": " ",
"suffix": " ",
"color": "#EBF6FF",
"background_color": "#0B5393",
"bold": true
},
"h2": {
"prefix": "## "
},
"h3": {
"prefix": "### "
},
"h4": {
"prefix": "#### "
},
"h5": {
"prefix": "##### "
},
"h6": {
"prefix": "###### ",
"color": "#98DB95",
"bold": false
},
"text": {},
"strikethrough": {
"crossed_out": true
},
"emph": {
"italic": true,
"color": "#F4B766"
},
"strong": {
"bold": true,
"color": "#A34A78"
},
"hr": {
"color": "#808082",
"format": "\n--------\n"
},
"item": {
"block_prefix": "• "
},
"enumeration": {
"block_prefix": ". "
},
"task": {
"ticked": "[✓] ",
"unticked": "[ ] "
},
"link": {
"color": "#445F9B",
"underline": true
},
"link_text": {
"color": "#445F9B",
"bold": true
},
"image": {
"color": "#A34A78",
"underline": true
},
"image_text": {
"color": "#A34A78",
"format": "Image: {{.text}} →"
},
"code": {
"prefix": "`",
"suffix": "`",
"color": "#EBF6FF",
"background_color": "#2A2644"
},
"code_block": {
"color": "#2A97B1",
"background_color": "#2A2644",
"margin": 2,
"chroma": {
"text": {
"color": "#EBF6FF"
},
"error": {
"color": "#EBF6FF",
"background_color": "#A04558"
},
"comment": {
"color": "#BFBFC0"
},
"comment_preproc": {
"color": "#F4B766"
},
"keyword": {
"color": "#0B5393"
},
"keyword_reserved": {
"color": "#EE5E95"
},
"keyword_namespace": {
"color": "#EE5E95"
},
"keyword_type": {
"color": "#445F9B"
},
"operator": {
"color": "#F4B766"
},
"punctuation": {
"color": "#FFE70A"
},
"name": {
"color": "#BFBFC0"
},
"name_builtin": {
"color": "#EE5E95"
},
"name_tag": {
"color": "#A34A78"
},
"name_attribute": {
"color": "#445F9B"
},
"name_class": {
"color": "#EBF6FF",
"underline": true,
"bold": true
},
"name_constant": {},
"name_decorator": {
"color": "#FFE70A"
},
"name_exception": {},
"name_function": {
"color": "#6FA47E"
},
"name_other": {},
"literal": {},
"literal_number": {
"color": "#98DB95"
},
"literal_date": {},
"literal_string": {
"color": "#6FA47E"
},
"literal_string_escape": {
"color": "#6FA47E"
},
"generic_deleted": {
"color": "#F5A9B8"
},
"generic_emph": {
"italic": true
},
"generic_inserted": {
"color": "#98DB95"
},
"generic_strong": {
"bold": true
},
"generic_subheading": {
"color": "#BFBFC0"
},
"background": {
"background_color": "#2A2644"
}
}
},
"table": {
"center_separator": "┼",
"column_separator": "│",
"row_separator": "─"
},
"definition_list": {},
"definition_term": {},
"definition_description": {
"block_prefix": "\n🠶 "
},
"html_block": {},
"html_span": {}
}

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

@ -15,6 +15,7 @@ $git_state\
[](fg:bright-blue bg:bright-cyan)\ [](fg:bright-blue bg:bright-cyan)\
$c\ $c\
$golang\ $golang\
$python\
$gradle\ $gradle\
$java\ $java\
$nodejs\ $nodejs\
@ -32,6 +33,7 @@ $status\
[](bg:bright-red fg:bright-blue) [](bg:bright-red fg:bright-blue)
$cmd_duration\ $cmd_duration\
$hostname\ $hostname\
$sudo\
[](fg:bright-blue) [](fg:bright-blue)
""" """
@ -61,20 +63,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.
@ -105,6 +109,15 @@ 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"
@ -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,9 @@ 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)"

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

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