dotfiles/.bash_xinitrc

226 lines
6.6 KiB
Bash

# ex: set ts=4 sw=4 ft=sh
# xrandr --setprovideroutputsource 1 0 --setprovideroutputsource 2 0
# Configure Displays
three-mon
# xrandr --newmode "1600x900_60.00" 119.00 1600 1696 1864 2128 900 901 904 932 -HSync +Vsync
# xrandr --addmode DVI-I-1-1 "1600x900_60.00"
# xrandr --above DP-1 --output DVI-I-1-1 --auto --mode "1600x900_60.00" --left-of DP-1
# Wallpaper Diashows
# wp-dia hor eDP-1 10m
# wp-dia wp-repo-1 HDMI-1 10m
# wp-dia wp-repo-1 DP-1 10m
# Keymap
setxkbmap -layout us
# Enable Touchpad While Typing
# xinput |
# grep Touchpad |
# awk '{print $6}' |
# sed "s/id=//" - |
# {
# read iid; xinput list-props $iid |
# grep "Typing Enabled (" |
# awk '{gsub(/\(|\)|:/,""); print $6}' |
# xargs -I pid xinput set-prop "$iid" pid 0;
# }
updatebar
######################### More or less shell specific ##########################
pathvarprepend () {
# prepending paths to pathvar denoted by the expansion of the PATHVAR parameter
# if it's already in the PATH, move it to the end
# POSIX compliant version
test -n "$2" ||
{ echo "Usage: pathvarprepend PATHVAR PATH_TO_ADD [PATH_TO_ADD...]";
echo "Example: pathvarprepend LD_LIBRARY_PATH '$HOME/.local/lib' '/usr/local/lib'";
return 2; }
pathvar=$1
shift
case $pathvar in (*[!abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*|""|[0123456789]*) false;; esac ||
{ echo 'Expanded pathvar is not a valid name/variable identifier'; return 3; }
if [ "$pathvar" = "PATH" ]; then
test "${-#*r}" = $- ||
{ echo 'Restricted shell, cannot change PATH'; return 4; }
fi
path_prepend_error=0
# Thanks Stephane
code="set -- dummy"
n=$#
while [ "$n" -gt 0 ]; do
code="$code \"\${$n}\""
n=$((n - 1))
done
eval "$code"
while shift; [ $# -gt 0 ]; do
norm_path_to_add=$1
test "${norm_path_to_add#*:}" = "$norm_path_to_add" ||
{ echo 'Cannot add path with colon'; path_prepend_error=1; continue; }
test -d "$norm_path_to_add" ||
{ echo "path_to_add ('$norm_path_to_add') not a directory"; path_prepend_error=1; continue; }
norm_path=$(printf %s ":$(eval "printf %s "'"'"\$$pathvar"'"'):" | head -n 1 | sed 's|/\+|/|g; s/\/$//; s/:/::/g') # fence with colons, ensure one line, deduplicate slashes, trim trailing, duplicate colons
norm_path_to_add=$(printf %s "$norm_path_to_add" | head -n 1 | sed 's|/\+|/|g; s/\/$//') # ensure one line, deduplicate slashes, trim trailing
exec 3<<- 'EOF'
# escape BRE meta-characters
s/\\/\\./g # backslash first
s/\./\\./g
s/\^/\\^/g
s/\$/\\$/g
s/\*/\\*/g
s/\[/\\[/g
s|/|\\/|g # escape delimiter for outer sed
EOF
norm_path=$(printf %s "$norm_path" | sed "s/:$(printf %s "$norm_path_to_add" | sed -f /proc/self/fd/3 3<&3)://g") # remove all instances of PATH_TO_ADD from PATH
exec 3<&-
norm_path=$(printf %s "$norm_path" | sed 's/:\+/:/g; s/^://; s/:$//') # deduplicate colons, trim leading and trailing
eval "$pathvar=\$norm_path_to_add\${norm_path:+:\$norm_path}" # prepend with colon
done
return $path_prepend_error
}
pathvarappend () {
# appending paths to pathvar denoted by the expansion of the PATHVAR parameter
# if it's already in the PATH, move it to the end
# POSIX compliant version
test -n "$2" ||
{ echo "Usage: pathappend PATHVAR PATH_TO_ADD [PATH_TO_ADD...]";
echo "Example: pathappend LD_LIBRARY_PATH '$HOME/.local/lib' '/usr/local/lib'";
return 2; }
pathvar=$1
case $pathvar in (*[!abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*|""|[0123456789]*) false;; esac ||
{ echo 'Expanded pathvar is not a valid name/variable identifier'; return 3; }
if [ "$pathvar" = "PATH" ]; then
test "${-#*r}" = $- ||
{ echo 'Restricted shell, cannot change PATH'; return 4; }
fi
path_append_error=0
while shift; [ $# -gt 0 ]; do
norm_path_to_add=$1
test "${norm_path_to_add#*:}" = "$norm_path_to_add" ||
{ echo 'Cannot add path with colon'; path_append_error=1; continue; }
test -d "$norm_path_to_add" ||
{ echo "path_to_add ('$norm_path_to_add') not a directory"; path_append_error=1; continue; }
norm_path=$(printf %s ":$(eval "printf %s "'"'"\$$pathvar"'"'):" | head -n 1 | sed 's|/\+|/|g; s/\/$//; s/:/::/g') # fence with colons, ensure one line, deduplicate slashes, trim trailing, duplicate colons
norm_path_to_add=$(printf %s "$norm_path_to_add" | head -n 1 | sed 's|/\+|/|g; s/\/$//') # ensure one line, deduplicate slashes, trim trailing
exec 3<<- 'EOF'
# escape BRE meta-characters
s/\\/\\./g # backslash first
s/\./\\./g
s/\^/\\^/g
s/\$/\\$/g
s/\*/\\*/g
s/\[/\\[/g
s|/|\\/|g # escape delimiter for outer sed
EOF
norm_path=$(printf %s "$norm_path" | sed "s/:$(printf %s "$norm_path_to_add" | sed -f /proc/self/fd/3 3<&3)://g") # remove all instances of PATH_TO_ADD from PATH
exec 3<&-
norm_path=$(printf %s "$norm_path" | sed 's/:\+/:/g; s/^://; s/:$//') # deduplicate colons, trim leading and trailing
eval "$pathvar=\${norm_path:+\$norm_path:}\$norm_path_to_add" # append with colon
done
return $path_append_error
}
path_append () {
pathvarappend PATH "$@"
}
ld_lib_path_append () {
pathvarappend LD_LIBRARY_PATH "$@"
}
cdpath_append () {
pathvarappend CDPATH "$@"
}
path_prepend () {
pathvarprepend PATH "$@"
}
ld_lib_path_prepend () {
pathvarprepend LD_LIBRARY_PATH "$@"
}
cdpath_prepend () {
pathvarprepend CDPATH "$@"
}
# shellcheck disable=SC2155
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
# export SUDO_ASKPASS="/usr/bin/sudo-askpass"
# export SSH_ASKPASS="/usr/bin/sudo-askpass"
# export SSH_ASKPASS_REQUIRE="prefer"
export GIT_CONFIG_GLOBAL="$HOME/.gitconfig"
# shellcheck disable=SC2155
export GPG_TTY="$(tty)"
export _JAVA_AWT_WM_NONREPARENTING="1"
export USER42="tischmid"
export EMAIL42="timo42@proton.me"
export MAIL="timo42@proton.me"
export GOPATH="$HOME/go"
ld_lib_path_append "${LD_LIBRARY_PATH}:${HOME}/.local/lib"
export LD_LIBRARY_PATH
path_prepend "/bin" \
"/sbin" \
"/usr/bin" \
"/usr/sbin" \
"/usr/local/bin" \
"/usr/lcoal/sbin" \
"/usr/local/games" \
"/usr/games" \
"/snap/bin" \
"${HOME}/bin" \
"${HOME}/.local/bin" \
"${HOME}/.local/include" \
"${HOME}/.brew/bin" \
"${GOPATH}/bin"
export PATH
# add cargo bin to path
if [ -f "$HOME/.cargo/env" ] || [ -r "$HOME/.cargo/env" ]; then
# shellcheck disable=SC1091
. "$HOME/.cargo/env"
fi
export NVM_DIR="$HOME/.nvm"
# shellcheck disable=SC1091
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
# shellcheck disable=SC1091
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
####################### More or less shell specific END ########################
picom &
nohup startlxde 2>/dev/null 1>&2 & disown
while true ; do
dwm 2>>/home/tosuman/.xinit.log 1>&2
sleep 0.5
done