diff --git a/.bash_profile b/.bash_profile new file mode 100644 index 0000000..f837915 --- /dev/null +++ b/.bash_profile @@ -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" +} diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..1543b20 --- /dev/null +++ b/.bashrc @@ -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 diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml index 942bdbe..617e9c3 100644 --- a/.config/alacritty/alacritty.toml +++ b/.config/alacritty/alacritty.toml @@ -2,7 +2,9 @@ background = "#101010" [font] -size = 14 +#size = 19 +#size = 14 +size = 9 [window] opacity = 0.90 diff --git a/.config/autorandr/ip-agn/config b/.config/autorandr/agn/config similarity index 50% rename from .config/autorandr/ip-agn/config rename to .config/autorandr/agn/config index a5c8e8d..7e94d03 100644 --- a/.config/autorandr/ip-agn/config +++ b/.config/autorandr/agn/config @@ -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 diff --git a/.config/autorandr/agn/setup b/.config/autorandr/agn/setup new file mode 100644 index 0000000..035b4ec --- /dev/null +++ b/.config/autorandr/agn/setup @@ -0,0 +1 @@ +HDMI-A-0 00ffffffffffff0020a33000010000000c1d0103807341780acf74a3574cb02309484c21080081c0814081800101010101010101010108e80030f2705a80b0588a00ba882100001e023a801871382d40582c4500501d7400001e000000fc00484953454e53450a2020202020000000fd00184b0f883c000a202020202020012c020370705e615e5f605d6a6b01020405101113141f20212212036566626364282e3f40320907071507505704013d07c06706035f7e0183010000e200f9e305ff016e030c002000383c200080010203046ad85dc40178800702303ceb0146d000481f2a90506d84e3060d01e40f6900600000000000000000000000000000000c diff --git a/.config/autorandr/ip-agn/setup b/.config/autorandr/ip-agn/setup deleted file mode 100644 index 0415911..0000000 --- a/.config/autorandr/ip-agn/setup +++ /dev/null @@ -1,2 +0,0 @@ -HDMI-A-0 00ffffffffffff004c2d200d34415743191e010380341d782a9315a655519c27115054bfef80714f81c0810081809500a9c0b3000101023a801871382d40582c450009252100001e000000fd00324b1e5111000a202020202020000000fc00533234463335300a2020202020000000ff0048345a4e3630323031370a20200114020311b14690041f13120365030c001000011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000051 -eDP 00ffffffffffff0009e5d50800000000231d0104a5221378030b95935c59932a20505400000001010101010101010101010101010101043a803671381e403020360058c21000001a000000000000000000000000000000000000000000fe00424f452043510a202020202020000000fe004e5431353646484d2d4e34330a000e diff --git a/.config/bash/aliases.bash b/.config/bash/aliases.bash new file mode 100644 index 0000000..ec56648 --- /dev/null +++ b/.config/bash/aliases.bash @@ -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 +} diff --git a/.config/bash/docker.bash b/.config/bash/docker.bash new file mode 100644 index 0000000..753bd6b --- /dev/null +++ b/.config/bash/docker.bash @@ -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' diff --git a/.config/bash/git.bash b/.config/bash/git.bash new file mode 100644 index 0000000..43506f5 --- /dev/null +++ b/.config/bash/git.bash @@ -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' diff --git a/.config/bash/k8s.bash b/.config/bash/k8s.bash new file mode 100644 index 0000000..3a8f714 --- /dev/null +++ b/.config/bash/k8s.bash @@ -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' diff --git a/.config/bash/theme.bash b/.config/bash/theme.bash new file mode 100644 index 0000000..1ea1e6d --- /dev/null +++ b/.config/bash/theme.bash @@ -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\]' diff --git a/.config/newsraft/feeds b/.config/newsraft/feeds index af7b945..71ea268 100644 --- a/.config/newsraft/feeds +++ b/.config/newsraft/feeds @@ -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" diff --git a/.config/nvim/ftplugin/tex.lua b/.config/nvim/ftplugin/tex.lua index fe012c7..01b02d1 100644 --- a/.config/nvim/ftplugin/tex.lua +++ b/.config/nvim/ftplugin/tex.lua @@ -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 diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index a2e7363..6b0a2f5 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -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", "e", ".w !$SHELL") vim.keymap.set("n", "f", "%s/\\s\\+$//e") -vim.keymap.set("n", "N", "Nzz") -vim.keymap.set("n", "n", "nzz") ------------------------ ----- autocommands ----- diff --git a/.config/nvim/pack/plugins/opt/telescope b/.config/nvim/pack/plugins/opt/telescope index 5665d93..f2bfde7 160000 --- a/.config/nvim/pack/plugins/opt/telescope +++ b/.config/nvim/pack/plugins/opt/telescope @@ -1 +1 @@ -Subproject commit 5665d93988acfbb0747bdbf4f4cb583bcebc8930 +Subproject commit f2bfde705ac752c52544d5cfa8b0aee0a766c1ed diff --git a/.config/nvim/pack/plugins/opt/treesitter b/.config/nvim/pack/plugins/opt/treesitter index 3e45483..122b4d3 160000 --- a/.config/nvim/pack/plugins/opt/treesitter +++ b/.config/nvim/pack/plugins/opt/treesitter @@ -1 +1 @@ -Subproject commit 3e454836ce8350d1f7b780a1a34e5cbfc9ecf715 +Subproject commit 122b4d3db1616c1f1305b847c5ed2217c4c329f1 diff --git a/.config/suckless/dwm-6.5/config.h b/.config/suckless/dwm-6.5/config.h index 5fb51ba..73a2192 100644 --- a/.config/suckless/dwm-6.5/config.h +++ b/.config/suckless/dwm-6.5/config.h @@ -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 } }, }; diff --git a/.config/zsh/.zprofile b/.config/zsh/.zprofile index 321db7b..a092df3 100644 --- a/.config/zsh/.zprofile +++ b/.config/zsh/.zprofile @@ -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" +} diff --git a/.config/zsh/aliases/general.zsh b/.config/zsh/aliases/general.zsh index fef925f..9f5df22 100644 --- a/.config/zsh/aliases/general.zsh +++ b/.config/zsh/aliases/general.zsh @@ -6,6 +6,8 @@ function update() { alias pac='sudo pacman' alias neofetch=fastfetch +alias mail=aerc +alias rss=newsraft alias vi='$EDITOR' diff --git a/.config/zsh/input.zsh b/.config/zsh/input.zsh index fa2e225..3399e2b 100644 --- a/.config/zsh/input.zsh +++ b/.config/zsh/input.zsh @@ -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 diff --git a/.config/zsh/theme.zsh b/.config/zsh/theme.zsh index 7a49fca..2a16fa3 100644 --- a/.config/zsh/theme.zsh +++ b/.config/zsh/theme.zsh @@ -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 diff --git a/.inputrc b/.inputrc new file mode 100644 index 0000000..c581b9b --- /dev/null +++ b/.inputrc @@ -0,0 +1,5 @@ +set colored-stats on + +"\e[A":history-search-backward + +Control-l: clear-screen diff --git a/.local/bin/light b/.local/bin/light index 1ed1680..82639d9 100755 --- a/.local/bin/light +++ b/.local/bin/light @@ -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%" diff --git a/.local/bin/sbar b/.local/bin/sbar index c571819..6da83f0 100755 --- a/.local/bin/sbar +++ b/.local/bin/sbar @@ -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 ';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 diff --git a/.local/bin/steam b/.local/bin/steam new file mode 100755 index 0000000..7c4c821 --- /dev/null +++ b/.local/bin/steam @@ -0,0 +1,3 @@ +#!/bin/bash + +com.valvesoftware.Steam --nobrowser diff --git a/.local/bin/vol b/.local/bin/vol index cfa9b32..b2a21d9 100755 --- a/.local/bin/vol +++ b/.local/bin/vol @@ -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")" diff --git a/.local/bin/wlp b/.local/bin/wlp index c5b1207..fb85874 100755 --- a/.local/bin/wlp +++ b/.local/bin/wlp @@ -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 diff --git a/.xinitrc b/.xinitrc index bace22b..cb16589 100644 --- a/.xinitrc +++ b/.xinitrc @@ -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 & diff --git a/.zshenv b/.zshenv index eea60c3..943d7f7 100644 --- a/.zshenv +++ b/.zshenv @@ -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 diff --git a/README.md b/README.md index b43126e..e4602f2 100644 --- a/README.md +++ b/README.md @@ -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 ```