Add basic XDG compliant sh architecture
This commit is contained in:
parent
a0a02be852
commit
3aed80e072
5 changed files with 102 additions and 3 deletions
30
sh/.config/sh/alias
Normal file
30
sh/.config/sh/alias
Normal file
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env sh
|
||||
#
|
||||
# Global aliases for any shell
|
||||
|
||||
# Avoid aliases which I did not create -- unalias EVERYTHING
|
||||
unalias -a
|
||||
|
||||
# v shorthand for neovim
|
||||
alias v="nvim"
|
||||
|
||||
# exit shell mimicks vim
|
||||
alias :q="exit"
|
||||
|
||||
# ls defaults
|
||||
if [ "$(uname -s)" = "Linux" ]; then
|
||||
# we're on linux
|
||||
alias l="ls -lhF"
|
||||
alias L="ls -lAhF"
|
||||
fi
|
||||
|
||||
# cd defaults
|
||||
alias ..="cd .."
|
||||
alias ...="cd ../.."
|
||||
alias ~="cd ~"
|
||||
|
||||
# clear my screen
|
||||
alias cl="clear"
|
||||
|
||||
# Display your current external ip address
|
||||
alias myip="curl -s icanhazip.com"
|
17
sh/.config/sh/env
Normal file
17
sh/.config/sh/env
Normal file
|
@ -0,0 +1,17 @@
|
|||
#!/usr/bin/env sh
|
||||
#
|
||||
# Set global environment variables
|
||||
|
||||
# Load XDG specifications
|
||||
# shellcheck source=xdg
|
||||
[ -f ~/.config/sh/xdg ] && . ~/.config/sh/xdg
|
||||
|
||||
# anything on BIN_HOME should be executable form anywhere
|
||||
export PATH="$PATH:$XDG_BIN_HOME"
|
||||
|
||||
###############################
|
||||
## BEGIN GLOBAL ENV VARS ##
|
||||
###############################
|
||||
|
||||
# if we forgot to set it treat bash as default
|
||||
export SHELL=${SHELL:-/bin/bash}
|
18
sh/.config/sh/profile
Normal file
18
sh/.config/sh/profile
Normal file
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/env sh
|
||||
#
|
||||
# Is executed for any base sh login-shell
|
||||
# Bash only executes when neither bash-profile nor bashrc exist
|
||||
# (will only load the first one it finds)
|
||||
#
|
||||
# see https://github.com/rbenv/rbenv/wiki/unix-shell-initialization
|
||||
|
||||
## Load all global environmment variables
|
||||
# shellcheck source=env
|
||||
[ -f ~/.config/sh/env ] && . ~/.config/sh/env
|
||||
# load additional packages
|
||||
if [ -d "$XDG_CONFIG_HOME/sh/env.d" ]; then
|
||||
for _env in "$XDG_CONFIG_HOME/sh/env.d"/*.sh; do
|
||||
. "$_env"
|
||||
done
|
||||
unset _env
|
||||
fi
|
33
sh/.config/sh/xdg
Normal file
33
sh/.config/sh/xdg
Normal file
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env sh
|
||||
# XDG Base Directory Specification
|
||||
#
|
||||
# Sets up necessary environment variables for XDG convention,
|
||||
# and those that applications obey for their environments.
|
||||
#
|
||||
# Thank you remeberYou for the idea
|
||||
# see: https://github.com/rememberYou/dotfiles/blob/master/sh/.config/sh/xdg
|
||||
#
|
||||
# Additionally, home directories are set using the XDG specification,
|
||||
# if the xdg-user-dirs module is enabled.
|
||||
#
|
||||
# Shellcheck will complain about setting permissions for the directories
|
||||
# unless it is ignored https://github.com/koalaman/shellcheck/wiki/SC2174
|
||||
# shellcheck disable=SC2174
|
||||
|
||||
|
||||
# http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
||||
test "$XDG_CACHE_HOME" || export XDG_CACHE_HOME="$HOME/.cache"
|
||||
test "$XDG_CONFIG_HOME" || export XDG_CONFIG_HOME="$HOME/.config"
|
||||
test "$XDG_DATA_HOME" || export XDG_DATA_HOME="$HOME/.local/share"
|
||||
test "$XDG_LIB_HOME" || export XDG_LIB_HOME="$HOME/.local/lib"
|
||||
|
||||
## Non-Standard additions
|
||||
# non-standard, is added to path to enable execution of any files herein
|
||||
test "$XDG_BIN_HOME" || export XDG_BIN_HOME="$HOME/.local/bin"
|
||||
|
||||
## ensure directories exist
|
||||
test -d "$XDG_BIN_HOME" || mkdir -p -m 0700 "$XDG_BIN_HOME"
|
||||
test -d "$XDG_CACHE_HOME" || mkdir -p -m 0700 "$XDG_CACHE_HOME"
|
||||
test -d "$XDG_CONFIG_HOME" || mkdir -p -m 0700 "$XDG_CONFIG_HOME"
|
||||
test -d "$XDG_DATA_HOME" || mkdir -p -m 0700 "$XDG_DATA_HOME"
|
||||
test -d "$XDG_LIB_HOME" || mkdir -p -m 0700 "$XDG_LIB_HOME"
|
|
@ -6,10 +6,11 @@
|
|||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/desktop"
|
||||
XDG_DOWNLOAD_DIR="$HOME/downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/templates"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/public"
|
||||
XDG_DOCUMENTS_DIR="$HOME/documents"
|
||||
XDG_DOWNLOAD_DIR="$HOME/downloads"
|
||||
XDG_MUSIC_DIR="$HOME/music"
|
||||
XDG_PICTURES_DIR="$HOME/pictures"
|
||||
XDG_PROJECTS_DIR="$HOME/projects"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/public"
|
||||
XDG_TEMPLATES_DIR="$HOME/templates"
|
||||
XDG_VIDEOS_DIR="$HOME/videos"
|
||||
|
|
Loading…
Reference in a new issue