summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.bashrc25
-rw-r--r--.config/dircolors185
-rw-r--r--.config/shell/aliasrc20
-rw-r--r--.config/shell/profile58
l---------.profile1
5 files changed, 289 insertions, 0 deletions
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..fd006d2
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,25 @@
+# if not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+# color mapping
+grey='\[\033[1;30m\]'
+red='\[\033[0;31m\]'
+RED='\[\033[1;31m\]'
+green='\[\033[0;32m\]'
+GREEN='\[\033[1;32m\]'
+yellow='\[\033[0;33m\]'
+YELLOW='\[\033[1;33m\]'
+magenta='\[\033[0;35m\]'
+MAGENTA='\[\033[1;35m\]'
+white='\[\033[0;37m\]'
+WHITE='\[\033[1;37m\]'
+blue='\[\033[0;34m\]'
+BLUE='\[\033[1;34m\]'
+cyan='\[\033[0;36m\]'
+CYAN='\[\033[1;36m\]'
+NC='\[\033[0m\]'
+
+PS1="$RED[$YELLOW\u$GREEN@$BLUE\h $MAGENTA\W$RED]$CYAN\$$NC "
+
+[ ! -z "$XDG_CONFIG_HOME" ] && [ -f $XDG_CONFIG_HOME/dircolors ] && eval "$(dircolors $XDG_CONFIG_HOME/dircolors)"
+[ ! -z "$XDG_CONFIG_HOME" ] && [ -f $XDG_CONFIG_HOME/shell/aliasrc ] && source $XDG_CONFIG_HOME/shell/aliasrc
diff --git a/.config/dircolors b/.config/dircolors
new file mode 100644
index 0000000..c04ba08
--- /dev/null
+++ b/.config/dircolors
@@ -0,0 +1,185 @@
+# Below are TERM entries, which can be a glob patterns, to match
+# against the TERM environment variable to determine if it is colorizable.
+TERM Eterm
+TERM ansi
+TERM *color*
+TERM con[0-9]*x[0-9]*
+TERM cons25
+TERM console
+TERM cygwin
+TERM dtterm
+TERM gnome
+TERM hurd
+TERM jfbterm
+TERM konsole
+TERM kterm
+TERM linux
+TERM linux-c
+TERM mlterm
+TERM putty
+TERM rxvt*
+TERM screen*
+TERM st
+TERM terminator
+TERM tmux*
+TERM vt100
+TERM xterm*
+TERM alacritty
+# Below are the color init strings for the basic file types.
+# Attribute codes:
+# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
+# Text color codes:
+# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
+# Background color codes:
+# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
+#NORMAL 00 # no color code at all
+#FILE 00 # regular file: use no color at all
+RESET 0 # reset to "normal" color
+DIR 01;35 # directory
+LINK 04;36 # symbolic link. (If you set this to 'target' instead of a
+ # numerical value, the color is as for the file pointed to.)
+MULTIHARDLINK 00 # regular file with more than one link
+FIFO 40;33 # pipe
+SOCK 01;35 # socket
+DOOR 01;35 # door
+BLK 40;33;01 # block device driver
+CHR 40;33;01 # character device driver
+ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file ...
+MISSING 00 # ... and the files they point to
+SETUID 37;41 # file that is setuid (u+s)
+SETGID 30;43 # file that is setgid (g+s)
+CAPABILITY 30;41 # file with capability
+STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
+OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
+STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
+# This is for files with execute permission:
+EXEC 01;32
+# List any file extensions like '.gz' or '.tar' that you would like ls
+# to colorize below. Put the extension, a space, and the color init string.
+# (and any comments you want to add after a '#')
+# If you use DOS-style suffixes, you may want to uncomment the following:
+#.cmd 01;32 # executables (bright green)
+#.exe 01;32
+#.com 01;32
+#.btm 01;32
+#.bat 01;32
+# Or if you want to colorize scripts even if they do not have the
+# executable bit actually set.
+#.sh 01;32
+#.csh 01;32
+ # archives or compressed (bright red)
+.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
+.dz 01;31
+.gz 01;31
+.lrz 01;31
+.lz 01;31
+.lzo 01;31
+.xz 01;31
+.zst 01;31
+.tzst 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
+.wim 01;31
+.swm 01;31
+.dwm 01;31
+.esd 01;31
+# image formats
+.jpg 01;35
+.jpeg 01;35
+.mjpg 01;35
+.mjpeg 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
+# https://wiki.xiph.org/MIME_Types_and_File_Extensions
+.ogv 01;35
+.ogx 01;35
+# audio formats
+.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
+# https://wiki.xiph.org/MIME_Types_and_File_Extensions
+.oga 00;36
+.opus 00;36
+.spx 00;36
+.xspf 00;36 \ No newline at end of file
diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc
new file mode 100644
index 0000000..5ddbf80
--- /dev/null
+++ b/.config/shell/aliasrc
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# vim selection
+command -v nvim &> /dev/null && alias vim="nvim" vimdiff="nvim -d"
+
+# verbosity
+alias cp="cp -iv"
+alias mv="mv -iv"
+alias rm="rm -iv"
+alias mkdir="mkdir -pv"
+
+# ls and use color when available
+alias ls="ls -Ah --color=always --group-directories-first"
+ alias ll="ls -l"
+ alias lll="ls -ltr"
+alias grep="grep --color=auto"
+alias diff="diff --color=auto"
+
+# dotfiles bare repository management
+alias dots="/usr/bin/git --git-dir=$HOME/.mdots/ --work-tree=$HOME" \ No newline at end of file
diff --git a/.config/shell/profile b/.config/shell/profile
new file mode 100644
index 0000000..f3ab4ca
--- /dev/null
+++ b/.config/shell/profile
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# read personal programs
+export PATH="$PATH:$(du -L "$HOME/.local/bin/" | cut -f2 | tr '\n' ':' | sed 's/:*$//')"
+# default programs
+if command -v nvim &> /dev/null; then
+ export EDITOR="nvim"
+elif command -v vim &> /dev/null; then
+ export EDITOR="vim"
+fi
+# ~/ cleanup
+ # XDG base directory specification found in:
+ # https://wiki.archlinux.org/index.php/XDG_Base_Directory
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_CACHE_HOME="$HOME/.cache"
+export XDG_DATA_HOME="$HOME/.local/share"
+export XDG_STATE_HOME="$HOME/.local/state"
+export GOPATH="$XDG_DATA_HOME/go"
+export LESSHISTFILE="-"
+export HISTFILE="$XDG_STATE_HOME/bash/history"
+export WGETRC="$XDG_CONFIG_HOME/wgetrc"
+# less
+export LESS=-R
+if command -v source-highlight &> /dev/null; then
+ export LESSOPEN="| /usr/sbin/source-highlight %s"
+fi
+ # Taken from LS's dots. Not sure if should keep the '\e', since without it
+ # less freaks out. Also, more info on the following links:
+ # https://unix.stackexchange.com/questions/108699/documentation-on-less-termcap-variables
+ # https://misc.flogisoft.com/bash/tip_colors_and_formatting
+ # At last, I changed the codes to actually do what they're supposed to do.
+export LESS_TERMCAP_mb="$(printf '%b' '\e[5;31m')"
+export LESS_TERMCAP_md="$(printf '%b' '\e[1;36m')"
+export LESS_TERMCAP_me="$(printf '%b' '\e[0m')"
+export LESS_TERMCAP_so="$(printf '%b' '\e[1;45;33m')"
+export LESS_TERMCAP_se="$(printf '%b' '\e[0m')"
+export LESS_TERMCAP_us="$(printf '%b' '\e[4;32m')"
+export LESS_TERMCAP_ue="$(printf '%b' '\e[0m')"
+ # What these termcap variables mean:
+ # termcap terminfo
+ # ks smkx make the keypad send commands
+ # ke rmkx make the keypad send digits
+ # vb flash emit visual bell
+ # mb blink start blink
+ # md bold start bold
+ # me sgr0 turn off bold, blink and underline
+ # so smso start standout (reverse video)
+ # se rmso stop standout
+ # us smul start underline
+ # ue rmul stop underline
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+ # include .bashrc if it exists
+ if [ -f "$HOME/.bashrc" ]; then
+ source "$HOME/.bashrc"
+ fi
+fi \ No newline at end of file
diff --git a/.profile b/.profile
new file mode 120000
index 0000000..8486fca
--- /dev/null
+++ b/.profile
@@ -0,0 +1 @@
+.config/shell/profile \ No newline at end of file