Sync 'minimal' branch with 'master'.

This commit is contained in:
Darren 'Tadgy' Austin 2022-09-12 10:32:35 +01:00
commit 44ad23f4f0
37 changed files with 559 additions and 380 deletions

View file

@ -1,7 +1,7 @@
#!/bin/bash - not strictly necessary, but helps nano with syntax highlighting.
# Clear the screen/console on logout.
if (( $SHLVL == 1 )); then
if (( SHLVL == 1 )); then
if [[ -x /usr/bin/clear_console ]]; then
/usr/bin/clear_console -q
elif [[ -x /usr/bin/clear ]]; then
@ -9,6 +9,19 @@ if (( $SHLVL == 1 )); then
elif [[ -x /usr/bin/tput ]]; then
/usr/bin/tput clear
else
echo -ne "\E[2J"
echo -ne "\e[2J"
fi
fi
hash ssh-add ssh-agent >/dev/null 2>&1 && {
# Stop any started ssh-agent as long as the shell level is 1 and we're not on a tty.
(( SHLVL == 1 )) && [[ "$(tty)" == /dev/pts/* ]] && [[ -n "$SSH_AGENT_PID" ]] && {
ssh-agent -k
(( $? != 0 )) && printf "\\033[1;31;40m%s\\033[0;39m\\n" "Failed to stop ssh-agent." >&2
sleep 5
unset SSH_AGENT_PID SSH_AUTH_SOCK
}
# Update the ~/.ssh/agents file.
__read_ssh_agents && __write_ssh_agents
}

View file

@ -8,13 +8,14 @@ export LC_COLLATE="POSIX" # 'C' causes issues with some applications
# export LC_CTYPE="POSIX" # Not sure why I set this in the first place...
export LESS="-RM -j.5 -i -PM?f%F:stdin. -- Page %dt of %D -- %lt/%L (%Pt\%)$"
export PAGER="less"
export PATH="/usr/local/sbin:/usr/sbin:/opt/sbin:/sbin:$PATH"
export PATH="/opt/sbin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
export VISUAL="$EDITOR"
[[ -x /usr/bin/lesspipe ]] && eval "$(SHELL=/bin/sh lesspipe)"
hash lesspipe >/dev/null 2>&1 && eval "$(SHELL=/bin/sh lesspipe)"
# Platform specific set up.
PLATFORM="$(uname -s)"
if [[ "$PLATFORM" = "Linux" ]]; then
export GPG_TTY="$(tty)" && gpg-connect-agent updatestartuptty /bye >/dev/null 2>&1
export I_WANT_A_BROKEN_PS=1
export LYNX_CFG="$HOME/.lynx.cfg"
export LYNX_LSS="$HOME/.lynx.lss"
@ -32,19 +33,20 @@ fi
unset PLATFORM
# Add bin directories to PATH.
[[ -d "$HOME/files/bin" ]] && export PATH="$HOME/files/bin:$PATH"
[[ -d "$HOME/.local/bin" ]] && export PATH="$HOME/.local/bin:$PATH"
[[ -d "$HOME/bin" ]] && export PATH="$HOME/bin:$PATH"
[[ -d "$HOME/files/bin" ]] && export PATH="$HOME/files/bin:$PATH"
# Screen.
hash screen >/dev/null 2>&1 && {
[[ -e "$HOME/.screenrc-${HOSTNAME%%.*}" ]] && export SCREENRC="$HOME/.screenrc-${HOSTNAME%%.*}"
export SCREENDIR="$HOME/.screen-${HOSTNAME%%.*}"
if [[ -n "$SSH_TTY" ]]; then
if [[ -n "$STY" ]]; then
echo "Screen $STY, window $WINDOW."
echo
else
SCREENS="$(screen -ls | grep '[[:alpha:]]' | egrep -v '^([[:digit:]]+|No) Socket(s)?')"
SCREENS="$(screen -ls | grep '[[:alpha:]]' | grep -E -v '^([[:digit:]]+|No) Socket(s)?')"
if [[ -n "$SCREENS" ]]; then
echo "$SCREENS"
echo
@ -59,11 +61,11 @@ hash screen >/dev/null 2>&1 && {
echo
else
TTY="$(tty | cut -d/ -f3-)"
SCREENS="$(screen -list | fgrep "${HOSTNAME%%.*}" | fgrep "${TTY//\//-}")"
case "$(echo "${SCREENS:--n}" | wc -l)" in
SCREENS="$(screen -list | grep -F "${HOSTNAME%%.*}" | grep -F "${TTY//\//-}")"
case "$(echo ${SCREENS:--n} | wc -l)" in
0)
# No screens found - start a new instance, if on a tty.
[[ "$TTY" == *tty* ]] && screen
[[ "$TTY" == *tty* ]] && sleep 1 && screen
;;
1)
# Just one screen - reconnect if it's not dead.
@ -71,6 +73,7 @@ hash screen >/dev/null 2>&1 && {
echo "Found dead screen for $TTY:"
echo "$SCREENS" | sed -e 's/^/ /g'
else
sleep 1
screen -dr "${TTY//\//-}.${HOSTNAME%%.*}"
fi
;;
@ -83,19 +86,3 @@ hash screen >/dev/null 2>&1 && {
unset SCREENS
fi
}
# Mail check.
[[ ! -z "$SSH_CONNECTION" ]] && {
if [[ -s /var/spool/mail/$USER ]]; then
if [[ -N /var/spool/mail/$USER ]]; then
echo "You have new mail."
echo
else
echo "You have mail."
echo
fi
# else
# echo "No mail."
# echo
fi
}

270
.bashrc
View file

@ -1,3 +1,199 @@
#!/bin/bash - not strictly necessary, but helps nano with syntax highlighting.
__find_ssh_agent_sock() {
# Returns: 0 = Found an alternative socket.
# 1 = Did not find a viable socket.
local ERR I
# Search the SSH_AUTH_SOCKS array for a viable socket.
for ((I = 0; I < ${#SSH_AUTH_SOCKS[@]}; I++)); do
SSH_AUTH_SOCK="${SSH_AUTH_SOCKS[$I]}" ssh-add -l >/dev/null 2>&1
(( $? < 2 )) && { export SSH_AUTH_SOCK="${SSH_AUTH_SOCKS[$I]}"; break; }
unset SSH_AUTH_SOCK
done
[[ -z "$SSH_AUTH_SOCK" ]] && return 1
return 0
}
__read_ssh_agents() {
# Returns: 0 = Processed and read the agents file without issue.
# 1 = Error processing/read the agents file.
local ERR FD I SOCK
[[ ! -e ~/.ssh/agents ]] && touch ~/.ssh/agents
# Lock the ~/.ssh/agents file.
if [[ "$(uname -s)" == "Linux" ]]; then
# Linux has 'flock', thankfully.
{ exec {FD}<~/.ssh/agents && flock -E 10 -e -w 0.5 "$FD"; } || {
ERR=$?
if (( ERR == 10 )); then
printf "\\033[1;31;40m%s\\033[0;39m\\n" "Failed to obtain lock on ~/.ssh/agents." >&2
else
printf "\\033[1;31;40m%s\\033[0;39m\\n" "Flock usage error." >&2
fi
return 1
}
# Make note of the mtime for use in write_ssh_agents.
SSH_AGENTS_MTIME="$(stat --format=%.9Y ~/.ssh/agents)"
elif [[ "$(uname -s)" == "Darwin" ]]; then
# Do locking the sucky way on macOS.
for ((I = 0; I < 6; I++)); do
if shlock -p "$$" -f ~/.ssh/agents.lock; then
exec {FD}<~/.ssh/agents
# Make note of the mtime for use in write_ssh_agents.
SSH_AGENTS_MTIME="$(stat -f %Fm ~/.ssh/agents)"
ERR=0
break
else
ERR=1
sleep 0.1
fi
done
(( ERR != 0 )) && { printf "\\033[1;31;40m%s\\033[0;39m\\n" "Failed to obtain lock on ~/.ssh/agents." >&2; return 1; }
else
printf "\\033[1;31;40m%s\\033[0;39m\\n" "File locking unsupported on this platform." >&2
return 1
fi
# Read the socket list (bash v3+ compliant)
while read -u "$FD" -r SOCK; do
[[ -n "$SOCK" ]] && SSH_AUTH_SOCKS+=("$SOCK")
done
ERR=$?
# Close the file descriptor (which on Linux releases the lock too).
exec {FD}<&-
# On Darwin, release the lock on the file.
rm -f ~/.ssh/agents.lock
# Remove the . in the mtime.
SSH_AGENTS_MTIME="${SSH_AGENTS_MTIME/\.}"
# Error out if the data couldn't be read.
(( ERR != 0 )) && { printf "\\033[1;31;40m%s\\033[0;39m\\n" "Failed to read ssh agent socket list." >&2; unset SSH_AUTH_SOCKS; return 1; }
return 0
}
__write_ssh_agents() {
# Returns: 0 = Processed and wrote the agents file without issue.
# 1 = Error processing/writing the agents file.
# 2 = The SSH_AUTH_SOCKS array may be out of date as the agents file'a mtime has changed.
local FD ERR I J MTIME SOCKS
# Add the current agent socket to the sockets array.
SSH_AUTH_SOCKS=("$SSH_AUTH_SOCK" "${SSH_AUTH_SOCKS[@]}")
# Remove any duplicates from SSH_AUTH_SOCKS.
for ((I = 0; I < ${#SSH_AUTH_SOCKS[@]}; I++)); do
for ((J = 0; J < ${#SOCKS[@]}; J++)); do
[[ "${SSH_AUTH_SOCKS[$I]}" == "${SOCKS[$J]}" ]] && continue 2
done
# Only add the socket if it's still viable.
[[ -n "${SSH_AUTH_SOCKS[$I]}" ]] && {
SSH_AUTH_SOCK="${SSH_AUTH_SOCKS[$I]}" ssh-add -l >/dev/null 2>&1
(( $? < 2 )) && SOCKS+=("${SSH_AUTH_SOCKS[$I]}")
}
done
# Lock the ~/.ssh/agents file.
if [[ "$(uname -s)" == "Linux" ]]; then
# Make sure SSH_AUTH_SOCKS has the most up to date data.
MTIME="$(stat --format=%.9Y ~/.ssh/agents)"
(( ${MTIME/\.} > SSH_AGENTS_MTIME )) && return 2
# Lock the agents file.
{ exec {FD}>~/.ssh/agents && flock -E 10 -e -w 0.5 "$FD"; } || {
if (( $? == 10 )); then
printf "\\033[1;31;40m%s\\033[0;39m\\n" "Failed to obtain lock on ~/.ssh/agents." >&2
else
printf "\\033[1;31;40m%s\\033[0;39m\\n" "Flock usage error" >&2
fi
return 1
}
elif [[ "$(uname -s)" == "Darwin" ]]; then
# Make sure SSH_AUTH_SOCKS has the most up to date data.
MTIME="$(stat --format=%.9Y ~/.ssh/agents)"
(( ${MTIME/\.} > SSH_AGENTS_MTIME )) && return 2
# Do locking the sucky way on OSX.
for ((I = 0; I < 6; I++)); do
if shlock -p "$$" -f ~/.ssh/agents.lock; then
exec {FD}>~/.ssh/agents
ERR=0
break
else
ERR=1
sleep 0.1
fi
done
(( ERR != 0 )) && { printf "\\033[1;31;40m%s\\033[0;39m\\n" "Failed to obtain lock on ~/.ssh/agents." >&2; return 1; }
else
printf "\\033[1;31;40m%s\\033[0;39m\\n" "File locking unsupported on this platform." >&2
return 1
fi
# Write the cleaned array to disk.
printf "%s\\n" "${SOCKS[@]}" >~/.ssh/agents 2>/dev/null
ERR=$?
# Release locks.
exec {FD}>&-
rm -f ~/.ssh/agents.lock
# Error out if the data couldn't be written.
(( ERR != 0 )) && { printf "\\033[1;31;40m%s\\033[0;39m\\n" "Failed to write ssh agent socket list." >&2; return 1; }
return 0
}
__ssh_agent_prompt_command() {
# Returns: 0 = All is good.
# 1 = And error occured.
local ERR SSH_AUTH_SOCKS=()
if [[ -z "$SSH_AUTH_SOCK" ]]; then
ERR=2
else
SSH_AUTH_SOCK="$SSH_AUTH_SOCK" ssh-add -l >/dev/null 2>&1
ERR=$?
fi
(( ERR == 2 )) && {
# Read previous sockets from ~/.ssh/agents.
__read_ssh_agents || {
unset SSH_AUTH_SOCK
return 1
}
# Find a new socket to use.
if __find_ssh_agent_sock; then
printf "\\033[1;33;40m%s\\033[0;39m\\n" "Connected to existing agent socket."
else
# Start a new agent.
eval "$(ssh-agent -s 2>/dev/null | grep -v 'echo'; printf "%s" "ERR=${PIPESTATUS[0]}")"
(( ERR > 0 )) && { printf "\\033[1;31;40m%s\\033[0;39m\\n" "Failed to start ssh-agent - continuing with no agent." >&2; return 1; }
printf "\\033[1;32;40m%s\\033[0;39m\\n" "Started new ssh-agent."
fi
# Update the agents file.
while :; do
__write_ssh_agents
ERR=$?
(( ERR == 2 )) && { __read_ssh_agents || return 1; } && continue
(( ERR == 1 )) && return 1
break
done
}
return 0
}
imagebin() {
[[ -z "$1" ]] && { printf "%s: %s\\n" "Usage" "${FUNCNAME[0]} <filename>" >&2; return 1; }
curl -F file="@${1:-}" https://imagebin.ca/upload.php | grep ^url: | cut -d: -f2-
}
# Make bash a little more pleasent - these are valid for all versions.
shopt -s cdspell checkhash checkwinsize cmdhist histappend no_empty_cmd_completion
@ -21,59 +217,74 @@ else
fi
# Version specific set up.
if (( ${BASH_VERSINFO[0]} >= 4 )); then
if (( BASH_VERSINFO[0] >= 4 )); then
# Add to the shopts.
shopt -s checkjobs dirspell
# Set the prompts.
PROMPT_DIRTRIM=2
# No colour:
# PS1="[\u@\h] \w ->"
# Coloured username:
# PS1="[\[$(tput bold)$(tput setaf $COLOUR)\]\u\[$(tput sgr0)\]@\h] \w ->"
# Coloured username + host:
# PS1="[\[$(tput bold)$(tput setaf $COLOUR)\]\u\[$(tput sgr0)\]@\[$(tput bold)$(tput setaf 3)\]\h\[$(tput sgr0)\]] \w ->"
# Coloured username + host + directory:
PS1="[\[$(tput bold)$(tput setaf $COLOUR)\]\u\[$(tput sgr0)\]@\[$(tput bold)$(tput setaf 3)\]\h\[$(tput sgr0)\]] \[$(tput bold)$(tput setaf 4)\]\w\[$(tput sgr0)\] ->"
else
# Set the prompts.
# No colour:
# PS1="[\u@\h] \$(echo \"\${PWD/#\$HOME/~}\" | awk -F/ '{if (NF>3) {printf \".../\" \$(NF-1) \"/\" \$NF} else {printf \$0}}') ->"
# Coloured username:
# PS1="[\[$(tput bold)$(tput setaf $COLOUR)\]\u\[$(tput sgr0)\]@\h] \$(echo \"\${PWD/#\$HOME/~}\" | awk -F/ '{if (NF>3) {printf \".../\" \$(NF-1) \"/\" \$NF} else {printf \$0}}') ->"
# Coloured username + host:
# PS1="[\[$(tput bold)$(tput setaf $COLOUR)\]\u\[$(tput sgr0)\]@\[$(tput bold)$(tput setaf 3)\]\h\[$(tput sgr0)\]] \$(echo \"\${PWD/#\$HOME/~}\" | awk -F/ '{if (NF>3) {printf \".../\" \$(NF-1) \"/\" \$NF} else {printf \$0}}') ->"
# Coloured username + host + directory:
PS1="[\[$(tput bold)$(tput setaf $COLOUR)\]\u\[$(tput sgr0)\]@\[$(tput bold)$(tput setaf 3)\]\h\[$(tput sgr0)\]] \[$(tput bold)$(tput setaf 4)\]\$(echo \"\${PWD/#\$HOME/~}\" | awk -F/ '{if (NF>3) {printf \".../\" \$(NF-1) \"/\" \$NF} else {printf \$0}}')\[$(tput sgr0)\] ->"
fi
unset COLOUR
# Set the debugger prompt.
# PS4="+(\\\$? = \$?) \${BASH_SOURCE##*/}\${FUNCNAME:+(\$FUNCNAME)}:\$LINENO: "
# PS4="+(\[\e[33m\]\\\$? = \$?\[$(tput sgr0)\]) \[$(tput bold)$(tput setaf 4)\]\${BASH_SOURCE##*/}\[$(tput sgr0)\]\${FUNCNAME:+(\[$(tput bold)$(tput setaf 2)\]\$FUNCNAME\[$(tput sgr0)\])}:\[$(tput bold)$(tput setaf 1)\]\$LINENO\[$(tput sgr0)\]: "
export PS4="+(\[\e[33m\]\$?\[$(tput sgr0)\]) \[$(tput bold)$(tput setaf 4)\]\${BASH_SOURCE##*/}\[$(tput sgr0)\]\${FUNCNAME:+(\[$(tput bold)$(tput setaf 2)\]\$FUNCNAME\[$(tput sgr0)\])}:\[$(tput bold)$(tput setaf 1)\]\$LINENO\[$(tput sgr0)\]: "
export PS4="+(\[\e[1;33;40m\]\$?\[$(tput sgr0)\]) \[$(tput bold)$(tput setaf 4)\]\${BASH_SOURCE##*/}\[$(tput sgr0)\]\${FUNCNAME[0]:+(\[$(tput bold)$(tput setaf 2)\]\${FUNCNAME[0]}\[$(tput sgr0)\])}:\[$(tput bold)$(tput setaf 1)\]\$LINENO\[$(tput sgr0)\]: "
# The commands to execute before the prompt is displayed.
# PROMPT_COMMAND=""
PROMPT_COMMAND="__ssh_agent_prompt_command"
# Common aliases.
hash bc >/dev/null 2>&1 && alias bc='bc -lq'
hash diff >/dev/null 2>&1 && alias diff='diff --color=auto -u'
hash grep >/dev/null 2>&1 && alias egrep='grep -E --color=auto'
hash grep >/dev/null 2>&1 && alias fgrep='grep -E --color=auto'
hash grep >/dev/null 2>&1 && alias grep='grep --color=auto'
hash nc >/dev/null 2>&1 && alias pastebin='nc termbin.com 9999'
hash screen >/dev/null 2>&1 && alias screen='screen -Ua'
hash shellcheck >/dev/null 2>&1 && alias shellcheck='shellcheck -x'
hash scp ssh ssh-add >/dev/null 2>&1 && alias scp='_EXEC=scp ssh'
hash sftp ssh ssh-add >/dev/null 2>&1 && alias sftp='_EXEC=scp ssh'
hash ssh ssh-add >/dev/null 2>&1 && ssh() {
local ERR
if [[ -z "$SSH_AUTH_SOCK" ]]; then
ERR=2
else
SSH_AUTH_SOCK="$SSH_AUTH_SOCK" ssh-add -l >/dev/null 2>&1
ERR=$?
fi
(( ERR == 2 )) && __ssh_agent_prompt_command && ssh-add
(( ERR == 1 )) && ssh-add
command "${_EXEC:-${FUNCNAME[0]}}" "$@"
}
# Determine the platform being logged into.
PLATFORM="$(uname -s)"
# Platform specific set up.
PLATFORM="$(uname -s)"
if [[ "$PLATFORM" = "Linux" ]]; then
# Linux specific functions.
psgrep() {
[[ -z "$1" ]] && { printf "%s: %s\\n" "Usage" "${FUNCNAME[0]} <something>" >&2; return 1; }
ps -auwwx | command grep -E --color=always -- "(.*RSS.*|$1)" | grep -F -v "(.*RSS.*|"
}
# Linux specific aliases.
hash ftpwho >/dev/null 2>&1 && alias ftpwho='ftpwho -v'
hash iftop >/dev/null 2>&1 && alias iftop='TERM=vt100 iftop'
hash ip >/dev/null 2>&1 && alias ip='ip -color=auto'
hash last less >/dev/null 2>&1 && alias laston='last -a | less'
hash ls >/dev/null 2>&1 && alias ls='ls -bFv --color=auto'
hash minicom >/dev/null 2>&1 && alias minicom='minicom -m -c on'
hash mkpasswd >/dev/null 2>&1 && alias mkpasswd='mkpasswd -m sha512crypt'
hash mkpasswd >/dev/null 2>&1 && alias pwgen='mkpasswd -m sha512crypt'
hash pine >/dev/null 2>&1 && alias pine='pine -p "{mail.opensourcerers.net/Service=IMAP/User=darren@afterdark.org.uk/TLS/NoValidate-Cert/NoRsh}.pinerc"'
hash pinfo >/dev/null 2>&1 && alias info='pinfo'
hash ping >/dev/null 2>&1 && alias ping='ping -b'
# Linux specific functions.
psgrep() {
ps -auwwx | command egrep --color=always -- "(.*RSS.*|$1)" | fgrep -v "(.*RSS.*|"
}
elif [[ "$PLATFORM" = "Darwin" ]]; then
# Darwin specific aliases.
hash df >/dev/null 2>&1 && alias df='df -P'
@ -83,14 +294,3 @@ else
echo "${BASH_SOURCE##*/}: unsupported platform: $PLATFORM" >&2
fi
unset PLATFORM
# Common aliases.
hash bc >/dev/null 2>&1 && alias bc='bc -lq'
#hash curl >/dev/null 2>&1 && alias pastebin="curl -F 'sprunge=<-' http://sprunge.us"
hash curl >/dev/null 2>&1 && imagebin() { curl -F file="@${1:-}" https://imagebin.ca/upload.php | grep ^url: | cut -d: -f2-; }
hash diff >/dev/null 2>&1 && alias diff='diff -u'
hash egrep >/dev/null 2>&1 && alias egrep='egrep --color=auto'
hash fgrep >/dev/null 2>&1 && alias fgrep='fgrep --color=auto'
hash grep >/dev/null 2>&1 && alias grep='grep --color=auto'
hash nc >/dev/null 2>&1 && alias pastebin='nc termbin.com 9999'
hash screen >/dev/null 2>&1 && alias screen='screen -Ua'

View file

@ -1,26 +1,61 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.2.1
config_reader_min_version=3
fields=0 48 17 18 38 39 40 2 46 47 49 1
sort_key=46
sort_direction=1
hide_threads=0
hide_kernel_threads=1
hide_userland_threads=0
shadow_other_users=1
show_thread_names=0
show_program_path=1
show_program_path=0
highlight_base_name=1
highlight_deleted_exe=1
highlight_megabytes=1
highlight_threads=1
tree_view=0
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
header_margin=0
screen_tabs=1
detailed_cpu_time=0
cpu_count_from_zero=1
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cpu_temperature=0
degree_fahrenheit=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
account_guest_in_cpu_meter=1
color_scheme=6
enable_mouse=0
delay=15
left_meters=AllCPUs CPU
left_meter_modes=1 1
right_meters=Uptime LoadAverage Tasks Memory Swap
right_meter_modes=2 2 2 1 1
hide_function_bar=0
header_layout=two_50_50
column_meters_0=AllCPUs2 CPU
column_meter_modes_0=1 1
column_meters_1=Uptime LoadAverage Tasks NetworkIO Memory Swap
column_meter_modes_1=2 2 2 2 1 1
tree_view=0
sort_key=46
tree_sort_key=0
sort_direction=-1
tree_sort_direction=1
tree_view_always_by_pid=0
all_branches_collapsed=0
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command
.sort_key=PERCENT_CPU
.tree_sort_key=PID
.tree_view=0
.tree_view_always_by_pid=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0
screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE
.sort_key=IO_RATE
.tree_sort_key=PID
.tree_view=0
.tree_view_always_by_pid=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0

View file

@ -67,11 +67,9 @@ TERM xterm-debian
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
NORMAL 00 # Global default.
FILE 00 # Normal file.
# RESET 0 # reset to "normal" color
DIR 01;34 # Directory.
LINK 01;36 # Symbolic link. Set to 'target' instead of a
# value for the colour of the file pointed to.
# HARDLINK 00 # Normal file with more than one name/link.
ORPHAN 00;31 # Symlink where target file does not exist.
MISSING 00;31 # Non-existant target file of a symlink.
FIFO 00;33 # Pipe.
@ -82,11 +80,11 @@ CHR 00;33 # Character device.
EXEC 01;32 # File with any execute permission (+x).
SETUID 01;32;41 # File is setuid (u+s).
SETGID 01;32;45 # File is setgid (g+s).
CAPABILITY 01;32;44 # File is not setuid/setgid (ug-s) but has a
# limited privileged capability set configured.
OTHER_WRITABLE 34;41 # Dir is other-writable (o+w).
STICKY 34;42 # Dir is not other-writable and sticky (o-w,+t).
STICKY_OTHER_WRITABLE 34;45 # Dir is other-writable and sticky (o+w,+t).
OTHER_WRITABLE 34;41 # Dir is other-writable (o+w).
CAPABILITY 01;32;44 # File is not setuid/setgid (ug-s) but has a
# limited privileged capability set configured.
# File extensions that should be colourised.
# Archives (bright red).
@ -154,6 +152,8 @@ STICKY_OTHER_WRITABLE 34;45 # Dir is other-writable and sticky (o+w,+t).
.TZ 01;31
.tz2 01;31
.TZ2 01;31
.tzst 01;31
.TZST 01;31
.xz 01;31
.XZ 01;31
.z 01;31
@ -162,6 +162,8 @@ STICKY_OTHER_WRITABLE 34;45 # Dir is other-writable and sticky (o+w,+t).
.ZIP 01;31
.zoo 01;31
.ZOO 01;31
.zst 01;31
.ZST 01;31
# Images (bright magenta).
.bmp 01;35
@ -296,8 +298,12 @@ STICKY_OTHER_WRITABLE 34;45 # Dir is other-writable and sticky (o+w,+t).
.AXA 01;33
.flac 01;33
.FLAC 01;33
.flv 01;33
.FLV 01;33
.m2a 01;33
.M2A 01;33
.m2t 01;33
.M2T 01;33
.m4a 01;33
.M4A 01;33
.m4p 01;33
@ -340,6 +346,10 @@ STICKY_OTHER_WRITABLE 34;45 # Dir is other-writable and sticky (o+w,+t).
.SPX 01;33
.wav 01;33
.WAV 01;33
.webm 01;33
.WEBM 01;33
.webp 01;33
.WEBP 01;33
.wma 01;33
.WMA 01;33

View file

@ -12,4 +12,11 @@
[credential]
username = tadgy
[commit]
verbose = 1
verbose = 1
[push]
autoSetupRemote = true
[alias]
c = commit
d = diff
p = push
s = status

7
.gitignore vendored
View file

@ -14,7 +14,7 @@
.bash_history-*
.cache/
.dbus/
.gnupg
.fltk/
.lesshst
.lynx.cookies
.mozilla/
@ -23,6 +23,7 @@
.screen-*/
.sqlite_history
.thumbnails/
.xinitrc
.xsession
.vmware
.vnc
.xca
.xsession-errors*

4
.gnupg/.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
*~
S.*
.#*
random_seed

0
.gnupg/.gpg-v21-migrated Normal file
View file

5
.gnupg/gpg-agent.conf Normal file
View file

@ -0,0 +1,5 @@
# Cache the passphrase for 30 days.
default-cache-ttl 2592000
# Maximum time to cache a password (1 year).
max-cache-ttl 31536000

33
.gnupg/gpg.conf Normal file
View file

@ -0,0 +1,33 @@
# Set the default key if more than one secret key exists.
# default-key 25C87CDF83673730
# By default, use the default key as the recipient.
default-recipient-self
# Options for listing keys.
list-options show-std-notations
# Options for verifying keys.
verify-options show-std-notations
# Display LATIN1 characters.
display-charset iso-8859-1
# Automatic key location search options.
auto-key-locate cert keyserver ldap hkp://subkeys.pgp.net
# Retrieve keys from keyservers when validating.
auto-key-retrieve
# Show full keyid and fingerprints.
keyid-format long
with-fingerprint
# Options for retrieving keys from keyservers.
keyserver-options include-subkeys
# Get rid of the copyright notice.
no-greeting
# Use loopbacking to obtain passphrases.
pinentry-mode loopback

1
.gnupg/openpgp-revocs.d/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.rev

1
.gnupg/private-keys-v1.d/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.key

123
.gnupg/public.key Normal file
View file

@ -0,0 +1,123 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGLelzIBEACvUmMVJ337Nyt+EEkbdFJ5CjHolVEazjtJrJP2y458Ojld5Krf
p0jLM1miLDFrUOsKUiiE4v9FPFvNNkK7LEgF7ZpO1kr8w3XYXKXXr4IknofOLZvV
f60NcbQqV5luoYpf4+xrL4ypsjCebSeBuCkOhs/vIs0yZoBcoGZ9n/a1w2puZWq8
pHd2ZZTNwe4zMcZiRzn6lET8ZZicb1agVlCdi6um7Ofg7aWjTsgmAVC8MoE5xh0Z
0Jot+nXhOjlN6T0olKGwXWKY8WUUZopCOKM0muKLLRtO1SupGRHgUYM+NYXPUCWZ
HN86lSlbN/em3lsfKRgkk65U31q8mHjhpEelgZdGziwCdiqcAmgScEb+72dZUDJw
45KeON77rU6cYALzPY4AyGLdwqjqHRaZyyKNpXbfWDVP6Fo8jr5VbVAzzEVkR9OI
VtOdONiuFVsr3mBf78bjlcZL81gqITZsARFyXdCscqTH9g/B8A9JlIgGQ5cVUn3f
m45ffMxnP7nd++BORyZVvfEfIK+U/jW6aNj6rDFsId+4Tnc3kb5ZgxePArkSwYzk
E4OVqNnJ/CwSB0NPzM4ryltiVKxkSYkDAqOPJnRtgheeFSC2vLOFrJ8J9deZzPCo
eDIa3bzJ2cGMX6dFx0iVRoEkZ9tF5LkhVnpVCLJnb1bn6btb03ZFlxm2JwARAQAB
tC9EYXJyZW4gJ1RhZGd5JyBBdXN0aW4gPGRhcnJlbkBhZnRlcmRhcmsub3JnLnVr
PokCUQQTAQgAOxYhBHDZRu1WP7p3js8imyXIfN+DZzcwBQJi3pcyAhsBBQsJCAcC
AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJECXIfN+DZzcwurAP/2r71/Gj5Ps7YVHL
10y9OQv29qDLnbMCycu7hB3ahBfaqHvyer5dLhjsXM/0uGHHcMtKJyhNwF1HPCwn
t/m6x60KZPPTGKYB7//tSmNOJSSqTXEPuh9MscIOyObwR3iRixaPbHygQNBuRbdF
WazAi7/31it2UYa4fEmm3IeBYqZXyIYSWPMZ+6HHUCSZ9roXrXs0Z8LiEsjWWBn+
3W1kR22eAynTipy+5DIZRYMMvrOZx6MFueWWtubFiAx/kF8o0NMg0iz614kprzcT
EkpXi68VUYNPpLcDVud+SMYrz+hZwOtKKxtLxNSRcpKEs6iw+VLz1e0iJOC8jvwy
3LwHdbnbBtwwyYZPOoXvJfje7ob8T7REPuRCFx8R7yTXjsKgCAP/6A1VsCWpe3of
+YOkeTv2tqDfjLBj5vQHiDTYY7CXrs/I1WHtwF526g+QhC9U4oOOfAIhydZwD3VP
eVbeVN4v09IlnePbujoCO4/08bsBbHPyAERDPIAKSPEd0jSrDn28AdhARHcgo0LE
bD6Yp2wLenugA84DEbkwxUrhFni5ozayCPUXtEDBCWHkviIzNuhmI6MGh1OUevr0
1wRpZCLBJySx/qHFSF9qZUzULNIheD3ZK5Z+9GZz79WRyB0rufmIipykKHr6bIEs
vDNNRAJDU7N80r7yKYLjuVpdVEV9tCtEYXJyZW4gJ1RhZGd5JyBBdXN0aW4gPGRh
cnJlbkBzbGFja3dhcmUudWs+iQJRBBMBCAA7FiEEcNlG7VY/uneOzyKbJch834Nn
NzAFAmLetYECGwEFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQJch834Nn
NzBJ2w//SeBANucciONFsOrMIdDbk3trACBor7LQo+vwHpD2ieagGYgTtjLUiXZX
iuN/QFDtde1q4L2h2k0z53hXxB7AiEUUZYMvF0GesBpGA5nHLf74wR9aywBnc43e
CyJN9Wqk180U8cMJ5l2/UKITYhq1wgH3UBbv5ODbPYSe7icvfyXZT3DYL324W4bm
VTRWqA9ZuBWDx9KEMuDMK6IVitc85HPDhRyKTOfqJPENtvEf/ShceAMpfG19NNE2
3uyrO+EuhbgaCKKi3BFP4xd/GAwIBQi5XntduX3kwjPlpBG64TDUduP4dYOymDVR
5smma0aXV23claS4k1DIC6TFb4IWiWmz03he7+to2LQM079txn+5b4jKD9/D30EH
MysOlUGaW7AR7r1apnUaNZUdI5MaQnQgj76oDltv5zsKe5lnkB/1HsVtw86xs9DA
Vt1acgBxLe69/w2csRb15MOi8d9ta8ybWt5Dcrrl+e/SUMIAbWIhXPcGDfq89T5p
rjXjGFbwvShdDZAJnCBxwbvgIoU7q6XKTN/NmEUjj4HTIArMPfxqI69eP1WPO5qK
+kvwlqo53VlOOsxUlT8EcJJa9/FKYrP46dNb1CBdTBHE5JiFK2sbLlJSnm5GCjTL
8fq/L0NvHv0Gx1aAiDIBKA726AsKRetvEOrC/7YGpvI4EeHhiCK5Ag0EYt6XwAEQ
APGdIBAMxQ0GtNKHpgq4og/O1w1ocd4xYESTIH5GuNAB8cTiFd5PtaS43VLLbl4l
L0h6QYB2JC/+8MbIB9gjUm4LdAmQ2nRBMYdCl0V9ByUyTpf9K4gSJWewlTYvkvTM
q8qi84OIUyGyaWR40dJv7zYtkT53YOA6gPwodQP4UTY101AQkQYbP1IJyAW1KIL1
z4aXxUTVfyAQoKEGj/94KWs29QldlZwmXcDKkilTNgbgg9vD6E/8NX1rmVFkyJXH
5sZuwezO/9TladeVp9YkDdqtaIa2Ixoy4iK9xwxQzy3DriKOSzsB7OshXb9pMuwG
+CFLOmJZNI74OPZ5Ley4tMG+osOX2CYGsmpoQVZgmBPeiYa4Oj5haPvCZ5FFtXbw
DLt0j9265SXJ4lWf0UIcFaau7DdSw/bqmaNYxsF1eAHx523kS32vRfn3F2CS2bIW
/i6B2b7mljB5rB2MYMYjS3Lu1MDcJKivvCKexMjo6fvEP2lMm1BX/3K8NVak4mS0
hzBQIhmPgPIjSe3+kjmWSOpeSfyAoURbjxekgijCncl9jszozN3Bgyff60N0I+2q
LaebVWniVoEU+SCNXD1jcS9BpMyIesweVXD83RQUtsSBZJgTR/nrm5CaNausJlKv
Q9VK5VWZ7Lz36uXYHFra2E5UHNx2SwZdQTUjMqEFTqnRABEBAAGJBGwEGAEIACAW
IQRw2UbtVj+6d47PIpslyHzfg2c3MAUCYt6XwAIbAgJACRAlyHzfg2c3MMF0IAQZ
AQgAHRYhBCqjm7QV0pDB/r0c+vxyGh43mjtxBQJi3pfAAAoJEPxyGh43mjtxW18P
/it5HXe4k1GOn1wOKioBKmnrSzZFv/9JVBqophFsfnVgnmNOj5tuB6+u6yu0Vgi1
3MPVqSnYtkjAjeCs/H3wm+3zRqEwz7mQ5Duhh+ZzvXNfvC0+RBcHz3Q3Xh8TEzct
7H2hjq53VD6KxWtCqPW31MdPvW6TG0SihSx3IlTjLGZlgptGhSmq7g14qI2tL+fw
Y2x9JL4igmAfwfVfRzic2Hgp27l8DuLDeGAVytA8YpHcvIS7p9hKpc2ooLGpkyol
p77N5Nn6ozl1E4cpi+H/pPRM9oy4jxLGk1qiY/XyXFaGveA4DKmTCsO7ePACh5kA
Y2zT/Hlpbr6mECptcFcCit2axTO8gESNgOCzo+IuwfQOjaxqZwNNEH9bh5yiHeLd
MwUyL3kp1b8Qb3/KSxorFLMe4GQoYXGyiN4leOGP+P/eEW0lEfpNtIiwL0zxk+Dq
oj72v9yQbATpEFpgSjkCVhiQ7i8/8QrfUAk+gglynk5jo0t4cZW1eP1l9iMztX5S
aieX6x3TmPhUUVDF/j5p1zQA9KIBtg0xeEixW2I8VwG//GlK1u39tkoOf4L2zYMr
F8tOiS6ECmSNWZFsFBnE6HaGNfv7XlZMKCJqfumwAZNDeaqWM2vZDMiKjsM4tuor
DVfJ/m8djHZFq3KZaXJdoo7F6dsp3V+pY8bsNu9QuXub7qQP/RTd0JfhdqFaLIiL
0lFHMHZO6ANz/98wURcmjV22q7eWs1Fv2xdpyFzlgTmqrDRAQlFwTxTXN8+8SpXa
IzE+Gn8H+YWpAECun8C6xyUzo0ZinbguLZqmALbNIx/+u5dM+j04gHJYXjlc9wXI
QJu9PmoblyDrqkIfoBJjlGWSNHqrh4vfrmXiLAhU1pmIVcMpHqKa7qFx5oJzE1J3
QIUDmRPeoKRzvkmDYfmjVzfTfbGwTGz4rfa3M9CpQQgQfh1kgFMMFt1iQjzCT5Dw
zy7mctUGXWzWN2aiUX41yZy6rQwhFQKMMAgTlklnyCn5Lq7DQpXIjr6Dh80ZAdo6
kaKbzm86JRcaEpNVG1zkY1la2PrZnFgepUlXnK1o0+deMLCEWjay0U2vZhz36e4D
rvYpUqhd0UFGeLpeLxOeInCs3iD28wmU7eGFIUyaYIx5v0BOnPDrDMC27WHHifZR
kSlxiNmxk/KNUDgLs+VtoqHZgYT8okIK0JC0ncmGB5JmhN8/eiRCLg0IgKiWqjHY
VL/QTxKTR/2aa/ht2LA+mV8WjgdDyiuujgbk/ICGXjBbgMuSD0usbGUX2i44WqZM
EpzVp/QlkXdm8XbAQlstBlImfYuXPrsix/ZvLrqd/V2kkJ2vSTntqPWbHX5NRDsT
xIeLNnHNqzzof/xVG8B9CpjYKUqXuQINBGLemB0BEADmR425uDRGEnP1bzRNTNbR
PIRgpP781lsqeNKVqyExGd8mELZfDaeUl67LHWeZKkOLc0OnW0UQldsyPMU+2pnE
hk9J5s+wTfjlaqSVz+8p0PIFGXCrlS0SfL/HJgShySojbFmpPL1vFO0r66kLkq3S
0S5M6I+FratLMeDMpxN/Q5/g4UY8/O3Tr8Hjzq769c5fUbhID1Rf6BSEAPsv07YX
UFA3LddOEGnjxNnlXFrXc7H2xmzM25Zs2VjCQj/PRe9XeEZj60nZz9yKhWz2b0jD
VSRlu+Qibt5in/ZAxxG45e3mKqxZfb8ZASPcgxPQjTnN5PtDLv+94gVZUc0dl5i7
QlC8alxUlRtmz2Y040la9Z2MCkQOo3g8SsTZUQgF5KaWxm7KxTFxbfN99V+OwoeJ
CeWVaUO0t0APS924k5N1/6uGDKaaL8J7ZXqPkoX2YLs47dWDfo683VjoYJJiiogD
116kKifXs06a8rF1dfIQ50RPcUk9DRNHsoufc1GJ/9OmiZnpj8z/hDdv7QjSIiaP
Wn/6p66YYmLp+xHxBwIdrS61JuX6OYourVfshqOQz7fRg3Rwoc6lvBryGp0Rua/e
1ZlBoBjvpL9Nqd+EPNrs9Two6AL4T0z7I/SAbQKRq5oAwvEaZNoExIZZ1+y0rG/Y
HpXZreSXFGzHtraZrufQpQARAQABiQI2BBgBCAAgFiEEcNlG7VY/uneOzyKbJch8
34NnNzAFAmLemB0CGwwACgkQJch834NnNzAwVRAArd6c7sS2J09RS2NwYc4bDOsi
gSQKczUhXD56D+waQDMxqfW7S1UvNeuh1I7kuxyKjn91OuZZRFxjV/g7dcfbpPgI
WBRkCRZsYkipuwD6tivPLsaaimqU8nFaRZiFi5+hJk0RFHd9BWd02GOgoxWUcJ62
q4dypotvlfSeZH593Yg1IPosTDKwtFi3Sdom8VNDtFqcvcePHXiSg8O6I5Cc/55K
Ee1QYKB2j3SaU92whO2zvKNMuD9czyfU8eFQKwxCvy/DVHyAJuJikJj9ao220W7U
fpRXk9RI8c12tOhtCnnXJn+plCaiKtvpt0viaYikFKSJBB/a9LDTVomTI+Tm2nEg
NyRiB8Sa2YJ0Pqvv0bNLtQNeOHhSz31agk3nCNyb4Dq5GY9oA5oNT7eyqJz1nK3N
X0rJdeztesJS9pBSccPrx9AO9WeGkoS0xjBkRkm5AJQ9mK/XYAAM3MBjNTD26KwJ
xZenUcudx+WJkU1dQDBXpTQmZZJQxRLNm/9T9BtvSlFsdWeNrcp2kann7tpUT1io
oFW37drfMHvkFRt7UMxwWVKE49+ZjVTGHvmr0hvvyJqYf57P1dmoRjuichv0F17O
OXr86nGvChF4/L3o4FOGaJM/qmLENRdVPFEnmvHNNgFXwPMFUkhSlz/OejAddYUA
9x2nb8wyKldA2uMENoy5Ag0EYt6YbwEQAM8ARxMuhnD5xw6b9/h+xfG1CxZmA/vo
Br+EsI768oD1yItiLszyVpWdFyKL9veQ3WAKOn6/XkqJG6onqTtkpStieMr/nrGG
yTtG0a09aIii5uxnS/YHxRd6qF+QSbLVSuJbRJUOB7ZYUCyXv50UHUMD9Mt12urT
iT1wKQO2OljUjXjO7bzniZyGSG1vXCgT/O/EVj98n0Us4+tYjX12LbxRr0xWRkgn
C5UdckZHIa2Myu0FHzCiV0xWssjmA2yfpH8EwVSGwJmr70+sjw+lFQd+W/QXz8ww
WjvyXBncsIZgdVDtFR+0a5qWnB0tDcuwriMAsTfwFU+Y8lX7LUou30JSvabv1f7A
HKYYEW7hcKrMLo3iX67LsxYo18uItrto53eYikVS4n89wOvGv4hQ5Nq7xX4hce/w
PiPkJSYJxNA5rxAHzr7I9DcdyutH6lHRXg8pNkRD9QznqIvMwQesaaouBaWPr+ro
DMQDz7L6n1cIC67MfxYuwdKOo6CNzSgr9fYyp3PQYLLARUe/FmWt1CAW94yEqs7n
OhfpR8kKL+394dHvtzTFGtoUH2C1ErVL+l1uU0A6h4TB6tfEriQc33ulo7IFfHcy
QK8HpUkcc6gfB9lM+ZA46/n5uBmDBQM+G8PlwO481+ckPucszxXCYornGQ85DwbC
vQNyfIVnFCgDABEBAAGJAjYEGAEIACAWIQRw2UbtVj+6d47PIpslyHzfg2c3MAUC
Yt6YbwIbIAAKCRAlyHzfg2c3MGzMD/4yI7Tviz0XGjA5MLq7KT83hbqu0A+NnT0i
w8FjUN3beznRX3JrYkYE8NXQ+6HYMSAaN3PaxS18vVm3AqhrGveOfnpR3L9p5IQg
lP6hgzWwDn3mmkcnyY+Hyl0l/DDwe3Uux377aFnTpASJy8YQgerftysKADS+bIkg
l8XA7QTqxHfMGWPIKpzhXJ42clguBjidLVBdYQf3Um48zEtoCjVz0FlgxStjwMN8
epznoyEuUaFlYQErIfmbe7Dm7Fwf8HOI62ch2y01d+DaYFx9UQqcKkvACq2vrXKJ
BUbZkMVlavp5GDIRC4d3JbFvuIkbJiQsFkWFZ3lSItyFikuH/x0ukKocsGzpHICz
cHcsvMVu+BjVmKlZTn36MUI+YjO6sP0mfeMzFU2wz+HxfugjD4N1LgNRD9tv3O1Z
HocorFcNidHpIxuiQGm2MpCxWPmDwORoAWeCQo8SQTIeyw41HVtaccYW51BWmFlb
+mcdIXFMeNAVqJbFPPjWEIV8EwHM4R2CZlxpeHWCSXpVCuZs6AjDd1buzidXaGci
ELbPshDEkf3/avDFcyecJ9qgBOt22n3IWa/CplWrpHI+tzjJn/9x0xWKdHJlKUDg
b2F7rCRomee6mAfNEBEBSMuSYrX72JTqIzQwvwBy2kxt2+fqbuR1o4rd0r6TDQQq
JjaOsWHPDA==
=RIBJ
-----END PGP PUBLIC KEY BLOCK-----

0
.gnupg/pubring.gpg Normal file
View file

BIN
.gnupg/pubring.kbx Normal file

Binary file not shown.

0
.gnupg/secring.gpg Normal file
View file

BIN
.gnupg/tofu.db Normal file

Binary file not shown.

BIN
.gnupg/trustdb.gpg Normal file

Binary file not shown.

View file

@ -1,3 +0,0 @@
clipit/
gvfs-metadata/
recently-used.xbel

View file

@ -1,114 +0,0 @@
## Sample initialization file for GNU nano.
##
## Please note that you must have configured nano with --enable-nanorc
## for this file to be read! Also note that this file should not be in
## DOS or Mac format, and that characters specially interpreted by the
## shell should not be escaped here.
##
## To make sure an option is disabled, use "unset <option>".
##
## For the options that take parameters, the default value is given.
## Other options are unset by default.
##
## Quotes inside string parameters don't have to be escaped with
## backslashes. The last double quote in the string will be treated as
## its end. For example, for the "brackets" option, ""')>]}" will match
## ", ', ), >, ], and }.
## When soft line wrapping is enabled, make it wrap lines at blank characters.
set atblanks
## Use auto-indentation.
# set autoindent
## Automatically hard-wrap the current line when it becomes overlong.
# set breaklonglines
## Do case-sensitive searches by default.
# set casesensitive
## Do not use the line below the title bar.
# set emptyline
## Set the line length for wrapping text and justifying paragraphs.
set fill -2
## Draw a vertical stripe at the given column
# set guidestripe 140
## Remember the used search/replace strings for the next session.
set historylog
## Scroll the buffer contents per half-screen instead of per line.
# set jumpyscrolling
## Display line numbers to the left of the text area.
set linenumbers
## Enable vim-style lock-files.
set locking
## Don't display the helpful shortcut lists at the bottom of the screen.
set nohelp
## Don't add newlines to the ends of files.
# set nonewlines
## Do quick statusbar blanking.
set quickblank
## Do extended regular expression searches by default.
# set regexp
## Make the Home key smarter.
set smarthome
## Enable soft line wrapping (AKA full-line display).
# set softwrap
## Use this spelling checker instead of the internal one.
set speller "aspell -x -c"
## Allow nano to be suspended.
set suspendable
## When justifying text, trailing whitespace will automatically be removed.
set trimblanks
## The two characters used to indicate the presence of tabs and spaces.
set whitespace »·
## Detect word boundaries more accurately by treating punctuation
## characters as parts of words.
# set wordbounds
## Let an unmodified Backspace or Delete erase the marked region, without affecting the cut-buffer.
# set zap
## Paint the interface elements of nano.
## This is an example; by default there are no colors.
set errorcolor brightwhite,red
set functioncolor magenta
set keycolor brightwhite
set numbercolor brightwhite,magenta
set selectedcolor brightwhite,blue
set statuscolor brightwhite,magenta
set stripecolor brightblue
set titlecolor brightwhite,magenta
## Include all existing syntax highlight definitions.
include "/usr/share/nano/*.nanorc"
## Key bindings.
## The following five functions are not bound to any key by default.
## You may wish to choose different keys than the ones suggested here.
# bind ^S savefile main
# bind M-Q findprevious main
# bind M-W findnext main
# bind M-B cutwordleft main
# bind M-N cutwordright main
## Set this if your Backspace key sends Del most of the time.
# bind Del backspace all

View file

@ -1,118 +0,0 @@
## Sample initialization file for GNU nano.
##
## Please note that you must have configured nano with --enable-nanorc
## for this file to be read! Also note that this file should not be in
## DOS or Mac format, and that characters specially interpreted by the
## shell should not be escaped here.
##
## To make sure an option is disabled, use "unset <option>".
##
## For the options that take parameters, the default value is given.
## Other options are unset by default.
##
## Quotes inside string parameters don't have to be escaped with
## backslashes. The last double quote in the string will be treated as
## its end. For example, for the "brackets" option, ""')>]}" will match
## ", ', ), >, ], and }.
## When soft line wrapping is enabled, make it wrap lines at blank characters.
set atblanks
## Use auto-indentation.
# set autoindent
## Automatically hard-wrap the current line when it becomes overlong.
# set breaklonglines
## Do case-sensitive searches by default.
# set casesensitive
## Do not use the line below the title bar.
# set emptyline
## Set the line length for wrapping text and justifying paragraphs.
set fill -2
## Draw a vertical stripe at the given column
# set guidestripe 140
## Remember the used search/replace strings for the next session.
set historylog
## Display a "scrollbar" on the righthand side of the edit window.
# set indicator
## Scroll the buffer contents per half-screen instead of per line.
# set jumpyscrolling
## Display line numbers to the left of the text area.
set linenumbers
## Enable vim-style lock-files.
set locking
## Don't display the helpful shortcut lists at the bottom of the screen.
set nohelp
## Don't add newlines to the ends of files.
# set nonewlines
## Do quick statusbar blanking.
set quickblank
## Do extended regular expression searches by default.
# set regexp
## Make the Home key smarter.
set smarthome
## Enable soft line wrapping (AKA full-line display).
# set softwrap
## Use this spelling checker instead of the internal one.
set speller "aspell -x -c"
## Allow nano to be suspended.
set suspendable
## When justifying text, trailing whitespace will automatically be removed.
set trimblanks
## The two characters used to indicate the presence of tabs and spaces.
set whitespace »·
## Detect word boundaries more accurately by treating punctuation
## characters as parts of words.
# set wordbounds
## Let an unmodified Backspace or Delete erase the marked region, without affecting the cut-buffer.
# set zap
## Paint the interface elements of nano.
## This is an example; by default there are no colors.
set errorcolor brightwhite,red
set functioncolor magenta
set keycolor brightwhite
set numbercolor magenta
set selectedcolor brightwhite,blue
set statuscolor magenta
# set stripecolor brightblue
set stripecolor magenta
set titlecolor magenta
## Include all existing syntax highlight definitions.
include "/usr/share/nano/*.nanorc"
## Key bindings.
## The following five functions are not bound to any key by default.
## You may wish to choose different keys than the ones suggested here.
# bind ^S savefile main
# bind M-Q findprevious main
# bind M-W findnext main
# bind M-B cutwordleft main
# bind M-N cutwordright main
## Set this if your Backspace key sends Del most of the time.
# bind Del backspace all

View file

@ -72,9 +72,6 @@ set smarthome
## Use this spelling checker instead of the internal one.
set speller "aspell -x -c"
## Allow nano to be suspended.
set suspendable
## When justifying text, trailing whitespace will automatically be removed.
set trimblanks
@ -88,6 +85,12 @@ set whitespace »·
## Let an unmodified Backspace or Delete erase the marked region, without affecting the cut-buffer.
# set zap
# Show flags in the title bar.
set stateflags
# Use libmagic for syntax highlighting suggestions.
set magic
## Paint the interface elements of nano.
## This is an example; by default there are no colors.
@ -116,3 +119,12 @@ include "/usr/share/nano/*.nanorc"
# bind M-N cutwordright main
## Set this if your Backspace key sends Del most of the time.
# bind Del backspace all
# Unbind the ^J (justification) shortcut as it's annoying.
unbind ^J main
# Allow ^Z to suspend nano.
bind ^Z suspend main
# Allow marking using ^Space.
bind ^Space mark main

View file

@ -49,6 +49,7 @@ bind u select 17
bind i select 18
bind o select 19
# bind p select 20
bind b next
# Start window numbering from 1, not 0.
screen 1

1
.ssh/.gitignore vendored
View file

@ -1,4 +1,5 @@
agents*
id_rsa
id_ed25519
id_ed25519_github
known_hosts*

View file

@ -1,80 +1,53 @@
# Servers.
Host amy amy.opensourcerers.net
ForwardAgent yes
HostName amy.opensourcerers.net
Port 9922
# General settings.
AddKeysToAgent yes
ConnectTimeout 30
# Removed as this prevents use of ^Z suspension.
# ControlMaster auto
# ControlPath ${HOME}/.ssh/%u@%l->%r@%h:%p
# ControlPersist 7200
ExitOnForwardFailure yes
HashKnownHosts no
SendEnv LANG LC_* TERM
StrictHostKeyChecking accept-new
VerifyHostKeyDNS yes
VisualHostKey yes
Host backup backup.slackware.uk
ForwardAgent yes
Hostname backup.slackware.uk
# Temp.
Host zapp
Hostname zapp.opensourcerers.net
Port 9922
Host bender bender.opensourcerers.net
ForwardAgent yes
HostName bender.opensourcerers.net
Port 9922
RemoteForward %d/.gnupg/S.gpg-agent ${HOME}/.gnupg/S.gpg-agent
Host fry fry.opensourcerers.net
# Remote servers.
Host bender fry leela mirror seedbox
HostName %h.hosts.slackware.network
Port 9922
ForwardAgent yes
HostName fry.opensourcerers.net
Port 9922
RemoteForward %d/.gnupg/S.gpg-agent ${HOME}/.gnupg/S.gpg-agent
Host kif kif.opensourcerers.net
Host esx0.hosts.slackware.network esx1.hosts.slackware.network
Port 22
Host *.hosts.slackware.network
Port 9922
ForwardAgent yes
HostName kif.opensourcerers.net
Port 9922
Host leela leela.opensourcerers.net
ForwardAgent yes
HostName leela.opensourcerers.net
Port 9922
Host seedbox seedbox.slackware.uk
ForwardAgent yes
Hostname seedbox.slackware.uk
Port 9922
Host mirror mirror.slackware.uk
ForwardAgent yes
Hostname mirror.slackware.uk
Port 9922
Host zapp zapp.opensourcerers.net
ForwardAgent yes
HostName zapp.opensourcerers.net
Port 9922
RemoteForward %d/.gnupg/S.gpg-agent ${HOME}/.gnupg/S.gpg-agent
# Home stuff.
Host afterdark.org.uk
ForwardAgent yes
Hostname afterdark.org.uk
Port 6722
ForwardAgent yes
Host phil lil tommy
Host phil lil tommy-wifi
ForwardAgent yes
ForwardX11Trusted yes
Host full-* build-* clone-*
ForwardAgent yes
RemoteForward /run/user/0/gnupg/S.gpg-agent ${HOME}/.gnupg/S.gpg-agent
User root
Host backupnas
ForwardAgent yes
Hostname helium.rainsbrook.co.uk
Port 2048
# General settings.
Host *
# AddKeysToAgent yes
ConnectTimeout 30
# Removed as this prevents use of ^Z suspension.
# ControlMaster auto
# ControlPath ~/.ssh/%u@%l->%r@%h:%p
# ControlPersist 7200
ExitOnForwardFailure yes
SendEnv LANG LC_* TERM
# StrictHostKeyChecking no
# VerifyHostKeyDNS yes
VisualHostKey yes
# GitHub.
Host github.com
IdentityFile ${HOME}/.ssh/id_ed25519_github

BIN
.ssh/id_ed25519.gpg Normal file

Binary file not shown.

1
.ssh/id_ed25519.pub Normal file
View file

@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICsx4EY4vbDt0TXGZsW9UjOxj+s/mVeytJ7lW5rAu0gS Darren 'Tadgy' Austin <darren@afterdark.org.uk>

View file

@ -0,0 +1,4 @@
Œ Ÿ0+*äóŒ/ôÒÀêûcv×<E280A6>¾Ïˆ/A¿À•ðYfWÃr}«éJ­<6E>t­Æ?(f«—Å_À4yåÝ•%õ}ÎE†KKYVÄd•ÅEÖ«IêñfxžÑiÇ ÓY{Ì=ÏQ- ™ØG´¢œÞLêÀÎmª³íö¿6o€ÿÚô$U$çk¬Ò²ª·7E2sŽ<73>GÝŸ….˜v*jÁpž¼/e ´VËëÏ€8Åknй1Äjµtÿß
i1ì ­¿Ÿ¼èUŒîÔE<C394>7)ý‡‚]kÉKKX9oàóÄ©&Ðü·
¼ÀÍ^ÌsÃÃÆ|€#E¨ZÏ<R{¸Í5…wx—[õÇR¾aºë¯•3úÃR¢Pl<>3Emþu[Ϻ7ÁN~ûÜ£ 6Q½gBC<kª,;¥Êc‚ø1»*våþ-w#Ï×ÉÑ“Êåñ<C3A5>®*ÃW?dÉñ(£¦”|<7C>«%"½ÐÜ=¤äŠK+ð‚´
/Fo9†nl„?_<ç"Òãì÷m ûi?´Ìµ¯[2m¥d°¨Õ—£œ ìÊ

View file

@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJTqpP7YyGHoEhPoqZTS0H7CmMQ06wcvnC8dgYDM/mbF darren@afterdark.org.uk

BIN
.ssh/id_rsa.gpg Normal file

Binary file not shown.

1
.ssh/id_rsa.pub Normal file
View file

@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCtsRUCRcju+l1TrfwGQ/PCcXBwN8bTCcmS0PYbdu13XJQ9DijTZsU7m2k8pi2fFU0VG5+C57i4FhkV3J7Ngpu0XDM4CPuoq2agRTEMXZlHu0aO8mEaPBli5oEkx/m1yinL0FapDfxMkeLDp3eHL0Gw2I0G6Kg8j4jl0pz4uYPLrrMbcWgEin+ijUE71lRXXJ2U6whCFBz991XDTkyX9a3CMAKIjYq0qTMyBGWUzHVNVPCXXa1bcK6Jj6jlkW1oowfccof3mDtm5Tef54pFAWS6yYSM+XkmCStknDInKI/fL54LnH6PZxEz2wdRXArMNk80gNyzLbOqEddnaoTaSowTIcXOUyzMrgyf/c2WZp9Ss05kgt6e+sTFqEREt1oslGP8s2rtvhRCyAaQM0X5TutqycLeNbm7duKmb4FuYvRqbi6ECqrUZ5roz5ushrtEvUY74xmo3Wt5/6piDV7VTCLUqNJNcB+rPFLG+LYUS+G1w4HZGXXgIERcHHDdvt4LQm0= Darren 'Tadgy' Austin <darren@afterdark.org.uk>