mirror of
https://github.com/Matir/skel.git
synced 2026-05-26 05:29:09 -07:00
Compare commits
122 Commits
v0.2
...
workupdate
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
503bba6516 | ||
|
|
d84ee23039 | ||
|
|
ea1d3f669b | ||
|
|
47b4248de2 | ||
|
|
33e9188612 | ||
|
|
2f6c9c8c0a | ||
|
|
7128789d48 | ||
|
|
19068da3f8 | ||
|
|
10851db1a9 | ||
|
|
1b8d6b85db | ||
|
|
653fa39cf7 | ||
|
|
7b0713675c | ||
|
|
52ed3913c8 | ||
|
|
6d23e72bd7 | ||
|
|
da545f0de7 | ||
|
|
8d9cf14608 | ||
|
|
bdc1551122 | ||
|
|
ba497cd5bf | ||
|
|
ca63946c5e | ||
|
|
0b6fa6b0fa | ||
|
|
12247790a6 | ||
|
|
4d245198a8 | ||
|
|
8f4e4fe77b | ||
|
|
1cafe1cf7a | ||
|
|
ba546d478e | ||
|
|
08d9567bdf | ||
|
|
a460ee3bb4 | ||
|
|
f005bae9e6 | ||
|
|
3279d52505 | ||
|
|
939c604381 | ||
|
|
d2061e29ef | ||
|
|
de62342054 | ||
|
|
2cf2aa4e78 | ||
|
|
672767d758 | ||
|
|
96c2c37eb8 | ||
|
|
ffb5d753cd | ||
|
|
7a7340ef1d | ||
|
|
b1bea45a48 | ||
|
|
01432d1f41 | ||
|
|
d6800370de | ||
|
|
8f547abf93 | ||
|
|
a02825fb1f | ||
|
|
5e3d133f8b | ||
|
|
48477290f0 | ||
|
|
6bf68dfb2e | ||
|
|
590a1a2fa0 | ||
|
|
697db6ca24 | ||
|
|
f028c2f320 | ||
|
|
32a1c18c5d | ||
|
|
4ec3fa1e22 | ||
|
|
26685dfadb | ||
|
|
0b327577e7 | ||
|
|
373f6c31c6 | ||
|
|
4f7d98930d | ||
|
|
1aa256252f | ||
|
|
5705cb59c8 | ||
|
|
c8b33e39c7 | ||
|
|
a9012bebea | ||
|
|
6100557a2b | ||
|
|
5709d8fbb0 | ||
|
|
5dc84926be | ||
|
|
b303c1b5c5 | ||
|
|
dfd2b48b94 | ||
|
|
0e1370a93f | ||
|
|
4ebf519af7 | ||
|
|
1386dc49d0 | ||
|
|
360aa1c8ec | ||
|
|
8e8d220539 | ||
|
|
9b7561ce8f | ||
|
|
c9c65e10d7 | ||
|
|
61b4dbe963 | ||
|
|
20a8db806c | ||
|
|
be1bca8dbe | ||
|
|
9c3ad64036 | ||
|
|
d392eb8dfc | ||
|
|
6f15f7096a | ||
|
|
c7e40f1321 | ||
|
|
376fbb9f73 | ||
|
|
769989127b | ||
|
|
4091cc3f03 | ||
|
|
82c2833490 | ||
|
|
634f031c56 | ||
|
|
7564acc939 | ||
|
|
bfaabd18d0 | ||
|
|
286eb02f4b | ||
|
|
5a9e0b6578 | ||
|
|
f77ed125de | ||
|
|
24676d6a87 | ||
|
|
d08af13a1c | ||
|
|
8c9627caa1 | ||
|
|
40485f10f0 | ||
|
|
b5ef3c37e4 | ||
|
|
874750f22b | ||
|
|
89f555cdcb | ||
|
|
4a7b263a9e | ||
|
|
753035cc57 | ||
|
|
32275ca788 | ||
|
|
58f63a17dc | ||
|
|
f355fe84d2 | ||
|
|
f3125f7cd7 | ||
|
|
6894dc9214 | ||
|
|
a59cbf1e41 | ||
|
|
d43bbcfae9 | ||
|
|
00cf4d1577 | ||
|
|
143e6e1e74 | ||
|
|
8f6127d19d | ||
|
|
7c5a617897 | ||
|
|
696cc9c6cd | ||
|
|
2c2ac626e5 | ||
|
|
0431c83423 | ||
|
|
d9ae2ca974 | ||
|
|
db007ad604 | ||
|
|
89ee4ce390 | ||
|
|
48fb9289b4 | ||
|
|
430bb6e7b9 | ||
|
|
bf81c13d47 | ||
|
|
bda75033a0 | ||
|
|
53f7bc9fe3 | ||
|
|
a2acbeb8b5 | ||
|
|
de89e88c90 | ||
|
|
87fd3193e0 | ||
|
|
d96a41aeaf |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
|||||||
installed-prefs
|
installed-prefs
|
||||||
|
.installed-prefs
|
||||||
*.swp
|
*.swp
|
||||||
*~
|
*~
|
||||||
*.bak
|
*.bak
|
||||||
|
|||||||
35
bin/_install_apt_proxy.sh
Executable file
35
bin/_install_apt_proxy.sh
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
|
||||||
|
if test -f /etc/apt/apt.conf.d/90-proxy ; then
|
||||||
|
echo "Looks already setup."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat >/etc/apt/proxy-detect <<'EOF'
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
PROXY=192.168.60.10:3142
|
||||||
|
|
||||||
|
if ! test -x /bin/nc ; then
|
||||||
|
echo DIRECT
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if nc -w 2 -z ${PROXY/:/ } ; then
|
||||||
|
echo ${PROXY}
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo DIRECT
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod 755 /etc/apt/proxy-detect
|
||||||
|
|
||||||
|
cat >/etc/apt/apt.conf.d/90-proxy <<'EOF'
|
||||||
|
Acquire::http::Proxy-Auto-Detect "/etc/apt/proxy-detect";
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "Setup APT Proxying."
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
i3 i3lock xss-lock rxvt-unicode-256color fonts-inconsolata scrot \
|
i3 i3lock xss-lock rxvt-unicode-256color fonts-inconsolata scrot \
|
||||||
xautolock xbacklight i3status
|
xautolock xbacklight i3status dex
|
||||||
|
|||||||
@@ -26,5 +26,5 @@ function verify_dest {
|
|||||||
|
|
||||||
verify_dest "$DEST"
|
verify_dest "$DEST"
|
||||||
|
|
||||||
rsync -Hax --delete --exclude-from="$HOME/.rsync_ignore" \
|
exec nice rsync -Hax --delete --exclude-from="$HOME/.rsync_ignore" \
|
||||||
--delete-excluded "${HOME}/" "$DEST"
|
--delete-excluded "${HOME}/" "$DEST"
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
exec xdg-open $(dirname $0)/cyberchef.html
|
set -u
|
||||||
|
|
||||||
|
CHEF_FILE=${HOME}/tools/cyberchef/cyberchef.html
|
||||||
|
|
||||||
|
if [ ! -f ${CHEF_FILE} ] ; then
|
||||||
|
${HOME}/bin/install_tool cyberchef
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec xdg-open ${CHEF_FILE}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
3
bin/google-chrome-burp
Executable file
3
bin/google-chrome-burp
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Launch chrome for burp
|
||||||
|
exec /usr/bin/google-chrome-beta --ignore-certificate-errors --user-data-dir=${HOME}/.config/chrome-pentest --proxy-server=127.0.0.1:8080
|
||||||
@@ -31,10 +31,16 @@ if [ $# -ne 1 ] ; then
|
|||||||
fi
|
fi
|
||||||
TOOL=${1}
|
TOOL=${1}
|
||||||
|
|
||||||
|
function die {
|
||||||
|
echo $* >/dev/stderr
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
function install_pkgs {
|
function install_pkgs {
|
||||||
if [ ${PACKAGES} -eq 0 ] ; then
|
if [ ${PACKAGES} -eq 0 ] ; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
# TODO: check if packages are already installed
|
||||||
if [ `id -u` -ne "0" ] ; then
|
if [ `id -u` -ne "0" ] ; then
|
||||||
sudo apt-get -y install $* || (
|
sudo apt-get -y install $* || (
|
||||||
echo -n "Unable to install packages, please ensure these " >/dev/stderr
|
echo -n "Unable to install packages, please ensure these " >/dev/stderr
|
||||||
@@ -50,6 +56,7 @@ function download {
|
|||||||
SRC=${1}
|
SRC=${1}
|
||||||
DST=${2}
|
DST=${2}
|
||||||
echo -n "Downloading ${SRC} to ${DST}..." >&2
|
echo -n "Downloading ${SRC} to ${DST}..." >&2
|
||||||
|
# TODO: consider curl instead?
|
||||||
wget --no-server-response -q -O ${DST} --content-disposition ${SRC}
|
wget --no-server-response -q -O ${DST} --content-disposition ${SRC}
|
||||||
echo " done." >&2
|
echo " done." >&2
|
||||||
}
|
}
|
||||||
@@ -58,6 +65,15 @@ function check_sudo {
|
|||||||
sudo -l >/dev/null
|
sudo -l >/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function add_bin_symlink {
|
||||||
|
local TARGET NAME BINDIR
|
||||||
|
TARGET=${1}
|
||||||
|
NAME=${2:-$(basename ${1})}
|
||||||
|
BINDIR=${HOME}/bin/tools/
|
||||||
|
mkdir -p -- ${BINDIR}
|
||||||
|
ln -sf ${DESTDIR}/${TARGET} ${BINDIR}/${NAME}
|
||||||
|
}
|
||||||
|
|
||||||
DESTDIR="${HOME}/tools/${TOOL}"
|
DESTDIR="${HOME}/tools/${TOOL}"
|
||||||
|
|
||||||
if [ -d ${DESTDIR} ] ; then
|
if [ -d ${DESTDIR} ] ; then
|
||||||
@@ -106,10 +122,11 @@ case ${TOOL} in
|
|||||||
gtemp=`mktemp -d`
|
gtemp=`mktemp -d`
|
||||||
gbase="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/"
|
gbase="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/"
|
||||||
# TODO: find a way to make this version independent
|
# TODO: find a way to make this version independent
|
||||||
gsdk="google-cloud-sdk-142.0.0-linux-x86_64.tar.gz"
|
gsdk="google-cloud-sdk-209.0.0-linux-x86_64.tar.gz"
|
||||||
download "${gbase}${gsdk}" /tmp/gcloud.tar.gz
|
download "${gbase}${gsdk}" /tmp/gcloud.tar.gz
|
||||||
tar zxf /tmp/gcloud.tar.gz --strip-components=1 -C ${DESTDIR}
|
tar zxf /tmp/gcloud.tar.gz --strip-components=1 -C ${DESTDIR}
|
||||||
rm /tmp/gcloud.tar.gz
|
rm /tmp/gcloud.tar.gz
|
||||||
|
add_bin_symlink bin/gcloud
|
||||||
;;
|
;;
|
||||||
android-sdk)
|
android-sdk)
|
||||||
# TODO: find a way to make this version independent
|
# TODO: find a way to make this version independent
|
||||||
@@ -137,12 +154,13 @@ case ${TOOL} in
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
mitmproxy)
|
mitmproxy)
|
||||||
# Find a better way to get the latest
|
ver=$(python -c 'import urllib2; import json; print(json.load(urllib2.urlopen("https://api.github.com/repos/mitmproxy/mitmproxy/releases/latest"))["name"].replace("v",""))')
|
||||||
src="https://github.com/mitmproxy/mitmproxy/releases/download/v2.0.1/mitmproxy-2.0.1-linux.tar.gz"
|
download https://snapshots.mitmproxy.org/${ver}/mitmproxy-${ver}-linux.tar.gz /tmp/mitmproxy.tar.gz
|
||||||
download ${src} /tmp/mitmproxy.tar.gz
|
|
||||||
mkdir -p ${DESTDIR}
|
mkdir -p ${DESTDIR}
|
||||||
tar zx -C ${DESTDIR} -f /tmp/mitmproxy.tar.gz
|
tar zx -C ${DESTDIR} -f /tmp/mitmproxy.tar.gz
|
||||||
rm /tmp/mitmproxy.tar.gz
|
rm /tmp/mitmproxy.tar.gz
|
||||||
|
add_bin_symlink mitmproxy
|
||||||
|
add_bin_symlink mitmweb
|
||||||
;;
|
;;
|
||||||
esp)
|
esp)
|
||||||
src="https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz"
|
src="https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz"
|
||||||
@@ -176,6 +194,22 @@ case ${TOOL} in
|
|||||||
/etc/udev/rules.d/77-mm-usb-device-blacklist.rules &&
|
/etc/udev/rules.d/77-mm-usb-device-blacklist.rules &&
|
||||||
udevadm control --reload-rules"
|
udevadm control --reload-rules"
|
||||||
;;
|
;;
|
||||||
|
cyberchef)
|
||||||
|
mkdir -p ${DESTDIR}
|
||||||
|
src=$(python -c 'import urllib2; import json; print(filter(lambda x: x["name"]=="cyberchef.htm", json.load(urllib2.urlopen("https://api.github.com/repos/gchq/CyberChef/releases/latest"))["assets"])[0]["browser_download_url"])')
|
||||||
|
download ${src} ${DESTDIR}/cyberchef.html
|
||||||
|
;;
|
||||||
|
apktool)
|
||||||
|
mkdir -p ${DESTDIR}
|
||||||
|
download \
|
||||||
|
https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool \
|
||||||
|
${DESTDIR}/apktool
|
||||||
|
download \
|
||||||
|
https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.3.3.jar \
|
||||||
|
${DESTDIR}/apktool.jar
|
||||||
|
chmod +x ${DESTDIR}/apktool
|
||||||
|
add_bin_symlink apktool
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown tool: ${TOOL}" >/dev/stderr
|
echo "Unknown tool: ${TOOL}" >/dev/stderr
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
24
dconf/org/cinnamon/desktop/keybindings
Normal file
24
dconf/org/cinnamon/desktop/keybindings
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[media-keys]
|
||||||
|
screensaver=['<Primary><Alt>l', 'XF86ScreenSaver']
|
||||||
|
|
||||||
|
[wm]
|
||||||
|
move-to-workspace-1=['<Shift><Super>exclam']
|
||||||
|
move-to-workspace-2=['<Shift><Super>at']
|
||||||
|
move-to-workspace-3=['<Shift><Super>numbersign']
|
||||||
|
move-to-workspace-4=['<Shift><Super>dollar']
|
||||||
|
move-to-workspace-5=['<Shift><Super>percent']
|
||||||
|
move-to-workspace-6=['<Shift><Super>asciicircum']
|
||||||
|
move-to-workspace-7=['<Shift><Super>ampersand']
|
||||||
|
move-to-workspace-8=['<Shift><Super>asterisk']
|
||||||
|
move-to-workspace-9=['<Shift><Super>parenleft']
|
||||||
|
switch-to-workspace-4=['<Super>4']
|
||||||
|
switch-to-workspace-1=['<Super>1']
|
||||||
|
switch-to-workspace-10=['<Super>0']
|
||||||
|
switch-to-workspace-3=['<Super>3']
|
||||||
|
switch-to-workspace-8=['<Super>8']
|
||||||
|
switch-to-workspace-5=['<Super>5']
|
||||||
|
move-to-workspace-10=['<Shift><Super>parenright']
|
||||||
|
switch-to-workspace-2=['<Super>2']
|
||||||
|
switch-to-workspace-9=['<Super>9']
|
||||||
|
switch-to-workspace-6=['<Super>6']
|
||||||
|
switch-to-workspace-7=['<Super>7']
|
||||||
@@ -3,7 +3,7 @@ Xcursor.size: 16
|
|||||||
!!!
|
!!!
|
||||||
! Xft for fonts
|
! Xft for fonts
|
||||||
!!!
|
!!!
|
||||||
Xft.dpi: 96
|
!Xft.dpi: 144
|
||||||
Xft.antialias: false
|
Xft.antialias: false
|
||||||
Xft.lcdfilter: lcddefault
|
Xft.lcdfilter: lcddefault
|
||||||
Xft.rgba: rgb
|
Xft.rgba: rgb
|
||||||
|
|||||||
@@ -8,10 +8,13 @@ alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo
|
|||||||
alias luksFormat='cryptsetup luksFormat -s 512 -c aes-xts-plain64 -h sha256 -i 15000'
|
alias luksFormat='cryptsetup luksFormat -s 512 -c aes-xts-plain64 -h sha256 -i 15000'
|
||||||
|
|
||||||
# Colors
|
# Colors
|
||||||
alias ls='ls --color=auto'
|
if [ `uname` != 'Darwin' -a `uname` != 'NetBSD' ] ; then
|
||||||
alias grep='grep --color=auto'
|
# Should have a better way to check for GNU versions
|
||||||
alias egrep='egrep --color=auto'
|
alias ls='ls --color=auto'
|
||||||
alias fgrep='fgrep --color=auto'
|
alias grep='grep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
fi
|
||||||
|
|
||||||
# Easy upgrade
|
# Easy upgrade
|
||||||
alias dist-upgrade="sudo sh -c 'apt-get update && apt-get -y dist-upgrade'"
|
alias dist-upgrade="sudo sh -c 'apt-get update && apt-get -y dist-upgrade'"
|
||||||
@@ -25,9 +28,6 @@ alias mdcode="sed 's/^/ /'"
|
|||||||
# Intel format plz
|
# Intel format plz
|
||||||
alias objdump="command objdump -M intel"
|
alias objdump="command objdump -M intel"
|
||||||
|
|
||||||
# Launch chrome for burp
|
|
||||||
alias chrome-for-burp="/usr/bin/google-chrome --ignore-certificate-errors --user-data-dir=${HOME}/.chrome-for-burp --proxy-server=127.0.0.1:8080 >/dev/null 2>&1 &"
|
|
||||||
|
|
||||||
# Useful directory utilities
|
# Useful directory utilities
|
||||||
alias dircount="for d in * ; do find \$d -type d | wc -l | tr -d '\n' ; echo ' ' \$d ; done | sort -n"
|
alias dircount="for d in * ; do find \$d -type d | wc -l | tr -d '\n' ; echo ' ' \$d ; done | sort -n"
|
||||||
|
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ exec --no-startup-id gnome-settings-daemon
|
|||||||
exec --no-startup-id (sleep 2; nm-applet) &
|
exec --no-startup-id (sleep 2; nm-applet) &
|
||||||
exec --no-startup-id xset r rate 200 20
|
exec --no-startup-id xset r rate 200 20
|
||||||
exec --no-startup-id ~/bin/autostart.py
|
exec --no-startup-id ~/bin/autostart.py
|
||||||
|
exec --no-startup-id dex --autostart --environment x-cinnamon
|
||||||
|
|
||||||
# customize windows
|
# customize windows
|
||||||
for_window [window_role="pop-up"] floating enable
|
for_window [window_role="pop-up"] floating enable
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
tlsv1
|
tlsv1
|
||||||
user-agent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0 Safari/537.36"
|
|
||||||
create-dirs
|
create-dirs
|
||||||
referer = ";auto"
|
referer = ";auto"
|
||||||
|
|||||||
38
dotfiles/env
38
dotfiles/env
@@ -15,14 +15,48 @@ export LESS="-MR"
|
|||||||
export QUOTING_STYLE="literal" # Coreutils quotes
|
export QUOTING_STYLE="literal" # Coreutils quotes
|
||||||
|
|
||||||
# Fix gnome-terminal
|
# Fix gnome-terminal
|
||||||
if [[ $TERM == "xterm" && $COLORTERM == "gnome-terminal" ]] ; then
|
if [ "$TERM" = "xterm" -a "$COLORTERM" = "gnome-terminal" ] ; then
|
||||||
export TERM="xterm-256color"
|
export TERM="xterm-256color"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For virtualenvwrapper
|
# For virtualenvwrapper
|
||||||
export WORKON_HOME=$HOME/.virtualenvs
|
export WORKON_HOME=$HOME/.virtualenvs
|
||||||
|
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
|
||||||
|
|
||||||
# GPG full key id
|
# GPG full key id
|
||||||
export GPG_ID=7FD58D9A196DCEEEAD671F94F4D7A7915DEA789B
|
export GPG_ID=7FD58D9A196DCEEEAD671F94F4D7A7915DEA789B
|
||||||
|
|
||||||
if [[ -e $HOME/.localenv ]] ; then source $HOME/.localenv ; fi
|
# Setup locale
|
||||||
|
if test -x /usr/bin/locale ; then
|
||||||
|
for l in en_US.UTF-8 C.UTF-8 C ; do
|
||||||
|
if /usr/bin/locale -a | grep -q "${l}" ; then
|
||||||
|
export LC_CTYPE=${l}
|
||||||
|
export LC_NUMERIC=${l}
|
||||||
|
export LC_TIME=${l}
|
||||||
|
export LC_MONETARY=${l}
|
||||||
|
export LC_MESSAGES=${l}
|
||||||
|
export LC_PAPER=${l}
|
||||||
|
export LC_NAME=${l}
|
||||||
|
export LC_ADDRESS=${l}
|
||||||
|
export LC_TELEPHONE=${l}
|
||||||
|
export LC_MEASUREMENT=${l}
|
||||||
|
export LC_IDENTIFICATION=${l}
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
export LC_CTYPE=C
|
||||||
|
export LC_NUMERIC=C
|
||||||
|
export LC_TIME=C
|
||||||
|
export LC_MONETARY=C
|
||||||
|
export LC_MESSAGES=C
|
||||||
|
export LC_PAPER=C
|
||||||
|
export LC_NAME=C
|
||||||
|
export LC_ADDRESS=C
|
||||||
|
export LC_TELEPHONE=C
|
||||||
|
export LC_MEASUREMENT=C
|
||||||
|
export LC_IDENTIFICATION=C
|
||||||
|
fi
|
||||||
|
export LC_COLLATE=C
|
||||||
|
|
||||||
|
if [ -e $HOME/.localenv ] ; then source $HOME/.localenv ; fi
|
||||||
|
|||||||
@@ -39,11 +39,13 @@
|
|||||||
user = matir
|
user = matir
|
||||||
|
|
||||||
# Site specific config
|
# Site specific config
|
||||||
[url "https://github.com/"]
|
[url "https://github.com./"]
|
||||||
insteadOf = github://
|
insteadOf = "github:"
|
||||||
|
insteadOf = "github://"
|
||||||
|
|
||||||
[url "ssh://git@github.com/"]
|
[url "ssh://git@github.com/"]
|
||||||
pushInsteadOf = github://
|
pushInsteadOf = "github:"
|
||||||
|
pushInsteadOf = "github://"
|
||||||
|
|
||||||
[url "git://gist.github.com/"]
|
[url "git://gist.github.com/"]
|
||||||
insteadOf = "gist:"
|
insteadOf = "gist:"
|
||||||
@@ -51,5 +53,8 @@
|
|||||||
[url "git@gist.github.com:"]
|
[url "git@gist.github.com:"]
|
||||||
pushInsteadOf = "gist:"
|
pushInsteadOf = "gist:"
|
||||||
pushInsteadOf = "git://gist.github.com/"
|
pushInsteadOf = "git://gist.github.com/"
|
||||||
|
|
||||||
[credential]
|
[credential]
|
||||||
helper = cache --timeout=36000
|
helper = cache --timeout=36000
|
||||||
|
[receive]
|
||||||
|
denyCurrentBranch = updateInstead
|
||||||
|
|||||||
@@ -17,3 +17,6 @@ Thumbs.db
|
|||||||
# Try to avoid accidentally checking in private keys
|
# Try to avoid accidentally checking in private keys
|
||||||
id_rsa
|
id_rsa
|
||||||
id_ecdsa
|
id_ecdsa
|
||||||
|
|
||||||
|
# Kicad backup files
|
||||||
|
*.kicad_pcb-bak
|
||||||
|
|||||||
@@ -7,3 +7,4 @@ personal-digest-preferences SHA256
|
|||||||
cert-digest-algo SHA256
|
cert-digest-algo SHA256
|
||||||
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
|
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
|
||||||
cipher-algo AES256
|
cipher-algo AES256
|
||||||
|
default-key 7FD58D9A196DCEEEAD671F94F4D7A7915DEA789B
|
||||||
|
|||||||
4
dotfiles/inputrc
Normal file
4
dotfiles/inputrc
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
set editing-mode vi
|
||||||
|
|
||||||
|
set keymap vi
|
||||||
|
set convert-meta on
|
||||||
@@ -1,4 +1,8 @@
|
|||||||
# Always load ENV
|
# Always load ENV
|
||||||
test -f "$HOME/.env" && . "$HOME/.env"
|
test -f "$HOME/.env" && . "$HOME/.env"
|
||||||
|
|
||||||
|
# Setup GREP_COLORS
|
||||||
|
export GREP_COLOR='01;31'
|
||||||
|
export GREP_COLORS='mt=01;31:mc=01;31:ms=01;31'
|
||||||
|
|
||||||
test -f "${HOME}/.profile.local" && . "${HOME}/.profile.local"
|
test -f "${HOME}/.profile.local" && . "${HOME}/.profile.local"
|
||||||
|
|||||||
@@ -10,3 +10,4 @@ Downloads
|
|||||||
.sqlite_history
|
.sqlite_history
|
||||||
VirtualBox VMs
|
VirtualBox VMs
|
||||||
Audits
|
Audits
|
||||||
|
SpiderOak Hive
|
||||||
|
|||||||
@@ -1,19 +1,28 @@
|
|||||||
# Universal Settings (can't override)
|
# Universal Settings
|
||||||
# Never fall back to protocol 1: it's broken
|
|
||||||
Protocol 2
|
Protocol 2
|
||||||
|
|
||||||
# Defaults (May be Overridden)
|
# Permit Local Overrides
|
||||||
Host *
|
Include ~/.ssh/config.d/*
|
||||||
ControlMaster auto
|
|
||||||
ControlPath ~/.ssh/master/%r@%h:%p
|
|
||||||
ControlPersist yes
|
|
||||||
ForwardAgent no
|
|
||||||
ForwardX11 no
|
|
||||||
ForwardX11Trusted no
|
|
||||||
ServerAliveInterval 120
|
|
||||||
CheckHostIP no
|
|
||||||
|
|
||||||
Host warzone
|
# Enable canonicalization, unless overridden
|
||||||
Hostname warzone.shadowcats.club
|
CanonicalizeHostname yes
|
||||||
Port 22
|
CanonicalizeFallbackLocal yes
|
||||||
User matir
|
CanonicalDomains systemoverlord.com
|
||||||
|
CanonicalizeMaxDots 0
|
||||||
|
|
||||||
|
# Defaults (May be Overridden)
|
||||||
|
Host *.*
|
||||||
|
CheckHostIP yes
|
||||||
|
|
||||||
|
Match canonical all
|
||||||
|
CheckHostIP no
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPath ~/.ssh/master/%r@%h:%p
|
||||||
|
ControlPersist yes
|
||||||
|
ForwardAgent no
|
||||||
|
ForwardX11 no
|
||||||
|
ForwardX11Trusted no
|
||||||
|
ServerAliveInterval 120
|
||||||
|
UpdateHostKeys yes
|
||||||
|
User david
|
||||||
|
VerifyHostKeyDNS yes
|
||||||
|
|||||||
@@ -57,3 +57,7 @@ bind M \
|
|||||||
set -g mouse-select-pane off \;\
|
set -g mouse-select-pane off \;\
|
||||||
set -g mouse-select-window off \;\
|
set -g mouse-select-window off \;\
|
||||||
display 'Mouse: OFF'
|
display 'Mouse: OFF'
|
||||||
|
|
||||||
|
# tmux X clipboard integration
|
||||||
|
bind C-c run "tmux show-buffer | xsel -i -b"
|
||||||
|
bind C-v run "tmux set-buffer -- \"$(xsel -o -b)\"; tmux paste-buffer"
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ imap <S-Tab> <Esc><<A
|
|||||||
" Line numbering, ruler
|
" Line numbering, ruler
|
||||||
set number
|
set number
|
||||||
set ruler
|
set ruler
|
||||||
set cursorline
|
|
||||||
|
|
||||||
" File options
|
" File options
|
||||||
set encoding=utf-8
|
set encoding=utf-8
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# alias.conf -- weechat v1.0.1
|
# weechat -- alias.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[cmd]
|
[cmd]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# aspell.conf -- weechat v1.0.1
|
# weechat -- aspell.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[color]
|
[color]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# charset.conf -- weechat v1.0.1
|
# weechat -- charset.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[default]
|
[default]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# exec.conf -- weechat v1.0.1
|
# weechat -- exec.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[command]
|
[command]
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
#
|
#
|
||||||
# irc.conf -- weechat v1.0.1
|
# weechat -- irc.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[look]
|
[look]
|
||||||
|
buffer_open_before_autojoin = on
|
||||||
|
buffer_open_before_join = off
|
||||||
buffer_switch_autojoin = on
|
buffer_switch_autojoin = on
|
||||||
buffer_switch_join = on
|
buffer_switch_join = on
|
||||||
color_nicks_in_names = off
|
color_nicks_in_names = off
|
||||||
@@ -25,7 +27,6 @@ highlight_channel = "$nick"
|
|||||||
highlight_pv = "$nick"
|
highlight_pv = "$nick"
|
||||||
highlight_server = "$nick"
|
highlight_server = "$nick"
|
||||||
highlight_tags_restrict = "irc_privmsg,irc_notice"
|
highlight_tags_restrict = "irc_privmsg,irc_notice"
|
||||||
item_away_message = on
|
|
||||||
item_channel_modes_hide_args = "k"
|
item_channel_modes_hide_args = "k"
|
||||||
item_display_server = buffer_plugin
|
item_display_server = buffer_plugin
|
||||||
item_nick_modes = on
|
item_nick_modes = on
|
||||||
@@ -34,9 +35,6 @@ join_auto_add_chantype = off
|
|||||||
msgbuffer_fallback = current
|
msgbuffer_fallback = current
|
||||||
new_channel_position = none
|
new_channel_position = none
|
||||||
new_pv_position = none
|
new_pv_position = none
|
||||||
nick_color_force = ""
|
|
||||||
nick_color_hash = sum
|
|
||||||
nick_color_stop_chars = "_|["
|
|
||||||
nick_completion_smart = speakers
|
nick_completion_smart = speakers
|
||||||
nick_mode = prefix
|
nick_mode = prefix
|
||||||
nick_mode_empty = off
|
nick_mode_empty = off
|
||||||
@@ -58,11 +56,11 @@ smart_filter_join_unmask = 30
|
|||||||
smart_filter_mode = "+"
|
smart_filter_mode = "+"
|
||||||
smart_filter_nick = on
|
smart_filter_nick = on
|
||||||
smart_filter_quit = on
|
smart_filter_quit = on
|
||||||
|
temporary_servers = off
|
||||||
topic_strip_colors = off
|
topic_strip_colors = off
|
||||||
|
|
||||||
[color]
|
[color]
|
||||||
input_nick = lightcyan
|
input_nick = lightcyan
|
||||||
item_away = yellow
|
|
||||||
item_channel_modes = default
|
item_channel_modes = default
|
||||||
item_lag_counting = default
|
item_lag_counting = default
|
||||||
item_lag_finished = yellow
|
item_lag_finished = yellow
|
||||||
@@ -73,14 +71,15 @@ mirc_remap = "1,-1:darkgray"
|
|||||||
nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
|
nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
|
||||||
notice = green
|
notice = green
|
||||||
reason_quit = default
|
reason_quit = default
|
||||||
|
topic_current = default
|
||||||
topic_new = white
|
topic_new = white
|
||||||
topic_old = default
|
topic_old = default
|
||||||
|
|
||||||
[network]
|
[network]
|
||||||
alternate_nick = on
|
|
||||||
autoreconnect_delay_growing = 2
|
autoreconnect_delay_growing = 2
|
||||||
autoreconnect_delay_max = 600
|
autoreconnect_delay_max = 600
|
||||||
ban_mask_default = "*!$ident@$host"
|
ban_mask_default = "*!$ident@$host"
|
||||||
|
channel_encode = off
|
||||||
colors_receive = on
|
colors_receive = on
|
||||||
colors_send = on
|
colors_send = on
|
||||||
lag_check = 60
|
lag_check = 60
|
||||||
@@ -90,6 +89,7 @@ lag_reconnect = 0
|
|||||||
lag_refresh_interval = 1
|
lag_refresh_interval = 1
|
||||||
notify_check_ison = 1
|
notify_check_ison = 1
|
||||||
notify_check_whois = 5
|
notify_check_whois = 5
|
||||||
|
sasl_fail_unavailable = on
|
||||||
send_unknown_commands = off
|
send_unknown_commands = off
|
||||||
whois_double_nick = off
|
whois_double_nick = off
|
||||||
|
|
||||||
@@ -115,16 +115,19 @@ capabilities = ""
|
|||||||
command = ""
|
command = ""
|
||||||
command_delay = 0
|
command_delay = 0
|
||||||
connection_timeout = 60
|
connection_timeout = 60
|
||||||
default_msg_kick = ""
|
|
||||||
default_msg_part = "gg"
|
|
||||||
default_msg_quit = "gg! I'm out."
|
|
||||||
ipv6 = on
|
ipv6 = on
|
||||||
local_hostname = ""
|
local_hostname = ""
|
||||||
|
msg_kick = ""
|
||||||
|
msg_part = "WeeChat ${info:version}"
|
||||||
|
msg_quit = "WeeChat ${info:version}"
|
||||||
nicks = "Matir,Matir~,Matir[]"
|
nicks = "Matir,Matir~,Matir[]"
|
||||||
|
nicks_alternate = on
|
||||||
notify = ""
|
notify = ""
|
||||||
password = ""
|
password = ""
|
||||||
proxy = ""
|
proxy = ""
|
||||||
realname = ""
|
realname = ""
|
||||||
|
sasl_fail = continue
|
||||||
|
sasl_key = ""
|
||||||
sasl_mechanism = plain
|
sasl_mechanism = plain
|
||||||
sasl_password = ""
|
sasl_password = ""
|
||||||
sasl_timeout = 15
|
sasl_timeout = 15
|
||||||
@@ -152,11 +155,14 @@ freenode.capabilities
|
|||||||
freenode.sasl_mechanism
|
freenode.sasl_mechanism
|
||||||
freenode.sasl_username
|
freenode.sasl_username
|
||||||
freenode.sasl_password
|
freenode.sasl_password
|
||||||
|
freenode.sasl_key
|
||||||
freenode.sasl_timeout
|
freenode.sasl_timeout
|
||||||
|
freenode.sasl_fail
|
||||||
freenode.autoconnect = on
|
freenode.autoconnect = on
|
||||||
freenode.autoreconnect
|
freenode.autoreconnect
|
||||||
freenode.autoreconnect_delay
|
freenode.autoreconnect_delay
|
||||||
freenode.nicks = "Matir,Matir~"
|
freenode.nicks = "Matir,Matir~"
|
||||||
|
freenode.nicks_alternate
|
||||||
freenode.username
|
freenode.username
|
||||||
freenode.realname
|
freenode.realname
|
||||||
freenode.local_hostname
|
freenode.local_hostname
|
||||||
@@ -170,9 +176,9 @@ freenode.anti_flood_prio_high
|
|||||||
freenode.anti_flood_prio_low
|
freenode.anti_flood_prio_low
|
||||||
freenode.away_check
|
freenode.away_check
|
||||||
freenode.away_check_max_nicks
|
freenode.away_check_max_nicks
|
||||||
freenode.default_msg_kick
|
freenode.msg_kick
|
||||||
freenode.default_msg_part
|
freenode.msg_part
|
||||||
freenode.default_msg_quit
|
freenode.msg_quit
|
||||||
freenode.notify
|
freenode.notify
|
||||||
hak5.addresses = "irc.hak5.org/6697"
|
hak5.addresses = "irc.hak5.org/6697"
|
||||||
hak5.proxy
|
hak5.proxy
|
||||||
@@ -188,17 +194,20 @@ hak5.capabilities
|
|||||||
hak5.sasl_mechanism
|
hak5.sasl_mechanism
|
||||||
hak5.sasl_username
|
hak5.sasl_username
|
||||||
hak5.sasl_password
|
hak5.sasl_password
|
||||||
|
hak5.sasl_key
|
||||||
hak5.sasl_timeout
|
hak5.sasl_timeout
|
||||||
|
hak5.sasl_fail
|
||||||
hak5.autoconnect = on
|
hak5.autoconnect = on
|
||||||
hak5.autoreconnect
|
hak5.autoreconnect
|
||||||
hak5.autoreconnect_delay
|
hak5.autoreconnect_delay
|
||||||
hak5.nicks
|
hak5.nicks
|
||||||
|
hak5.nicks_alternate
|
||||||
hak5.username
|
hak5.username
|
||||||
hak5.realname
|
hak5.realname
|
||||||
hak5.local_hostname
|
hak5.local_hostname
|
||||||
hak5.command
|
hak5.command
|
||||||
hak5.command_delay
|
hak5.command_delay
|
||||||
hak5.autojoin = "#hak5,#pineapple,#ducky,#SDR,#lanturtle"
|
hak5.autojoin = "#hak5,#pineapple,#ducky,#SDR,#lanturtle,#bashbunny"
|
||||||
hak5.autorejoin
|
hak5.autorejoin
|
||||||
hak5.autorejoin_delay
|
hak5.autorejoin_delay
|
||||||
hak5.connection_timeout
|
hak5.connection_timeout
|
||||||
@@ -206,9 +215,9 @@ hak5.anti_flood_prio_high
|
|||||||
hak5.anti_flood_prio_low
|
hak5.anti_flood_prio_low
|
||||||
hak5.away_check
|
hak5.away_check
|
||||||
hak5.away_check_max_nicks
|
hak5.away_check_max_nicks
|
||||||
hak5.default_msg_kick
|
hak5.msg_kick
|
||||||
hak5.default_msg_part
|
hak5.msg_part
|
||||||
hak5.default_msg_quit
|
hak5.msg_quit
|
||||||
hak5.notify
|
hak5.notify
|
||||||
rpisec.addresses = "irc.rpis.ec/6697"
|
rpisec.addresses = "irc.rpis.ec/6697"
|
||||||
rpisec.proxy
|
rpisec.proxy
|
||||||
@@ -224,11 +233,14 @@ rpisec.capabilities
|
|||||||
rpisec.sasl_mechanism
|
rpisec.sasl_mechanism
|
||||||
rpisec.sasl_username
|
rpisec.sasl_username
|
||||||
rpisec.sasl_password
|
rpisec.sasl_password
|
||||||
|
rpisec.sasl_key
|
||||||
rpisec.sasl_timeout
|
rpisec.sasl_timeout
|
||||||
|
rpisec.sasl_fail
|
||||||
rpisec.autoconnect = on
|
rpisec.autoconnect = on
|
||||||
rpisec.autoreconnect
|
rpisec.autoreconnect
|
||||||
rpisec.autoreconnect_delay
|
rpisec.autoreconnect_delay
|
||||||
rpisec.nicks
|
rpisec.nicks
|
||||||
|
rpisec.nicks_alternate
|
||||||
rpisec.username
|
rpisec.username
|
||||||
rpisec.realname
|
rpisec.realname
|
||||||
rpisec.local_hostname
|
rpisec.local_hostname
|
||||||
@@ -242,9 +254,9 @@ rpisec.anti_flood_prio_high
|
|||||||
rpisec.anti_flood_prio_low
|
rpisec.anti_flood_prio_low
|
||||||
rpisec.away_check
|
rpisec.away_check
|
||||||
rpisec.away_check_max_nicks
|
rpisec.away_check_max_nicks
|
||||||
rpisec.default_msg_kick
|
rpisec.msg_kick
|
||||||
rpisec.default_msg_part
|
rpisec.msg_part
|
||||||
rpisec.default_msg_quit
|
rpisec.msg_quit
|
||||||
rpisec.notify
|
rpisec.notify
|
||||||
overthewire.addresses = "ircs.overthewire.org/6697"
|
overthewire.addresses = "ircs.overthewire.org/6697"
|
||||||
overthewire.proxy
|
overthewire.proxy
|
||||||
@@ -260,11 +272,14 @@ overthewire.capabilities
|
|||||||
overthewire.sasl_mechanism
|
overthewire.sasl_mechanism
|
||||||
overthewire.sasl_username
|
overthewire.sasl_username
|
||||||
overthewire.sasl_password
|
overthewire.sasl_password
|
||||||
|
overthewire.sasl_key
|
||||||
overthewire.sasl_timeout
|
overthewire.sasl_timeout
|
||||||
|
overthewire.sasl_fail
|
||||||
overthewire.autoconnect = on
|
overthewire.autoconnect = on
|
||||||
overthewire.autoreconnect
|
overthewire.autoreconnect
|
||||||
overthewire.autoreconnect_delay
|
overthewire.autoreconnect_delay
|
||||||
overthewire.nicks
|
overthewire.nicks
|
||||||
|
overthewire.nicks_alternate
|
||||||
overthewire.username
|
overthewire.username
|
||||||
overthewire.realname
|
overthewire.realname
|
||||||
overthewire.local_hostname
|
overthewire.local_hostname
|
||||||
@@ -278,7 +293,85 @@ overthewire.anti_flood_prio_high
|
|||||||
overthewire.anti_flood_prio_low
|
overthewire.anti_flood_prio_low
|
||||||
overthewire.away_check
|
overthewire.away_check
|
||||||
overthewire.away_check_max_nicks
|
overthewire.away_check_max_nicks
|
||||||
overthewire.default_msg_kick
|
overthewire.msg_kick
|
||||||
overthewire.default_msg_part
|
overthewire.msg_part
|
||||||
overthewire.default_msg_quit
|
overthewire.msg_quit
|
||||||
overthewire.notify
|
overthewire.notify
|
||||||
|
hackint.addresses = "irc.hackint.org/9999"
|
||||||
|
hackint.proxy
|
||||||
|
hackint.ipv6
|
||||||
|
hackint.ssl = on
|
||||||
|
hackint.ssl_cert
|
||||||
|
hackint.ssl_priorities
|
||||||
|
hackint.ssl_dhkey_size
|
||||||
|
hackint.ssl_fingerprint
|
||||||
|
hackint.ssl_verify = on
|
||||||
|
hackint.password
|
||||||
|
hackint.capabilities
|
||||||
|
hackint.sasl_mechanism
|
||||||
|
hackint.sasl_username
|
||||||
|
hackint.sasl_password
|
||||||
|
hackint.sasl_key
|
||||||
|
hackint.sasl_timeout
|
||||||
|
hackint.sasl_fail
|
||||||
|
hackint.autoconnect = on
|
||||||
|
hackint.autoreconnect
|
||||||
|
hackint.autoreconnect_delay
|
||||||
|
hackint.nicks
|
||||||
|
hackint.nicks_alternate
|
||||||
|
hackint.username
|
||||||
|
hackint.realname
|
||||||
|
hackint.local_hostname
|
||||||
|
hackint.command
|
||||||
|
hackint.command_delay
|
||||||
|
hackint.autojoin
|
||||||
|
hackint.autorejoin
|
||||||
|
hackint.autorejoin_delay
|
||||||
|
hackint.connection_timeout
|
||||||
|
hackint.anti_flood_prio_high
|
||||||
|
hackint.anti_flood_prio_low
|
||||||
|
hackint.away_check
|
||||||
|
hackint.away_check_max_nicks
|
||||||
|
hackint.msg_kick
|
||||||
|
hackint.msg_part
|
||||||
|
hackint.msg_quit
|
||||||
|
hackint.notify
|
||||||
|
afternet.addresses = "irc.afternet.org/6697"
|
||||||
|
afternet.proxy
|
||||||
|
afternet.ipv6
|
||||||
|
afternet.ssl = on
|
||||||
|
afternet.ssl_cert
|
||||||
|
afternet.ssl_priorities
|
||||||
|
afternet.ssl_dhkey_size
|
||||||
|
afternet.ssl_fingerprint
|
||||||
|
afternet.ssl_verify = on
|
||||||
|
afternet.password
|
||||||
|
afternet.capabilities
|
||||||
|
afternet.sasl_mechanism
|
||||||
|
afternet.sasl_username
|
||||||
|
afternet.sasl_password
|
||||||
|
afternet.sasl_key
|
||||||
|
afternet.sasl_timeout
|
||||||
|
afternet.sasl_fail
|
||||||
|
afternet.autoconnect = on
|
||||||
|
afternet.autoreconnect
|
||||||
|
afternet.autoreconnect_delay
|
||||||
|
afternet.nicks
|
||||||
|
afternet.nicks_alternate
|
||||||
|
afternet.username
|
||||||
|
afternet.realname
|
||||||
|
afternet.local_hostname
|
||||||
|
afternet.command
|
||||||
|
afternet.command_delay
|
||||||
|
afternet.autojoin = "#eevblog"
|
||||||
|
afternet.autorejoin
|
||||||
|
afternet.autorejoin_delay
|
||||||
|
afternet.connection_timeout
|
||||||
|
afternet.anti_flood_prio_high
|
||||||
|
afternet.anti_flood_prio_low
|
||||||
|
afternet.away_check
|
||||||
|
afternet.away_check_max_nicks
|
||||||
|
afternet.msg_kick
|
||||||
|
afternet.msg_part
|
||||||
|
afternet.msg_quit
|
||||||
|
afternet.notify
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# logger.conf -- weechat v1.0.1
|
# weechat -- logger.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[look]
|
[look]
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
#
|
#
|
||||||
# plugins.conf -- weechat v1.0.1
|
# weechat -- plugins.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[var]
|
[var]
|
||||||
fifo.fifo = "on"
|
fifo.fifo = "on"
|
||||||
guile.check_license = "off"
|
guile.check_license = "off"
|
||||||
|
javascript.check_license = "off"
|
||||||
lua.check_license = "off"
|
lua.check_license = "off"
|
||||||
perl.check_license = "off"
|
perl.check_license = "off"
|
||||||
python.check_license = "off"
|
python.check_license = "off"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# relay.conf -- weechat v1.0.1
|
# weechat -- relay.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[look]
|
[look]
|
||||||
@@ -18,6 +18,7 @@ text_bg = default
|
|||||||
text_selected = white
|
text_selected = white
|
||||||
|
|
||||||
[network]
|
[network]
|
||||||
|
allow_empty_password = off
|
||||||
allowed_ips = ""
|
allowed_ips = ""
|
||||||
bind_address = ""
|
bind_address = ""
|
||||||
clients_purge_delay = 0
|
clients_purge_delay = 0
|
||||||
@@ -26,12 +27,14 @@ ipv6 = on
|
|||||||
max_clients = 5
|
max_clients = 5
|
||||||
password = "${sec.data.relay_password}"
|
password = "${sec.data.relay_password}"
|
||||||
ssl_cert_key = "%h/ssl/relay.pem"
|
ssl_cert_key = "%h/ssl/relay.pem"
|
||||||
|
ssl_priorities = "NORMAL:-VERS-SSL3.0"
|
||||||
websocket_allowed_origins = ""
|
websocket_allowed_origins = ""
|
||||||
|
|
||||||
[irc]
|
[irc]
|
||||||
backlog_max_minutes = 1440
|
backlog_max_minutes = 1440
|
||||||
backlog_max_number = 256
|
backlog_max_number = 256
|
||||||
backlog_since_last_disconnect = on
|
backlog_since_last_disconnect = on
|
||||||
|
backlog_since_last_message = off
|
||||||
backlog_tags = "irc_privmsg"
|
backlog_tags = "irc_privmsg"
|
||||||
backlog_time_format = "[%H:%M] "
|
backlog_time_format = "[%H:%M] "
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# script.conf -- weechat v1.0.1
|
# weechat -- script.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[look]
|
[look]
|
||||||
@@ -43,6 +43,8 @@ text_version_selected = lightmagenta
|
|||||||
[scripts]
|
[scripts]
|
||||||
autoload = on
|
autoload = on
|
||||||
cache_expire = 1440
|
cache_expire = 1440
|
||||||
dir = "%h/script"
|
download_timeout = 30
|
||||||
hold = ""
|
hold = ""
|
||||||
|
path = "%h/script"
|
||||||
url = "http://weechat.org/files/plugins.xml.gz"
|
url = "http://weechat.org/files/plugins.xml.gz"
|
||||||
|
url_force_https = on
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# sec.conf -- weechat v1.0.1
|
# weechat -- sec.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[crypt]
|
[crypt]
|
||||||
@@ -10,4 +10,4 @@ salt = on
|
|||||||
|
|
||||||
[data]
|
[data]
|
||||||
__passphrase__ = on
|
__passphrase__ = on
|
||||||
relay_password = "F72F34E668B7CE288A36F20629885B9A985EAE9ED04E80C37BF6176FAF8404EE3E0D5D22A6C8E7681ACC0899FB888436AF200183A27591"
|
relay_password = "D1FD30C08951B1A5BCBBB7EE6AAFB6AF9B86017B353182A1CA8826D5A98EB88E7E723591C544FC41A6913EA67E8764E50BDD8A5AD3D0A0"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# trigger.conf -- weechat v1.0.1
|
# weechat -- trigger.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[look]
|
[look]
|
||||||
@@ -9,6 +9,7 @@ monitor_strip_colors = off
|
|||||||
[color]
|
[color]
|
||||||
flag_command = lightgreen
|
flag_command = lightgreen
|
||||||
flag_conditions = yellow
|
flag_conditions = yellow
|
||||||
|
flag_post_action = lightblue
|
||||||
flag_regex = lightcyan
|
flag_regex = lightcyan
|
||||||
flag_return_code = lightmagenta
|
flag_return_code = lightmagenta
|
||||||
regex = white
|
regex = white
|
||||||
@@ -22,6 +23,7 @@ beep.command = "/print -beep"
|
|||||||
beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
|
beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
|
||||||
beep.enabled = on
|
beep.enabled = on
|
||||||
beep.hook = print
|
beep.hook = print
|
||||||
|
beep.post_action = none
|
||||||
beep.regex = ""
|
beep.regex = ""
|
||||||
beep.return_code = ok
|
beep.return_code = ok
|
||||||
cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
|
cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
|
||||||
@@ -29,6 +31,7 @@ cmd_pass.command = ""
|
|||||||
cmd_pass.conditions = ""
|
cmd_pass.conditions = ""
|
||||||
cmd_pass.enabled = on
|
cmd_pass.enabled = on
|
||||||
cmd_pass.hook = modifier
|
cmd_pass.hook = modifier
|
||||||
|
cmd_pass.post_action = none
|
||||||
cmd_pass.regex = "==^((/(msg|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==$1$.*+"
|
cmd_pass.regex = "==^((/(msg|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==$1$.*+"
|
||||||
cmd_pass.return_code = ok
|
cmd_pass.return_code = ok
|
||||||
msg_auth.arguments = "5000|irc_message_auth"
|
msg_auth.arguments = "5000|irc_message_auth"
|
||||||
@@ -36,6 +39,7 @@ msg_auth.command = ""
|
|||||||
msg_auth.conditions = ""
|
msg_auth.conditions = ""
|
||||||
msg_auth.enabled = on
|
msg_auth.enabled = on
|
||||||
msg_auth.hook = modifier
|
msg_auth.hook = modifier
|
||||||
|
msg_auth.post_action = none
|
||||||
msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==$1$.*+"
|
msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==$1$.*+"
|
||||||
msg_auth.return_code = ok
|
msg_auth.return_code = ok
|
||||||
server_pass.arguments = "5000|input_text_display;5000|history_add"
|
server_pass.arguments = "5000|input_text_display;5000|history_add"
|
||||||
@@ -43,5 +47,6 @@ server_pass.command = ""
|
|||||||
server_pass.conditions = ""
|
server_pass.conditions = ""
|
||||||
server_pass.enabled = on
|
server_pass.enabled = on
|
||||||
server_pass.hook = modifier
|
server_pass.hook = modifier
|
||||||
|
server_pass.post_action = none
|
||||||
server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==$1$.*4$5"
|
server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==$1$.*4$5"
|
||||||
server_pass.return_code = ok
|
server_pass.return_code = ok
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# weechat.conf -- weechat v1.0.1
|
# weechat -- weechat.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[debug]
|
[debug]
|
||||||
@@ -38,7 +38,9 @@ color_nick_offline = off
|
|||||||
color_pairs_auto_reset = 5
|
color_pairs_auto_reset = 5
|
||||||
color_real_white = off
|
color_real_white = off
|
||||||
command_chars = ""
|
command_chars = ""
|
||||||
|
command_incomplete = off
|
||||||
confirm_quit = off
|
confirm_quit = off
|
||||||
|
confirm_upgrade = off
|
||||||
day_change = on
|
day_change = on
|
||||||
day_change_message_1date = "-- %a, %d %b %Y --"
|
day_change_message_1date = "-- %a, %d %b %Y --"
|
||||||
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
|
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
|
||||||
@@ -65,17 +67,24 @@ input_cursor_scroll = 20
|
|||||||
input_share = none
|
input_share = none
|
||||||
input_share_overwrite = off
|
input_share_overwrite = off
|
||||||
input_undo_max = 32
|
input_undo_max = 32
|
||||||
|
item_away_message = on
|
||||||
item_buffer_filter = "*"
|
item_buffer_filter = "*"
|
||||||
item_buffer_zoom = "!"
|
item_buffer_zoom = "!"
|
||||||
|
item_mouse_status = "M"
|
||||||
item_time_format = "%H:%M"
|
item_time_format = "%H:%M"
|
||||||
jump_current_to_previous_buffer = on
|
jump_current_to_previous_buffer = on
|
||||||
jump_previous_buffer_when_closing = on
|
jump_previous_buffer_when_closing = on
|
||||||
jump_smart_back_to_buffer = on
|
jump_smart_back_to_buffer = on
|
||||||
key_bind_safe = on
|
key_bind_safe = on
|
||||||
|
key_grab_delay = 800
|
||||||
mouse = off
|
mouse = off
|
||||||
mouse_timer_delay = 100
|
mouse_timer_delay = 100
|
||||||
|
nick_color_force = ""
|
||||||
|
nick_color_hash = djb2
|
||||||
|
nick_color_stop_chars = "_|["
|
||||||
nick_prefix = ""
|
nick_prefix = ""
|
||||||
nick_suffix = ""
|
nick_suffix = ""
|
||||||
|
paste_auto_add_newline = on
|
||||||
paste_bracketed = on
|
paste_bracketed = on
|
||||||
paste_bracketed_timer_delay = 10
|
paste_bracketed_timer_delay = 10
|
||||||
paste_max_lines = 1
|
paste_max_lines = 1
|
||||||
@@ -95,6 +104,9 @@ prefix_network = "--"
|
|||||||
prefix_quit = "<--"
|
prefix_quit = "<--"
|
||||||
prefix_same_nick = ""
|
prefix_same_nick = ""
|
||||||
prefix_suffix = "|"
|
prefix_suffix = "|"
|
||||||
|
quote_nick_prefix = "<"
|
||||||
|
quote_nick_suffix = ">"
|
||||||
|
quote_time_format = "%H:%M:%S"
|
||||||
read_marker = line
|
read_marker = line
|
||||||
read_marker_always_show = off
|
read_marker_always_show = off
|
||||||
read_marker_string = "- "
|
read_marker_string = "- "
|
||||||
@@ -112,6 +124,8 @@ window_auto_zoom = off
|
|||||||
window_separator_horizontal = on
|
window_separator_horizontal = on
|
||||||
window_separator_vertical = on
|
window_separator_vertical = on
|
||||||
window_title = "irc"
|
window_title = "irc"
|
||||||
|
word_chars_highlight = "!\u00A0,-,_,|,alnum"
|
||||||
|
word_chars_input = "!\u00A0,-,_,|,alnum"
|
||||||
|
|
||||||
[palette]
|
[palette]
|
||||||
|
|
||||||
@@ -155,13 +169,14 @@ chat_text_found_bg = lightmagenta
|
|||||||
chat_time = default
|
chat_time = default
|
||||||
chat_time_delimiters = brown
|
chat_time_delimiters = brown
|
||||||
chat_value = cyan
|
chat_value = cyan
|
||||||
|
chat_value_null = blue
|
||||||
emphasized = yellow
|
emphasized = yellow
|
||||||
emphasized_bg = magenta
|
emphasized_bg = magenta
|
||||||
input_actions = lightgreen
|
input_actions = lightgreen
|
||||||
input_text_not_found = red
|
input_text_not_found = red
|
||||||
|
item_away = yellow
|
||||||
nicklist_away = cyan
|
nicklist_away = cyan
|
||||||
nicklist_group = green
|
nicklist_group = green
|
||||||
nicklist_offline = blue
|
|
||||||
separator = blue
|
separator = blue
|
||||||
status_count_highlight = magenta
|
status_count_highlight = magenta
|
||||||
status_count_msg = brown
|
status_count_msg = brown
|
||||||
@@ -173,6 +188,7 @@ status_data_other = default
|
|||||||
status_data_private = lightgreen
|
status_data_private = lightgreen
|
||||||
status_filter = green
|
status_filter = green
|
||||||
status_more = yellow
|
status_more = yellow
|
||||||
|
status_mouse = green
|
||||||
status_name = white
|
status_name = white
|
||||||
status_name_ssl = lightgreen
|
status_name_ssl = lightgreen
|
||||||
status_nicklist_count = default
|
status_nicklist_count = default
|
||||||
@@ -181,6 +197,7 @@ status_time = default
|
|||||||
|
|
||||||
[completion]
|
[completion]
|
||||||
base_word_until_cursor = on
|
base_word_until_cursor = on
|
||||||
|
command_inline = on
|
||||||
default_template = "%(nicks)|%(irc_channels)"
|
default_template = "%(nicks)|%(irc_channels)"
|
||||||
nick_add_space = on
|
nick_add_space = on
|
||||||
nick_completer = ":"
|
nick_completer = ":"
|
||||||
@@ -203,7 +220,7 @@ max_visited_buffers = 50
|
|||||||
|
|
||||||
[network]
|
[network]
|
||||||
connection_timeout = 60
|
connection_timeout = 60
|
||||||
gnutls_ca_file = "/etc/ssl/certs/ca-certificates.crt"
|
gnutls_ca_file = "~/.weechat/certs/ca-certificates.crt"
|
||||||
gnutls_handshake_timeout = 30
|
gnutls_handshake_timeout = 30
|
||||||
proxy_curl = ""
|
proxy_curl = ""
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# xfer.conf -- weechat v1.0.1
|
# weechat -- xfer.conf
|
||||||
#
|
#
|
||||||
|
|
||||||
[look]
|
[look]
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
setxkbmap -option ctrl:nocaps
|
setxkbmap -option ctrl:nocaps -option compose:ralt
|
||||||
|
test -x /usr/bin/xsettingsd && /usr/bin/xsettingsd &
|
||||||
test -f "$HOME/.env" && "$HOME/.env"
|
test -f "$HOME/.env" && "$HOME/.env"
|
||||||
test -f "$HOME/.profile" && . "$HOME/.profile"
|
test -f "$HOME/.profile" && . "$HOME/.profile"
|
||||||
|
|||||||
45
dotfiles/xsettingsd
Normal file
45
dotfiles/xsettingsd
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
Gdk/UnscaledDPI 98304
|
||||||
|
Gdk/WindowScalingFactor 1
|
||||||
|
Gtk/AutoMnemonics 1
|
||||||
|
Gtk/ButtonImages 0
|
||||||
|
Gtk/CanChangeAccels 0
|
||||||
|
Gtk/ColorPalette "black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90"
|
||||||
|
Gtk/ColorScheme ""
|
||||||
|
Gtk/CursorBlinkTimeout 10
|
||||||
|
Gtk/CursorThemeName "Adwaita"
|
||||||
|
Gtk/CursorThemeSize 24
|
||||||
|
Gtk/DecorationLayout "menu:minimize,maximize,close"
|
||||||
|
Gtk/EnableAnimations 1
|
||||||
|
Gtk/FontName "Sans 9"
|
||||||
|
Gtk/IMModule ""
|
||||||
|
Gtk/IMPreeditStyle "callback"
|
||||||
|
Gtk/IMStatusStyle "callback"
|
||||||
|
Gtk/KeyThemeName "Default"
|
||||||
|
Gtk/MenuBarAccel "F10"
|
||||||
|
Gtk/MenuImages 0
|
||||||
|
Gtk/Modules ""
|
||||||
|
Gtk/RecentFilesEnabled 0
|
||||||
|
Gtk/RecentFilesMaxAge -1
|
||||||
|
Gtk/ShellShowsAppMenu 0
|
||||||
|
Gtk/ShellShowsMenubar 0
|
||||||
|
Gtk/ShowInputMethodMenu 1
|
||||||
|
Gtk/ShowUnicodeMenu 1
|
||||||
|
Gtk/TimeoutInitial 200
|
||||||
|
Gtk/TimeoutRepeat 20
|
||||||
|
Gtk/ToolbarIconSize "large"
|
||||||
|
Gtk/ToolbarStyle "both-horiz"
|
||||||
|
Net/CursorBlink 1
|
||||||
|
Net/CursorBlinkTime 1200
|
||||||
|
Net/DndDragThreshold 8
|
||||||
|
Net/DoubleClickTime 400
|
||||||
|
Net/EnableEventSounds 0
|
||||||
|
Net/EnableInputFeedbackSounds 0
|
||||||
|
Net/FallbackIconTheme "gnome"
|
||||||
|
Net/IconThemeName "Humanity"
|
||||||
|
Net/SoundThemeName "freedesktop"
|
||||||
|
Net/ThemeName "Ambiance"
|
||||||
|
Xft/Antialias 1
|
||||||
|
Xft/DPI 98304
|
||||||
|
Xft/Hinting 1
|
||||||
|
Xft/HintStyle "hintslight"
|
||||||
|
Xft/RGBA "rgb"
|
||||||
8
dotfiles/zlogin
Normal file
8
dotfiles/zlogin
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Execute code that does not affect the current session in the background.
|
||||||
|
{
|
||||||
|
# Compile the completion dump to increase startup speed.
|
||||||
|
zcompdump="${ZDOTDIR:-$HOME}/.zcompdump"
|
||||||
|
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
|
||||||
|
zcompile "$zcompdump"
|
||||||
|
fi
|
||||||
|
} &!
|
||||||
@@ -60,6 +60,7 @@ function jekyll {
|
|||||||
local DATE
|
local DATE
|
||||||
local NEWNAME
|
local NEWNAME
|
||||||
local JEKYLL_DIR
|
local JEKYLL_DIR
|
||||||
|
local EDITOR=${EDITOR:-vim}
|
||||||
|
|
||||||
JEKYLL_DIR=`_jekyll_locate_dir`
|
JEKYLL_DIR=`_jekyll_locate_dir`
|
||||||
|
|
||||||
@@ -73,17 +74,23 @@ function jekyll {
|
|||||||
JTEMPLATE+="category: Blog\n"
|
JTEMPLATE+="category: Blog\n"
|
||||||
JTEMPLATE+="---\n\n"
|
JTEMPLATE+="---\n\n"
|
||||||
TITLE=${@[2,-1]}
|
TITLE=${@[2,-1]}
|
||||||
SLUG=$(echo -n ${TITLE}|tr A-Z a-z|tr -c -s -- a-z0-9 -)
|
SLUG=$(echo -n ${TITLE} |
|
||||||
|
tr A-Z a-z | # Everything in lower case
|
||||||
|
tr -d "'" | # Remove single quotes entirely
|
||||||
|
tr -c -s -- a-z0-9 - | # Replace non-alphanums with dashes
|
||||||
|
sed 's/^-*\([^-].*[^-]\)-*$/\1/' # Remove leading and trailing slashes
|
||||||
|
)
|
||||||
DATE=`date +%Y-%m-%d`
|
DATE=`date +%Y-%m-%d`
|
||||||
|
|
||||||
case "${1:-help}" in
|
case "${1:-help}" in
|
||||||
help|--help)
|
help|--help)
|
||||||
command jekyll help
|
command jekyll help
|
||||||
echo "Added by oh-my-zsh plugin:"
|
echo "Added by zsh plugin:"
|
||||||
echo " draft Create a new draft post."
|
echo " draft Create a new draft post."
|
||||||
echo " post Create a new post to publish immediately."
|
echo " post Create a new post to publish immediately."
|
||||||
echo " publish Publish a draft post by name."
|
echo " publish Publish a draft post by name."
|
||||||
echo " edit Edit a post."
|
echo " edit Edit a post."
|
||||||
|
echo " dev Run local server with drafts and incremental."
|
||||||
;;
|
;;
|
||||||
draft)
|
draft)
|
||||||
if [ -z "${SLUG}" ] ; then
|
if [ -z "${SLUG}" ] ; then
|
||||||
@@ -93,7 +100,7 @@ function jekyll {
|
|||||||
mkdir -p "${JEKYLL_DIR}/_drafts"
|
mkdir -p "${JEKYLL_DIR}/_drafts"
|
||||||
FILENAME="${JEKYLL_DIR}/_drafts/${SLUG}.md"
|
FILENAME="${JEKYLL_DIR}/_drafts/${SLUG}.md"
|
||||||
printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}"
|
printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}"
|
||||||
vim "${FILENAME}" '+$' '+startinsert'
|
${EDITOR} "${FILENAME}" '+$' '+startinsert'
|
||||||
;;
|
;;
|
||||||
post)
|
post)
|
||||||
if [ -z "${SLUG}" ] ; then
|
if [ -z "${SLUG}" ] ; then
|
||||||
@@ -103,7 +110,7 @@ function jekyll {
|
|||||||
FILENAME="${JEKYLL_DIR}/_posts/${DATE}-${SLUG}.md"
|
FILENAME="${JEKYLL_DIR}/_posts/${DATE}-${SLUG}.md"
|
||||||
printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}"
|
printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}"
|
||||||
_jekyll_set_date "${FILENAME}" "${DATE}"
|
_jekyll_set_date "${FILENAME}" "${DATE}"
|
||||||
vim "${FILENAME}" '+$' '+startinsert'
|
${EDITOR} "${FILENAME}" '+$' '+startinsert'
|
||||||
;;
|
;;
|
||||||
publish)
|
publish)
|
||||||
if [ -z "${SLUG}" ] ; then
|
if [ -z "${SLUG}" ] ; then
|
||||||
@@ -112,11 +119,11 @@ function jekyll {
|
|||||||
fi
|
fi
|
||||||
FILENAME=$(_jekyll_find_post "${TITLE}" "${SLUG}" "${JEKYLL_DIR}")
|
FILENAME=$(_jekyll_find_post "${TITLE}" "${SLUG}" "${JEKYLL_DIR}")
|
||||||
if [ $? -ne 0 ] ; then
|
if [ $? -ne 0 ] ; then
|
||||||
return
|
return 1
|
||||||
fi
|
fi
|
||||||
if ! [[ "${FILENAME}" =~ '/_drafts/' ]] ; then
|
if ! [[ "${FILENAME}" =~ '/_drafts/' ]] ; then
|
||||||
echo "${FILENAME} is not a draft." >&2
|
echo "${FILENAME} is not a draft." >&2
|
||||||
return
|
return 1
|
||||||
fi
|
fi
|
||||||
NEWNAME=$(echo "${FILENAME}" | sed "s/_drafts\//_posts\/${DATE}-/")
|
NEWNAME=$(echo "${FILENAME}" | sed "s/_drafts\//_posts\/${DATE}-/")
|
||||||
mv "${FILENAME}" "${NEWNAME}"
|
mv "${FILENAME}" "${NEWNAME}"
|
||||||
@@ -131,7 +138,10 @@ function jekyll {
|
|||||||
if [ $? -ne 0 ] ; then
|
if [ $? -ne 0 ] ; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
vim "${FILENAME}"
|
${EDITOR} "${FILENAME}"
|
||||||
|
;;
|
||||||
|
dev)
|
||||||
|
command jekyll serve -D -I "$@"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
command jekyll "$@"
|
command jekyll "$@"
|
||||||
69
dotfiles/zprezto_custom/matir/functions/prompt_matir_setup
Normal file
69
dotfiles/zprezto_custom/matir/functions/prompt_matir_setup
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
# vim: syntax=zsh
|
||||||
|
|
||||||
|
function prompt_matir_setup {
|
||||||
|
autoload -Uz add-zsh-hook
|
||||||
|
autoload -Uz vcs_info
|
||||||
|
autoload -Uz colors
|
||||||
|
|
||||||
|
prompt_opts=(sp subst cr percent)
|
||||||
|
|
||||||
|
colors
|
||||||
|
|
||||||
|
add-zsh-hook precmd prompt_matir_precmd
|
||||||
|
|
||||||
|
# Git related styles
|
||||||
|
zstyle ':vcs_info:*' enable git
|
||||||
|
zstyle ':vcs_info:*' check-for-changes true
|
||||||
|
zstyle ':vcs_info:*' formats ' (%b%u%c)'
|
||||||
|
zstyle ':vcs_info:*' stagedstr '*'
|
||||||
|
zstyle ':vcs_info:*' unstagedstr '*'
|
||||||
|
zstyle ':vcs_info:git*+set-message:*' hooks git-untracked
|
||||||
|
|
||||||
|
# Virtualenv formatting
|
||||||
|
zstyle ':prezto:module:python:info:virtualenv' format ' (py:%v)'
|
||||||
|
|
||||||
|
PROMPT='%{$fg[black]%}[%{$fg[yellow]%}%h%{$fg[black]%}] ' # History #
|
||||||
|
PROMPT+='%{%(!.$fg[red].$fg[green])%}%8>..>%n%>>%{$fg[white]%}@' # username@
|
||||||
|
PROMPT+='%{$fg[blue]%}%12>..>%m%>>%{$fg[white]%}:' # hostname
|
||||||
|
PROMPT+='%{$fg[green]%}%32<...<%~%<<' # path
|
||||||
|
PROMPT+='%{$fg[magenta]%}${python_info[virtualenv]}' # virtualenv
|
||||||
|
PROMPT+='%{$fg[blue]%}${vcs_info_msg_0_}' # VCS info
|
||||||
|
PROMPT+='%{$fg[white]%}%#%{$reset_color%} ' # prompt symbol
|
||||||
|
|
||||||
|
# Editor options
|
||||||
|
zstyle ':prezto:module:editor:info:keymap:primary' format ''
|
||||||
|
zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I'
|
||||||
|
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O'
|
||||||
|
zstyle ':prezto:module:editor:info:keymap:alternate' format ' [VICMD]'
|
||||||
|
zstyle ':prezto:module:editor:info:completing' format '...'
|
||||||
|
|
||||||
|
# Rprompt setup
|
||||||
|
local show_return="✘ "
|
||||||
|
# Default is to show the return value
|
||||||
|
if zstyle -T ':prezto:module:prompt' show-return-val; then
|
||||||
|
show_return+='%? '
|
||||||
|
fi
|
||||||
|
RPROMPT='%(?:: %{$fg[red]%}'
|
||||||
|
RPROMPT+=${show_return}
|
||||||
|
RPROMPT+='%{$reset_color%})'
|
||||||
|
RPROMPT+='${editor_info[keymap]}'
|
||||||
|
}
|
||||||
|
|
||||||
|
function prompt_matir_precmd {
|
||||||
|
vcs_info
|
||||||
|
if (( $+functions[python-info] )); then
|
||||||
|
python-info
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
### git: Show marker (*) if there are untracked files in repository
|
||||||
|
# Make sure you have added staged to your 'formats': %c
|
||||||
|
|
||||||
|
+vi-git-untracked(){
|
||||||
|
if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == 'true' ]] && \
|
||||||
|
git status --porcelain | grep '??' &> /dev/null ; then
|
||||||
|
hook_com[staged]+='*'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_matir_setup "$@"
|
||||||
3027
dotfiles/zprezto_custom/xtra_completions/functions/_docker
Normal file
3027
dotfiles/zprezto_custom/xtra_completions/functions/_docker
Normal file
File diff suppressed because it is too large
Load Diff
231
dotfiles/zpreztorc
Normal file
231
dotfiles/zpreztorc
Normal file
@@ -0,0 +1,231 @@
|
|||||||
|
#
|
||||||
|
# Sets Prezto options.
|
||||||
|
#
|
||||||
|
# Authors:
|
||||||
|
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# General
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set case-sensitivity for completion, history lookup, etc.
|
||||||
|
# zstyle ':prezto:*:*' case-sensitive 'yes'
|
||||||
|
|
||||||
|
# Color output (auto set to 'no' on dumb terminals).
|
||||||
|
zstyle ':prezto:*:*' color 'yes'
|
||||||
|
|
||||||
|
# Add additional directories to load prezto modules from
|
||||||
|
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto_custom
|
||||||
|
|
||||||
|
# Set the Zsh modules to load (man zshmodules).
|
||||||
|
# zstyle ':prezto:load' zmodule 'attr' 'stat'
|
||||||
|
|
||||||
|
# Set the Zsh functions to load (man zshcontrib).
|
||||||
|
# zstyle ':prezto:load' zfunction 'zargs' 'zmv'
|
||||||
|
|
||||||
|
# Set the Prezto modules to load (browse modules).
|
||||||
|
# The order matters.
|
||||||
|
zstyle ':prezto:load' pmodule \
|
||||||
|
'environment' \
|
||||||
|
'terminal' \
|
||||||
|
'editor' \
|
||||||
|
'history' \
|
||||||
|
'directory' \
|
||||||
|
'spectrum' \
|
||||||
|
'utility' \
|
||||||
|
'completion' \
|
||||||
|
'matir' \
|
||||||
|
'tmux' \
|
||||||
|
'git' \
|
||||||
|
'gpg' \
|
||||||
|
'python' \
|
||||||
|
'ruby' \
|
||||||
|
'syntax-highlighting' \
|
||||||
|
'history-substring-search' \
|
||||||
|
'jekyll' \
|
||||||
|
'prompt' \
|
||||||
|
'xtra_completions'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Autosuggestions
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the query found color.
|
||||||
|
# zstyle ':prezto:module:autosuggestions:color' found ''
|
||||||
|
|
||||||
|
#
|
||||||
|
# Completions
|
||||||
|
#
|
||||||
|
# No groups of completions.
|
||||||
|
zstyle ':completion:*' format ''
|
||||||
|
|
||||||
|
# Set the entries to ignore in static */etc/hosts* for host completion.
|
||||||
|
# zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
|
||||||
|
# '0.0.0.0' '127.0.0.1'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Editor
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the key mapping style to 'emacs' or 'vi'.
|
||||||
|
zstyle ':prezto:module:editor' key-bindings 'vi'
|
||||||
|
|
||||||
|
# Auto convert .... to ../..
|
||||||
|
# zstyle ':prezto:module:editor' dot-expansion 'yes'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Git
|
||||||
|
#
|
||||||
|
|
||||||
|
# Ignore submodules when they are 'dirty', 'untracked', 'all', or 'none'.
|
||||||
|
# zstyle ':prezto:module:git:status:ignore' submodules 'all'
|
||||||
|
|
||||||
|
#
|
||||||
|
# GNU Utility
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the command prefix on non-GNU systems.
|
||||||
|
zstyle ':prezto:module:gnu-utility' prefix 'g'
|
||||||
|
|
||||||
|
#
|
||||||
|
# History Substring Search
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the query found color.
|
||||||
|
# zstyle ':prezto:module:history-substring-search:color' found ''
|
||||||
|
|
||||||
|
# Set the query not found color.
|
||||||
|
# zstyle ':prezto:module:history-substring-search:color' not-found ''
|
||||||
|
|
||||||
|
# Set the search globbing flags.
|
||||||
|
# zstyle ':prezto:module:history-substring-search' globbing-flags ''
|
||||||
|
|
||||||
|
#
|
||||||
|
# OS X
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the keyword used by `mand` to open man pages in Dash.app
|
||||||
|
# zstyle ':prezto:module:osx:man' dash-keyword 'manpages'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Pacman
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the Pacman frontend.
|
||||||
|
# zstyle ':prezto:module:pacman' frontend 'yaourt'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Prompt
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the prompt theme to load.
|
||||||
|
# Setting it to 'random' loads a random theme.
|
||||||
|
# Auto set to 'off' on dumb terminals.
|
||||||
|
zstyle ':prezto:module:prompt' theme 'matir'
|
||||||
|
|
||||||
|
# Set the working directory prompt display length.
|
||||||
|
# By default, it is set to 'short'. Set it to 'long' (without '~' expansion)
|
||||||
|
# for longer or 'full' (with '~' expansion) for even longer prompt display.
|
||||||
|
# zstyle ':prezto:module:prompt' pwd-length 'short'
|
||||||
|
|
||||||
|
# Set the prompt to display the return code along with an indicator for non-zero
|
||||||
|
# return codes. This is not supported by all prompts.
|
||||||
|
# zstyle ':prezto:module:prompt' show-return-val 'yes'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Ruby
|
||||||
|
#
|
||||||
|
|
||||||
|
# Auto switch the Ruby version on directory change.
|
||||||
|
# zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Python
|
||||||
|
#
|
||||||
|
|
||||||
|
# Auto switch the Python virtualenv on directory change.
|
||||||
|
# zstyle ':prezto:module:python:virtualenv' auto-switch 'yes'
|
||||||
|
|
||||||
|
# Automatically initialize virtualenvwrapper if pre-requisites are met.
|
||||||
|
zstyle ':prezto:module:python:virtualenv' initialize 'yes'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Screen
|
||||||
|
#
|
||||||
|
|
||||||
|
# Auto start a session when Zsh is launched in a local terminal.
|
||||||
|
# zstyle ':prezto:module:screen:auto-start' local 'yes'
|
||||||
|
|
||||||
|
# Auto start a session when Zsh is launched in a SSH connection.
|
||||||
|
# zstyle ':prezto:module:screen:auto-start' remote 'yes'
|
||||||
|
|
||||||
|
#
|
||||||
|
# SSH
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the SSH identities to load into the agent.
|
||||||
|
# zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_rsa2' 'id_github'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Syntax Highlighting
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set syntax highlighters.
|
||||||
|
# By default, only the main highlighter is enabled.
|
||||||
|
zstyle ':prezto:module:syntax-highlighting' highlighters \
|
||||||
|
'main' \
|
||||||
|
'brackets' \
|
||||||
|
'pattern' \
|
||||||
|
'line'
|
||||||
|
|
||||||
|
# Set syntax highlighting styles.
|
||||||
|
# zstyle ':prezto:module:syntax-highlighting' styles \
|
||||||
|
# 'builtin' 'bg=blue' \
|
||||||
|
# 'command' 'bg=blue' \
|
||||||
|
# 'function' 'bg=blue'
|
||||||
|
#
|
||||||
|
# Set syntax pattern styles.
|
||||||
|
# zstyle ':prezto:module:syntax-highlighting' pattern \
|
||||||
|
# 'rm*-rf*' 'fg=white,bold,bg=red'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Terminal
|
||||||
|
#
|
||||||
|
|
||||||
|
# Auto set the tab and window titles.
|
||||||
|
zstyle ':prezto:module:terminal' auto-title 'yes'
|
||||||
|
|
||||||
|
# Set the window title format.
|
||||||
|
zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
|
||||||
|
|
||||||
|
# Set the tab title format.
|
||||||
|
zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
|
||||||
|
|
||||||
|
# Set the terminal multiplexer title format.
|
||||||
|
zstyle ':prezto:module:terminal:multiplexer-title' format '%s'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Tmux
|
||||||
|
#
|
||||||
|
|
||||||
|
# Auto start a session when Zsh is launched in a local terminal.
|
||||||
|
zstyle ':prezto:module:tmux:auto-start' local 'no'
|
||||||
|
|
||||||
|
# Auto start a session when Zsh is launched in a SSH connection.
|
||||||
|
zstyle ':prezto:module:tmux:auto-start' remote 'no'
|
||||||
|
|
||||||
|
# Integrate with iTerm2.
|
||||||
|
# zstyle ':prezto:module:tmux:iterm' integrate 'yes'
|
||||||
|
|
||||||
|
# Set the default session name:
|
||||||
|
# zstyle ':prezto:module:tmux:session' name 'YOUR DEFAULT SESSION NAME'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Utility
|
||||||
|
#
|
||||||
|
|
||||||
|
# Enabled safe options. This aliases cp, ln, mv and rm so that they prompt
|
||||||
|
# before deleting or overwriting files. Set to 'no' to disable this safer
|
||||||
|
# behavior.
|
||||||
|
zstyle ':prezto:module:utility' safe-ops 'no'
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
# Custom plugin to handle gpg-agent 2.1
|
|
||||||
|
|
||||||
local GPG_ENV=$HOME/.gnupg/gpg-agent.env
|
|
||||||
|
|
||||||
function start_agent_nossh {
|
|
||||||
eval $(/usr/bin/env gpg-agent --quiet --daemon --write-env-file ${GPG_ENV} 2> /dev/null)
|
|
||||||
chmod 600 ${GPG_ENV}
|
|
||||||
export GPG_AGENT_INFO
|
|
||||||
}
|
|
||||||
|
|
||||||
function start_agent_withssh {
|
|
||||||
eval $(/usr/bin/env gpg-agent --quiet --daemon --enable-ssh-support --write-env-file ${GPG_ENV} 2> /dev/null)
|
|
||||||
chmod 600 ${GPG_ENV}
|
|
||||||
export GPG_AGENT_INFO
|
|
||||||
export SSH_AUTH_SOCK
|
|
||||||
export SSH_AGENT_PID
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -z "${GPG_AGENT_INFO}" ] ; then
|
|
||||||
if which gpgconf >/dev/null 2>&1 ; then
|
|
||||||
GPG_AGENT_INFO=$(gpgconf --list-dirs agent-socket)
|
|
||||||
export GPG_AGENT_INFO
|
|
||||||
if [ -z "${SSH_AUTH_SOCK}" ] ; then
|
|
||||||
SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
|
||||||
export SSH_AUTH_SOCK
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if another agent is running
|
|
||||||
if ! gpg-connect-agent --agent-program /dev/null --quiet /bye > /dev/null 2> /dev/null; then
|
|
||||||
# source settings of old agent, if applicable
|
|
||||||
if [ -f "${GPG_ENV}" ]; then
|
|
||||||
# This can be clobbered by the file
|
|
||||||
local OLD_SSH_AUTH_SOCK=${SSH_AUTH_SOCK}
|
|
||||||
. ${GPG_ENV} > /dev/null
|
|
||||||
export GPG_AGENT_INFO
|
|
||||||
export SSH_AUTH_SOCK
|
|
||||||
export SSH_AGENT_PID
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check again if another agent is running using the newly sourced settings
|
|
||||||
if ! gpg-connect-agent --agent-program /dev/null --quiet /bye > /dev/null 2> /dev/null; then
|
|
||||||
# check for existing ssh-agent
|
|
||||||
if [ -n "${OLD_SSH_AUTH_SOCK}" ] ; then
|
|
||||||
SSH_AUTH_SOCK=${OLD_SSH_AUTH_SOCK};export SSH_AUTH_SOCK
|
|
||||||
fi
|
|
||||||
if ssh-add -l > /dev/null 2> /dev/null; then
|
|
||||||
# ssh-agent running, start gpg-agent without ssh support
|
|
||||||
start_agent_nossh;
|
|
||||||
else
|
|
||||||
# otherwise start gpg-agent with ssh support
|
|
||||||
start_agent_withssh;
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
GPG_TTY=$(tty)
|
|
||||||
export GPG_TTY
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
PROMPT='%{$fg[black]%}[%{$fg[yellow]%}%h%{$fg[black]%}] %{%(!.$fg[red].$fg[green])%}%8>..>%n%>>%{$fg[white]%}@%{$fg[blue]%}%12>..>%m%>>%{$fg[white]%}:%{$fg[green]%}%32<...<%~%<<%{$fg[magenta]%}$(virtualenv_prompt_info)%{$fg[blue]%}$(git_prompt_info)%{$fg[white]%}%#%{$reset_color%} '
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" ("
|
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX=")"
|
|
||||||
ZSH_THEME_VIRTUALENV_PREFIX=" (py:"
|
|
||||||
ZSH_THEME_VIRTUALENV_SUFFIX=")"
|
|
||||||
|
|
||||||
# vim: set textwidth=0 wrapmargin=0:
|
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
# For interactive shells
|
# For interactive shells
|
||||||
HISTFILE=~/.histfile
|
HISTFILE=~/.zhistory
|
||||||
HISTSIZE=1000
|
HISTSIZE=10000
|
||||||
SAVEHIST=1000
|
SAVEHIST=10000
|
||||||
setopt appendhistory autocd autopushd extendedglob nohup nomatch histignorespace histlexwords histverify cbases
|
setopt appendhistory autocd autopushd extendedglob nohup nomatch histignorespace histlexwords histverify cbases
|
||||||
unsetopt beep histbeep listbeep flowcontrol
|
unsetopt beep histbeep listbeep flowcontrol
|
||||||
bindkey -e
|
bindkey -v
|
||||||
|
|
||||||
# Completion
|
# Completion
|
||||||
zstyle :compinstall filename '/home/david/.zshrc'
|
zstyle :compinstall filename "${HOME}/.zshrc"
|
||||||
autoload -Uz compinit && compinit
|
autoload -Uz compinit && compinit
|
||||||
|
|
||||||
DIRSTACKSIZE=16
|
DIRSTACKSIZE=16
|
||||||
@@ -20,24 +20,26 @@ esac
|
|||||||
autoload -U colors && colors
|
autoload -U colors && colors
|
||||||
PS1="%{$fg[black]%}[%{$fg[yellow]%}%h%{$fg[black]%}] %{%(!.$fg[red].$fg[green])%}%8>..>%n%>>%{$fg[white]%}@%{$fg[blue]%}%12>..>%m%>>%{$fg[white]%}:%{$fg[green]%}%32<...<%~%<<%{$fg[white]%}%#%{$reset_color%} "
|
PS1="%{$fg[black]%}[%{$fg[yellow]%}%h%{$fg[black]%}] %{%(!.$fg[red].$fg[green])%}%8>..>%n%>>%{$fg[white]%}@%{$fg[blue]%}%12>..>%m%>>%{$fg[white]%}:%{$fg[green]%}%32<...<%~%<<%{$fg[white]%}%#%{$reset_color%} "
|
||||||
|
|
||||||
# LS Colors
|
if [ `uname` != 'Darwin' ] ; then
|
||||||
alias ls='ls --color'
|
# ls Colors
|
||||||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
alias ls='ls --color'
|
||||||
|
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
||||||
# Load oh-my-zsh
|
else
|
||||||
if [ -d $HOME/.oh-my-zsh ] ; then
|
alias ls='ls -G'
|
||||||
ZSH=$HOME/.oh-my-zsh
|
|
||||||
ZSH_THEME="matir"
|
|
||||||
ZSH_CUSTOM="$HOME/.zsh_custom"
|
|
||||||
plugins=(encode64 gpg-agent pep8 pip python tmux urltools extract sudo virsh virtualenv jekyll metasploit gcloud safe-paste)
|
|
||||||
test -f /usr/share/virtualenvwrapper/virtualenvwrapper.sh && plugins+=(virtualenvwrapper)
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
|
||||||
unset ZSH_THEME
|
|
||||||
unset ZSH_CUSTOM
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Load prezto
|
||||||
|
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
|
||||||
|
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
|
||||||
|
fi
|
||||||
|
# noglob scp is so annoying
|
||||||
|
unalias scp
|
||||||
|
|
||||||
|
# Overrides to prezto
|
||||||
|
unsetopt cdablevars
|
||||||
|
|
||||||
# .profile is universal
|
# .profile is universal
|
||||||
# but after oh-my-zsh to use anything setup there
|
# but after zprezto to use/override anything setup there
|
||||||
. ~/.profile
|
. ~/.profile
|
||||||
# Deduplicate the path
|
# Deduplicate the path
|
||||||
typeset -U path
|
typeset -U path
|
||||||
@@ -46,8 +48,17 @@ typeset -U path
|
|||||||
# Keybindings
|
# Keybindings
|
||||||
bindkey '^[[A' history-search-backward
|
bindkey '^[[A' history-search-backward
|
||||||
bindkey '^[[B' history-search-forward
|
bindkey '^[[B' history-search-forward
|
||||||
|
# ctrl-arrow keys
|
||||||
bindkey '^[[1;5C' forward-word
|
bindkey '^[[1;5C' forward-word
|
||||||
bindkey '^[[1;5D' backward-word
|
bindkey '^[[1;5D' backward-word
|
||||||
|
bindkey '^P' up-history
|
||||||
|
bindkey '^N' down-history
|
||||||
|
bindkey '^?' backward-delete-char
|
||||||
|
bindkey '^h' backward-delete-char
|
||||||
|
# ok, a few convenience bindings
|
||||||
|
bindkey '^w' backward-kill-word
|
||||||
|
bindkey '^r' history-incremental-search-backward
|
||||||
|
|
||||||
|
|
||||||
# Source extras and aliases if interactive
|
# Source extras and aliases if interactive
|
||||||
if [[ $- == *i* ]] ; then
|
if [[ $- == *i* ]] ; then
|
||||||
@@ -60,14 +71,13 @@ if [ -x /usr/bin/ack-grep ] ; then
|
|||||||
alias ack='/usr/bin/ack-grep'
|
alias ack='/usr/bin/ack-grep'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Setup PATH for tools
|
||||||
|
PATH=${PATH}:${HOME}/bin/tools
|
||||||
|
|
||||||
|
# Most is nice, if we have it
|
||||||
|
if command -v most >/dev/null 2>&1; then
|
||||||
|
export PAGER="most"
|
||||||
|
fi
|
||||||
|
|
||||||
# Load any local settings
|
# Load any local settings
|
||||||
if [ -e $HOME/.zshrc.local ] ; then source $HOME/.zshrc.local ; fi
|
if [ -e $HOME/.zshrc.local ] ; then source $HOME/.zshrc.local ; fi
|
||||||
|
|
||||||
function start_esp {
|
|
||||||
if [ ! -d ${HOME}/tools/esp ] ; then
|
|
||||||
echo "ESP not installed!" >/dev/stderr
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
export PATH="${PATH}:${HOME}/tools/esp/xtensa-esp32-elf/bin"
|
|
||||||
export IDF_PATH="${HOME}/tools/esp/esp-idf"
|
|
||||||
}
|
|
||||||
|
|||||||
220
install.sh
220
install.sh
@@ -1,17 +1,46 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o errexit
|
set -o errexit
|
||||||
|
|
||||||
function prerequisites {
|
case $(uname) in
|
||||||
|
Linux)
|
||||||
|
FINDTYPE="-xtype"
|
||||||
|
;;
|
||||||
|
Darwin|*BSD)
|
||||||
|
FINDTYPE="-type"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown OS: $(uname), guessing no GNU utils."
|
||||||
|
FINDTYPE="-type"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
is_comment() {
|
||||||
|
if [ $(echo "${1}" | cut -c1-1) = '#' ] ; then
|
||||||
|
true
|
||||||
|
else
|
||||||
|
false
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
prerequisites() {
|
||||||
if which zsh > /dev/null 2>&1 ; then
|
if which zsh > /dev/null 2>&1 ; then
|
||||||
if [[ $- == *i* ]] ; then
|
case $- in
|
||||||
if [[ `getent passwd $USER | cut -d: -f7` != */zsh ]] ; then
|
*i*)
|
||||||
echo 'Enter password to change shell.' >&2
|
case `getent passwd $USER | cut -d: -f7` in
|
||||||
chsh -s `which zsh`
|
*/zsh)
|
||||||
fi
|
;;
|
||||||
fi
|
*)
|
||||||
install_git https://github.com/robbyrussell/oh-my-zsh.git $HOME/.oh-my-zsh
|
if [ `id` -ne 0 ] ; then
|
||||||
|
echo 'Enter password to change shell.' >&2
|
||||||
|
fi
|
||||||
|
chsh -s `which zsh`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
install_git --recursive https://github.com/sorin-ionescu/prezto.git $HOME/.zprezto
|
||||||
else
|
else
|
||||||
echo "ZSH not found!" >&2
|
echo "ZSH not found!" >&2
|
||||||
fi
|
fi
|
||||||
@@ -22,7 +51,7 @@ function prerequisites {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_dotfile_dir {
|
install_dotfile_dir() {
|
||||||
local SRCDIR="${1}"
|
local SRCDIR="${1}"
|
||||||
local dotfile
|
local dotfile
|
||||||
find "${SRCDIR}" \( -name .git -o \
|
find "${SRCDIR}" \( -name .git -o \
|
||||||
@@ -30,7 +59,7 @@ function install_dotfile_dir {
|
|||||||
-name install.sh -o \
|
-name install.sh -o \
|
||||||
-name README.md -o \
|
-name README.md -o \
|
||||||
-name .gitignore \) \
|
-name .gitignore \) \
|
||||||
-prune -o -xtype f -print | \
|
-prune -o ${FINDTYPE} f -print | \
|
||||||
while read dotfile ; do
|
while read dotfile ; do
|
||||||
local TARGET="${HOME}/.${dotfile#${SRCDIR}/}"
|
local TARGET="${HOME}/.${dotfile#${SRCDIR}/}"
|
||||||
mkdir -p `dirname "${TARGET}"`
|
mkdir -p `dirname "${TARGET}"`
|
||||||
@@ -38,11 +67,11 @@ function install_dotfile_dir {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_basic_dir {
|
install_basic_dir() {
|
||||||
local SRCDIR="${1}"
|
local SRCDIR="${1}"
|
||||||
local DESTDIR="${2}"
|
local DESTDIR="${2}"
|
||||||
local file
|
local file
|
||||||
find "${SRCDIR}" -xtype f -print | \
|
find "${SRCDIR}" ${FINDTYPE} f -print | \
|
||||||
while read file ; do
|
while read file ; do
|
||||||
local TARGET="${2}/${file#${SRCDIR}/}"
|
local TARGET="${2}/${file#${SRCDIR}/}"
|
||||||
mkdir -p `dirname "${TARGET}"`
|
mkdir -p `dirname "${TARGET}"`
|
||||||
@@ -50,7 +79,7 @@ function install_basic_dir {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_git {
|
install_git() {
|
||||||
# Install or update a git repository
|
# Install or update a git repository
|
||||||
if ! which git > /dev/null ; then
|
if ! which git > /dev/null ; then
|
||||||
return 1
|
return 1
|
||||||
@@ -58,10 +87,10 @@ function install_git {
|
|||||||
local REPO="${*: -2:1}"
|
local REPO="${*: -2:1}"
|
||||||
local DESTDIR="${*: -1:1}"
|
local DESTDIR="${*: -1:1}"
|
||||||
set -- ${@:1:$(($#-2))}
|
set -- ${@:1:$(($#-2))}
|
||||||
if [[ -d ${DESTDIR}/.git ]] ; then
|
if [ -d ${DESTDIR}/.git ] ; then
|
||||||
( cd ${DESTDIR} ; git pull -q )
|
( cd ${DESTDIR} ; git pull -q )
|
||||||
else
|
else
|
||||||
if [[ ${MINIMAL} -eq 1 ]] ; then
|
if [ ${MINIMAL} -eq 1 ] ; then
|
||||||
git clone --depth 1 $* ${REPO} ${DESTDIR}
|
git clone --depth 1 $* ${REPO} ${DESTDIR}
|
||||||
else
|
else
|
||||||
git clone $* ${REPO} ${DESTDIR}
|
git clone $* ${REPO} ${DESTDIR}
|
||||||
@@ -69,9 +98,9 @@ function install_git {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_bin_symlink {
|
add_bin_symlink() {
|
||||||
local LINKNAME=${HOME}/bin/${2:-`basename $1`}
|
local LINKNAME=${HOME}/bin/${2:-`basename $1`}
|
||||||
if [[ -e ${LINKNAME} && ! -h ${LINKNAME} ]] ; then
|
if [ -e ${LINKNAME} -a ! -h ${LINKNAME} ] ; then
|
||||||
echo "Refusing to overwrite ${LINKNAME}" >&2
|
echo "Refusing to overwrite ${LINKNAME}" >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@@ -79,7 +108,7 @@ function add_bin_symlink {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Custom version of pwndbg's installer
|
# Custom version of pwndbg's installer
|
||||||
function install_pwndbg {
|
install_pwndbg() {
|
||||||
if ! which gdb > /dev/null 2>&1 ; then
|
if ! which gdb > /dev/null 2>&1 ; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@@ -95,56 +124,53 @@ function install_pwndbg {
|
|||||||
cp ${PY_PACKAGES}/usr/lib/*/dist-packages/capstone/libcapstone.so ${PY_PACKAGES}/capstone
|
cp ${PY_PACKAGES}/usr/lib/*/dist-packages/capstone/libcapstone.so ${PY_PACKAGES}/capstone
|
||||||
}
|
}
|
||||||
|
|
||||||
function postinstall {
|
postinstall() {
|
||||||
# Install Vundle plugins
|
# Install Vundle plugins
|
||||||
if [[ -d $HOME/.vim/bundle/Vundle.vim ]] ; then
|
if [ -d $HOME/.vim/bundle/Vundle.vim ] ; then
|
||||||
vim +VundleInstall +qall
|
vim +VundleInstall +qall
|
||||||
fi
|
fi
|
||||||
# Install other useful tools
|
# Install other useful tools
|
||||||
install_git https://github.com/trustedsec/ptf.git ${HOME}/bin/ptframework && \
|
install_git https://github.com/trustedsec/ptf.git ${HOME}/bin/ptframework && \
|
||||||
add_bin_symlink ${HOME}/bin/ptframework/ptf
|
add_bin_symlink ${HOME}/bin/ptframework/ptf
|
||||||
# Refresh all gpg keys
|
|
||||||
if test -x "`which gpg2`" ; then
|
|
||||||
gpg2 --refresh-keys
|
|
||||||
else
|
|
||||||
gpg --refresh-keys
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function ssh_key_already_installed {
|
ssh_key_already_installed() {
|
||||||
# Return 1 if the key isn't already installed, 0 if it is
|
# Return 1 if the key isn't already installed, 0 if it is
|
||||||
local AK="${HOME}/.ssh/authorized_keys"
|
local AK="${HOME}/.ssh/authorized_keys"
|
||||||
if [[ ! -f $AK ]] ; then
|
if [ ! -f $AK ] ; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
local KEYFP=`ssh-keygen -l -f $1 2>/dev/null | awk '{print $2}'`
|
local KEYFP=`ssh-keygen -l -f $1 2>/dev/null | awk '{print $2}'`
|
||||||
local TMPF=`mktemp`
|
local TMPF=`mktemp`
|
||||||
local key
|
local key
|
||||||
while read key ; do
|
while read key ; do
|
||||||
|
if is_comment "${key}" ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
echo "$key" > $TMPF
|
echo "$key" > $TMPF
|
||||||
local EFP=`ssh-keygen -l -f ${TMPF} 2>/dev/null | awk '{print $2}'`
|
local EFP=`ssh-keygen -l -f ${TMPF} 2>/dev/null | awk '{print $2}'`
|
||||||
if [[ "$EFP" == "$KEYFP" ]] ; then
|
if [ "$EFP" = "$KEYFP" ] ; then
|
||||||
rm $TMPF 2>/dev/null
|
rm $TMPF 2>/dev/null
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
done < <(grep -v '^#' ${AK})
|
done < ${AK}
|
||||||
rm $TMPF 2>/dev/null
|
rm $TMPF 2>/dev/null
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_ssh_keys {
|
install_ssh_keys() {
|
||||||
# Install SSH keys
|
# Install SSH keys
|
||||||
verbose 'Installing SSH keys...'
|
verbose 'Installing SSH keys...'
|
||||||
local AK="${HOME}/.ssh/authorized_keys"
|
local AK="${HOME}/.ssh/authorized_keys"
|
||||||
local key
|
local key
|
||||||
local keydir
|
local keydir
|
||||||
if (( ${TRUST_ALL_KEYS} )) ; then
|
if test ${TRUST_ALL_KEYS} = 1 ; then
|
||||||
keydir=${BASEDIR}/keys/ssh
|
keydir=${BASEDIR}/keys/ssh
|
||||||
else
|
else
|
||||||
keydir=${BASEDIR}/keys/ssh/trusted
|
keydir=${BASEDIR}/keys/ssh/trusted
|
||||||
fi
|
fi
|
||||||
for key in ${keydir}/* ; do
|
for key in ${keydir}/* ; do
|
||||||
if [[ ! -f ${key} ]] ; then
|
if [ ! -f "${key}" ] ; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
if ssh_key_already_installed "${key}" ; then
|
if ssh_key_already_installed "${key}" ; then
|
||||||
@@ -156,20 +182,22 @@ function install_ssh_keys {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_gpg_keys {
|
install_gpg_keys() {
|
||||||
|
which gpg >/dev/null 2>&1 || \
|
||||||
|
return 0
|
||||||
local key
|
local key
|
||||||
for key in ${BASEDIR}/keys/gpg/* ; do
|
for key in ${BASEDIR}/keys/gpg/* ; do
|
||||||
gpg --import < ${key} >/dev/null
|
gpg --import < ${key} >/dev/null
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_known_hosts {
|
install_known_hosts() {
|
||||||
verbose 'Installing known hosts...' >&2
|
verbose 'Installing known hosts...' >&2
|
||||||
if [[ ! -f ${BASEDIR}/keys/known_hosts ]] ; then
|
if [ ! -f "${BASEDIR}/keys/known_hosts" ] ; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
mkdir -p ${HOME}/.ssh
|
mkdir -p ${HOME}/.ssh
|
||||||
if [[ -f ${HOME}/.ssh/known_hosts ]] ; then
|
if [ -f "${HOME}/.ssh/known_hosts" ] ; then
|
||||||
local tmpf=`mktemp`
|
local tmpf=`mktemp`
|
||||||
cat ${BASEDIR}/keys/known_hosts ${HOME}/.ssh/known_hosts | sort | uniq > $tmpf
|
cat ${BASEDIR}/keys/known_hosts ${HOME}/.ssh/known_hosts | sort | uniq > $tmpf
|
||||||
mv $tmpf ${HOME}/.ssh/known_hosts
|
mv $tmpf ${HOME}/.ssh/known_hosts
|
||||||
@@ -178,22 +206,22 @@ function install_known_hosts {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_keys {
|
install_keys() {
|
||||||
install_ssh_keys
|
install_ssh_keys
|
||||||
install_gpg_keys
|
install_gpg_keys
|
||||||
install_known_hosts
|
install_known_hosts
|
||||||
}
|
}
|
||||||
|
|
||||||
function is_deb_system {
|
is_deb_system() {
|
||||||
test -f /usr/bin/apt-get
|
test -f /usr/bin/apt-get
|
||||||
}
|
}
|
||||||
|
|
||||||
function run_as_root {
|
run_as_root() {
|
||||||
# Attempt to run as root
|
# Attempt to run as root
|
||||||
if [[ ${USER} == "root" ]] ; then
|
if [ ${USER} = "root" ] ; then
|
||||||
"$@"
|
"$@"
|
||||||
return $?
|
return $?
|
||||||
elif groups | grep -q '\bsudo\b' ; then
|
elif test -x $(which sudo 2>/dev/null) ; then
|
||||||
verbose "Using sudo to run ${1}..."
|
verbose "Using sudo to run ${1}..."
|
||||||
sudo "$@"
|
sudo "$@"
|
||||||
return $?
|
return $?
|
||||||
@@ -201,15 +229,18 @@ function run_as_root {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_pkg_set {
|
install_pkg_set() {
|
||||||
local pkg_file=${BASEDIR}/${1}
|
local pkg_file=${BASEDIR}/${1}
|
||||||
local pkg_list=""
|
local pkg_list=""
|
||||||
if [[ ! -f ${pkg_file} ]] ; then return 0 ; fi
|
if [ ! -f "${pkg_file}" ] ; then
|
||||||
cat ${pkg_file} | while read line ; do
|
echo "Package set $(basename ${pkg_file}) does not exist." 1>&2
|
||||||
if [[ ${line:0:1} == '#' ]] ; then
|
return 1
|
||||||
|
fi
|
||||||
|
while read line ; do
|
||||||
|
if is_comment "${line}" ; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
if [[ -z ${line} ]] ; then
|
if [ -z "${line}" ] ; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
if apt-cache show ${line} >/dev/null 2>&1 ; then
|
if apt-cache show ${line} >/dev/null 2>&1 ; then
|
||||||
@@ -217,22 +248,28 @@ function install_pkg_set {
|
|||||||
else
|
else
|
||||||
echo "Warning: package ${line} not found." >&2
|
echo "Warning: package ${line} not found." >&2
|
||||||
fi
|
fi
|
||||||
done
|
done < ${pkg_file}
|
||||||
run_as_root apt-get install -qqy ${pkg_list}
|
if [ -n "${pkg_list}" ] ; then
|
||||||
|
verbose "Installing ${pkg_list}"
|
||||||
|
run_as_root apt-get install -qqy ${pkg_list}
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_apt_pkgs {
|
install_apt_pkgs() {
|
||||||
run_as_root apt-get update -qq || \
|
run_as_root apt-get update -qq || \
|
||||||
( echo "Can't run apt-get commands" >&2 && \
|
( echo "Can't run apt-get commands" >&2 && \
|
||||||
return 1 )
|
return 1 )
|
||||||
install_pkg_set packages
|
install_pkg_set packages.minimal
|
||||||
(( $HAVE_X )) && install_pkg_set packages.X
|
if test $MINIMAL = 1 ; then
|
||||||
(( $IS_KALI )) && install_pkg_set packages.kali
|
return 0
|
||||||
|
fi
|
||||||
|
test $HAVE_X = 1 && install_pkg_set packages.X
|
||||||
|
test $IS_KALI = 1 && install_pkg_set packages.kali
|
||||||
install_pkg_set packages.${ARCH}
|
install_pkg_set packages.${ARCH}
|
||||||
(( $HAVE_X )) && install_chrome
|
test $HAVE_X = 1 && install_chrome
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_chrome {
|
install_chrome() {
|
||||||
local TMPD=`mktemp -d`
|
local TMPD=`mktemp -d`
|
||||||
local CHROME_ARCH=`echo ${ARCH} | sed 's/x86_64/amd64/'`
|
local CHROME_ARCH=`echo ${ARCH} | sed 's/x86_64/amd64/'`
|
||||||
dpkg-query -l 'google-chrome*' >/dev/null 2>&1 && return 0
|
dpkg-query -l 'google-chrome*' >/dev/null 2>&1 && return 0
|
||||||
@@ -244,18 +281,23 @@ function install_chrome {
|
|||||||
rm -rf ${TMPD}
|
rm -rf ${TMPD}
|
||||||
}
|
}
|
||||||
|
|
||||||
function read_saved_prefs {
|
read_saved_prefs() {
|
||||||
# Can't use basedir here as we don't have it yet
|
# Can't use basedir here as we don't have it yet
|
||||||
local pref_file=`dirname $0`/installed-prefs
|
local old_pref_file=`dirname $0`/installed-prefs
|
||||||
|
local pref_file=`dirname $0`/.installed-prefs
|
||||||
|
if [ -f ${old_pref_file} -a ! -f ${pref_file} ] ; then
|
||||||
|
mv ${old_pref_file} ${pref_file}
|
||||||
|
fi
|
||||||
if [ -f ${pref_file} ] ; then
|
if [ -f ${pref_file} ] ; then
|
||||||
verbose "Loading saved skel preferences from ${pref_file}"
|
verbose "Loading saved skel preferences from ${pref_file}"
|
||||||
source ${pref_file}
|
# source is a bashism
|
||||||
|
. ${pref_file}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function save_prefs {
|
save_prefs() {
|
||||||
(( $SAVE )) || return 0
|
test $SAVE = 1 || return 0
|
||||||
local pref_file=${BASEDIR}/installed-prefs
|
local pref_file=${BASEDIR}/.installed-prefs
|
||||||
(echo_pref BASEDIR
|
(echo_pref BASEDIR
|
||||||
echo_pref MINIMAL
|
echo_pref MINIMAL
|
||||||
echo_pref INSTALL_KEYS
|
echo_pref INSTALL_KEYS
|
||||||
@@ -264,11 +306,12 @@ function save_prefs {
|
|||||||
echo_pref VERBOSE) > $pref_file
|
echo_pref VERBOSE) > $pref_file
|
||||||
}
|
}
|
||||||
|
|
||||||
function echo_pref {
|
echo_pref() {
|
||||||
echo "$1=\${$1:-${!1}}"
|
eval "local val=\${$1}"
|
||||||
|
echo "$1=\${$1:-${val}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanup {
|
cleanup() {
|
||||||
# Needs zsh
|
# Needs zsh
|
||||||
if ! test -x /usr/bin/zsh ; then
|
if ! test -x /usr/bin/zsh ; then
|
||||||
return 0
|
return 0
|
||||||
@@ -280,28 +323,41 @@ function cleanup {
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
function verbose {
|
verbose() {
|
||||||
(( ${VERBOSE:-0} )) && echo "$@" >&2 || return 0
|
test ${VERBOSE:-0} = 1 && echo "$@" >&2 || return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# Operations
|
# Operations
|
||||||
|
|
||||||
function install_main {
|
install_dotfiles() {
|
||||||
(( $MINIMAL )) || prerequisites
|
|
||||||
(( $INSTALL_PKGS )) && is_deb_system && install_apt_pkgs
|
|
||||||
install_dotfile_dir "${BASEDIR}/dotfiles"
|
install_dotfile_dir "${BASEDIR}/dotfiles"
|
||||||
test -d "${BASEDIR}/private_dotfiles" && \
|
test -d "${BASEDIR}/private_dotfiles" && \
|
||||||
test -d "${BASEDIR}/.git/git-crypt" && \
|
test -d "${BASEDIR}/.git/git-crypt" && \
|
||||||
install_dotfile_dir "${BASEDIR}/private_dotfiles"
|
install_dotfile_dir "${BASEDIR}/private_dotfiles" || \
|
||||||
|
true
|
||||||
test -d "${BASEDIR}/local_dotfiles" && \
|
test -d "${BASEDIR}/local_dotfiles" && \
|
||||||
install_dotfile_dir "${BASEDIR}/local_dotfiles"
|
install_dotfile_dir "${BASEDIR}/local_dotfiles" || \
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
install_main() {
|
||||||
|
test $MINIMAL = 1 || prerequisites
|
||||||
|
test $INSTALL_PKGS = 1 && is_deb_system && install_apt_pkgs
|
||||||
|
install_dotfiles
|
||||||
install_basic_dir "${BASEDIR}/bin" "${HOME}/bin"
|
install_basic_dir "${BASEDIR}/bin" "${HOME}/bin"
|
||||||
(( $MINIMAL )) || postinstall
|
test $MINIMAL = 1 || postinstall
|
||||||
(( $INSTALL_KEYS )) && install_keys
|
test $INSTALL_KEYS = 1 && install_keys
|
||||||
save_prefs
|
save_prefs
|
||||||
cleanup
|
cleanup
|
||||||
}
|
}
|
||||||
|
|
||||||
|
install_dconf() {
|
||||||
|
which dconf >/dev/null 2>&1 || return 1
|
||||||
|
find "${BASEDIR}/dconf" -type f -printf '/%P\n' | while read dcpath ; do
|
||||||
|
dconf load ${dcpath}/ < "${BASEDIR}/dconf/${dcpath}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Setup variables
|
# Setup variables
|
||||||
read_saved_prefs
|
read_saved_prefs
|
||||||
|
|
||||||
@@ -316,7 +372,7 @@ VERBOSE=${VERBOSE:-0}
|
|||||||
SAVE=${SAVE:-1}
|
SAVE=${SAVE:-1}
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
if [[ ! -d $BASEDIR ]] ; then
|
if [ ! -d $BASEDIR ] ; then
|
||||||
echo "Please install to $BASEDIR!" 1>&2
|
echo "Please install to $BASEDIR!" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -338,12 +394,24 @@ case $OPERATION in
|
|||||||
install)
|
install)
|
||||||
install_main
|
install_main
|
||||||
;;
|
;;
|
||||||
|
dotfiles)
|
||||||
|
install_dotfiles
|
||||||
|
;;
|
||||||
package*)
|
package*)
|
||||||
install_pkg_set packages.${2}
|
PKG_SET=${2:-minimal}
|
||||||
|
install_pkg_set packages.${PKG_SET}
|
||||||
;;
|
;;
|
||||||
pwndbg)
|
pwndbg)
|
||||||
install_pwndbg
|
install_pwndbg
|
||||||
;;
|
;;
|
||||||
|
test)
|
||||||
|
# Do nothing, just sourcing
|
||||||
|
set +o errexit
|
||||||
|
;;
|
||||||
|
dconf)
|
||||||
|
# Load dconf
|
||||||
|
install_dconf
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown operation $OPERATION." >/dev/stderr
|
echo "Unknown operation $OPERATION." >/dev/stderr
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
1
keys/ssh/id_ecdsa_chromebook.pub
Normal file
1
keys/ssh/id_ecdsa_chromebook.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIsFYLEsalNh/l6PtMZhi0f/eZ22uoMw/xYpgPy6vBU6OlpN2FjW7R0pwX29fZjjVQoF0eEG0K/9/CcYcnxtspw= chronos@localhost
|
||||||
1
keys/ssh/id_ed25519_glaptop3.pub
Normal file
1
keys/ssh/id_ed25519_glaptop3.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPlKI3Mt2Hm4YZ0WNOET7SEoXmAABR+eEZ3hnJnA9AJ davidtomaschik@davidtomaschik-glaptop3
|
||||||
1
keys/ssh/id_rsa_glaptop3.pub
Normal file
1
keys/ssh/id_rsa_glaptop3.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDi2AoHzzSd/xidvRKS1OE7Pe+aGgyEY1WmWJGJ3POHuaQSbGrp4g1En4QurhXwonPiLBtQ0w6Nbbi/3vrXxSnAkJJKd9LXQtjyXVN68285lRr3DWuWnyokhO3B5aGOb5/4b6Dn8YDRrTRefezjbVavgrTFarZ19PmPmJxH9h+ZPV/hNQ6rZjBjrvGerxpmB6CjgXbIxRdsUcnao3+gyPueBOkyHbfiy7QjQT+SgPjIqT/rza4Q0OqFBTk4D7Y96biE5yY31eNs8H7uvR3PfX0NN5zvP/EqJECPYr/B3vOzAr7B8BsqYbA5UFexrp6gYn+LDzr6jAILhEUp8SsC8UFn davidtomaschik@davidtomaschik-glaptop3
|
||||||
1
keys/ssh/id_rsa_kali_uber.pub
Normal file
1
keys/ssh/id_rsa_kali_uber.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXvqt73qAqS8C597u1wjz0Cvfo1IpiQFE4OKxTBR0mUhhi9UsGXkjZd/EYnqfWQRLcKaQSqN9QcXW7zHrfXtdmcjr3dDZrwXGgCiJnvLTeLecLqYwgaIMMNTmgaTQ3OFB74VCeD496pMbnhmlsN2+WaxNjIxoX+Qadsq/iHtBBt+tSOm5E1x0/ynEGmvO1W0L+8FyV/xnZWQIbBHTrJ931Gt8RDKtt7Y24XYMm5REye40adbxeS4kBwexvp2nTKwkr8sC26dmOz/RgJG3Km1194r0RXsH7iCYYlUBT23f4KOcmVxUlxkSu5d0u2viEID++cN6LT/4rHPdgqMZaVhaB root@uber
|
||||||
@@ -1 +1 @@
|
|||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXvqt73qAqS8C597u1wjz0Cvfo1IpiQFE4OKxTBR0mUhhi9UsGXkjZd/EYnqfWQRLcKaQSqN9QcXW7zHrfXtdmcjr3dDZrwXGgCiJnvLTeLecLqYwgaIMMNTmgaTQ3OFB74VCeD496pMbnhmlsN2+WaxNjIxoX+Qadsq/iHtBBt+tSOm5E1x0/ynEGmvO1W0L+8FyV/xnZWQIbBHTrJ931Gt8RDKtt7Y24XYMm5REye40adbxeS4kBwexvp2nTKwkr8sC26dmOz/RgJG3Km1194r0RXsH7iCYYlUBT23f4KOcmVxUlxkSu5d0u2viEID++cN6LT/4rHPdgqMZaVhaB root@uber
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ5FLvZsfIfNV8NcUK6+wJ8pDapgu8QAZMX5zuz+fYxsf3KeHlDS0nPojmDLCXaAdd4TUO7KlRyo8BhpsWP8yUwpxUeRgvtYjjWfDgSxXCsGpQzbmTABu8eIaSya00Fao/WeIV1k+2p6S80knmllrBVideGW9ws4zrVQnhOcgKVXskuFBEs3IOQczNPMfI+OnO+qca0rjUh1Z6k3tD6tN6pxh//5CZBgqYf4G1DLnCLIep7tDkTuYjgqH237r6v4WHH87sLRy21yFRzfMWUGPesJvuc8X4Ol822BuQWTCDYy+QYZ9qGDWPcLOLCg7MLP9IVKzIJOrAdOYyp6p2brzj davidtomaschik@uber.g
|
||||||
|
|||||||
@@ -7,3 +7,4 @@ network-manager-openvpn-gnome
|
|||||||
vim-gtk
|
vim-gtk
|
||||||
wireshark
|
wireshark
|
||||||
wkhtmltopdf
|
wkhtmltopdf
|
||||||
|
zeal
|
||||||
|
|||||||
@@ -1,15 +1,7 @@
|
|||||||
ack-grep
|
|
||||||
build-essential
|
build-essential
|
||||||
cryptsetup
|
cryptsetup
|
||||||
curl
|
|
||||||
dnsutils
|
|
||||||
dsniff
|
dsniff
|
||||||
ecryptfs-utils
|
ecryptfs-utils
|
||||||
gdb
|
|
||||||
git
|
|
||||||
git-crypt
|
|
||||||
gnupg2
|
|
||||||
gnupg-agent
|
|
||||||
gnupg-curl
|
gnupg-curl
|
||||||
iftop
|
iftop
|
||||||
iptraf
|
iptraf
|
||||||
@@ -18,39 +10,29 @@ ipython3
|
|||||||
jq
|
jq
|
||||||
kpartx
|
kpartx
|
||||||
ldap-utils
|
ldap-utils
|
||||||
ltrace
|
|
||||||
lvm2
|
lvm2
|
||||||
mosh
|
msitools
|
||||||
ngrep
|
most
|
||||||
nmap
|
nasm
|
||||||
opensc
|
opensc
|
||||||
openvpn
|
openvpn
|
||||||
p7zip-full
|
p7zip-full
|
||||||
|
psmisc
|
||||||
|
python3
|
||||||
|
python3-pip
|
||||||
|
python3-virtualenv
|
||||||
python-crypto
|
python-crypto
|
||||||
python-dev
|
python-dev
|
||||||
python-hachoir-urwid
|
python-hachoir-urwid
|
||||||
python-html5lib
|
python-html5lib
|
||||||
python-imaging
|
python-nwdiag
|
||||||
python-pip
|
python-pip
|
||||||
python-pypdf
|
|
||||||
python-scapy
|
python-scapy
|
||||||
python-virtualenv
|
python-virtualenv
|
||||||
python-yara
|
python-yara
|
||||||
python3
|
|
||||||
python3-pip
|
|
||||||
python3-virtualenv
|
|
||||||
radare2
|
radare2
|
||||||
scapy
|
scapy
|
||||||
scdaemon
|
scdaemon
|
||||||
|
socat
|
||||||
sqlite3
|
sqlite3
|
||||||
strace
|
|
||||||
tcpdump
|
|
||||||
tmux
|
|
||||||
traceroute
|
|
||||||
tshark
|
|
||||||
ufw
|
ufw
|
||||||
unzip
|
|
||||||
vim
|
|
||||||
virtualenvwrapper
|
|
||||||
whois
|
|
||||||
zsh
|
|
||||||
22
packages.minimal
Normal file
22
packages.minimal
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
ack-grep
|
||||||
|
curl
|
||||||
|
dnsutils
|
||||||
|
gdb
|
||||||
|
git
|
||||||
|
git-crypt
|
||||||
|
gnupg2
|
||||||
|
gnupg-agent
|
||||||
|
ltrace
|
||||||
|
mosh
|
||||||
|
ngrep
|
||||||
|
nmap
|
||||||
|
strace
|
||||||
|
tcpdump
|
||||||
|
tmux
|
||||||
|
traceroute
|
||||||
|
tshark
|
||||||
|
unzip
|
||||||
|
vim
|
||||||
|
virtualenvwrapper
|
||||||
|
whois
|
||||||
|
zsh
|
||||||
Binary file not shown.
BIN
private_dotfiles/ssh/config.d/hosts
Normal file
BIN
private_dotfiles/ssh/config.d/hosts
Normal file
Binary file not shown.
2
udev/41-microchip.rules
Normal file
2
udev/41-microchip.rules
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Pickit 3
|
||||||
|
ATTR{idVendor}=="04d8", ATTR{idProduct}=="900a", MODE="0666", GROUP="plugdev"
|
||||||
38
udev/49-teensy.rules
Normal file
38
udev/49-teensy.rules
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# UDEV Rules for Teensy boards, http://www.pjrc.com/teensy/
|
||||||
|
#
|
||||||
|
# The latest version of this file may be found at:
|
||||||
|
# http://www.pjrc.com/teensy/49-teensy.rules
|
||||||
|
#
|
||||||
|
# This file must be placed at:
|
||||||
|
#
|
||||||
|
# /etc/udev/rules.d/49-teensy.rules (preferred location)
|
||||||
|
# or
|
||||||
|
# /lib/udev/rules.d/49-teensy.rules (req'd on some broken systems)
|
||||||
|
#
|
||||||
|
# To install, type this command in a terminal:
|
||||||
|
# sudo cp 49-teensy.rules /etc/udev/rules.d/49-teensy.rules
|
||||||
|
#
|
||||||
|
# Or use the alternate way (from this forum message) to download and install:
|
||||||
|
# https://forum.pjrc.com/threads/45595?p=150445&viewfull=1#post150445
|
||||||
|
#
|
||||||
|
# After this file is installed, physically unplug and reconnect Teensy.
|
||||||
|
#
|
||||||
|
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666"
|
||||||
|
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666"
|
||||||
|
#
|
||||||
|
# If you share your linux system with other users, or just don't like the
|
||||||
|
# idea of write permission for everybody, you can replace MODE:="0666" with
|
||||||
|
# OWNER:="yourusername" to create the device owned by you, or with
|
||||||
|
# GROUP:="somegroupname" and mange access using standard unix groups.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# If using USB Serial you get a new device each time (Ubuntu 9.10)
|
||||||
|
# eg: /dev/ttyACM0, ttyACM1, ttyACM2, ttyACM3, ttyACM4, etc
|
||||||
|
# apt-get remove --purge modemmanager (reboot may be necessary)
|
||||||
|
#
|
||||||
|
# Older modem proding (eg, Ubuntu 9.04) caused very slow serial device detection.
|
||||||
|
# To fix, add this near top of /lib/udev/rules.d/77-nm-probe-modem-capabilities.rules
|
||||||
|
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", GOTO="nm_modem_probe_end"
|
||||||
|
#
|
||||||
6
udev/70-u2f.rules
Normal file
6
udev/70-u2f.rules
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# this udev file should be used with udev 188 and newer
|
||||||
|
ACTION!="add|change", GOTO="u2f_end"
|
||||||
|
|
||||||
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0402|0403|0406|0407|0410", TAG+="uaccess"
|
||||||
|
|
||||||
|
LABEL="u2f_end"
|
||||||
8
udev/88-nuand.rules
Normal file
8
udev/88-nuand.rules
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Nuand bladeRF
|
||||||
|
ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5246", MODE="660", GROUP="plugdev"
|
||||||
|
|
||||||
|
# Nuand bladeRF, legacy VID/PID
|
||||||
|
ATTR{idVendor}=="1d50", ATTR{idProduct}=="6066", MODE="660", GROUP="plugdev"
|
||||||
|
|
||||||
|
# Cypress Bootloader
|
||||||
|
ATTR{idVendor}=="04b4", ATTR{idProduct}=="00f3", MODE="660", GROUP="plugdev"
|
||||||
4
udev/99-chip.rules
Normal file
4
udev/99-chip.rules
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f3a", ATTRS{idProduct}=="efe8", GROUP="plugdev", MODE="0660" SYMLINK+="usb-chip"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="1010", GROUP="plugdev", MODE="0660" SYMLINK+="usb-chip-fastboot"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f3a", ATTRS{idProduct}=="1010", GROUP="plugdev", MODE="0660" SYMLINK+="usb-chip-fastboot"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="plugdev", MODE="0660" SYMLINK+="usb-serial-adapter"
|
||||||
1
udev/99-ftdi.rules
Normal file
1
udev/99-ftdi.rules
Normal file
@@ -0,0 +1 @@
|
|||||||
|
BUS=="usb", SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6014", GROUP="plugdev"
|
||||||
4
udev/99-modemmanager-arduino.rules
Normal file
4
udev/99-modemmanager-arduino.rules
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
ATTRS{idVendor}=="239a", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
ATTRS{idVendor}=="1b4f", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
ATTRS{idVendor}=="03eb", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
2
udev/99-redbear.rules
Normal file
2
udev/99-redbear.rules
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
ATTRS{idProduct}=="d058", ATTRS{idVendor}=="2b04", MODE="664", GROUP="plugdev"
|
||||||
|
ATTRS{idVendor}=="2b04", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
14
udev/99-saleae.rules
Normal file
14
udev/99-saleae.rules
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Rules for the Saleae Logic analyzer to allow to run the programs a normal user
|
||||||
|
# being part of the plugdev group. Simply copy the file to /etc/udev/rules.d/
|
||||||
|
# and plug the device
|
||||||
|
|
||||||
|
BUS!="usb", ACTION!="add", SUBSYSTEM!=="usb_device", GOTO="saleae_logic_rules_end"
|
||||||
|
|
||||||
|
# Saleae Logic analyzer (USB Based)
|
||||||
|
# Bus 006 Device 006: ID 0925:3881 Lakeview Research
|
||||||
|
# Bus 001 Device 009: ID 21a9:1004 Product: Logic S/16, Manufacturer: Saleae LLC
|
||||||
|
|
||||||
|
ATTR{idVendor}=="0925", ATTR{idProduct}=="3881", MODE="664", GROUP="plugdev"
|
||||||
|
ATTR{idVendor}=="21a9", ATTR{idProduct}=="1004", MODE="664", GROUP="plugdev"
|
||||||
|
|
||||||
|
LABEL="saleae_logic_rules_end"
|
||||||
Reference in New Issue
Block a user