feat: bash

This commit is contained in:
ange 2024-06-23 11:51:38 +02:00
parent 937ab54f8c
commit 7ae0b331cf
Signed by: ange
GPG Key ID: 9E0C4157BB7BEB1D
30 changed files with 517 additions and 65 deletions

52
.bash_profile Normal file
View File

@ -0,0 +1,52 @@
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"
export XDG_CONFIG_DIRS=/etc/xdg
export XDG_DATA_DIRS="$XDG_DATA_HOME/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share"
export HISTCONTROL=ignoreboth
export HISTSIZE=65536
export SAVEHIST=8192
export HISTFILE="$XDG_STATE_HOME/bash_history"
export LESSHISTFILE='-'
export KUBECONFIG="$XDG_CONFIG_HOME/kube"
export KUBECACHEDIR="$XDG_CACHE_HOME/kube"
export PYTHON_HISTORY="$XDG_STATE_HOME/python_history"
export PYTHONPYCACHEPREFIX="$XDG_CACHE_HOME/python"
export W3M_DIR="$XDG_STATE_HOME/w3m"
PATH="$HOME/.local/bin:$XDG_DATA_HOME/flatpak/exports/bin:/var/lib/flatpak/exports/bin:$PATH"
export BROWSER=org.mozilla.firefox
export EDITOR=nvim
export VISUAL=nvim
export PAGER=less
export MAKEFLAGS='-j'
export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/podman/podman.sock"
export SSH_AUTH_SOCK; SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
[ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ] && {
GUILOG="$HOME/.local/state/gui.log"
mv -f "$GUILOG" "$GUILOG.old" || true
export XDG_CURRENT_DESKTOP=Unity
exec startx &> "$GUILOG"
}
[ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ] && {
GUILOG="$HOME/.local/state/gui.log"
mv -f "$GUILOG" "$GUILOG.old" || true
#export WLR_DRM_NO_MODIFIERS=1
exec river &> "$GUILOG"
}

19
.bashrc Normal file
View File

@ -0,0 +1,19 @@
[[ $- != *i* ]] && return
set -o vi
shopt -s autocd progcomp_alias
FZF_ALT_C_OPTS=--walker=dir,follow
. /usr/share/fzf/key-bindings.bash
for f in "$HOME/.config/bash/"*.bash; do
# shellcheck disable=SC1090
. "$f"
done
complete -r -D
for f in kill kubectl git; do
# shellcheck disable=SC1090
. "/usr/share/bash-completion/completions/$f"
done

View File

@ -2,7 +2,9 @@
background = "#101010"
[font]
size = 14
#size = 19
#size = 14
size = 9
[window]
opacity = 0.90

View File

@ -1,9 +1,7 @@
output eDP
mode 1920x1080
pos 1920x0
off
output HDMI-A-0
mode 3840x2160
pos 0x0
primary
rate 60.00
output HDMI-A-0
mode 1920x1080
pos 0x0
rate 60.00

View File

@ -0,0 +1 @@
HDMI-A-0 00ffffffffffff0020a33000010000000c1d0103807341780acf74a3574cb02309484c21080081c0814081800101010101010101010108e80030f2705a80b0588a00ba882100001e023a801871382d40582c4500501d7400001e000000fc00484953454e53450a2020202020000000fd00184b0f883c000a202020202020012c020370705e615e5f605d6a6b01020405101113141f20212212036566626364282e3f40320907071507505704013d07c06706035f7e0183010000e200f9e305ff016e030c002000383c200080010203046ad85dc40178800702303ceb0146d000481f2a90506d84e3060d01e40f6900600000000000000000000000000000000c

View File

@ -1,2 +0,0 @@
HDMI-A-0 00ffffffffffff004c2d200d34415743191e010380341d782a9315a655519c27115054bfef80714f81c0810081809500a9c0b3000101023a801871382d40582c450009252100001e000000fd00324b1e5111000a202020202020000000fc00533234463335300a2020202020000000ff0048345a4e3630323031370a20200114020311b14690041f13120365030c001000011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051
eDP 00ffffffffffff0009e5d50800000000231d0104a5221378030b95935c59932a20505400000001010101010101010101010101010101043a803671381e403020360058c21000001a000000000000000000000000000000000000000000fe00424f452043510a202020202020000000fe004e5431353646484d2d4e34330a000e

55
.config/bash/aliases.bash Normal file
View File

@ -0,0 +1,55 @@
function update() {
$TERM --hold -e "$SHELL" -ic "pac -Syu && echo -e '\e[32mDONE'" &
$TERM --hold -e "$SHELL" -ic "flatpak update && echo -e '\e[32mDONE'" &
$TERM --hold -e "$SHELL" -ic "config submodule update --remote --recursive && echo -e '\e[32mDONE'" &
}
alias pac='sudo pacman'
alias neofetch=fastfetch
alias mail=aerc
alias rss=newsraft
alias vi='$EDITOR'
alias qcp='qcp -o tabsize=4' \
qmv='qmv -o tabsize=4'
alias config='git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"' \
viconf='(cd "$XDG_CONFIG_HOME/nvim" && $EDITOR .)'
alias ssh='TERM=xterm-256color ssh'
alias sudo='sudo ' \
watch='watch -c ' \
xargs='xargs '
function tmp() {
cd "$(mktemp -d --tmpdir "$1"XXX)" || return
}
alias ...='../..' \
....='../../..' \
.....='../../../..' \
......='../../../../..'
alias cp='cp -vi' \
mv='mv -vi' \
rm='rm -vI' \
mkdir='mkdir -v' \
rsync='rsync -P'
alias ls='ls --color=auto' \
ll='ls -lh' \
l='ll -a' \
la='ll -A'
alias diff='diff --color' \
grep='grep --color --exclude-dir={.cache,.git,.idea,.venv,.vscode,node_modules}'
alias feh='feh --auto-zoom --scale-down'
alias xmr='monero-wallet-cli --daemon-address monero.maby.dev:18081 --trusted-daemon --log-file=/tmp/monero-wallet-cli.log --wallet-file /home/ange/.config/monero/ange'
function bd() {
echo - "$@" | base64 -d; echo
}

69
.config/bash/docker.bash Normal file
View File

@ -0,0 +1,69 @@
alias dk='docker' \
dkb='docker build . -t' \
dkc='docker container' \
dkcc='docker container create' \
dkci='docker container inspect' \
dkcls='docker container ls' \
dkclsa='docker container ls -a' \
dkclsaq='docker container ls -a -q' \
dkclsq='docker container ls -q' \
dkcrm!='docker container rm -f' \
dkcrm='docker container rm' \
dkcsp='docker container stop' \
dkcst='docker container restart' \
dkex='docker container exec -i -t' \
dki='docker image' \
dkic='docker image create' \
dkii='docker image inspect' \
dkil='docker pull' \
dkils='docker image ls' \
dkilsa='docker image ls -a' \
dkilsaq='docker image ls -a -q' \
dkilsq='docker image ls -q' \
dkip='docker image push' \
dkirm!='docker image rm -f' \
dkirm='docker image rm' \
dkis='docker image save' \
dkit='docker image tag' \
dklo='docker logs -f' \
dkn='docker network' \
dknc='docker network create' \
dkni='docker network inspect' \
dknls='docker network ls' \
dknlsq='docker network ls -q' \
dknrm!='docker network rm -f' \
dknrm='docker network rm' \
dkr='docker run -i -t' \
dksys='docker system' \
dksysdf='docker system df' \
dksysp!='docker system prune -f' \
dksysp='docker system prune' \
dktop='docker top' \
dkv='docker volume' \
dkvc='docker volume create' \
dkvi='docker volume inspect' \
dkvls='docker volume ls' \
dkvlsq='docker volume ls -q' \
dkvrm!='docker volume rm -f' \
dkvrm='docker volume rm'
alias dc='docker-compose' \
dcb!='docker-compose build --no-cache' \
dcb='docker-compose build' \
dccls='docker-compose ps' \
dcclsq='docker-compose ps -q' \
dcd='docker-compose down' \
dcex='docker-compose exec' \
dcl='docker-compose pull' \
dcr='docker-compose run --rm' \
dcrd='docker-compose run -d --rm' \
dcrm!='docker-compose rm -f' \
dcrm='docker-compose rm' \
dcrmv!='docker-compose rm -v -f' \
dcrmv='docker-compose rm -v' \
dcsp='docker-compose stop' \
dcst='docker-compose restart' \
dcup='docker-compose up' \
dcupb='docker-compose up --build' \
dcupd='docker-compose up -d' \
dcupdb='docker-compose up -d --build'

38
.config/bash/git.bash Normal file
View File

@ -0,0 +1,38 @@
function gi() {
local IFS=,
curl -fL "https://www.toptal.com/developers/gitignore/api/$*"
}
function _gi() {
mapfile -t COMPREPLY < <(compgen -W \
"$(curl -sfL https://www.toptal.com/developers/gitignore/api/list | tr ',' '\n')" \
-- "${COMP_WORDS[1]}")
}
complete -F _gi gi
alias g='git' \
ga='git add' \
gaa='git add --all' \
gap='git apply' \
gb='git branch' \
gbl='git blame -w' \
gbs='git bisect' \
gc='git commit --verbose' \
gca='git commit --verbose --all' \
gcl='git clone' \
gco='git checkout' \
gcp='git cherry-pick' \
gd='git diff' \
gdup='git diff @{upstream}' \
gf='git fetch' \
gl='git pull' \
glo='git log --oneline --decorate' \
gmr='git merge' \
gr='git remote' \
grb='git rebase' \
grev='git revert' \
grh='git reset' \
grs='git restore' \
gst='git status' \
gsta='git stash'

176
.config/bash/k8s.bash Normal file
View File

@ -0,0 +1,176 @@
function kns() {
local cache="$HOME/.local/state/${FUNCNAME[0]}"
if [ -n "$1" ]; then
if ! kubectl get namespace -o name | grep -q "^namespace/$1\$"; then
echo "error: no namespace exists with the name: \"$1\"" >&2
return 1
fi
kubectl config set-context --current --namespace "$1" > /dev/null
else
if [ "${KUBECONFIG:-"$HOME/.kube/config"}" -nt "$cache" ]; then
set -- "$(kubectl config view --minify -o jsonpath='{..namespace}')"
else
cat "$cache"
return
fi
fi
tee "$cache" <<< "$1"
}
function _kns() {
mapfile -t COMPREPLY < <(compgen -W \
"$(kubectl get namespace -o jsonpath='{..metadata.name}')" \
-- "${COMP_WORDS[1]}")
}
complete -F _kns kns
function kctx() {
local cache="$HOME/.local/state/${FUNCNAME[0]}"
if [ -n "$1" ]; then
kubectl config use-context "$1" > /dev/null || return
else
if [ "${KUBECONFIG:-"$HOME/.kube/config"}" -nt "$cache" ]; then
set -- "$(kubectl config current-context)"
else
cat "$cache"
return
fi
fi
tee "$cache" <<< "$1"
}
function _kctx() {
mapfile -t COMPREPLY < <(compgen -W \
"$(kubectl config get-contexts -o name)" \
-- "${COMP_WORDS[1]}")
}
complete -F _kctx kctx
alias kga='kubectl get "$(kubectl api-resources --verbs=list --namespaced -oname | grep -v event | paste -sd,)"'
alias k=kubectl \
ka='kubectl apply --recursive -f' \
kd='kubectl describe' \
kdcj='kubectl describe cronjob' \
kdcm='kubectl describe configmap' \
kddep='kubectl describe deployment' \
kding='kubectl describe ingress' \
kdj='kubectl describe job' \
kdno='kubectl describe node' \
kdns='kubectl describe namespace' \
kdpo='kubectl describe pod' \
kdpvc='kubectl describe persistentvolumeclaim' \
kdsec='kubectl describe secret' \
kdsts='kubectl describe statefulset' \
kdsvc='kubectl describe service' \
kex='kubectl exec -i -t' \
kg='kubectl get' \
kgall='kubectl get --all-namespaces' \
kgalloname='kubectl get --all-namespaces -o name' \
kgallowide='kubectl get --all-namespaces -o wide' \
kgalloyaml='kubectl get --all-namespaces -o yaml' \
kgcj='kubectl get cronjob' \
kgcjall='kubectl get cronjob --all-namespaces' \
kgcjalloname='kubectl get cronjob --all-namespaces -o name' \
kgcjallowide='kubectl get cronjob --all-namespaces -o wide' \
kgcjalloyaml='kubectl get cronjob --all-namespaces -o yaml' \
kgcjoname='kubectl get cronjob -o name' \
kgcjowide='kubectl get cronjob -o wide' \
kgcjoyaml='kubectl get cronjob -o yaml' \
kgcm='kubectl get configmap' \
kgcmall='kubectl get configmap --all-namespaces' \
kgcmalloname='kubectl get configmap --all-namespaces -o name' \
kgcmallowide='kubectl get configmap --all-namespaces -o wide' \
kgcmalloyaml='kubectl get configmap --all-namespaces -o yaml' \
kgcmoname='kubectl get configmap -o name' \
kgcmowide='kubectl get configmap -o wide' \
kgcmoyaml='kubectl get configmap -o yaml' \
kgdep='kubectl get deployment' \
kgdepall='kubectl get deployment --all-namespaces' \
kgdepalloname='kubectl get deployment --all-namespaces -o name' \
kgdepallowide='kubectl get deployment --all-namespaces -o wide' \
kgdepalloyaml='kubectl get deployment --all-namespaces -o yaml' \
kgdeponame='kubectl get deployment -o name' \
kgdepowide='kubectl get deployment -o wide' \
kgdepoyaml='kubectl get deployment -o yaml' \
kging='kubectl get ingress' \
kgingall='kubectl get ingress --all-namespaces' \
kgingalloname='kubectl get ingress --all-namespaces -o name' \
kgingallowide='kubectl get ingress --all-namespaces -o wide' \
kgingalloyaml='kubectl get ingress --all-namespaces -o yaml' \
kgingoname='kubectl get ingress -o name' \
kgingowide='kubectl get ingress -o wide' \
kgingoyaml='kubectl get ingress -o yaml' \
kgj='kubectl get job' \
kgjall='kubectl get job --all-namespaces' \
kgjalloname='kubectl get job --all-namespaces -o name' \
kgjallowide='kubectl get job --all-namespaces -o wide' \
kgjalloyaml='kubectl get job --all-namespaces -o yaml' \
kgjoname='kubectl get job -o name' \
kgjowide='kubectl get job -o wide' \
kgjoyaml='kubectl get job -o yaml' \
kgno='kubectl get node' \
kgns='kubectl get namespace' \
kgnsoname='kubectl get namespace -o name' \
kgnsowide='kubectl get namespace -o wide' \
kgnsoyaml='kubectl get namespace -o yaml' \
kgoname='kubectl get -o name' \
kgowide='kubectl get -o wide' \
kgoyaml='kubectl get -o yaml' \
kgpo='kubectl get pod' \
kgpoall='kubectl get pod --all-namespaces' \
kgpoalloname='kubectl get pod --all-namespaces -o name' \
kgpoallowide='kubectl get pod --all-namespaces -o wide' \
kgpoalloyaml='kubectl get pod --all-namespaces -o yaml' \
kgpooname='kubectl get pod -o name' \
kgpoowide='kubectl get pod -o wide' \
kgpooyaml='kubectl get pod -o yaml' \
kgpvc='kubectl get persistentvolumeclaim' \
kgpvcall='kubectl get persistentvolumeclaim --all-namespaces' \
kgpvcalloname='kubectl get persistentvolumeclaim --all-namespaces -o name' \
kgpvcallowide='kubectl get persistentvolumeclaim --all-namespaces -o wide' \
kgpvcalloyaml='kubectl get persistentvolumeclaim --all-namespaces -o yaml' \
kgpvconame='kubectl get persistentvolumeclaim -o name' \
kgpvcowide='kubectl get persistentvolumeclaim -o wide' \
kgpvcoyaml='kubectl get persistentvolumeclaim -o yaml' \
kgsec='kubectl get secret' \
kgsecall='kubectl get secret --all-namespaces' \
kgsecalloname='kubectl get secret --all-namespaces -o name' \
kgsecallowide='kubectl get secret --all-namespaces -o wide' \
kgsecalloyaml='kubectl get secret --all-namespaces -o yaml' \
kgseconame='kubectl get secret -o name' \
kgsecowide='kubectl get secret -o wide' \
kgsecoyaml='kubectl get secret -o yaml' \
kgsts='kubectl get statefulset' \
kgstsall='kubectl get statefulset --all-namespaces' \
kgstsalloname='kubectl get statefulset --all-namespaces -o name' \
kgstsallowide='kubectl get statefulset --all-namespaces -o wide' \
kgstsalloyaml='kubectl get statefulset --all-namespaces -o yaml' \
kgstsoname='kubectl get statefulset -o name' \
kgstsowide='kubectl get statefulset -o wide' \
kgstsoyaml='kubectl get statefulset -o yaml' \
kgsvc='kubectl get service' \
kgsvcall='kubectl get service --all-namespaces' \
kgsvcalloname='kubectl get service --all-namespaces -o name' \
kgsvcallowide='kubectl get service --all-namespaces -o wide' \
kgsvcalloyaml='kubectl get service --all-namespaces -o yaml' \
kgsvconame='kubectl get service -o name' \
kgsvcowide='kubectl get service -o wide' \
kgsvcoyaml='kubectl get service -o yaml' \
klo='kubectl logs' \
kpf='kubectl port-forward' \
krm='kubectl delete' \
krmcj='kubectl delete cronjob' \
krmcm='kubectl delete configmap' \
krmdep='kubectl delete deployment' \
krming='kubectl delete ingress' \
krmj='kubectl delete job' \
krmns='kubectl delete namespace' \
krmpo='kubectl delete pod' \
krmpvc='kubectl delete persistentvolumeclaim' \
krmsec='kubectl delete secret' \
krmsts='kubectl delete statefulset' \
krmsvc='kubectl delete service'

30
.config/bash/theme.bash Normal file
View File

@ -0,0 +1,30 @@
export GROFF_NO_SGR=1 \
LESS_TERMCAP_mb=$'\e[01;31m' \
LESS_TERMCAP_md=$'\e[01;31m' \
LESS_TERMCAP_me=$'\e[00m' \
LESS_TERMCAP_so=$'\e[01;33m\e[44m' \
LESS_TERMCAP_se=$'\e[00m' \
LESS_TERMCAP_us=$'\e[01;32m' \
LESS_TERMCAP_ue=$'\e[00m'
. /usr/share/git/git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE=1
GIT_PS1_SHOWCOLORHINTS=1
#shellcheck disable=SC2034
VIRTUAL_ENV_DISABLE_PROMPT=1
function precmd() {
local ctx err="${PIPESTATUS[*]}"
ctx="$(kctx 2> /dev/null)"
# shellcheck disable=SC2086
unset ${!PROMPT_P*}
[ -n "$VIRTUAL_ENV" ] && PROMPT_PVENV="${VIRTUAL_ENV%/*}" && PROMPT_PVENV="${PROMPT_PVENV##*/}"$'\n'
[ -n "$ctx" ] && PROMPT_PK8S="$ctx/$(kns) "
[[ "$err" =~ [1-9] ]] && PROMPT_PERR="${err// /|} "
}
PROMPT_COMMAND=precmd
PS1='\[\e[00;38;5;37m\]$PROMPT_PVENV\[\e[38;5;134m\]$PROMPT_PK8S\[\e[00m\]$(__git_ps1 "%s ")\[\e[01;38;5;32m\]\w\[\e[00m\] \[\e[38;5;160m\]$PROMPT_PERR${_[\j<1]+\[\e[38;5;71m\]\j }\[\e[00m\]'

View File

@ -4,10 +4,11 @@
https://www.youtube.com/feeds/videos.xml?channel_id=UCI4W-ck8ZLA_YljxMhlpg2g "ChessSimp"
https://www.youtube.com/feeds/videos.xml?channel_id=UCto7D1L-MiRoOziCXK9uT5Q "LetsGameItOut"
@ Linux
@ News
https://archlinux.org/feeds/news/ "ArchLinux"
https://odysee.com/$/rss/@BrodieRobertson:5 "BrodieRobertson"
https://www.debian.org/News/news "Debian"
https://f-droid.org/feed.xml "F-Droid"
https://odysee.com/$/rss/@AlphaNerd:8 "MentalOutlaw"
https://suckless.org/atom.xml "suckless.org"
https://tails.net/news/index.en.rss "Tails"
@ -28,7 +29,6 @@ https://github.com/ventoy/Ventoy/releases.atom "Ventoy"
@ K8S
https://github.com/kubernetes/kubernetes/releases.atom "Kubernetes"
https://github.com/cert-manager/cert-manager/releases.atom "cert-manager"
https://github.com/cloudnative-pg/cloudnative-pg/releases.atom "CloudNativePG"
https://github.com/flannel-io/flannel/releases.atom "flannel"

View File

@ -1,6 +1,9 @@
-- variables
vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
vim.opt_local.spelllang = "fr"
vim.opt_local.spell = true
vim.opt_local.textwidth = 79
-- keybindings

View File

@ -34,8 +34,6 @@ vim.opt.suffixes = vim.o.suffixes .. ",.pyc,.hi"
vim.opt.foldmethod = "indent"
vim.opt.foldlevel = 99
vim.opt.grepprg = "grep -rn"
vim.opt.scrolloff = 2
vim.opt.colorcolumn = "80"
@ -66,8 +64,6 @@ require"pack-treesitter"
vim.keymap.set("n", "<Leader>e", "<cmd>.w !$SHELL<CR>")
vim.keymap.set("n", "<Leader>f", "<cmd>%s/\\s\\+$//e<CR>")
vim.keymap.set("n", "N", "Nzz")
vim.keymap.set("n", "n", "nzz")
------------------------
----- autocommands -----

@ -1 +1 @@
Subproject commit 5665d93988acfbb0747bdbf4f4cb583bcebc8930
Subproject commit f2bfde705ac752c52544d5cfa8b0aee0a766c1ed

@ -1 +1 @@
Subproject commit 3e454836ce8350d1f7b780a1a34e5cbfc9ecf715
Subproject commit 122b4d3db1616c1f1305b847c5ed2217c4c329f1

View File

@ -79,6 +79,7 @@ static const char *passopencmd[] = { "passopen", NULL };
static const char *passusercmd[] = { "passuser", NULL };
static const char *passpasscmd[] = { "passpass", NULL };
static const char *passotpcmd[] = { "passotp", NULL };
static const char *reloadbarcmd[] = { "sh", "-c", "kill -34 \"$(cat \"$HOME/.cache/pidofbar\")\"", NULL};
static const Key keys[] = {
/* modifier key function argument */
@ -137,4 +138,5 @@ static const Button buttons[] = {
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkStatusText, 0, Button1, spawn, {.v = reloadbarcmd } },
};

View File

@ -1,4 +1,4 @@
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
export SSH_AUTH_SOCK; SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
[ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ] && {
GUILOG="$HOME/.local/state/gui.log"
@ -9,4 +9,12 @@ export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
exec startx &> "$GUILOG"
}
#[ "$XDG_VTNR" = 1 ] && exec Hyprland
[ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ] && {
GUILOG="$HOME/.local/state/gui.log"
mv -f "$GUILOG" "$GUILOG.old" || true
#export WLR_DRM_NO_MODIFIERS=1
export XDG_CURRENT_DESKTOP=Unity
exec river &> "$GUILOG"
}

View File

@ -6,6 +6,8 @@ function update() {
alias pac='sudo pacman'
alias neofetch=fastfetch
alias mail=aerc
alias rss=newsraft
alias vi='$EDITOR'

View File

@ -3,17 +3,11 @@ if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
function zle-line-finish() { echoti rmkx }; zle -N zle-line-finish
fi
# PageUp/PageDown
(( ${+terminfo[kpp]} )) && bindkey -- "${terminfo[kpp]}" up-line-or-history
(( ${+terminfo[knp]} )) && bindkey -- "${terminfo[knp]}" down-line-or-history
# Up/Down
if (( ${+terminfo[kcuu1]} )) && (( ${+terminfo[kcud1]} )); then
autoload -Uz up-line-or-beginning-search; zle -N up-line-or-beginning-search
autoload -Uz down-line-or-beginning-search; zle -N down-line-or-beginning-search
bindkey -- "${terminfo[kcuu1]}" up-line-or-beginning-search
bindkey -- "${terminfo[kcud1]}" down-line-or-beginning-search
fi
autoload -Uz up-line-or-beginning-search; zle -N up-line-or-beginning-search
autoload -Uz down-line-or-beginning-search; zle -N down-line-or-beginning-search
bindkey -- "${terminfo[kcuu1]}" up-line-or-beginning-search
bindkey -- "${terminfo[kcud1]}" down-line-or-beginning-search
# Home/End
(( ${+terminfo[khome]} )) && bindkey -- "${terminfo[khome]}" beginning-of-line
@ -35,7 +29,7 @@ fi
# Space - don't do history expansion
bindkey ' ' magic-space
# VV in vi mode to edit cmd
# vv in vi mode to edit cmd
autoload -Uz edit-command-line
zle -N edit-command-line
bindkey -M vicmd 'vv' edit-command-line

View File

@ -59,7 +59,7 @@ function precmd() {
[ -n "$PROMPT_timer" ] && timer="$((SECONDS - PROMPT_timer))"
unset -m 'PROMPT_*'
ctx="$(kubectx -c)"
ctx="$(kubectx -c 2> /dev/null)"
vcs_info

5
.inputrc Normal file
View File

@ -0,0 +1,5 @@
set colored-stats on
"\e[A":history-search-backward
Control-l: clear-screen

View File

@ -13,7 +13,6 @@ function set_light() {
echo "$((CUR * max / 100))" > "$1/brightness"
}
NOTIFY=(notify-send -t 1000 -a "$(basename "$0")" -u low)
DIRS=(/sys/class/backlight/*)
CUR="$(get_current "${DIRS[0]}")"
@ -34,4 +33,5 @@ for d in "${DIRS[@]}"; do
set_light "$d"
done
"${NOTIFY[@]}" -h string:synchronous:light -h int:value:"$CUR" "$CUR%"
notify-send -t 1000 -u low -i display-brightness-symbolic \
-h string:synchronous:light -h int:value:"$CUR" "$CUR%"

View File

@ -35,7 +35,7 @@ function update_sink_vol() {
sink_vol='🔇'
return
fi
vol="$(awk '{print int($2 * 100)}' <<< "$sink")"
vol="$(awk '{printf "%.0f", $2 * 100}' <<< "$sink")"
{ [ "$vol" -gt 67 ] && sink_vol=" $vol"; } ||
{ [ "$vol" -gt 33 ] && sink_vol=" $vol"; } ||
{ sink_vol=" $vol"; }
@ -49,18 +49,18 @@ function update_source_vol() {
source_vol=''
return
fi
source_vol=" $(awk '{print int($2 * 100)}' <<< "$source")"
source_vol=" $(awk '{printf "%.0f", $2 * 100}' <<< "$source")"
}
function update_wlp() {
local sig ssid dev=wlan0
sig="$(awk "/$dev/{print int(\$3)}" /proc/net/wireless)"
sig="$(awk "/$dev/{printf \"%.0f\", \$3}" /proc/net/wireless)"
if [ -z "$sig" ]; then
wlp='⚠'
return
fi
ssid="$(networkctl status "$dev" | grep -Po 'Wi-Fi access point:\s*\K\w+')"
ssid="$(networkctl status "$dev" --json=short | jq -r .SSID)"
{ [ "$sig" -gt 56 ] && wlp="▂▄▆█ $ssid"; } ||
{ [ "$sig" -gt 38 ] && wlp="▂▄▆_ $ssid"; } ||
{ [ "$sig" -gt 21 ] && wlp="▂▄__ $ssid"; } ||
@ -69,7 +69,11 @@ function update_wlp() {
}
function update_time() {
time="$(date "+%a %m-%d %R")"
time="$(date '+%a %m-%d %R')"
}
function reload() {
sec=0
}
function display() {
@ -84,8 +88,9 @@ fi
# SIGNALING
# trap '<function>;display;wait' 'RTMIN+n'
trap 'update_sink_vol;display;wait' 'RTMIN'
trap 'update_wlp;display;wait' 'RTMIN+1'
trap 'reload' 'RTMIN'
trap 'update_sink_vol;display;wait' 'RTMIN+1'
trap 'update_wlp;display;wait' 'RTMIN+2'
# to update it from external commands
## kill -m "$(cat ~/.cache/pidofbar)"
# where m = 34 + n
@ -94,19 +99,18 @@ echo "$$" > "$HOME/.cache/pidofbar"
sec=0
while true; do
wait && {
[ "$((sec % 300))" = 10 ] && update_crypto
[ "$((sec % 10))" = 0 ] && {
update_cpu
update_memory
update_sink_vol
update_source_vol
update_wlp
update_bat
update_time
display
}
sec="$((sec + 10))"
[ "$((sec % 300))" = 10 ] && update_crypto
[ "$((sec % 10))" = 0 ] && {
update_cpu
update_memory
update_sink_vol
update_source_vol
update_wlp
update_bat
update_time
display
}
sec="$((sec + 10))"
awk "@load \"time\"; BEGIN {d=10; s=$(date '+%S.%N'); sleep(d - s % d)}" &
wait
done

3
.local/bin/steam Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
com.valvesoftware.Steam --nobrowser

View File

@ -1,7 +1,7 @@
#!/bin/bash -e
SINK='@DEFAULT_AUDIO_SINK@'
NOTIFY=(notify-send -t 1000 -a "$(basename "$0")" -u low)
NOTIFY=(notify-send -t 1000 -u low)
function update_vol() {
if [[ "$1" =~ ^(-|\+)* ]]; then
@ -22,14 +22,13 @@ if [ -z "$1" ]; then
exit
elif [ "$1" == 'm' ] && [ -z "$MUTE" ]; then
wpctl set-mute "$SINK" 1
"${NOTIFY[@]}" -i audio-volume-muted -h string:synchronous:vol "Mute"
"${NOTIFY[@]}" -i audio-volume-muted-symbolic -h string:synchronous:vol "Mute"
else
if [[ "$1" =~ [0-9] ]]; then
update_vol "$1"
fi
[ -n "$MUTE" ] && wpctl set-mute "$SINK" 0
"${NOTIFY[@]}" -h string:synchronous:vol -h int:value:"$CUR" "$CUR%"
"${NOTIFY[@]}" -i audio-volume-high-symbolic -h string:synchronous:vol -h int:value:"$CUR" "$CUR%"
fi
# update sbar
kill -34 "$(cat "$HOME/.cache/pidofbar")"
kill -35 "$(cat "$HOME/.cache/pidofbar")"

View File

@ -6,7 +6,7 @@ iwctl=(iwctl station wlan0)
for _ in {0..29}; do
if "${iwctl[@]}" show | grep -q '\s*State\s\+connected\s*$'; then
kill -35 "$(cat "$HOME/.cache/pidofbar")"
kill -36 "$(cat "$HOME/.cache/pidofbar")"
exit 0
fi
sleep 1

View File

@ -2,8 +2,6 @@
dbus-update-activation-environment --systemd DISPLAY XAUTHORITY
export QT_STYLE_OVERRIDE=Materia-dark
# startup
autorandr -c &
xss-lock -n "feh --fullscreen '$XDG_CONFIG_HOME/wallpapers/lock.png'" -- lock &

View File

@ -24,7 +24,7 @@ path=(
"$HOME/.local/bin"
"$XDG_DATA_HOME/flatpak/exports/bin"
/var/lib/flatpak/exports/bin
$path
"$path"
)
export BROWSER=org.mozilla.firefox

View File

@ -3,7 +3,7 @@
See (https://git.maby.dev/ange/archinstall.git) for installation
- To clone the repo:
```console
```bash
git clone --bare https://git.maby.dev/ange/.dotfiles.git ~/.dotfiles
alias config='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
config checkout -f
@ -12,6 +12,6 @@ config config status.showUntrackedFiles no
```
- To update submodules:
```
```bash
config submodule update --recursive --remote
```