#!/bin/sh # # Profile of Surdeus. # # The main configuraton for each PC via the env directory. export ETC="$HOME/etc" export ENVDIR="$HOME/env" export SETENV="$ETC/setenv/sh" reload-profile(){ . $PROFILE } use-nvidia(){ . $ETC/script/use-nvidia.sh } no-output() { $@ &> /dev/null } lfcd(){ tmp="$(mktemp)" lf -last-dir-path="$tmp" "$@" if [ -f "$tmp" ]; then dir="$(cat "$tmp")" rm -f "$tmp" if [ -d "$dir" ]; then if [ "$dir" != "$(pwd)" ]; then cd "$dir" fi fi fi } usctl(){ systemctl --user $@ } sctl(){ systemctl $@ } jctl(){ journalctl $@ } export-loop(){ # Chore, because I'm lazy to type "export" so many times. # Standard "export" command takes arguments # from variables from the start, but I want to # use other variables in definition for next of them. while test -n "$1" ; do # Doing until we have arguments. value="$(eval echo $2)" name="$1" export "$name"="$value" shift 2 done } which-first() { ret="" for prog in $@ ; do if no-output which "$prog" ; then ret="$prog" break fi done which "$ret" } source-if-exist() { for i in $@ ; do if test -r "$i" ; then . "$i" fi done } if test "$OS" != "Windows_NT" ; then PATH="$HOME/exe:$HOME/.local/bin:$PATH" fi # Preconfig. export APP="$HOME/app" export BIN="$HOME/bin" export LOAD="$HOME/load" export PATH="$PATH:$BIN" export GIT="https://surdeus.su" export DEV="$HOME/dev" export PATH="$PATH:$BIN" export PATH="$PATH:$HOME/.cargo/bin" # CLI. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib64" export LANG="en_US.UTF-8" export LESS="" export ENV="$HOME/.shrc" export PROMPT="; " export PS1="$PROMPT" export SUDO_PROMPT="# " export CMDHIST="$ETC/cmds" export CMDHISTMAX="100" export PROFILE="$HOME/.profile" export LOGIN="$ETC/login/sh" export INDENT=" " # XDG. export XDG_UTILS_DEBUG_LEVEL='3' export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/dat" export PERSONAL_SHELL="sh" export VIMRC="$HOME/.vimrc" export XKB_DEFAULT_OPTIONS="caps:escape" export SSH_ASKPASS='' # Golang. export GOPATH="$APP/go" export GOBIN="$BIN" export PATH="/usr/local/go/bin:$PATH" export PATH="$PATH:$GOBIN" # CLI. # Programs. export KITTY_CONFIG_DIRECTORY="$ETC/kitty" export OPENER="`which-first xdg-open`" export EDITOR=`which-first hx nvim vim vi ed` export VISUAL="$EDITOR" export GIT_EDITOR="$VISUAL" export PAGER=`which-first moar bat less more cat` export MANPAGER="`which-first moar less more`" export CLI_DMENU=`which-first fzf` export CLI_FILE_MANAGER=`which-first lf` # Xorg export XAUTHORITY=$HOME/.Xauthority export XINITRC=$ETC/x/xinitrc # GUI programs. export XCOMPOSER='river' export XTERMINAL='kitty -1 --instance-group "$DISPLAY"' export XINSIDE_TERMINAL='kitty -1 --instance-group "$DISPLAY"' export XRUNNER='fuzzel' export XDMENU='fuzzel -d' export XBAR='waybar' export XBLUETOOTH_MANAGER='blueman-manager' export XOUTPUT_DAEMON='kanshi' export XSOUND_CONTROL='pavucontrol' export XFILE_MANAGER='$XINSIDE_TERMINAL $CLI_FILE_MANAGER' export XRESOURCE_MONITOR='$XINSIDE_TERMINAL htop' export XCALENDAR='$XINSIDE_TERMINAL calcurse' export XPUSH_NOTIFICATION_DAEMON='dunst' export XNOTIFY='dunstify' export XLOCKER='swaylock' export XSUSPEND='systemctl suspend' export XCLIPBOARD_MANAGER='clipman store' export XCLIPBOARD_DAEMON='wl-paste -t text --watch $XCLIPBOARD_MANAGER' export XCLIPBOARD_TOOL='clipman pick --tool=CUSTOM --tool-args="$XDMENU"' export XEDITOR="`which-first nvim-qt`" export XDISPLAY_REGION='slurp' export XDISPLAY_SCREENSHOT="grim" export XDISPLAY_REGION_SCREENSHOT='slurp | grim -g - - | wl-copy' export XVIDEO_PLAYER='mpv' export XLINK_VIDEO_PLAYER='mpv' export XTYPE='wtype' export XBACKGROUND_DAEMON='swaybg -m fill -i $ETC/img/eat-sleep-code-repeat.png' export XBLUETOOTH_APPLET='blueman-applet' export RIVER_TILER='rivertile -view-padding 0 -outer-padding 0' # Android. export ANDROID_HOME="$HOME/app/android/Sdk" #export ANDROID_SDK_HOME="$HOME/app/android-sdk" export ANDROID_USER_HOME=$XDG_CONFIG_HOME/android export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools" #export PATH="$PATH:$ANDROID_SDK_HOME/cmdline-tools/*/bin" source-if-exist "$ETC/script/lf.sh" # Visual editor. ve(){ $VISUAL $@ } # Editor. e(){ $EDITOR $@ } # Run pager. p() { $PAGER $@ } q() { exit } # Manual find. manf() { if test -z "$CLI_DMENU" ; then echo No 'no $CLI_DMENU env' return 1 fi pagename=`man -k . | $CLI_DMENU -e -1 $(if test ! -z $@ ; then echo -- -q "$@" ; fi ) | awk '{print $1}'` if test -z "$pagename" ; then return 1 fi man "$pagename" } export GPG_TTY=$(tty) export SSH_TTY=$(tty) test -r "$SETENV" && . "$SETENV" && setenv profile . "$HOME/.cargo/env"