.profile 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. # exports
  2. export ACRONYMDB="$HOME/.local/share/acronyms"
  3. export BADWOLF_L10N="en_GB:fr_FR:de_DE:ru_RU"
  4. export BROWSER="badwolf:firefox:lynx"
  5. export EDITOR="$(which vis)"
  6. export ENV="$HOME/.profile"
  7. export GOPROXY="direct" # disable proxying to Google by default
  8. export GOSUMDB=off # do not query for module checksum when undefined in go.sum
  9. export GO111MODULE=on
  10. export GOPATH="$HOME/go:/usr/lib/go-gentoo"
  11. export ERL_AFLAGS="-kernel shell_history enabled"
  12. unset GIT_ALTERNATE_OBJECT_DIRECTORIES
  13. unset GIT_OBJECT_DIRECTORY
  14. export GPGKEY='DDC9237C14CF6F4DD847F6B390D93ACCFEFF61AE'
  15. export GPG_TTY="$(tty)"
  16. export GTK_CSD=0
  17. export GTK_OVERLAY_SCROLLING=0
  18. export HISTFILE="$HOME/.$(basename $SHELL)_history"
  19. export HISTSIZE="65536"
  20. export LANG="en_DK.UTF-8"
  21. export LC_MONETARY="fr_FR.UTF-8"
  22. export LC_TIME='en_DK.UTF-8' # ISO-8601 PLZ
  23. export LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'
  24. export MOZ_ALLOW_GTK_DARK_THEME=true
  25. export NNTPSERVER='news.free.fr'
  26. #export PATH="$(echo /{,usr/{,games/,local/,lib/llvm/{5,4}/,lib/plan9/}}{,s}bin | tr \ :)"
  27. export PATH="$HOME/.local/bin:$PATH:$HOME/go/bin"
  28. export PS4='$ '
  29. export QEMU_AUDIO_DRV=alsa
  30. export SSH_AGENT_PID=$(cat ${HOME}/.ssh/agent.pid)
  31. export SSH_AUTH_SOCK="${HOME}/.ssh/agent.sock"
  32. export TERMINAL='st'
  33. export TZ='Europe/Paris'
  34. export QT_STYLE_OVERRIDE=adwaita-dark
  35. # Own environment variables for agnostism
  36. export MY_WALLPAPER_MODE='tile' # one of fill, center, tile
  37. export MY_WALLPAPER="$HOME/Memes/Lain/love-lain.png"
  38. # Input Method
  39. export XMODIFIERS=@im=ibus
  40. export GTK_IM_MODULE="ibus"
  41. export QT_IM_MODULE="ibus"
  42. #unset XMODIFIERS
  43. #unset GTK_IM_MODULE
  44. #unset QT_IM_MODULE
  45. # https://devmanual.gentoo.org/general-concepts/manifest/index.html
  46. export PORTAGE_GPG_DIR=$HOME
  47. export PORTAGE_GPG_KEY=$GPGKEY
  48. export FEATURES="sign"
  49. # XDG user directories
  50. export XDG_DESKTOP_DIR="/var/empty"
  51. export XDG_DOCUMENTS_DIR="/var/empty"
  52. export XDG_DOWNLOAD_DIR="$HOME/Downloads"
  53. export XDG_TEMPLATES_DIR="$HOME/templates"
  54. export XDG_VIDEOS_DIR="$HOME/Videos"
  55. export XDG_MUSIC_DIR="$HOME/Music"
  56. export XDG_RUNTIME_DIR="/tmp/$(id -u)-xdg_runtime_dir"
  57. [ -d "${XDG_RUNTIME_DIR}" ] || (
  58. mkdir -p "${XDG_RUNTIME_DIR}"
  59. chmod 0700 "${XDG_RUNTIME_DIR}"
  60. )
  61. export XDG_CACHE_HOME="/tmp/$(id -u)-xdg_cache_home"
  62. [ -d "${XDG_CACHE_HOME}" ] || (
  63. mkdir -p "${XDG_CACHE_HOME}"
  64. chmod 0700 "${XDG_CACHE_HOME}"
  65. )
  66. ## XKB configuration (Wayland+xinit)
  67. #export XKB_DEFAULT_RULES=""
  68. #export XKB_DEFAULT_MODEL=""
  69. export XKB_DEFAULT_LAYOUT="us,ru"
  70. if grep lanodan '/usr/share/X11/xkb/symbols/us' >/dev/null 2>/dev/null
  71. then
  72. export XKB_DEFAULT_VARIANT="lanodan,phonetic"
  73. else
  74. export XKB_DEFAULT_VARIANT=",phonetic"
  75. fi
  76. # grp:alt_shift_toggle conflicts with shift:both_capslock
  77. export XKB_DEFAULT_OPTIONS="compose:menu,grp:alt_shift_toggle,terminate:ctrl_alt_bksp,keypad:pointerkeys,ctrl:nocaps,lv3:ralt_switch"
  78. ## Fuck off nvidia
  79. export VDPAU_DRIVER=nouveau
  80. export LIBVA_DRIVER_NAME=nouveau
  81. ## Fuck off GNUisms
  82. export POSIXLY_CORRECT=1
  83. # Aliases
  84. alias bash="SHELL=/bin/bash bash -l"
  85. alias bc="bc ~/Sources/git/hacktivis.me/git/blog/notes/bc.txt"
  86. alias fuck='TF_ALIAS=fuck eval $(thefuck $(fc -ln -1))'
  87. alias fuu='su -c "$(fc -ln -1)"'
  88. alias git-st="git status --short --branch"
  89. alias git-story="git log --graph --abbrev-commit --decorate --format=format:'%C(cyan)%h%C(reset) %C(green)(%ad)%C(reset) %G?: %s %C(red)- %an %C(reset)%C(yellow)%d%C(reset)'"
  90. alias j='jobs -l'
  91. alias la='ls -ahF'
  92. alias ll='ls -alhF'
  93. alias ls='ls -hF'
  94. alias mv='mv -i'
  95. alias pscpu='ps -eo pid,user,pcpu,pmem,comm --sort -pcpu | head -20'
  96. alias psmem='ps -eo pid,user,pcpu,pmem,comm --sort -pmem | head -20'
  97. alias rm='rm -ri'
  98. alias sleep="$(which sleep)" # avoid sleep as a builtin
  99. alias xstart='startx -- $(tty | sed "s/\/dev\/tty/vt/")'
  100. # functions
  101. get_git_branch() {
  102. local branch
  103. if branch=$(git rev-parse --abbrev-ref HEAD 2> /dev/null); then
  104. if [[ "$branch" == "HEAD" ]]; then
  105. branch='detached*'
  106. elif [[ "$branch" == $(hostname) ]]; then
  107. branch='@.'
  108. fi
  109. printf -- ' %s' "$branch"
  110. else
  111. echo ''
  112. fi
  113. }
  114. get_working_directory() {
  115. pwd | sed "s|^$HOME|~|"
  116. }
  117. # = functions =
  118. # == prompt setup ==
  119. case $(hostname) in
  120. NightmareMoon) host_ansi="33" ;;
  121. hp2125) host_ansi="37" ;;
  122. *) host_ansi="31" ;;
  123. esac
  124. case $SHELL in
  125. *ksh*)
  126. # hack derived from ksh88(1), works in mksh, doesn't works in bash
  127. export PS1=' $?$(date +w%wT%T)${USER}[${host_ansi}m@$(hostname)$(get_working_directory)$(get_git_branch) '
  128. ;;
  129. *bash*)
  130. export PS1='\[\e[47;30m\]$?\[\e[37;100m\]\[\e[100;30m\]$(date +w%wT%T)\[\e[40;90m\]\[\e[40;32m\]\u\[\e[${host_ansi}m\]@\h\]\[\e[30;46m\]$(get_working_directory)\[\e[0;36m\]\[\e[0m\] '
  131. ;;
  132. *)
  133. # Don't even try escape codes, and so no powerline-style
  134. export PS1='$? $(date +w%wT%T) $USER@${HOSTNAME:=$(hostname)} $(get_working_directory) $(get_git_branch) > '
  135. ;;
  136. esac
  137. # = helpers =
  138. ssh-add-all() {
  139. ssh-add $(find ~/.ssh -name 'id_*' -a \( \! -name '*.pub' \))
  140. }
  141. ssh-start-agent() {
  142. code="$(ssh-add -l; echo ${?})"
  143. case "${code}" in
  144. 0) echo 'Managed to list keys, SSH agent appear to be active' ;;
  145. 1) echo 'Failed to list keys' ;;
  146. 2)
  147. rm -fr "$SSH_AUTH_SOCK"
  148. eval $(ssh-agent -a $SSH_AUTH_SOCK)
  149. echo "$SSH_AGENT_PID" > ~/.ssh/agent.pid
  150. return 0
  151. ;;
  152. *) echo 'Unknown return code: '${code} ;;
  153. esac
  154. return 1
  155. }
  156. ssh-tunnel() {
  157. local port=${1:-443}
  158. local server=${2:-hacktivis.me}
  159. local target_port=${3:-22$port}
  160. local target_host=${4:-localhost}
  161. echo "ssh -NL $target_port:$target_host:$port $server"
  162. ssh -NL $target_port:$target_host:$port $server
  163. }
  164. xdg-desktop-menu() {
  165. echo $1 $2 $3
  166. if [$1 = 'install']; then
  167. cp $2 ${XDG_DESKTOP_DIR:~/Desktop}
  168. fi
  169. }
  170. ssh-socks() {
  171. local server=${1:-hacktivis.me}
  172. local port=${2:-22443}
  173. echo "ssh -ND $port $server"
  174. ssh -ND $port $server
  175. }
  176. pmounts() {
  177. awk 'BEGIN { print "Mountpoint Type Device Options" } { print $2 " " $3 " " $1 " " $4 | "sort"}' /proc/mounts | column -t -s\
  178. }
  179. grep-unicode() {
  180. grep "$1" /usr/share/unicode-data/UnicodeData.txt | awk -F\; '{ system("unicode -t "$1); print FS "U+"$1 FS $2 }' | column -s\; -t
  181. }
  182. wtf-unicode() {
  183. wat-unicode $(unicode -h "$1")
  184. }
  185. wat-unicode() {
  186. awk -F\; '{ if($1 == "'${1}'"){print "U+"$1 FS $2} }' /usr/share/unicode-data/UnicodeData.txt
  187. }
  188. # startup
  189. gpg-connect-agent /bye # Make sure gpg-agent is started
  190. stty sane # I can haz urandom