aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2022-08-12 19:09:52 -0300
committerEuAndreh <eu@euandre.org>2022-08-12 19:09:52 -0300
commit4d813084363593037f3d0aaa93916730901dc529 (patch)
tree00e51dcd6124d5b6f26c6dc3aff9df41d734b124 /etc
parentetc/ranger/rc.conf: Add key bindings (diff)
downloaddotfiles-4d813084363593037f3d0aaa93916730901dc529.tar.gz
dotfiles-4d813084363593037f3d0aaa93916730901dc529.tar.xz
etc/{bash => sh}/rc: Separate Bash-specific code, remove unused code
Diffstat (limited to 'etc')
-rw-r--r--etc/sh/rc (renamed from etc/bash/rc)250
1 files changed, 102 insertions, 148 deletions
diff --git a/etc/bash/rc b/etc/sh/rc
index 1cfd404..1838961 100644
--- a/etc/bash/rc
+++ b/etc/sh/rc
@@ -1,9 +1,8 @@
#!/bin/sh
-ln -fs .profile ~/.bashrc
export ENV=~/.profile
-XDG_PREFIX=~/.usr
+export XDG_PREFIX=~/.usr
export XDG_CACHE_HOME="$XDG_PREFIX/var/cache"
export XDG_CONFIG_HOME="$XDG_PREFIX/etc"
export XDG_DATA_HOME="$XDG_PREFIX/share"
@@ -13,23 +12,46 @@ export XDG_DATA_DIRS="$XDG_DATA_HOME/flatpak/exports/share:/var/lib/flatpak/expo
mkdir -p \
- "$XDG_CONFIG_HOME" \
- "$XDG_CACHE_HOME" \
- "$XDG_DATA_HOME" \
- "$XDG_STATE_HOME" \
- "$XDG_LOG_HOME"
+ "$XDG_CONFIG_HOME" \
+ "$XDG_CACHE_HOME" \
+ "$XDG_DATA_HOME" \
+ "$XDG_STATE_HOME" \
+ "$XDG_LOG_HOME" \
+ "$XDG_CACHE_HOME/euandreh" \
+ "$XDG_DATA_HOME/euandreh" \
+ "$XDG_STATE_HOME/euandreh" \
+ "$XDG_LOG_HOME/euandreh"
GUIX_PROFILE="$XDG_CONFIG_HOME"/guix/current
if [ -e "$GUIX_PROFILE"/etc/profile ]; then
. "$GUIX_PROFILE"/etc/profile
fi
-HISTSIZE=-1
-HISTFILE="$XDG_STATE_HOME/bash-history"
-HISTCONTROL=ignorespace:ignoredups
+# FIXME
+idempotent_path_add() {
+ case "$(eval "echo \$$1")" in
+ *"$2"*)
+ ;;
+ *)
+ eval "export $1=$2\${$1:+:}\${$1:-}"
+ ;;
+ esac
+}
+export A="$HOME${A:+:}${A:-}"
+idempotent_path_add B "$HOME"
+export XDG_DATA_DIRS="$XDG_DATA_HOME/flatpak/exports/share:/var/lib/flatpak/exports/share${XDG_DATA_DIRS:+:}${XDG_DATA_DIRS:-}"
+# idempotent_path_add XDG_DATA_DIRS "$XDG_DATA_HOME/flatpak/exports/share"
+
+
+
+#
+#
+#
+export HISTSIZE=-1
+export HISTFILE="$XDG_STATE_HOME/sh-history"
export SRC=~/dev
-export EDITOR='vi'
+export EDITOR='e'
export VISUAL="$EDITOR"
export PAGER='less -R'
export BROWSER='firefox'
@@ -38,16 +60,15 @@ export BACKLIGHT_DEVICE='acpi_video0'
export GUILE_HISTORY="$XDG_STATE_HOME/guile-history"
export GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
-export INPUTRC="$XDG_CONFIG_HOME/bash/inputrc"
export RLWRAP_HOME="$XDG_CACHE_HOME/rlwrap"
export LESSHISTFILE="$XDG_STATE_HOME/lesshst"
export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch/default/config"
-export PASSWORD_STORE_DIR="$SRC/others/password-store"
+export PASSWORD_STORE_DIR="$SRC/private/password-store"
export MAILCAPS="$XDG_CONFIG_HOME/mailcaps/config"
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc.py"
export EXINIT='
" set number
- set autoindent
+ " set autoindent
set ruler
set showmode
set showmatch
@@ -59,16 +80,20 @@ export BORG_REPO="suyin:borg/$HOSTNAME"
export BORG_REMOTE_PATH='borg1'
N_PROCS=$(($(nproc) * 2 + 1))
+GUILE_EFFECTIVE_VERSION="$(guile -c '(display (effective-version))')"
export MAKEFLAGS="-j $N_PROCS"
export GOPATH="$SRC/go"
export CFLAGS='-std=c99 -Wall -Wextra -Wpedantic -g -flto -Werror'
-export CC=tcc
+export CC=gcc
export AR=gcc-ar
export LEX=flex
export LDFLAGS='-flto'
export LISP='sbcl --eval'
+export N_PROCS GUILE_EFFECTIVE_VERSION
add_prefix() {
+ export GUILE_LOAD_PATH="$1/share/guile/site/$GUILE_EFFECTIVE_VERSION${GUILE_LOAD_PATH:+:}${GUILE_LOAD_PATH:-:}"
+ export GUILE_LOAD_COMPILED_PATH="$1/lib/guile/$GUILE_EFFECTIVE_VERSION/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}${GUILE_LOAD_COMPILED_PATH:-}"
export C_INCLUDE_PATH="$1/include${C_INCLUDE_PATH:+:}${C_INCLUDE_PATH:-}"
export LIBRARY_PATH="$1/lib${LIBRARY_PATH:+:}${LIBRARY_PATH:-}"
export INFOPATH="$1/share/info${INFOPATH:+:}${INFOPATH:-}"
@@ -77,11 +102,8 @@ add_prefix() {
}
export PREFIX="$XDG_PREFIX/var/mkg"
add_prefix "$PREFIX"
+add_prefix "$XDG_PREFIX"
-export PATH="$XDG_PREFIX/bin:$PREFIX/bin:$HOME/dev/libre/website/bin:$PATH"
-
-# FIXME
-export GUILE_LOAD_PATH="$HOME/dev/libre/servers/src/infrastructure/lib:$GUILE_LOAD_PATH"
#
@@ -100,13 +122,8 @@ alias mm='msmtp-queue -r'
alias s='vcs_status'
alias d='vcs_diff'
alias ds='vcs_diff_staged'
-
-alias mk='make clean && make dev-check'
-alias wmk='aux/with-container "make clean && make dev-check"'
-alias tt='mk && wmk'
-alias todos='make public && open public/TODOs.html'
-alias valgrind='valgrind --show-error-list=yes --show-leak-kinds=all --leak-check=full --track-origins=yes --error-exitcode=1'
-alias check='sh "$XDG_CONFIG_HOME"/bash/check.sh'
+alias check='sh "$XDG_CONFIG_HOME"/sh/check.sh'
+alias tpd='cd "$(mkdtemp)"'
alias l='ls -lahF --color'
alias grep='grep --color=auto'
@@ -114,10 +131,11 @@ alias diff='diff --color=auto'
alias watch='watch --color '
alias man='MANWIDTH=$((COLUMNS > 80 ? 80 : COLUMNS)) man'
alias less='less -R'
-alias tree='tree -C'
+alias tree='tree -aC'
alias make='make -e'
alias mv='mv -i'
alias rm='rm -i'
+alias vi='echo "Use \"e\" instead."; false'
alias sqlite='rlwrap sqlite3'
alias sbcl='rlwrap sbcl'
@@ -132,7 +150,7 @@ alias flush='sync && echo 3 | sudo tee /proc/sys/vm/drop_caches > /dev/null'
# PS1
#
-. "$XDG_CONFIG_HOME"/bash/vcs-ps1.sh
+. "$XDG_CONFIG_HOME"/sh/vcs-ps1.sh
@@ -154,9 +172,12 @@ g() {
f="$(echo "$fn" | cut -d: -f1)"
n="$(echo "$fn" | cut -d: -f2)"
# shellcheck disable=2068
+ # history -s g "$@"
+ # history -s vi "+$n" "$f"
+ # vi "+$n" "$f"
history -s g "$@"
- history -s vi "+$n" "$f"
- vi "+$n" "$f"
+ history -s e "+$n" "$f"
+ e "+$n" "$f"
fi
}
@@ -174,98 +195,22 @@ f() {
fi
}
-v() {
- V_FILES="$(
- cat <<-EOF | sed "s|$HOME|~|"
- ~/Documents/txt/TODOs.md
- ~/Documents/txt/scratch.txt
- $XDG_CONFIG_HOME/bash/rc
- $XDG_CONFIG_HOME/guix/home.scm
- $XDG_CONFIG_HOME/guix/system.scm
- $(find ~/Documents/txt/*.md -not -name TODOs.md |
- sed "s|^$HOME|~|" |
- LANG=POSIX.UTF-8 sort)
- ~/dev/libre/package-repository/dependencies.dot
- ~/dev/others/dinheiros/dinheiros.ledger
- ~/dev/libre/dotfiles/sh/fake-symlinks.sh
- $XDG_CONFIG_HOME/guix/channels.scm
- EOF
- )"
- f="$(echo "$V_FILES" | fzf --select-1 --exit-0 --query "$1")"
- if [ -n "$f" ]; then
- history -s v "$@"
- history -s vi "$f"
- sh -c "vi $f"
- fi
-}
-
-cn() {
- CHOICE="$(git log --oneline | fzf)"
- git log --oneline | grep -nF "$CHOICE" | cut -d: -f1
-}
-
-cm() {
- n="$(cn)"
- git rev-parse "HEAD~$((n - 1))"
-}
-
-
-
-deps() {
- cd ~/dev/libre/package-repository/ || return 1
- rm -f public/dependencies.svg
- make public/dependencies.svg > /dev/null
- if [ "${1:-}" != '-q' ]; then
- open public/dependencies.svg
- fi
- cd - > /dev/null || return 1
-}
-(deps -q &) 2>/dev/null
-
-rdeps() {
- echo ~/dev/libre/package-repository/dependencies.dot |
- entr -cs '. ~/.profile'
-}
-
-re() {
- if [ "$1" = -h ]; then
- echo "Usage: re 's/foo/bar/g' [FILES]"
- return
- fi
- SEPARATOR="$(echo "$1" | cut -c2)"
- REGEX="$(echo "$1" | cut -d"$SEPARATOR" -f2)"
- if [ -n "${2:-}" ]; then
- git grep -l "$REGEX" | xargs -I% sh -c "sed '$1' % | sponge %"
- else
- sed "$1" "$2" | sponge "$2"
- fi
-}
-
-container_dump() {
- TARGET_NAME="$(basename "$PWD")"
- OUT="$(mktemp -d)"
- cp "$(./aux/guix/with-container.sh -C)" "$OUT/docker.tar.gz"
- cd "$OUT" || exit 1
- tar xvf docker.tar.gz
- # FIXME: Remove doas
- doas docker tag \
- "$(doas docker load < docker.tar.gz | grep latest | cut -d: -f2)" \
- "$TARGET_NAME"
-}
+cat <<-EOF | sed "s|$HOME|~|" > "$XDG_DATA_HOME"/euandreh/e.list.txt
+ ~/Documents/txt/TODOs.md
+ ~/Documents/txt/scratch.txt
+ $XDG_CONFIG_HOME/sh/rc
+ $XDG_CONFIG_HOME/guix/home.scm
+ $XDG_CONFIG_HOME/guix/system.scm
+ $(find ~/Documents/txt/*.md -not -name TODOs.md |
+ sed "s|^$HOME|~|" |
+ LANG=POSIX.UTF-8 sort)
+ ~/dev/libre/package-repository/dependencies.dot
+ ~/dev/others/dinheiros/dinheiros.ledger
+ ~/dev/libre/dotfiles/sh/fake-symlinks.sh
+ $XDG_CONFIG_HOME/guix/channels.scm
+EOF
-svg() {
- guix graph "$1" | dot -Tsvg > "$1".svg
- open "$1".svg
-}
-serve() {
- open http://localhost:8000
- if [ -d public ]; then
- python3 -m http.server -d public
- else
- python3 -m http.server
- fi
-}
reload() {
. ~/.profile
@@ -273,40 +218,22 @@ reload() {
rreload() {
reload
+ echo 'pactl load-module module-echo-cancel'
xset r rate 225 100 # FIXME: move xorg conf
- scp \
- ~/dev/libre/package-repository/public/dependencies.svg \
- kuvira:/opt/www/euandreh.xyz/static/package-repository/
-}
-
-tpd() {
- D="$(mkdtemp)"
- cd "$D" || return 1
-}
-
-m() {
- notmuch new
- mbsync EuAndreh &
- mbsync EuAndrehXYZ &
- mbsync Nubank &
- wait
- notmuch new
}
_edit_without_executing() {
- F="$(mkstemp)"
- printf '%s\n' "$READLINE_LINE" > "$F"
- "${VISUAL:-${EDITOR:-vi}}" "$F"
- READLINE_LINE="$(cat "$F")"
- READLINE_POINT="${#READLINE_LINE}"
- rm -f "$F"
+ F="$(mkstemp)"
+ printf '%s\n' "$READLINE_LINE" > "$F"
+ e "$F"
+ READLINE_LINE="$(cat "$F")"
+ READLINE_POINT="${#READLINE_LINE}"
+ rm -f "$F"
}
-
if set -o | grep 'on' | grep -Eq '^(vi|emacs)'; then
bind -x '"\C-x\C-e":_edit_without_executing'
fi
-eval "$(direnv hook bash)"
@@ -322,14 +249,41 @@ gpg --export-ssh-key eu@euandre.org > "$XDG_CONFIG_HOME"/ssh/id_rsa.pub
chmod 600 "$XDG_CONFIG_HOME"/ssh/id_rsa.pub
-stty -ixon # Disable C-s/C-q mode
+PUB_GPG_FILES="
+$HOME/dev/libre/package-repository/EuAndreh.key
+$HOME/dev/published/euandre.org/public.asc
+"
+for f in $PUB_GPG_FILES; do
+ gpg --armour --export eu@euandre.org > $f
+done
-if [ -e "$XDG_CONFIG_HOME"/bash/privrc.sh ]; then
+stty -ixon # Disable C-s/C-q mode
+
+F="$XDG_CONFIG_HOME"/sh/privrc.sh
+if [ -e "$F" ]; then
# Extra rc code to be loaded, stored in private repository
- . "$XDG_CONFIG_HOME"/bash/privrc.sh
+ . "$F"
fi
+
+
+
+#
+# From here on, bash-specific things.
+#
+
+if [ -z "$BASH_VERSION" ]; then
+ return
+fi
+
+ln -fs .profile ~/.bashrc
+
+export INPUTRC="$XDG_CONFIG_HOME/bash/inputrc"
+export HISTCONTROL=ignorespace:ignoredups
+
+eval "$(direnv hook bash)"
+
case $- in
*i*)
for f in "$HOME_ENVIRONMENT"/profile/etc/bash_completion.d/*; do