mirror of
https://github.com/Matir/skel.git
synced 2026-05-25 21:19:09 -07:00
Compare commits
222 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
d8d7e94aed | ||
|
|
a2bd17e935 | ||
|
|
abc42681af | ||
|
|
05a3905eb0 | ||
|
|
0c38ad65f7 | ||
|
|
a24b6ef51e | ||
|
|
13c42ab008 | ||
|
|
9db6ad55aa | ||
|
|
5d1eaccbbc | ||
|
|
0859908724 | ||
|
|
805998921a | ||
|
|
89aa4c1be2 | ||
|
|
b7c5a28fe0 | ||
|
|
8ffc255e93 | ||
|
|
87fd3193e0 | ||
|
|
d96a41aeaf | ||
|
|
43659b27a8 | ||
|
|
ec0fb88453 | ||
|
|
fcda32a417 | ||
|
|
d33ee9fa4d | ||
|
|
0dc5950334 | ||
|
|
4d3c2ea0b1 | ||
|
|
157ff8a451 | ||
|
|
a6df743476 | ||
|
|
4edf1e6b01 | ||
|
|
953d592561 | ||
|
|
fdf1ec9790 | ||
|
|
99670fd834 | ||
|
|
28d45d20da | ||
|
|
42f93dc9d2 | ||
|
|
f7ae1cb9f9 | ||
|
|
21ece50f73 | ||
|
|
08d284efad | ||
|
|
b23d196994 | ||
|
|
6b23295be9 | ||
|
|
7f7e2e21bf | ||
|
|
12a4202709 | ||
|
|
585f1f4101 | ||
|
|
8d533e4cd3 | ||
|
|
0c5dc52926 | ||
|
|
62276e4843 | ||
|
|
a8d205d8f6 | ||
|
|
7c1bb5c6f9 | ||
|
|
bdedb651d4 | ||
|
|
e62edc3fee | ||
|
|
1dce4d6ece | ||
|
|
4eb5ae9087 | ||
|
|
b945bb69da | ||
|
|
44b2f55b1f | ||
|
|
9c1bbdd1ae | ||
|
|
e68a194066 | ||
|
|
8f4a5397c7 | ||
|
|
ec42e83d03 | ||
|
|
0505bc90c4 | ||
|
|
5e62177da5 | ||
|
|
2394887cda | ||
|
|
cd6f1ccca7 | ||
|
|
f528cb3991 | ||
|
|
493fec9ced | ||
|
|
c7166479a9 | ||
|
|
21f8d645be | ||
|
|
aafc352dd0 | ||
|
|
c1df470815 | ||
|
|
de2a159024 | ||
|
|
4f332566aa | ||
|
|
be3d3196ae | ||
|
|
7efc19fec7 | ||
|
|
209778db2f | ||
|
|
fa86c01eab | ||
|
|
26af37422d | ||
|
|
b29e600842 | ||
|
|
2035518278 | ||
|
|
63806dec01 | ||
|
|
63e845904e | ||
|
|
702b8547d9 | ||
|
|
f928309043 | ||
|
|
9cffb92ef5 | ||
|
|
044bd1dffc | ||
|
|
c7194cb349 | ||
|
|
12dd58dc01 | ||
|
|
9018536732 | ||
|
|
7e8687ffa8 | ||
|
|
7f6114fb5d | ||
|
|
c144bc1bcc | ||
|
|
576a6f227b | ||
|
|
173230dd06 | ||
|
|
955fdb59f8 | ||
|
|
8c366f69f7 | ||
|
|
6ed5979c8f | ||
|
|
a5f8e973fa | ||
|
|
aa6f4213ff | ||
|
|
3c2b06a81b | ||
|
|
607204a85c | ||
|
|
dbe4c21ca1 | ||
|
|
13d389360d | ||
|
|
aa690c0985 | ||
|
|
6075ecf89b | ||
|
|
cabdaac7a6 | ||
|
|
8066f71ef5 | ||
|
|
aee7cacaf4 | ||
|
|
70cc5c5218 | ||
|
|
c8c954617e | ||
|
|
f3b6be53e0 | ||
|
|
59b0bca33c | ||
|
|
e94f1caab3 | ||
|
|
2701a9e8f0 | ||
|
|
4d196a0b75 | ||
|
|
e7c797e195 | ||
|
|
58ae338ece | ||
|
|
5eaabf4716 | ||
|
|
de1758b847 | ||
|
|
aabc40e4c0 | ||
|
|
3175b2bcd7 | ||
|
|
ab73763b4f | ||
|
|
dc9fbe1cd9 | ||
|
|
d79dbd890f | ||
|
|
3e78cde55e | ||
|
|
a6c2421ddc | ||
|
|
e6fa446b19 | ||
|
|
59cb3a01fb | ||
|
|
9203299eb2 | ||
|
|
8f30b94c97 | ||
|
|
db1c72a86f | ||
|
|
78df984b55 | ||
|
|
68dcadd52b | ||
|
|
0b5ceae185 | ||
|
|
525697a4ea | ||
|
|
4bedb5496b | ||
|
|
ee4b273710 | ||
|
|
3586722774 | ||
|
|
afa200905c | ||
|
|
751f39f854 | ||
|
|
d4d0005811 | ||
|
|
cf360f0eb1 | ||
|
|
52991d097a | ||
|
|
aeb2e89755 | ||
|
|
2baead04ef | ||
|
|
8ea9f8c10f | ||
|
|
4320edaee6 | ||
|
|
acc7085c66 | ||
|
|
4e427cf208 | ||
|
|
072e6e6405 | ||
|
|
930b11b821 | ||
|
|
8e01e9a0ab | ||
|
|
b076afb811 | ||
|
|
33223e5af0 | ||
|
|
e514149340 | ||
|
|
e752074886 | ||
|
|
4cb6be69e0 | ||
|
|
997b27dd19 | ||
|
|
3071ecd7f7 | ||
|
|
9c1f09c563 | ||
|
|
5c23070292 | ||
|
|
31f04428ca | ||
|
|
0b16c79274 | ||
|
|
c29e859c4a | ||
|
|
1e2c131cc8 | ||
|
|
80795ffb33 | ||
|
|
5900f47829 | ||
|
|
56ca5cc721 | ||
|
|
58db233697 | ||
|
|
46255e9ab7 | ||
|
|
6a6216a720 | ||
|
|
28348ca08e | ||
|
|
6347759506 | ||
|
|
0949c61bc3 | ||
|
|
87a42121f9 | ||
|
|
6914922a3e | ||
|
|
26f7f78569 | ||
|
|
1e00c7212a | ||
|
|
96ab83949a | ||
|
|
d24862dc84 | ||
|
|
d48f5a3681 | ||
|
|
1baf32f6bf | ||
|
|
664e310323 | ||
|
|
1c4e2fb7dd | ||
|
|
d56db56d2b | ||
|
|
fd974a153c | ||
|
|
0259497329 | ||
|
|
87dc698f31 |
@@ -31,3 +31,9 @@ INSTALL_PKGS: Install common packages, if on a Debian-like system.
|
|||||||
(Defaults to opposite of $MINIMAL.)
|
(Defaults to opposite of $MINIMAL.)
|
||||||
SAVE: Save the install options to ${BASEDIR}/installed-prefs
|
SAVE: Save the install options to ${BASEDIR}/installed-prefs
|
||||||
```
|
```
|
||||||
|
### TODO ###
|
||||||
|
|
||||||
|
[ ] Re-do the installation of packages.
|
||||||
|
[ ] Make manual installation of sets easy/possible.
|
||||||
|
[ ] Make missing packages not cause a full set failure.
|
||||||
|
[X] Allow comments and blank lines.
|
||||||
|
|||||||
5
bin/_install_i3.sh
Executable file
5
bin/_install_i3.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
apt-get install -y \
|
||||||
|
i3 i3lock xss-lock rxvt-unicode-256color fonts-inconsolata scrot \
|
||||||
|
xautolock xbacklight i3status
|
||||||
16
bin/autostart.py
Executable file
16
bin/autostart.py
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
"""
|
||||||
|
Launch desktop files from ~/.config/autostart
|
||||||
|
"""
|
||||||
|
|
||||||
|
import glob
|
||||||
|
import os.path
|
||||||
|
from gi.repository import Gio
|
||||||
|
|
||||||
|
dirname = os.path.expanduser('~/.config/autostart')
|
||||||
|
for desktop in glob.glob(os.path.join(dirname, '*.desktop')):
|
||||||
|
try:
|
||||||
|
fp = Gio.DesktopAppInfo.new_from_filename(desktop)
|
||||||
|
except TypeError:
|
||||||
|
continue
|
||||||
|
fp.launch_uris([], None)
|
||||||
32
bin/burp
32
bin/burp
@@ -1,32 +0,0 @@
|
|||||||
#!/bin/zsh
|
|
||||||
|
|
||||||
_start_burp() {
|
|
||||||
setopt localoptions nullglob numeric_glob_sort
|
|
||||||
local NO_DOWNLOAD
|
|
||||||
local JAR
|
|
||||||
if (( ${+argv[(r)*no-download]} )) ; then
|
|
||||||
NO_DOWNLOAD=1
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
NO_DOWNLOAD=0
|
|
||||||
fi
|
|
||||||
JAR=(${HOME}/bin/burpsuite*jar(On[1])) 2>/dev/null
|
|
||||||
if [ -z $JAR ] ; then
|
|
||||||
if (( $NO_DOWNLOAD )) ; then
|
|
||||||
echo "Not downloading, --no-download specified" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
echo "Burp JAR not found in ${HOME}/bin. Attempting to download free edition." >&2
|
|
||||||
wget -q --content-disposition --no-server-response -P ${HOME}/bin \
|
|
||||||
https://portswigger.net/DownloadUpdate.ashx\?Product\=Free
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
echo "Download failed." >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
burp --no-download "$@"
|
|
||||||
return $?
|
|
||||||
else
|
|
||||||
java -jar ${JAR} "$@"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
_start_burp
|
|
||||||
3
bin/cyberchef
Executable file
3
bin/cyberchef
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
exec xdg-open $(dirname $0)/cyberchef.html
|
||||||
382
bin/cyberchef.html
Normal file
382
bin/cyberchef.html
Normal 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
|
||||||
9
bin/i3lock.sh
Executable file
9
bin/i3lock.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
LOCKER="i3lock -c 000000"
|
||||||
|
/usr/bin/xss-lock -- "${LOCKER}" &
|
||||||
|
exec /usr/bin/xautolock \
|
||||||
|
-time 5 \
|
||||||
|
-detectsleep \
|
||||||
|
-locker "${LOCKER}" \
|
||||||
|
-notify 30 \
|
||||||
|
-notifier "notify-send -u critical -t 10000 -- 'LOCKING SCREEN IN 30 SECONDS'"
|
||||||
183
bin/install_tool
Executable file
183
bin/install_tool
Executable file
@@ -0,0 +1,183 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ue
|
||||||
|
|
||||||
|
REINSTALL=0
|
||||||
|
PACKAGES=1
|
||||||
|
|
||||||
|
while getopts -- "-:" a ; do
|
||||||
|
case "${a}" in
|
||||||
|
-)
|
||||||
|
case "${OPTARG}" in
|
||||||
|
reinstall)
|
||||||
|
REINSTALL=1
|
||||||
|
;;
|
||||||
|
no-packages)
|
||||||
|
PACKAGES=0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown long option ${OPTARG}" >/dev/stderr
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $(($OPTIND-1))
|
||||||
|
|
||||||
|
if [ $# -ne 1 ] ; then
|
||||||
|
echo "Usage: ${0} <tool>" >/dev/stderr
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
TOOL=${1}
|
||||||
|
|
||||||
|
function install_pkgs {
|
||||||
|
if [ ${PACKAGES} -eq 0 ] ; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [ `id -u` -ne "0" ] ; then
|
||||||
|
sudo apt-get -y install $* || (
|
||||||
|
echo -n "Unable to install packages, please ensure these " >/dev/stderr
|
||||||
|
echo "are installed, then run with --no-packages." >/dev/stderr
|
||||||
|
echo $*
|
||||||
|
false )
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
apt-get -y install $*
|
||||||
|
}
|
||||||
|
|
||||||
|
function download {
|
||||||
|
SRC=${1}
|
||||||
|
DST=${2}
|
||||||
|
echo -n "Downloading ${SRC} to ${DST}..." >&2
|
||||||
|
wget --no-server-response -q -O ${DST} --content-disposition ${SRC}
|
||||||
|
echo " done." >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
function check_sudo {
|
||||||
|
sudo -l >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
DESTDIR="${HOME}/tools/${TOOL}"
|
||||||
|
|
||||||
|
if [ -d ${DESTDIR} ] ; then
|
||||||
|
if [ ${REINSTALL} -eq 1 ] ; then
|
||||||
|
rm -ri ${DESTDIR}
|
||||||
|
else
|
||||||
|
echo "${DESTDIR} exists but not reinstalling." >/dev/stderr
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
case ${TOOL} in
|
||||||
|
john)
|
||||||
|
install_pkgs libssl-dev git build-essential yasm libgmp-dev libpcap-dev \
|
||||||
|
pkg-config libbz2-dev libopenmpi-dev openmpi-bin libnss3-dev \
|
||||||
|
libkrb5-dev libgmp-dev
|
||||||
|
jtemp=`mktemp -d`
|
||||||
|
git clone https://github.com/magnumripper/JohnTheRipper.git ${jtemp}/john
|
||||||
|
cd ${jtemp}/john/src
|
||||||
|
./configure && make -sj2
|
||||||
|
mkdir -p ${DESTDIR}
|
||||||
|
cp -r ${jtemp}/john/run/* ${DESTDIR}
|
||||||
|
rm -rf ${jtemp}
|
||||||
|
# Persistent files
|
||||||
|
mkdir -p ${HOME}/.john
|
||||||
|
touch ${HOME}/.john/john.pot
|
||||||
|
ln -sf ${HOME}/.john/* ${DESTDIR}
|
||||||
|
;;
|
||||||
|
wordlists)
|
||||||
|
mkdir -p ${DESTDIR}
|
||||||
|
download \
|
||||||
|
http://downloads.skullsecurity.org/passwords/rockyou.txt.bz2 \
|
||||||
|
${DESTDIR}/rockyou.txt.bz2
|
||||||
|
bunzip2 ${DESTDIR}/rockyou.txt.bz2
|
||||||
|
download \
|
||||||
|
http://downloads.skullsecurity.org/passwords/phpbb.txt.bz2 \
|
||||||
|
${DESTDIR}/phpbb.txt.bz2
|
||||||
|
bunzip2 ${DESTDIR}/phpbb.txt.bz2
|
||||||
|
download \
|
||||||
|
http://downloads.skullsecurity.org/passwords/hak5.txt.bz2 \
|
||||||
|
${DESTDIR}/hak5.txt.bz2
|
||||||
|
bunzip2 ${DESTDIR}/hak5.txt.bz2
|
||||||
|
;;
|
||||||
|
gcloud)
|
||||||
|
mkdir -p ${DESTDIR}
|
||||||
|
gtemp=`mktemp -d`
|
||||||
|
gbase="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/"
|
||||||
|
# TODO: find a way to make this version independent
|
||||||
|
gsdk="google-cloud-sdk-142.0.0-linux-x86_64.tar.gz"
|
||||||
|
download "${gbase}${gsdk}" /tmp/gcloud.tar.gz
|
||||||
|
tar zxf /tmp/gcloud.tar.gz --strip-components=1 -C ${DESTDIR}
|
||||||
|
rm /tmp/gcloud.tar.gz
|
||||||
|
;;
|
||||||
|
android-sdk)
|
||||||
|
# TODO: find a way to make this version independent
|
||||||
|
asdk="https://dl.google.com/android/repository/tools_r25.2.3-linux.zip"
|
||||||
|
download ${asdk} /tmp/android-tools.zip
|
||||||
|
unzip -d ${DESTDIR} /tmp/android-tools.zip
|
||||||
|
rm /tmp/android-tools.zip
|
||||||
|
# Install components
|
||||||
|
${DESTDIR}/tools/bin/sdkmanager "emulator" "platform-tools"
|
||||||
|
;;
|
||||||
|
burp)
|
||||||
|
# Install latest burp free
|
||||||
|
mkdir -p ${DESTDIR}
|
||||||
|
download \
|
||||||
|
https://portswigger.net/DownloadUpdate.ashx\?Product\=Free \
|
||||||
|
${DESTDIR}/burp-free.jar
|
||||||
|
if [ $? -ne 0 ] ; then
|
||||||
|
echo "Download failed." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ -x /usr/bin/jarwrapper ] ; then
|
||||||
|
# We have binfmt support for jar, so add to bin
|
||||||
|
chmod +x ${DESTDIR}/*.jar
|
||||||
|
ln -sf ${DESTDIR}/*.jar ${HOME}/bin/burp
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
mitmproxy)
|
||||||
|
# Find a better way to get the latest
|
||||||
|
src="https://github.com/mitmproxy/mitmproxy/releases/download/v2.0.1/mitmproxy-2.0.1-linux.tar.gz"
|
||||||
|
download ${src} /tmp/mitmproxy.tar.gz
|
||||||
|
mkdir -p ${DESTDIR}
|
||||||
|
tar zx -C ${DESTDIR} -f /tmp/mitmproxy.tar.gz
|
||||||
|
rm /tmp/mitmproxy.tar.gz
|
||||||
|
;;
|
||||||
|
esp)
|
||||||
|
src="https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz"
|
||||||
|
download ${src} /tmp/esp32.tar.gz
|
||||||
|
mkdir -p ${DESTDIR}
|
||||||
|
tar zx -C ${DESTDIR} -f /tmp/esp32.tar.gz
|
||||||
|
rm /tmp/esp32.tar.gz
|
||||||
|
git clone --recursive https://github.com/espressif/esp-idf.git ${DESTDIR}/esp-idf
|
||||||
|
;;
|
||||||
|
dex2jar)
|
||||||
|
src="https://github.com/pxb1988/dex2jar/releases/download/2.0/dex-tools-2.0.zip"
|
||||||
|
download ${src} /tmp/dex2jar.zip
|
||||||
|
tmpd=`mktemp -d`
|
||||||
|
unzip -d ${tmpd} /tmp/dex2jar.zip
|
||||||
|
mv ${tmpd}/* ${DESTDIR}
|
||||||
|
rm /tmp/dex2jar.zip
|
||||||
|
rm -rf ${tmpd}
|
||||||
|
rm ${DESTDIR}/*.bat
|
||||||
|
chmod +x ${DESTDIR}/*.sh
|
||||||
|
;;
|
||||||
|
proxmark3)
|
||||||
|
install_pkgs p7zip git build-essential libreadline5 libreadline-dev \
|
||||||
|
libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev \
|
||||||
|
gcc-arm-none-eabi libstdc++-arm-none-eabi-newlib
|
||||||
|
src="https://github.com/Proxmark/proxmark3.git"
|
||||||
|
git clone ${src} ${DESTDIR}
|
||||||
|
cd ${DESTDIR}
|
||||||
|
make -sj2
|
||||||
|
check_sudo && sudo /bin/sh -c \
|
||||||
|
"cp -rf driver/78-mm-usb-device-blacklist.rules \
|
||||||
|
/etc/udev/rules.d/77-mm-usb-device-blacklist.rules &&
|
||||||
|
udevadm control --reload-rules"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown tool: ${TOOL}" >/dev/stderr
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
@@ -4,7 +4,9 @@ export NAME=$(basename "$0")
|
|||||||
export BASE="/opt/metasploit" # TODO: search this path
|
export BASE="/opt/metasploit" # TODO: search this path
|
||||||
|
|
||||||
# Autogen'd
|
# Autogen'd
|
||||||
|
if [ -f "${BASE}/scripts/setenv.sh" ] ; then
|
||||||
. ${BASE}/scripts/setenv.sh
|
. ${BASE}/scripts/setenv.sh
|
||||||
|
fi
|
||||||
|
|
||||||
# Use Pro's bundled gems instead of the gemcache
|
# Use Pro's bundled gems instead of the gemcache
|
||||||
export MSF_BUNDLE_GEMS=0
|
export MSF_BUNDLE_GEMS=0
|
||||||
@@ -25,4 +27,11 @@ if [ -f "${BASE}/apps/pro/msf3/tools/exploit/${NAME}.rb" ]; then
|
|||||||
exec ${BASE}/apps/pro/msf3/tools/exploit/${NAME}.rb "$@"
|
exec ${BASE}/apps/pro/msf3/tools/exploit/${NAME}.rb "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec ${NAME} "$@"
|
export BASE="/opt/metasploit-framework"
|
||||||
|
if [ -f "${BASE}/embedded/framework/tools/exploit/${NAME}.rb" ]; then
|
||||||
|
exec ${BASE}/embedded/bin/ruby \
|
||||||
|
"${BASE}/embedded/framework/tools/exploit/${NAME}.rb" "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Couldn't find script." >&2
|
||||||
|
exit 1
|
||||||
|
|||||||
28
bin/switch_virt.sh
Executable file
28
bin/switch_virt.sh
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ $# -lt 1 ] ; then
|
||||||
|
echo "Usage: $0 <kvm|vbox>" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ `whoami` != "root" ] ; then
|
||||||
|
if which sudo >/dev/null 2>&1 ; then
|
||||||
|
sudo $0 $*
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
echo "Sorry, this requires root." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" == "kvm" ] ; then
|
||||||
|
/etc/init.d/virtualbox stop
|
||||||
|
modprobe kvm
|
||||||
|
modprobe kvm_intel
|
||||||
|
elif [ "$1" == "vbox" ] ; then
|
||||||
|
rmmod kvm_intel
|
||||||
|
rmmod kvm
|
||||||
|
/etc/init.d/virtualbox start
|
||||||
|
else
|
||||||
|
echo 'WTF?' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -6,6 +6,10 @@ if [ `whoami` != "root" ] ; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
BASEDIR=`dirname $0`
|
BASEDIR=`dirname $0`
|
||||||
|
if ! test -f ${BASEDIR}/keys/gpg/kali-repo.key ; then
|
||||||
|
echo "Couldn't find key, are you in the right place?" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
cat >/etc/apt/sources.list.d/kali.list <<KALI_EOF
|
cat >/etc/apt/sources.list.d/kali.list <<KALI_EOF
|
||||||
deb http://http.kali.org/kali kali-rolling main contrib non-free
|
deb http://http.kali.org/kali kali-rolling main contrib non-free
|
||||||
|
|||||||
91
dotfiles/Xresources
Normal file
91
dotfiles/Xresources
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
Xcursor.size: 16
|
||||||
|
|
||||||
|
!!!
|
||||||
|
! Xft for fonts
|
||||||
|
!!!
|
||||||
|
Xft.dpi: 96
|
||||||
|
Xft.antialias: false
|
||||||
|
Xft.lcdfilter: lcddefault
|
||||||
|
Xft.rgba: rgb
|
||||||
|
Xft.hinting: true
|
||||||
|
Xft.hintstyle: hintslight
|
||||||
|
Xft.autohint: 0
|
||||||
|
|
||||||
|
!!!
|
||||||
|
! Solarized urxvt
|
||||||
|
!!!
|
||||||
|
URxvt.depth: 32
|
||||||
|
URxvt.geometry: 90x30
|
||||||
|
URxvt.transparent: false
|
||||||
|
URxvt.fading: 0
|
||||||
|
URxvt.urgentOnBell: true
|
||||||
|
URxvt.visualBell: false
|
||||||
|
URxvt.loginShell: true
|
||||||
|
URxvt.saveLines: 50000
|
||||||
|
URxvt.internalBorder: 2
|
||||||
|
URxvt.lineSpace: 0
|
||||||
|
URxvt.iso14755: false
|
||||||
|
|
||||||
|
! Fonts
|
||||||
|
URxvt*font: xft:inconsolata:pixelsize=16
|
||||||
|
|
||||||
|
! Fix font space
|
||||||
|
URxvt*letterSpace: -1
|
||||||
|
|
||||||
|
! Scrollbar
|
||||||
|
URxvt.scrollStyle: rxvt
|
||||||
|
URxvt.scrollBar: false
|
||||||
|
|
||||||
|
! Perl extensions
|
||||||
|
URxvt.perl-ext-common: default,matcher,resize-font
|
||||||
|
URxvt.matcher.button: 1
|
||||||
|
URxvt.urlLauncher: /usr/bin/xdg-open
|
||||||
|
URxvt.resize-font.smaller: C-Down
|
||||||
|
URxvt.resize-font.bigger: C-Up
|
||||||
|
|
||||||
|
! Cursor
|
||||||
|
URxvt.cursorBlink: true
|
||||||
|
URxvt.cursorUnderline: false
|
||||||
|
|
||||||
|
! Pointer
|
||||||
|
URxvt.pointerBlank: true
|
||||||
|
|
||||||
|
! Solarized colors begin
|
||||||
|
URxvt.background: #002b36
|
||||||
|
URxvt.foreground: #657b83
|
||||||
|
URxvt.fadeColor: #002b36
|
||||||
|
URxvt.cursorColor: #93a1a1
|
||||||
|
URxvt.pointerColorBackground: #586e75
|
||||||
|
URxvt.pointerColorForeground: #93a1a1
|
||||||
|
|
||||||
|
!! black dark/light
|
||||||
|
URxvt.color0: #073642
|
||||||
|
URxvt.color8: #002b36
|
||||||
|
|
||||||
|
!! red dark/light
|
||||||
|
URxvt.color1: #dc322f
|
||||||
|
URxvt.color9: #cb4b16
|
||||||
|
|
||||||
|
!! green dark/light
|
||||||
|
URxvt.color2: #859900
|
||||||
|
URxvt.color10: #586e75
|
||||||
|
|
||||||
|
!! yellow dark/light
|
||||||
|
URxvt.color3: #b58900
|
||||||
|
URxvt.color11: #657b83
|
||||||
|
|
||||||
|
!! blue dark/light
|
||||||
|
URxvt.color4: #268bd2
|
||||||
|
URxvt.color12: #839496
|
||||||
|
|
||||||
|
!! magenta dark/light
|
||||||
|
URxvt.color5: #d33682
|
||||||
|
URxvt.color13: #6c71c4
|
||||||
|
|
||||||
|
!! cyan dark/light
|
||||||
|
URxvt.color6: #2aa198
|
||||||
|
URxvt.color14: #93a1a1
|
||||||
|
|
||||||
|
!! white dark/light
|
||||||
|
URxvt.color7: #eee8d5
|
||||||
|
URxvt.color15: #fdf6e3
|
||||||
13
dotfiles/aliases
Normal file → Executable file
13
dotfiles/aliases
Normal file → Executable file
@@ -5,13 +5,16 @@
|
|||||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||||
|
|
||||||
# Cryptsetup alias
|
# Cryptsetup alias
|
||||||
alias luksFormat='sudo cryptsetup luksFormat -s 512 -c aes-xts-plain --use-random -h sha256 -i 5000'
|
alias luksFormat='cryptsetup luksFormat -s 512 -c aes-xts-plain64 -h sha256 -i 15000'
|
||||||
|
|
||||||
# Colors
|
# Colors
|
||||||
|
if [ `uname` != 'Darwin' -a `uname` != 'NetBSD' ] ; then
|
||||||
|
# Should have a better way to check for GNU versions
|
||||||
alias ls='ls --color=auto'
|
alias ls='ls --color=auto'
|
||||||
alias grep='grep --color=auto'
|
alias grep='grep --color=auto'
|
||||||
alias egrep='egrep --color=auto'
|
alias egrep='egrep --color=auto'
|
||||||
alias fgrep='fgrep --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,8 +28,8 @@ alias mdcode="sed 's/^/ /'"
|
|||||||
# Intel format plz
|
# Intel format plz
|
||||||
alias objdump="command objdump -M intel"
|
alias objdump="command objdump -M intel"
|
||||||
|
|
||||||
# ACK
|
# Useful directory utilities
|
||||||
alias ack="ack-grep"
|
alias dircount="for d in * ; do find \$d -type d | wc -l | tr -d '\n' ; echo ' ' \$d ; done | sort -n"
|
||||||
|
|
||||||
# Launch chrome for burp
|
# Drop caches for swap issues
|
||||||
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 &"
|
alias drop_caches="echo 3 | sudo /usr/bin/tee /proc/sys/vm/drop_caches"
|
||||||
|
|||||||
5
dotfiles/bashrc
Normal file → Executable file
5
dotfiles/bashrc
Normal file → Executable file
@@ -13,7 +13,7 @@ HISTFILESIZE=0
|
|||||||
shopt -s checkwinsize
|
shopt -s checkwinsize
|
||||||
|
|
||||||
# Fancier outputs
|
# Fancier outputs
|
||||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe 2>/dev/null)"
|
||||||
|
|
||||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||||
@@ -40,3 +40,6 @@ if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -e $HOME/.aliases ]] ; then source $HOME/.aliases ; fi
|
if [[ -e $HOME/.aliases ]] ; then source $HOME/.aliases ; fi
|
||||||
|
|
||||||
|
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
|
||||||
|
export PATH="$PATH:$HOME/.rvm/bin"
|
||||||
|
|||||||
196
dotfiles/config/i3/config
Normal file
196
dotfiles/config/i3/config
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
# i3 config file (v4)
|
||||||
|
#
|
||||||
|
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
set $alt Mod1
|
||||||
|
|
||||||
|
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||||
|
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||||
|
font pango:DejaVu Sans Mono 8
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# start a terminal
|
||||||
|
bindsym $mod+Return exec i3-sensible-terminal
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# start dmenu (a program launcher)
|
||||||
|
bindsym $mod+d exec dmenu_run
|
||||||
|
# There also is the (new) i3-dmenu-desktop which only displays applications
|
||||||
|
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
||||||
|
# installed.
|
||||||
|
bindsym $mod+Shift+d exec --no-startup-id i3-dmenu-desktop
|
||||||
|
|
||||||
|
# move focus
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# move windows
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym $mod+h split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym $mod+v split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+s layout stacking
|
||||||
|
bindsym $mod+w layout tabbed
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace 1
|
||||||
|
bindsym $mod+2 workspace 2
|
||||||
|
bindsym $mod+3 workspace 3
|
||||||
|
bindsym $mod+4 workspace 4
|
||||||
|
bindsym $mod+5 workspace 5
|
||||||
|
bindsym $mod+6 workspace 6
|
||||||
|
bindsym $mod+7 workspace 7
|
||||||
|
bindsym $mod+8 workspace 8
|
||||||
|
bindsym $mod+9 workspace 9
|
||||||
|
bindsym $mod+0 workspace 10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace 1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace 2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace 3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace 4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace 5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace 6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace 7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace 8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace 9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace 10
|
||||||
|
|
||||||
|
# Move workspaces between monitors
|
||||||
|
bindsym $mod+Shift+greater move workspace to output right
|
||||||
|
bindsym $mod+Shift+less move workspace to output left
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+e exec \
|
||||||
|
"i3-nagbar -t warning -m \
|
||||||
|
'You pressed the exit shortcut. Do you really want to exit i3? \
|
||||||
|
This will end your X session.' \
|
||||||
|
-b 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or mod+r to toggle
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||||
|
# finds out, if available)
|
||||||
|
bar {
|
||||||
|
status_command bash -c "i3status -c <(~/.config/i3status/build_config.sh)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Cycle through workspaces like cinnamon
|
||||||
|
bindsym $alt+Control+Right workspace next
|
||||||
|
bindsym $alt+Control+Left workspace prev
|
||||||
|
|
||||||
|
# i3 lock
|
||||||
|
exec --no-startup-id ~/bin/i3lock.sh &
|
||||||
|
bindsym $mod+l exec \
|
||||||
|
bash -c "i3lock -c 000000 -d && (sleep 2 && xset dpms force off) &"
|
||||||
|
bindsym $alt+Control+l exec \
|
||||||
|
bash -c "i3lock -c 000000 -d && (sleep 2 && xset dpms force off) &"
|
||||||
|
|
||||||
|
# things to start quickly
|
||||||
|
bindsym $mod+g exec /usr/bin/google-chrome-beta --password-store=gnome
|
||||||
|
|
||||||
|
# kill a window with middle click + mod
|
||||||
|
bindsym --whole-window $mod+button2 kill
|
||||||
|
# float a window with right click + mod
|
||||||
|
bindsym --whole-window $mod+button3 floating toggle
|
||||||
|
|
||||||
|
# media keys
|
||||||
|
# Pulse Audio controls
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5%
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5%
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle
|
||||||
|
# Screen brightness controls
|
||||||
|
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 10
|
||||||
|
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 10
|
||||||
|
|
||||||
|
# screenshots
|
||||||
|
set $scrotformat %F-%T.png
|
||||||
|
set $screendir ~/Pictures/Screenshots
|
||||||
|
# whole screen
|
||||||
|
bindsym --release Print exec --no-startup-id \
|
||||||
|
mkdir -p $screendir && \
|
||||||
|
/usr/bin/scrot $screendir/$scrotformat
|
||||||
|
# current window
|
||||||
|
bindsym --release Shift+Print exec --no-startup-id \
|
||||||
|
mkdir -p $screendir && \
|
||||||
|
/usr/bin/scrot -u $screendir/$scrotformat
|
||||||
|
# selection
|
||||||
|
bindsym --release $alt+Sys_Req exec --no-startup-id \
|
||||||
|
mkdir -p $screendir && \
|
||||||
|
/usr/bin/scrot -s $screendir/$scrotformat
|
||||||
|
|
||||||
|
# useful utilities
|
||||||
|
exec --no-startup-id \
|
||||||
|
(which xss-lock >/dev/null || /usr/bin/cinnamon-settings-daemon) &
|
||||||
|
exec --no-startup-id gnome-keyring-daemon --start --components=pkcs11,secrets
|
||||||
|
# Make GTK fonts look great again
|
||||||
|
exec --no-startup-id gnome-settings-daemon
|
||||||
|
exec --no-startup-id (sleep 2; nm-applet) &
|
||||||
|
exec --no-startup-id xset r rate 200 20
|
||||||
|
exec --no-startup-id ~/bin/autostart.py
|
||||||
|
|
||||||
|
# customize windows
|
||||||
|
for_window [window_role="pop-up"] floating enable
|
||||||
|
for_window [window_role="bubble"] floating enable
|
||||||
|
for_window [window_role="task_dialog"] floating enable
|
||||||
|
for_window [window_role="Preferences"] floating enable
|
||||||
|
for_window [window_type="dialog"] floating enable
|
||||||
|
for_window [window_type="menu"] floating enable
|
||||||
|
|
||||||
|
for_window [class="^google-chrome$"] border pixel
|
||||||
|
for_window [class="^Google-chrome-beta$"] border pixel
|
||||||
|
for_window [class="^burp-StartBurp$" title="^(?!Burp Suite)"] floating enable
|
||||||
|
|
||||||
|
# no need for borders on the edge of the screen
|
||||||
|
hide_edge_borders both
|
||||||
|
|
||||||
|
# vim:filetype=i3
|
||||||
132
dotfiles/config/i3status/build_config.sh
Executable file
132
dotfiles/config/i3status/build_config.sh
Executable file
@@ -0,0 +1,132 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
function general {
|
||||||
|
cat <<-EOF
|
||||||
|
general {
|
||||||
|
colors = true
|
||||||
|
interval = 5
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function disks {
|
||||||
|
local DISKS=(/ /home)
|
||||||
|
local d
|
||||||
|
local used
|
||||||
|
for d in ${DISKS[@]} ; do
|
||||||
|
local dev=`df $d | tail -1 | awk '{print $1}'`
|
||||||
|
if [[ $used == *$dev* ]] ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
local size=`df $d | tail -1 | awk '{print $2}'`
|
||||||
|
if [ $size -eq 0 ] ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
used="${used} ${dev}"
|
||||||
|
cat <<-EOF
|
||||||
|
disk "${d}" {
|
||||||
|
format = "${d} %avail"
|
||||||
|
}
|
||||||
|
order += "disk ${d}"
|
||||||
|
EOF
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function wireless {
|
||||||
|
which iwconfig >/dev/null || return
|
||||||
|
iwconfig 2>&1 | grep . | grep -vq 'no wireless extensions' || return
|
||||||
|
cat <<-EOF
|
||||||
|
wireless _first_ {
|
||||||
|
format_up = "W: (%quality %essid) %ip"
|
||||||
|
format_down = "W: down"
|
||||||
|
}
|
||||||
|
order += "wireless _first_"
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function wired {
|
||||||
|
cat <<-EOF
|
||||||
|
ethernet _first_ {
|
||||||
|
format_up = "E: %ip"
|
||||||
|
format_down = "E: down"
|
||||||
|
}
|
||||||
|
order += "ethernet _first_"
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function ipv6 {
|
||||||
|
echo "order += \"ipv6\""
|
||||||
|
}
|
||||||
|
|
||||||
|
function load {
|
||||||
|
cat <<-EOF
|
||||||
|
load {
|
||||||
|
format = "%1min %5min"
|
||||||
|
}
|
||||||
|
order += "load"
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function now {
|
||||||
|
cat <<-EOF
|
||||||
|
tztime local {
|
||||||
|
format = "%Y-%m-%d %H:%M"
|
||||||
|
}
|
||||||
|
order += "tztime local"
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery {
|
||||||
|
local bat
|
||||||
|
shopt -s nullglob
|
||||||
|
for bat in /sys/class/power_supply/BAT* ; do
|
||||||
|
local bid=${bat##*BAT}
|
||||||
|
cat <<-EOF
|
||||||
|
battery ${bid} {
|
||||||
|
low_threshold = 15
|
||||||
|
threshold_type = time
|
||||||
|
status_chr = "↑ CHR"
|
||||||
|
status_bat = "↓ BAT"
|
||||||
|
EOF
|
||||||
|
if [ $(bc <<< "$(i3status --version | awk '{print $2}') < 2.11") -eq 0 ] ;
|
||||||
|
then
|
||||||
|
cat <<-EOF
|
||||||
|
status_unk = "? UNK"
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
cat <<-EOF
|
||||||
|
status_full = "FULL"
|
||||||
|
format = "%status %percentage"
|
||||||
|
path = "/sys/class/power_supply/BAT${bid}/uevent"
|
||||||
|
hide_seconds = true
|
||||||
|
last_full_capacity = true
|
||||||
|
}
|
||||||
|
order += "battery ${bid}"
|
||||||
|
EOF
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function audio {
|
||||||
|
cat <<-EOF
|
||||||
|
volume master {
|
||||||
|
format = "♪: %volume"
|
||||||
|
format_muted = "♪: MUTE"
|
||||||
|
device = "default"
|
||||||
|
mixer = "Master"
|
||||||
|
mixer_idx = 0
|
||||||
|
}
|
||||||
|
order += "volume master"
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
general
|
||||||
|
disks
|
||||||
|
wireless
|
||||||
|
wired
|
||||||
|
ipv6
|
||||||
|
load
|
||||||
|
battery
|
||||||
|
audio
|
||||||
|
now
|
||||||
|
|
||||||
|
# vim: noexpandtab
|
||||||
52
dotfiles/config/i3status/config
Normal file
52
dotfiles/config/i3status/config
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# i3status configuration file.
|
||||||
|
# see "man i3status" for documentation.
|
||||||
|
|
||||||
|
# It is important that this file is edited as UTF-8.
|
||||||
|
# The following line should contain a sharp s:
|
||||||
|
# ß
|
||||||
|
# If the above line is not correctly displayed, fix your editor first!
|
||||||
|
|
||||||
|
general {
|
||||||
|
colors = true
|
||||||
|
interval = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
order += "ipv6"
|
||||||
|
order += "disk /"
|
||||||
|
order += "disk /home"
|
||||||
|
order += "wireless _first_"
|
||||||
|
order += "ethernet _first_"
|
||||||
|
order += "battery all"
|
||||||
|
order += "load"
|
||||||
|
order += "tztime local"
|
||||||
|
|
||||||
|
wireless _first_ {
|
||||||
|
format_up = "W: (%quality at %essid) %ip"
|
||||||
|
format_down = "W: down"
|
||||||
|
}
|
||||||
|
|
||||||
|
ethernet _first_ {
|
||||||
|
# if you use %speed, i3status requires root privileges
|
||||||
|
format_up = "E: %ip (%speed)"
|
||||||
|
format_down = "E: down"
|
||||||
|
}
|
||||||
|
|
||||||
|
battery all {
|
||||||
|
format = "%status %percentage %remaining"
|
||||||
|
}
|
||||||
|
|
||||||
|
tztime local {
|
||||||
|
format = "%Y-%m-%d %H:%M:%S"
|
||||||
|
}
|
||||||
|
|
||||||
|
load {
|
||||||
|
format = "%1min"
|
||||||
|
}
|
||||||
|
|
||||||
|
disk "/" {
|
||||||
|
format = "%avail"
|
||||||
|
}
|
||||||
|
|
||||||
|
disk "/home" {
|
||||||
|
format = "%avail"
|
||||||
|
}
|
||||||
11
dotfiles/config/redshift.conf
Normal file
11
dotfiles/config/redshift.conf
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[redshift]
|
||||||
|
temp-day=5700
|
||||||
|
temp-night=4750
|
||||||
|
transition=1
|
||||||
|
brightness-day=1.0
|
||||||
|
brightness-night=0.9
|
||||||
|
adjustment-method=randr
|
||||||
|
|
||||||
|
[manual]
|
||||||
|
lat=37.3
|
||||||
|
lon=-121.9
|
||||||
14
dotfiles/env
Normal file → Executable file
14
dotfiles/env
Normal file → Executable file
@@ -4,21 +4,25 @@ umask 027
|
|||||||
ulimit -c unlimited
|
ulimit -c unlimited
|
||||||
|
|
||||||
# Paths and preferences
|
# Paths and preferences
|
||||||
export PATH="$HOME/bin:/sbin:/usr/sbin:$PATH"
|
|
||||||
export PYTHONPATH="$HOME/.python:$PYTHONPATH"
|
export PYTHONPATH="$HOME/.python:$PYTHONPATH"
|
||||||
export GOPATH="$HOME/.go"
|
export GOPATH="$HOME/Projects/Go"
|
||||||
|
export PATH="$HOME/bin:/sbin:/usr/sbin:$PATH:$GOPATH/bin"
|
||||||
export VISUAL=vim
|
export VISUAL=vim
|
||||||
export EDITOR=vim
|
export EDITOR=vim
|
||||||
export DEBEMAIL="david@systemoverlord.com"
|
export DEBEMAIL="david@systemoverlord.com"
|
||||||
export DEBFULLNAME="David Tomaschik"
|
export DEBFULLNAME="David Tomaschik"
|
||||||
export LESS="-MR"
|
export LESS="-MR"
|
||||||
|
export QUOTING_STYLE="literal" # Coreutils quotes
|
||||||
# Unconditional because /bin/sh sucks
|
|
||||||
export PATH="$PATH:$HOME/.gce/google-cloud-sdk/bin:$HOME/bin/genymotion:$HOME/bin/genymotion/tools:$HOME/bin/google_appengine:$HOME/bin/go_appengine"
|
|
||||||
|
|
||||||
# Fix gnome-terminal
|
# Fix gnome-terminal
|
||||||
if [[ $TERM == "xterm" && $COLORTERM == "gnome-terminal" ]] ; then
|
if [[ $TERM == "xterm" && $COLORTERM == "gnome-terminal" ]] ; then
|
||||||
export TERM="xterm-256color"
|
export TERM="xterm-256color"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# For virtualenvwrapper
|
||||||
|
export WORKON_HOME=$HOME/.virtualenvs
|
||||||
|
|
||||||
|
# GPG full key id
|
||||||
|
export GPG_ID=7FD58D9A196DCEEEAD671F94F4D7A7915DEA789B
|
||||||
|
|
||||||
if [[ -e $HOME/.localenv ]] ; then source $HOME/.localenv ; fi
|
if [[ -e $HOME/.localenv ]] ; then source $HOME/.localenv ; fi
|
||||||
|
|||||||
@@ -22,5 +22,19 @@ define reg
|
|||||||
info registers
|
info registers
|
||||||
end
|
end
|
||||||
|
|
||||||
source ~/.peda/peda.py
|
# Fancy sourcing of modules
|
||||||
source ~/.gdbinit.local
|
python
|
||||||
|
import sys
|
||||||
|
import os.path
|
||||||
|
pwndbg = os.path.expanduser('~/.pwndbg/gdbinit.py')
|
||||||
|
peda = os.path.expanduser('~/.peda/peda.py')
|
||||||
|
if os.path.isfile(pwndbg):
|
||||||
|
sys.path.insert(0, os.path.expanduser('~/.pwndbg/vendor'))
|
||||||
|
gdb.execute('source {}'.format(pwndbg))
|
||||||
|
elif os.path.isfile(peda):
|
||||||
|
gdb.execute('source {}'.format(peda))
|
||||||
|
|
||||||
|
local_init = os.path.expanduser('~/.gdbinit.local')
|
||||||
|
if os.path.isfile(local_init):
|
||||||
|
gdb.execute('source {}'.format(local_init))
|
||||||
|
end
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
2
dotfiles/gnupg/dirmngr.conf
Normal file
2
dotfiles/gnupg/dirmngr.conf
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
keyserver hkps://hkps.pool.sks-keyservers.net
|
||||||
|
hkp-cacert ~/.gnupg/sks-keyservers.pem
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
use-standard-socket
|
|
||||||
default-cache-ttl 7200
|
default-cache-ttl 7200
|
||||||
default-cache-ttl-ssh 7200
|
default-cache-ttl-ssh 7200
|
||||||
max-cache-ttl 86400
|
max-cache-ttl 86400
|
||||||
max-cache-ttl-ssh 86400
|
max-cache-ttl-ssh 86400
|
||||||
|
enable-ssh-support
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
use-agent
|
use-agent
|
||||||
# HKPS requires gnupg-curl for gpg1
|
# HKPS requires gnupg-curl for gpg1
|
||||||
keyserver hkps://hkps.pool.sks-keyservers.net
|
keyserver hkps://hkps.pool.sks-keyservers.net
|
||||||
# Unfortunately, the path must be fully-qualified
|
keyserver-options auto-key-retrieve no-honor-keyserver-url
|
||||||
keyserver-options auto-key-retrieve ca-cert-file=/home/david/.gnupg/sks-keyservers.pem
|
|
||||||
auto-key-locate keyserver
|
auto-key-locate keyserver
|
||||||
personal-digest-preferences SHA256
|
personal-digest-preferences SHA256
|
||||||
cert-digest-algo SHA256
|
cert-digest-algo SHA256
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
2982
dotfiles/lldb/lisa.py
Normal file
2982
dotfiles/lldb/lisa.py
Normal file
File diff suppressed because it is too large
Load Diff
6
dotfiles/lldbinit
Normal file
6
dotfiles/lldbinit
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
settings set prompt "(lisa)"
|
||||||
|
settings set target.x86-disassembly-flavor intel
|
||||||
|
command script import ~/lisa.py
|
||||||
|
command script import lldb
|
||||||
|
command script add -f lisa.alias lisa
|
||||||
|
lisa
|
||||||
25
dotfiles/profile
Normal file → Executable file
25
dotfiles/profile
Normal file → Executable file
@@ -1,18 +1,7 @@
|
|||||||
# Setup GPG Agent
|
# Always load ENV
|
||||||
GPG_AGENT_INFO_PATH=$HOME/.gnupg/gpg-agent-info-`hostname`
|
test -f "$HOME/.env" && . "$HOME/.env"
|
||||||
if test -f $GPG_AGENT_INFO_PATH && kill -0 `cut -d: -f 2 $GPG_AGENT_INFO_PATH` 2>/dev/null ; then
|
|
||||||
. $GPG_AGENT_INFO_PATH
|
test -f "${HOME}/.profile.local" && . "${HOME}/.profile.local"
|
||||||
export GPG_AGENT_INFO SSH_AUTH_SOCK SSH_AGENT_PID
|
|
||||||
else
|
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
|
||||||
if which gpg-agent >/dev/null 2>&1 ; then
|
export PATH="$PATH:$HOME/.rvm/bin"
|
||||||
if [ -z "$SSH_AUTH_SOCK" ] ; then
|
|
||||||
gpg-agent -q 2>/dev/null || eval `gpg-agent --daemon --enable-ssh-support --write-env-file $GPG_AGENT_INFO_PATH` 2>/dev/null
|
|
||||||
else
|
|
||||||
gpg-agent -q 2>/dev/null || eval `gpg-agent --daemon --write-env-file $GPG_AGENT_INFO_PATH` 2>/dev/null
|
|
||||||
fi
|
|
||||||
export GPG_AGENT_INFO SSH_AUTH_SOCK SSH_AGENT_PID
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
unset GPG_AGENT_INFO_PATH
|
|
||||||
export GPG_TTY=`tty`
|
|
||||||
# End GPG
|
|
||||||
|
|||||||
@@ -5,3 +5,8 @@ Downloads
|
|||||||
.wine
|
.wine
|
||||||
.thumbnails
|
.thumbnails
|
||||||
.histfile
|
.histfile
|
||||||
|
.zcompdump
|
||||||
|
.zcompdump*
|
||||||
|
.sqlite_history
|
||||||
|
VirtualBox VMs
|
||||||
|
Audits
|
||||||
|
|||||||
@@ -2,9 +2,6 @@
|
|||||||
# Never fall back to protocol 1: it's broken
|
# Never fall back to protocol 1: it's broken
|
||||||
Protocol 2
|
Protocol 2
|
||||||
|
|
||||||
Host scoreboard
|
|
||||||
Hostname 104.131.136.220
|
|
||||||
|
|
||||||
# Defaults (May be Overridden)
|
# Defaults (May be Overridden)
|
||||||
Host *
|
Host *
|
||||||
ControlMaster auto
|
ControlMaster auto
|
||||||
@@ -15,3 +12,8 @@ Host *
|
|||||||
ForwardX11Trusted no
|
ForwardX11Trusted no
|
||||||
ServerAliveInterval 120
|
ServerAliveInterval 120
|
||||||
CheckHostIP no
|
CheckHostIP no
|
||||||
|
|
||||||
|
Host warzone
|
||||||
|
Hostname warzone.shadowcats.club
|
||||||
|
Port 22
|
||||||
|
User matir
|
||||||
|
|||||||
@@ -14,10 +14,6 @@ set -g history-limit 10000
|
|||||||
set -g base-index 1
|
set -g base-index 1
|
||||||
set -g pane-base-index 1
|
set -g pane-base-index 1
|
||||||
|
|
||||||
# Let us use utf-8 drawing characters to make tab-like window formats
|
|
||||||
setw -g utf8 on
|
|
||||||
set -g status-utf8 on
|
|
||||||
|
|
||||||
# Terminal emulator window title
|
# Terminal emulator window title
|
||||||
set -g set-titles on
|
set -g set-titles on
|
||||||
set -g set-titles-string '#h:#S:#I.#P #W'
|
set -g set-titles-string '#h:#S:#I.#P #W'
|
||||||
|
|||||||
@@ -7,16 +7,20 @@ if filereadable(glob("~/.vim/bundle/Vundle.vim/README.md"))
|
|||||||
set rtp+=~/.vim/bundle/Vundle.vim
|
set rtp+=~/.vim/bundle/Vundle.vim
|
||||||
call vundle#begin()
|
call vundle#begin()
|
||||||
Plugin 'gmarik/Vundle.vim'
|
Plugin 'gmarik/Vundle.vim'
|
||||||
Plugin 'eistaa/vim-flake8'
|
Plugin 'nvie/vim-flake8'
|
||||||
|
Plugin 'tell-k/vim-autopep8'
|
||||||
Plugin 'tpope/vim-fugitive'
|
Plugin 'tpope/vim-fugitive'
|
||||||
Plugin 'mileszs/ack.vim'
|
Plugin 'mileszs/ack.vim'
|
||||||
Plugin 'tpope/vim-unimpaired'
|
Plugin 'tpope/vim-unimpaired'
|
||||||
Plugin 'scrooloose/syntastic'
|
Plugin 'scrooloose/syntastic'
|
||||||
Plugin 'mattn/webapi-vim'
|
Plugin 'mattn/webapi-vim'
|
||||||
Plugin 'mattn/gist-vim'
|
Plugin 'mattn/gist-vim'
|
||||||
Plugin 'fatih/vim-go'
|
|
||||||
Plugin 'altercation/vim-colors-solarized'
|
Plugin 'altercation/vim-colors-solarized'
|
||||||
Plugin 'vimoutliner/vimoutliner'
|
Plugin 'vimoutliner/vimoutliner'
|
||||||
|
Plugin 'PotatoesMaster/i3-vim-syntax'
|
||||||
|
Plugin 'Matt-Deacalion/vim-systemd-syntax'
|
||||||
|
Plugin 'fatih/vim-go'
|
||||||
|
Plugin 'vhda/verilog_systemverilog.vim'
|
||||||
call vundle#end()
|
call vundle#end()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -58,10 +62,13 @@ if has('gui_running')
|
|||||||
set guifont=Inconsolata\ Medium\ 12
|
set guifont=Inconsolata\ Medium\ 12
|
||||||
else
|
else
|
||||||
let g:solarized_termcolors=256
|
let g:solarized_termcolors=256
|
||||||
|
let g:solarized_termtrans=1
|
||||||
endif
|
endif
|
||||||
silent! colorscheme solarized
|
silent! colorscheme solarized
|
||||||
" Enable filetype support
|
" Enable filetype support
|
||||||
filetype plugin indent on
|
filetype plugin indent on
|
||||||
|
" Default ASM syntax for ft support
|
||||||
|
let asmsyntax="nasm"
|
||||||
" Allow file modelines
|
" Allow file modelines
|
||||||
set modeline
|
set modeline
|
||||||
" Automatically re-read changed files
|
" Automatically re-read changed files
|
||||||
@@ -129,6 +136,8 @@ endfunction
|
|||||||
" Options for syntastic
|
" Options for syntastic
|
||||||
let g:syntastic_enable_signs = 1
|
let g:syntastic_enable_signs = 1
|
||||||
let g:syntastic_auto_loc_list = 2
|
let g:syntastic_auto_loc_list = 2
|
||||||
|
let g:syntastic_go_checkers = ['govet', 'errcheck', 'go']
|
||||||
|
|
||||||
" Have F5 run the tests and display errors
|
" Have F5 run the tests and display errors
|
||||||
nnoremap <silent> <F5> :SyntasticCheck<CR> :Errors<CR>
|
nnoremap <silent> <F5> :SyntasticCheck<CR> :Errors<CR>
|
||||||
|
|
||||||
@@ -139,3 +148,17 @@ endif
|
|||||||
|
|
||||||
" Options for vimoutliner
|
" Options for vimoutliner
|
||||||
autocmd Filetype votl setlocal sts=4
|
autocmd Filetype votl setlocal sts=4
|
||||||
|
|
||||||
|
" Highlight whitespace at end of file
|
||||||
|
highlight ExtraWhitespace ctermbg=red guibg=red
|
||||||
|
autocmd Syntax * syn match ExtraWhitespace /\s\+$\| \+\ze\t/ containedin=ALL
|
||||||
|
|
||||||
|
" Color column at end of lines
|
||||||
|
set colorcolumn=+1
|
||||||
|
highlight ColorColumn ctermbg=black guibg=lightgrey
|
||||||
|
|
||||||
|
" Remove smart quotes
|
||||||
|
command Unsmartquote %s/“\|”/"/g
|
||||||
|
|
||||||
|
" Markdown options
|
||||||
|
autocmd Filetype markdown set expandtab shiftwidth=4
|
||||||
|
|||||||
41
dotfiles/weechat/alias.conf
Normal file
41
dotfiles/weechat/alias.conf
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#
|
||||||
|
# weechat -- alias.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[cmd]
|
||||||
|
AAWAY = "allserv /away"
|
||||||
|
AME = "allchan /me"
|
||||||
|
AMSG = "allchan /msg *"
|
||||||
|
ANICK = "allserv /nick"
|
||||||
|
BEEP = "print -beep"
|
||||||
|
BYE = "quit"
|
||||||
|
C = "buffer clear"
|
||||||
|
CHAT = "dcc chat"
|
||||||
|
CL = "buffer clear"
|
||||||
|
CLOSE = "buffer close"
|
||||||
|
EXIT = "quit"
|
||||||
|
IG = "ignore"
|
||||||
|
J = "join"
|
||||||
|
K = "kick"
|
||||||
|
KB = "kickban"
|
||||||
|
LEAVE = "part"
|
||||||
|
M = "msg"
|
||||||
|
MSGBUF = "command -buffer $1 * /input send $2-"
|
||||||
|
MUB = "unban *"
|
||||||
|
N = "names"
|
||||||
|
Q = "query"
|
||||||
|
REDRAW = "window refresh"
|
||||||
|
SAY = "msg *"
|
||||||
|
SIGNOFF = "quit"
|
||||||
|
T = "topic"
|
||||||
|
UB = "unban"
|
||||||
|
UMODE = "mode $nick"
|
||||||
|
V = "command core version"
|
||||||
|
W = "who"
|
||||||
|
WC = "window merge"
|
||||||
|
WI = "whois"
|
||||||
|
WII = "whois $1 $1"
|
||||||
|
WW = "whowas"
|
||||||
|
|
||||||
|
[completion]
|
||||||
|
MSGBUF = "%(buffers_plugins_names)"
|
||||||
20
dotfiles/weechat/aspell.conf
Normal file
20
dotfiles/weechat/aspell.conf
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#
|
||||||
|
# weechat -- aspell.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[color]
|
||||||
|
misspelled = lightred
|
||||||
|
suggestions = default
|
||||||
|
|
||||||
|
[check]
|
||||||
|
commands = "ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"
|
||||||
|
default_dict = ""
|
||||||
|
during_search = off
|
||||||
|
enabled = off
|
||||||
|
real_time = off
|
||||||
|
suggestions = -1
|
||||||
|
word_min_length = 2
|
||||||
|
|
||||||
|
[dict]
|
||||||
|
|
||||||
|
[option]
|
||||||
11
dotfiles/weechat/charset.conf
Normal file
11
dotfiles/weechat/charset.conf
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#
|
||||||
|
# weechat -- charset.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[default]
|
||||||
|
decode = "iso-8859-1"
|
||||||
|
encode = ""
|
||||||
|
|
||||||
|
[decode]
|
||||||
|
|
||||||
|
[encode]
|
||||||
11
dotfiles/weechat/exec.conf
Normal file
11
dotfiles/weechat/exec.conf
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#
|
||||||
|
# weechat -- exec.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[command]
|
||||||
|
default_options = ""
|
||||||
|
purge_delay = 0
|
||||||
|
|
||||||
|
[color]
|
||||||
|
flag_finished = lightred
|
||||||
|
flag_running = lightgreen
|
||||||
377
dotfiles/weechat/irc.conf
Normal file
377
dotfiles/weechat/irc.conf
Normal file
@@ -0,0 +1,377 @@
|
|||||||
|
#
|
||||||
|
# weechat -- irc.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
buffer_open_before_autojoin = on
|
||||||
|
buffer_open_before_join = off
|
||||||
|
buffer_switch_autojoin = on
|
||||||
|
buffer_switch_join = on
|
||||||
|
color_nicks_in_names = off
|
||||||
|
color_nicks_in_nicklist = off
|
||||||
|
color_nicks_in_server_messages = on
|
||||||
|
color_pv_nick_like_channel = on
|
||||||
|
ctcp_time_format = "%a, %d %b %Y %T %z"
|
||||||
|
display_away = local
|
||||||
|
display_ctcp_blocked = on
|
||||||
|
display_ctcp_reply = on
|
||||||
|
display_ctcp_unknown = on
|
||||||
|
display_host_join = on
|
||||||
|
display_host_join_local = on
|
||||||
|
display_host_quit = on
|
||||||
|
display_join_message = "329,332,333,366"
|
||||||
|
display_old_topic = on
|
||||||
|
display_pv_away_once = on
|
||||||
|
display_pv_back = on
|
||||||
|
highlight_channel = "$nick"
|
||||||
|
highlight_pv = "$nick"
|
||||||
|
highlight_server = "$nick"
|
||||||
|
highlight_tags_restrict = "irc_privmsg,irc_notice"
|
||||||
|
item_channel_modes_hide_args = "k"
|
||||||
|
item_display_server = buffer_plugin
|
||||||
|
item_nick_modes = on
|
||||||
|
item_nick_prefix = on
|
||||||
|
join_auto_add_chantype = off
|
||||||
|
msgbuffer_fallback = current
|
||||||
|
new_channel_position = none
|
||||||
|
new_pv_position = none
|
||||||
|
nick_completion_smart = speakers
|
||||||
|
nick_mode = prefix
|
||||||
|
nick_mode_empty = off
|
||||||
|
nicks_hide_password = "nickserv"
|
||||||
|
notice_as_pv = auto
|
||||||
|
notice_welcome_redirect = on
|
||||||
|
notice_welcome_tags = ""
|
||||||
|
notify_tags_ison = "notify_message"
|
||||||
|
notify_tags_whois = "notify_message"
|
||||||
|
part_closes_buffer = on
|
||||||
|
pv_buffer = independent
|
||||||
|
pv_tags = "notify_private"
|
||||||
|
raw_messages = 256
|
||||||
|
server_buffer = merge_with_core
|
||||||
|
smart_filter = on
|
||||||
|
smart_filter_delay = 5
|
||||||
|
smart_filter_join = on
|
||||||
|
smart_filter_join_unmask = 30
|
||||||
|
smart_filter_mode = "+"
|
||||||
|
smart_filter_nick = on
|
||||||
|
smart_filter_quit = on
|
||||||
|
temporary_servers = off
|
||||||
|
topic_strip_colors = off
|
||||||
|
|
||||||
|
[color]
|
||||||
|
input_nick = lightcyan
|
||||||
|
item_channel_modes = default
|
||||||
|
item_lag_counting = default
|
||||||
|
item_lag_finished = yellow
|
||||||
|
item_nick_modes = default
|
||||||
|
message_join = green
|
||||||
|
message_quit = red
|
||||||
|
mirc_remap = "1,-1:darkgray"
|
||||||
|
nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
|
||||||
|
notice = green
|
||||||
|
reason_quit = default
|
||||||
|
topic_current = default
|
||||||
|
topic_new = white
|
||||||
|
topic_old = default
|
||||||
|
|
||||||
|
[network]
|
||||||
|
autoreconnect_delay_growing = 2
|
||||||
|
autoreconnect_delay_max = 600
|
||||||
|
ban_mask_default = "*!$ident@$host"
|
||||||
|
channel_encode = off
|
||||||
|
colors_receive = on
|
||||||
|
colors_send = on
|
||||||
|
lag_check = 60
|
||||||
|
lag_max = 1800
|
||||||
|
lag_min_show = 500
|
||||||
|
lag_reconnect = 0
|
||||||
|
lag_refresh_interval = 1
|
||||||
|
notify_check_ison = 1
|
||||||
|
notify_check_whois = 5
|
||||||
|
sasl_fail_unavailable = on
|
||||||
|
send_unknown_commands = off
|
||||||
|
whois_double_nick = off
|
||||||
|
|
||||||
|
[msgbuffer]
|
||||||
|
|
||||||
|
[ctcp]
|
||||||
|
|
||||||
|
[ignore]
|
||||||
|
|
||||||
|
[server_default]
|
||||||
|
addresses = ""
|
||||||
|
anti_flood_prio_high = 2
|
||||||
|
anti_flood_prio_low = 2
|
||||||
|
autoconnect = off
|
||||||
|
autojoin = ""
|
||||||
|
autoreconnect = on
|
||||||
|
autoreconnect_delay = 10
|
||||||
|
autorejoin = off
|
||||||
|
autorejoin_delay = 30
|
||||||
|
away_check = 0
|
||||||
|
away_check_max_nicks = 25
|
||||||
|
capabilities = ""
|
||||||
|
command = ""
|
||||||
|
command_delay = 0
|
||||||
|
connection_timeout = 60
|
||||||
|
ipv6 = on
|
||||||
|
local_hostname = ""
|
||||||
|
msg_kick = ""
|
||||||
|
msg_part = "WeeChat ${info:version}"
|
||||||
|
msg_quit = "WeeChat ${info:version}"
|
||||||
|
nicks = "Matir,Matir~,Matir[]"
|
||||||
|
nicks_alternate = on
|
||||||
|
notify = ""
|
||||||
|
password = ""
|
||||||
|
proxy = ""
|
||||||
|
realname = ""
|
||||||
|
sasl_fail = continue
|
||||||
|
sasl_key = ""
|
||||||
|
sasl_mechanism = plain
|
||||||
|
sasl_password = ""
|
||||||
|
sasl_timeout = 15
|
||||||
|
sasl_username = ""
|
||||||
|
ssl = off
|
||||||
|
ssl_cert = ""
|
||||||
|
ssl_dhkey_size = 2048
|
||||||
|
ssl_fingerprint = ""
|
||||||
|
ssl_priorities = "NORMAL"
|
||||||
|
ssl_verify = on
|
||||||
|
username = "matir"
|
||||||
|
|
||||||
|
[server]
|
||||||
|
freenode.addresses = "chat.freenode.net/7000"
|
||||||
|
freenode.proxy
|
||||||
|
freenode.ipv6
|
||||||
|
freenode.ssl = on
|
||||||
|
freenode.ssl_cert = "%h/certs/freenode-matir.pem"
|
||||||
|
freenode.ssl_priorities
|
||||||
|
freenode.ssl_dhkey_size
|
||||||
|
freenode.ssl_fingerprint
|
||||||
|
freenode.ssl_verify = on
|
||||||
|
freenode.password
|
||||||
|
freenode.capabilities
|
||||||
|
freenode.sasl_mechanism
|
||||||
|
freenode.sasl_username
|
||||||
|
freenode.sasl_password
|
||||||
|
freenode.sasl_key
|
||||||
|
freenode.sasl_timeout
|
||||||
|
freenode.sasl_fail
|
||||||
|
freenode.autoconnect = on
|
||||||
|
freenode.autoreconnect
|
||||||
|
freenode.autoreconnect_delay
|
||||||
|
freenode.nicks = "Matir,Matir~"
|
||||||
|
freenode.nicks_alternate
|
||||||
|
freenode.username
|
||||||
|
freenode.realname
|
||||||
|
freenode.local_hostname
|
||||||
|
freenode.command
|
||||||
|
freenode.command_delay
|
||||||
|
freenode.autojoin = "#kali-linux,#openvpn,#radare,#vulnhub,#offsec,#offtopicsec,##ctfcompetition,#dc404,#droidsec"
|
||||||
|
freenode.autorejoin
|
||||||
|
freenode.autorejoin_delay
|
||||||
|
freenode.connection_timeout
|
||||||
|
freenode.anti_flood_prio_high
|
||||||
|
freenode.anti_flood_prio_low
|
||||||
|
freenode.away_check
|
||||||
|
freenode.away_check_max_nicks
|
||||||
|
freenode.msg_kick
|
||||||
|
freenode.msg_part
|
||||||
|
freenode.msg_quit
|
||||||
|
freenode.notify
|
||||||
|
hak5.addresses = "irc.hak5.org/6697"
|
||||||
|
hak5.proxy
|
||||||
|
hak5.ipv6
|
||||||
|
hak5.ssl = on
|
||||||
|
hak5.ssl_cert = "%h/certs/freenode-matir.pem"
|
||||||
|
hak5.ssl_priorities
|
||||||
|
hak5.ssl_dhkey_size
|
||||||
|
hak5.ssl_fingerprint
|
||||||
|
hak5.ssl_verify = off
|
||||||
|
hak5.password
|
||||||
|
hak5.capabilities
|
||||||
|
hak5.sasl_mechanism
|
||||||
|
hak5.sasl_username
|
||||||
|
hak5.sasl_password
|
||||||
|
hak5.sasl_key
|
||||||
|
hak5.sasl_timeout
|
||||||
|
hak5.sasl_fail
|
||||||
|
hak5.autoconnect = on
|
||||||
|
hak5.autoreconnect
|
||||||
|
hak5.autoreconnect_delay
|
||||||
|
hak5.nicks
|
||||||
|
hak5.nicks_alternate
|
||||||
|
hak5.username
|
||||||
|
hak5.realname
|
||||||
|
hak5.local_hostname
|
||||||
|
hak5.command
|
||||||
|
hak5.command_delay
|
||||||
|
hak5.autojoin = "#hak5,#pineapple,#ducky,#SDR,#lanturtle,#bashbunny"
|
||||||
|
hak5.autorejoin
|
||||||
|
hak5.autorejoin_delay
|
||||||
|
hak5.connection_timeout
|
||||||
|
hak5.anti_flood_prio_high
|
||||||
|
hak5.anti_flood_prio_low
|
||||||
|
hak5.away_check
|
||||||
|
hak5.away_check_max_nicks
|
||||||
|
hak5.msg_kick
|
||||||
|
hak5.msg_part
|
||||||
|
hak5.msg_quit
|
||||||
|
hak5.notify
|
||||||
|
rpisec.addresses = "irc.rpis.ec/6697"
|
||||||
|
rpisec.proxy
|
||||||
|
rpisec.ipv6
|
||||||
|
rpisec.ssl = on
|
||||||
|
rpisec.ssl_cert
|
||||||
|
rpisec.ssl_priorities
|
||||||
|
rpisec.ssl_dhkey_size
|
||||||
|
rpisec.ssl_fingerprint
|
||||||
|
rpisec.ssl_verify = on
|
||||||
|
rpisec.password
|
||||||
|
rpisec.capabilities
|
||||||
|
rpisec.sasl_mechanism
|
||||||
|
rpisec.sasl_username
|
||||||
|
rpisec.sasl_password
|
||||||
|
rpisec.sasl_key
|
||||||
|
rpisec.sasl_timeout
|
||||||
|
rpisec.sasl_fail
|
||||||
|
rpisec.autoconnect = on
|
||||||
|
rpisec.autoreconnect
|
||||||
|
rpisec.autoreconnect_delay
|
||||||
|
rpisec.nicks
|
||||||
|
rpisec.nicks_alternate
|
||||||
|
rpisec.username
|
||||||
|
rpisec.realname
|
||||||
|
rpisec.local_hostname
|
||||||
|
rpisec.command
|
||||||
|
rpisec.command_delay
|
||||||
|
rpisec.autojoin = "#rpisec"
|
||||||
|
rpisec.autorejoin
|
||||||
|
rpisec.autorejoin_delay
|
||||||
|
rpisec.connection_timeout
|
||||||
|
rpisec.anti_flood_prio_high
|
||||||
|
rpisec.anti_flood_prio_low
|
||||||
|
rpisec.away_check
|
||||||
|
rpisec.away_check_max_nicks
|
||||||
|
rpisec.msg_kick
|
||||||
|
rpisec.msg_part
|
||||||
|
rpisec.msg_quit
|
||||||
|
rpisec.notify
|
||||||
|
overthewire.addresses = "ircs.overthewire.org/6697"
|
||||||
|
overthewire.proxy
|
||||||
|
overthewire.ipv6
|
||||||
|
overthewire.ssl = on
|
||||||
|
overthewire.ssl_cert = "%h/certs/freenode-matir.pem"
|
||||||
|
overthewire.ssl_priorities
|
||||||
|
overthewire.ssl_dhkey_size
|
||||||
|
overthewire.ssl_fingerprint
|
||||||
|
overthewire.ssl_verify = on
|
||||||
|
overthewire.password
|
||||||
|
overthewire.capabilities
|
||||||
|
overthewire.sasl_mechanism
|
||||||
|
overthewire.sasl_username
|
||||||
|
overthewire.sasl_password
|
||||||
|
overthewire.sasl_key
|
||||||
|
overthewire.sasl_timeout
|
||||||
|
overthewire.sasl_fail
|
||||||
|
overthewire.autoconnect = on
|
||||||
|
overthewire.autoreconnect
|
||||||
|
overthewire.autoreconnect_delay
|
||||||
|
overthewire.nicks
|
||||||
|
overthewire.nicks_alternate
|
||||||
|
overthewire.username
|
||||||
|
overthewire.realname
|
||||||
|
overthewire.local_hostname
|
||||||
|
overthewire.command
|
||||||
|
overthewire.command_delay
|
||||||
|
overthewire.autojoin = "#wargames,#social,#amateria,#io"
|
||||||
|
overthewire.autorejoin
|
||||||
|
overthewire.autorejoin_delay
|
||||||
|
overthewire.connection_timeout
|
||||||
|
overthewire.anti_flood_prio_high
|
||||||
|
overthewire.anti_flood_prio_low
|
||||||
|
overthewire.away_check
|
||||||
|
overthewire.away_check_max_nicks
|
||||||
|
overthewire.msg_kick
|
||||||
|
overthewire.msg_part
|
||||||
|
overthewire.msg_quit
|
||||||
|
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
|
||||||
14
dotfiles/weechat/letsencrypt.sh
Executable file
14
dotfiles/weechat/letsencrypt.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Update the weechat SSL key. Should be called from cron via sudo.
|
||||||
|
|
||||||
|
eval WEEDIR="$(printf "~%q/.weechat/" "${SUDO_USER}")"
|
||||||
|
LIVEKEY="${WEEDIR}/ssl/relay.pem"
|
||||||
|
|
||||||
|
certbot renew -q
|
||||||
|
cat /etc/letsencrypt/live/$(hostname -f)/{privkey,fullchain}.pem > \
|
||||||
|
${LIVEKEY}
|
||||||
|
chown ${SUDO_USER}:$(id -gn ${SUDO_USER}) ${LIVEKEY}
|
||||||
|
for fifo in ${WEEDIR}/weechat_fifo* ; do
|
||||||
|
echo '*/relay sslcertkey' > ${fifo}
|
||||||
|
done
|
||||||
26
dotfiles/weechat/logger.conf
Normal file
26
dotfiles/weechat/logger.conf
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#
|
||||||
|
# weechat -- logger.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
backlog = 20
|
||||||
|
|
||||||
|
[color]
|
||||||
|
backlog_end = default
|
||||||
|
backlog_line = default
|
||||||
|
|
||||||
|
[file]
|
||||||
|
auto_log = on
|
||||||
|
flush_delay = 120
|
||||||
|
info_lines = off
|
||||||
|
mask = "$plugin.$name.weechatlog"
|
||||||
|
name_lower_case = on
|
||||||
|
nick_prefix = ""
|
||||||
|
nick_suffix = ""
|
||||||
|
path = "%h/logs/"
|
||||||
|
replacement_char = "_"
|
||||||
|
time_format = "%Y-%m-%d %H:%M:%S"
|
||||||
|
|
||||||
|
[level]
|
||||||
|
|
||||||
|
[mask]
|
||||||
15
dotfiles/weechat/plugins.conf
Normal file
15
dotfiles/weechat/plugins.conf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#
|
||||||
|
# weechat -- plugins.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[var]
|
||||||
|
fifo.fifo = "on"
|
||||||
|
guile.check_license = "off"
|
||||||
|
javascript.check_license = "off"
|
||||||
|
lua.check_license = "off"
|
||||||
|
perl.check_license = "off"
|
||||||
|
python.check_license = "off"
|
||||||
|
ruby.check_license = "off"
|
||||||
|
tcl.check_license = "off"
|
||||||
|
|
||||||
|
[desc]
|
||||||
42
dotfiles/weechat/relay.conf
Normal file
42
dotfiles/weechat/relay.conf
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
#
|
||||||
|
# weechat -- relay.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
auto_open_buffer = on
|
||||||
|
raw_messages = 256
|
||||||
|
|
||||||
|
[color]
|
||||||
|
client = cyan
|
||||||
|
status_active = lightblue
|
||||||
|
status_auth_failed = lightred
|
||||||
|
status_connecting = yellow
|
||||||
|
status_disconnected = lightred
|
||||||
|
status_waiting_auth = brown
|
||||||
|
text = default
|
||||||
|
text_bg = default
|
||||||
|
text_selected = white
|
||||||
|
|
||||||
|
[network]
|
||||||
|
allow_empty_password = off
|
||||||
|
allowed_ips = ""
|
||||||
|
bind_address = ""
|
||||||
|
clients_purge_delay = 0
|
||||||
|
compression_level = 6
|
||||||
|
ipv6 = on
|
||||||
|
max_clients = 5
|
||||||
|
password = "${sec.data.relay_password}"
|
||||||
|
ssl_cert_key = "%h/ssl/relay.pem"
|
||||||
|
ssl_priorities = "NORMAL:-VERS-SSL3.0"
|
||||||
|
websocket_allowed_origins = ""
|
||||||
|
|
||||||
|
[irc]
|
||||||
|
backlog_max_minutes = 1440
|
||||||
|
backlog_max_number = 256
|
||||||
|
backlog_since_last_disconnect = on
|
||||||
|
backlog_since_last_message = off
|
||||||
|
backlog_tags = "irc_privmsg"
|
||||||
|
backlog_time_format = "[%H:%M] "
|
||||||
|
|
||||||
|
[port]
|
||||||
|
ssl.weechat = 9001
|
||||||
50
dotfiles/weechat/script.conf
Normal file
50
dotfiles/weechat/script.conf
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
#
|
||||||
|
# weechat -- script.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
columns = "%s %n %V %v %u | %d | %t"
|
||||||
|
diff_color = on
|
||||||
|
diff_command = "auto"
|
||||||
|
display_source = on
|
||||||
|
quiet_actions = on
|
||||||
|
sort = "p,n"
|
||||||
|
translate_description = on
|
||||||
|
use_keys = on
|
||||||
|
|
||||||
|
[color]
|
||||||
|
status_autoloaded = cyan
|
||||||
|
status_held = white
|
||||||
|
status_installed = lightcyan
|
||||||
|
status_obsolete = lightmagenta
|
||||||
|
status_popular = yellow
|
||||||
|
status_running = lightgreen
|
||||||
|
status_unknown = lightred
|
||||||
|
text = default
|
||||||
|
text_bg = default
|
||||||
|
text_bg_selected = red
|
||||||
|
text_date = default
|
||||||
|
text_date_selected = white
|
||||||
|
text_delimiters = default
|
||||||
|
text_description = default
|
||||||
|
text_description_selected = white
|
||||||
|
text_extension = default
|
||||||
|
text_extension_selected = white
|
||||||
|
text_name = cyan
|
||||||
|
text_name_selected = lightcyan
|
||||||
|
text_selected = white
|
||||||
|
text_tags = brown
|
||||||
|
text_tags_selected = yellow
|
||||||
|
text_version = magenta
|
||||||
|
text_version_loaded = default
|
||||||
|
text_version_loaded_selected = white
|
||||||
|
text_version_selected = lightmagenta
|
||||||
|
|
||||||
|
[scripts]
|
||||||
|
autoload = on
|
||||||
|
cache_expire = 1440
|
||||||
|
download_timeout = 30
|
||||||
|
hold = ""
|
||||||
|
path = "%h/script"
|
||||||
|
url = "http://weechat.org/files/plugins.xml.gz"
|
||||||
|
url_force_https = on
|
||||||
13
dotfiles/weechat/sec.conf
Normal file
13
dotfiles/weechat/sec.conf
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#
|
||||||
|
# weechat -- sec.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[crypt]
|
||||||
|
cipher = aes256
|
||||||
|
hash_algo = sha256
|
||||||
|
passphrase_file = "~/.weechat-passphrase"
|
||||||
|
salt = on
|
||||||
|
|
||||||
|
[data]
|
||||||
|
__passphrase__ = on
|
||||||
|
relay_password = "D1FD30C08951B1A5BCBBB7EE6AAFB6AF9B86017B353182A1CA8826D5A98EB88E7E723591C544FC41A6913EA67E8764E50BDD8A5AD3D0A0"
|
||||||
52
dotfiles/weechat/trigger.conf
Normal file
52
dotfiles/weechat/trigger.conf
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#
|
||||||
|
# weechat -- trigger.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
enabled = on
|
||||||
|
monitor_strip_colors = off
|
||||||
|
|
||||||
|
[color]
|
||||||
|
flag_command = lightgreen
|
||||||
|
flag_conditions = yellow
|
||||||
|
flag_post_action = lightblue
|
||||||
|
flag_regex = lightcyan
|
||||||
|
flag_return_code = lightmagenta
|
||||||
|
regex = white
|
||||||
|
replace = cyan
|
||||||
|
trigger = green
|
||||||
|
trigger_disabled = red
|
||||||
|
|
||||||
|
[trigger]
|
||||||
|
beep.arguments = ""
|
||||||
|
beep.command = "/print -beep"
|
||||||
|
beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
|
||||||
|
beep.enabled = on
|
||||||
|
beep.hook = print
|
||||||
|
beep.post_action = none
|
||||||
|
beep.regex = ""
|
||||||
|
beep.return_code = ok
|
||||||
|
cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
|
||||||
|
cmd_pass.command = ""
|
||||||
|
cmd_pass.conditions = ""
|
||||||
|
cmd_pass.enabled = on
|
||||||
|
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.return_code = ok
|
||||||
|
msg_auth.arguments = "5000|irc_message_auth"
|
||||||
|
msg_auth.command = ""
|
||||||
|
msg_auth.conditions = ""
|
||||||
|
msg_auth.enabled = on
|
||||||
|
msg_auth.hook = modifier
|
||||||
|
msg_auth.post_action = none
|
||||||
|
msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==$1$.*+"
|
||||||
|
msg_auth.return_code = ok
|
||||||
|
server_pass.arguments = "5000|input_text_display;5000|history_add"
|
||||||
|
server_pass.command = ""
|
||||||
|
server_pass.conditions = ""
|
||||||
|
server_pass.enabled = on
|
||||||
|
server_pass.hook = modifier
|
||||||
|
server_pass.post_action = none
|
||||||
|
server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==$1$.*4$5"
|
||||||
|
server_pass.return_code = ok
|
||||||
595
dotfiles/weechat/weechat.conf
Normal file
595
dotfiles/weechat/weechat.conf
Normal file
@@ -0,0 +1,595 @@
|
|||||||
|
#
|
||||||
|
# weechat -- weechat.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[debug]
|
||||||
|
|
||||||
|
[startup]
|
||||||
|
command_after_plugins = ""
|
||||||
|
command_before_plugins = ""
|
||||||
|
display_logo = on
|
||||||
|
display_version = on
|
||||||
|
sys_rlimit = ""
|
||||||
|
|
||||||
|
[look]
|
||||||
|
align_end_of_lines = message
|
||||||
|
bar_more_down = "++"
|
||||||
|
bar_more_left = "<<"
|
||||||
|
bar_more_right = ">>"
|
||||||
|
bar_more_up = "--"
|
||||||
|
bare_display_exit_on_input = on
|
||||||
|
bare_display_time_format = "%H:%M"
|
||||||
|
buffer_auto_renumber = on
|
||||||
|
buffer_notify_default = all
|
||||||
|
buffer_position = end
|
||||||
|
buffer_search_case_sensitive = off
|
||||||
|
buffer_search_force_default = off
|
||||||
|
buffer_search_regex = off
|
||||||
|
buffer_search_where = prefix_message
|
||||||
|
buffer_time_format = "%H:%M:%S"
|
||||||
|
color_basic_force_bold = off
|
||||||
|
color_inactive_buffer = on
|
||||||
|
color_inactive_message = on
|
||||||
|
color_inactive_prefix = on
|
||||||
|
color_inactive_prefix_buffer = on
|
||||||
|
color_inactive_time = off
|
||||||
|
color_inactive_window = on
|
||||||
|
color_nick_offline = off
|
||||||
|
color_pairs_auto_reset = 5
|
||||||
|
color_real_white = off
|
||||||
|
command_chars = ""
|
||||||
|
command_incomplete = off
|
||||||
|
confirm_quit = off
|
||||||
|
confirm_upgrade = off
|
||||||
|
day_change = on
|
||||||
|
day_change_message_1date = "-- %a, %d %b %Y --"
|
||||||
|
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
|
||||||
|
eat_newline_glitch = off
|
||||||
|
emphasized_attributes = ""
|
||||||
|
highlight = ""
|
||||||
|
highlight_regex = ""
|
||||||
|
highlight_tags = ""
|
||||||
|
hotlist_add_conditions = "${buffer.num_displayed} == 0 && ${priority} >= 1"
|
||||||
|
hotlist_buffer_separator = ", "
|
||||||
|
hotlist_count_max = 0
|
||||||
|
hotlist_count_min_msg = 2
|
||||||
|
hotlist_names_count = 10000
|
||||||
|
hotlist_names_length = 0
|
||||||
|
hotlist_names_level = 14
|
||||||
|
hotlist_names_merged_buffers = off
|
||||||
|
hotlist_prefix = "Act: "
|
||||||
|
hotlist_remove = merged
|
||||||
|
hotlist_short_names = on
|
||||||
|
hotlist_sort = group_time_asc
|
||||||
|
hotlist_suffix = ""
|
||||||
|
hotlist_unique_numbers = on
|
||||||
|
input_cursor_scroll = 20
|
||||||
|
input_share = none
|
||||||
|
input_share_overwrite = off
|
||||||
|
input_undo_max = 32
|
||||||
|
item_away_message = on
|
||||||
|
item_buffer_filter = "*"
|
||||||
|
item_buffer_zoom = "!"
|
||||||
|
item_mouse_status = "M"
|
||||||
|
item_time_format = "%H:%M"
|
||||||
|
jump_current_to_previous_buffer = on
|
||||||
|
jump_previous_buffer_when_closing = on
|
||||||
|
jump_smart_back_to_buffer = on
|
||||||
|
key_bind_safe = on
|
||||||
|
key_grab_delay = 800
|
||||||
|
mouse = off
|
||||||
|
mouse_timer_delay = 100
|
||||||
|
nick_color_force = ""
|
||||||
|
nick_color_hash = djb2
|
||||||
|
nick_color_stop_chars = "_|["
|
||||||
|
nick_prefix = ""
|
||||||
|
nick_suffix = ""
|
||||||
|
paste_auto_add_newline = on
|
||||||
|
paste_bracketed = on
|
||||||
|
paste_bracketed_timer_delay = 10
|
||||||
|
paste_max_lines = 1
|
||||||
|
prefix_action = " *"
|
||||||
|
prefix_align = right
|
||||||
|
prefix_align_max = 15
|
||||||
|
prefix_align_min = 0
|
||||||
|
prefix_align_more = "+"
|
||||||
|
prefix_align_more_after = on
|
||||||
|
prefix_buffer_align = right
|
||||||
|
prefix_buffer_align_max = 0
|
||||||
|
prefix_buffer_align_more = "+"
|
||||||
|
prefix_buffer_align_more_after = on
|
||||||
|
prefix_error = "=!="
|
||||||
|
prefix_join = "-->"
|
||||||
|
prefix_network = "--"
|
||||||
|
prefix_quit = "<--"
|
||||||
|
prefix_same_nick = ""
|
||||||
|
prefix_suffix = "|"
|
||||||
|
quote_nick_prefix = "<"
|
||||||
|
quote_nick_suffix = ">"
|
||||||
|
quote_time_format = "%H:%M:%S"
|
||||||
|
read_marker = line
|
||||||
|
read_marker_always_show = off
|
||||||
|
read_marker_string = "- "
|
||||||
|
save_config_on_exit = on
|
||||||
|
save_layout_on_exit = none
|
||||||
|
scroll_amount = 3
|
||||||
|
scroll_bottom_after_switch = off
|
||||||
|
scroll_page_percent = 100
|
||||||
|
search_text_not_found_alert = on
|
||||||
|
separator_horizontal = "-"
|
||||||
|
separator_vertical = ""
|
||||||
|
tab_width = 1
|
||||||
|
time_format = "%a, %d %b %Y %T"
|
||||||
|
window_auto_zoom = off
|
||||||
|
window_separator_horizontal = on
|
||||||
|
window_separator_vertical = on
|
||||||
|
window_title = "irc"
|
||||||
|
word_chars_highlight = "!\u00A0,-,_,|,alnum"
|
||||||
|
word_chars_input = "!\u00A0,-,_,|,alnum"
|
||||||
|
|
||||||
|
[palette]
|
||||||
|
|
||||||
|
[color]
|
||||||
|
bar_more = lightmagenta
|
||||||
|
chat = default
|
||||||
|
chat_bg = default
|
||||||
|
chat_buffer = white
|
||||||
|
chat_channel = white
|
||||||
|
chat_day_change = cyan
|
||||||
|
chat_delimiters = green
|
||||||
|
chat_highlight = yellow
|
||||||
|
chat_highlight_bg = magenta
|
||||||
|
chat_host = cyan
|
||||||
|
chat_inactive_buffer = default
|
||||||
|
chat_inactive_window = default
|
||||||
|
chat_nick = lightcyan
|
||||||
|
chat_nick_colors = "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"
|
||||||
|
chat_nick_offline = default
|
||||||
|
chat_nick_offline_highlight = default
|
||||||
|
chat_nick_offline_highlight_bg = blue
|
||||||
|
chat_nick_other = cyan
|
||||||
|
chat_nick_prefix = green
|
||||||
|
chat_nick_self = white
|
||||||
|
chat_nick_suffix = green
|
||||||
|
chat_prefix_action = white
|
||||||
|
chat_prefix_buffer = brown
|
||||||
|
chat_prefix_buffer_inactive_buffer = default
|
||||||
|
chat_prefix_error = yellow
|
||||||
|
chat_prefix_join = lightgreen
|
||||||
|
chat_prefix_more = lightmagenta
|
||||||
|
chat_prefix_network = magenta
|
||||||
|
chat_prefix_quit = lightred
|
||||||
|
chat_prefix_suffix = green
|
||||||
|
chat_read_marker = magenta
|
||||||
|
chat_read_marker_bg = default
|
||||||
|
chat_server = brown
|
||||||
|
chat_tags = red
|
||||||
|
chat_text_found = yellow
|
||||||
|
chat_text_found_bg = lightmagenta
|
||||||
|
chat_time = default
|
||||||
|
chat_time_delimiters = brown
|
||||||
|
chat_value = cyan
|
||||||
|
chat_value_null = blue
|
||||||
|
emphasized = yellow
|
||||||
|
emphasized_bg = magenta
|
||||||
|
input_actions = lightgreen
|
||||||
|
input_text_not_found = red
|
||||||
|
item_away = yellow
|
||||||
|
nicklist_away = cyan
|
||||||
|
nicklist_group = green
|
||||||
|
separator = blue
|
||||||
|
status_count_highlight = magenta
|
||||||
|
status_count_msg = brown
|
||||||
|
status_count_other = default
|
||||||
|
status_count_private = green
|
||||||
|
status_data_highlight = lightmagenta
|
||||||
|
status_data_msg = yellow
|
||||||
|
status_data_other = default
|
||||||
|
status_data_private = lightgreen
|
||||||
|
status_filter = green
|
||||||
|
status_more = yellow
|
||||||
|
status_mouse = green
|
||||||
|
status_name = white
|
||||||
|
status_name_ssl = lightgreen
|
||||||
|
status_nicklist_count = default
|
||||||
|
status_number = yellow
|
||||||
|
status_time = default
|
||||||
|
|
||||||
|
[completion]
|
||||||
|
base_word_until_cursor = on
|
||||||
|
command_inline = on
|
||||||
|
default_template = "%(nicks)|%(irc_channels)"
|
||||||
|
nick_add_space = on
|
||||||
|
nick_completer = ":"
|
||||||
|
nick_first_only = off
|
||||||
|
nick_ignore_chars = "[]`_-^"
|
||||||
|
partial_completion_alert = on
|
||||||
|
partial_completion_command = off
|
||||||
|
partial_completion_command_arg = off
|
||||||
|
partial_completion_count = on
|
||||||
|
partial_completion_other = off
|
||||||
|
|
||||||
|
[history]
|
||||||
|
display_default = 5
|
||||||
|
max_buffer_lines_minutes = 0
|
||||||
|
max_buffer_lines_number = 4096
|
||||||
|
max_commands = 100
|
||||||
|
max_visited_buffers = 50
|
||||||
|
|
||||||
|
[proxy]
|
||||||
|
|
||||||
|
[network]
|
||||||
|
connection_timeout = 60
|
||||||
|
gnutls_ca_file = "~/.weechat/certs/ca-certificates.crt"
|
||||||
|
gnutls_handshake_timeout = 30
|
||||||
|
proxy_curl = ""
|
||||||
|
|
||||||
|
[plugin]
|
||||||
|
autoload = "*"
|
||||||
|
debug = off
|
||||||
|
extension = ".so,.dll"
|
||||||
|
path = "%h/plugins"
|
||||||
|
save_config_on_unload = on
|
||||||
|
|
||||||
|
[bar]
|
||||||
|
input.color_bg = default
|
||||||
|
input.color_delim = cyan
|
||||||
|
input.color_fg = default
|
||||||
|
input.conditions = ""
|
||||||
|
input.filling_left_right = vertical
|
||||||
|
input.filling_top_bottom = horizontal
|
||||||
|
input.hidden = off
|
||||||
|
input.items = "[input_prompt]+(away),[input_search],[input_paste],input_text"
|
||||||
|
input.position = bottom
|
||||||
|
input.priority = 1000
|
||||||
|
input.separator = off
|
||||||
|
input.size = 1
|
||||||
|
input.size_max = 0
|
||||||
|
input.type = window
|
||||||
|
nicklist.color_bg = default
|
||||||
|
nicklist.color_delim = cyan
|
||||||
|
nicklist.color_fg = default
|
||||||
|
nicklist.conditions = "${nicklist}"
|
||||||
|
nicklist.filling_left_right = vertical
|
||||||
|
nicklist.filling_top_bottom = columns_vertical
|
||||||
|
nicklist.hidden = on
|
||||||
|
nicklist.items = "buffer_nicklist"
|
||||||
|
nicklist.position = right
|
||||||
|
nicklist.priority = 200
|
||||||
|
nicklist.separator = on
|
||||||
|
nicklist.size = 0
|
||||||
|
nicklist.size_max = 0
|
||||||
|
nicklist.type = window
|
||||||
|
status.color_bg = 0
|
||||||
|
status.color_delim = cyan
|
||||||
|
status.color_fg = default
|
||||||
|
status.conditions = ""
|
||||||
|
status.filling_left_right = vertical
|
||||||
|
status.filling_top_bottom = horizontal
|
||||||
|
status.hidden = off
|
||||||
|
status.items = "[time],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,[lag],[hotlist],completion,scroll"
|
||||||
|
status.position = bottom
|
||||||
|
status.priority = 500
|
||||||
|
status.separator = off
|
||||||
|
status.size = 2
|
||||||
|
status.size_max = 0
|
||||||
|
status.type = window
|
||||||
|
title.color_bg = 0
|
||||||
|
title.color_delim = cyan
|
||||||
|
title.color_fg = default
|
||||||
|
title.conditions = ""
|
||||||
|
title.filling_left_right = vertical
|
||||||
|
title.filling_top_bottom = horizontal
|
||||||
|
title.hidden = off
|
||||||
|
title.items = "buffer_title"
|
||||||
|
title.position = top
|
||||||
|
title.priority = 500
|
||||||
|
title.separator = off
|
||||||
|
title.size = 1
|
||||||
|
title.size_max = 0
|
||||||
|
title.type = window
|
||||||
|
|
||||||
|
[layout]
|
||||||
|
|
||||||
|
[notify]
|
||||||
|
|
||||||
|
[filter]
|
||||||
|
irc_smart = on;*;irc_smart_filter;*
|
||||||
|
|
||||||
|
[key]
|
||||||
|
ctrl-? = "/input delete_previous_char"
|
||||||
|
ctrl-A = "/input move_beginning_of_line"
|
||||||
|
ctrl-B = "/input move_previous_char"
|
||||||
|
ctrl-C_ = "/input insert \x1F"
|
||||||
|
ctrl-Cb = "/input insert \x02"
|
||||||
|
ctrl-Cc = "/input insert \x03"
|
||||||
|
ctrl-Ci = "/input insert \x1D"
|
||||||
|
ctrl-Co = "/input insert \x0F"
|
||||||
|
ctrl-Cv = "/input insert \x16"
|
||||||
|
ctrl-D = "/input delete_next_char"
|
||||||
|
ctrl-E = "/input move_end_of_line"
|
||||||
|
ctrl-F = "/input move_next_char"
|
||||||
|
ctrl-H = "/input delete_previous_char"
|
||||||
|
ctrl-I = "/input complete_next"
|
||||||
|
ctrl-J = "/input return"
|
||||||
|
ctrl-K = "/input delete_end_of_line"
|
||||||
|
ctrl-L = "/window refresh"
|
||||||
|
ctrl-M = "/input return"
|
||||||
|
ctrl-N = "/buffer +1"
|
||||||
|
ctrl-P = "/buffer -1"
|
||||||
|
ctrl-R = "/input search_text"
|
||||||
|
ctrl-Sctrl-U = "/input set_unread"
|
||||||
|
ctrl-T = "/input transpose_chars"
|
||||||
|
ctrl-U = "/input delete_beginning_of_line"
|
||||||
|
ctrl-W = "/input delete_previous_word"
|
||||||
|
ctrl-X = "/input switch_active_buffer"
|
||||||
|
ctrl-Y = "/input clipboard_paste"
|
||||||
|
meta-meta2-1~ = "/window scroll_top"
|
||||||
|
meta-meta2-23~ = "/bar scroll nicklist * b"
|
||||||
|
meta-meta2-24~ = "/bar scroll nicklist * e"
|
||||||
|
meta-meta2-4~ = "/window scroll_bottom"
|
||||||
|
meta-meta2-5~ = "/window scroll_up"
|
||||||
|
meta-meta2-6~ = "/window scroll_down"
|
||||||
|
meta-meta2-7~ = "/window scroll_top"
|
||||||
|
meta-meta2-8~ = "/window scroll_bottom"
|
||||||
|
meta-meta2-A = "/buffer -1"
|
||||||
|
meta-meta2-B = "/buffer +1"
|
||||||
|
meta-meta2-C = "/buffer +1"
|
||||||
|
meta-meta2-D = "/buffer -1"
|
||||||
|
meta-- = "/filter toggle @"
|
||||||
|
meta-/ = "/input jump_last_buffer_displayed"
|
||||||
|
meta-0 = "/buffer *10"
|
||||||
|
meta-1 = "/buffer *1"
|
||||||
|
meta-2 = "/buffer *2"
|
||||||
|
meta-3 = "/buffer *3"
|
||||||
|
meta-4 = "/buffer *4"
|
||||||
|
meta-5 = "/buffer *5"
|
||||||
|
meta-6 = "/buffer *6"
|
||||||
|
meta-7 = "/buffer *7"
|
||||||
|
meta-8 = "/buffer *8"
|
||||||
|
meta-9 = "/buffer *9"
|
||||||
|
meta-< = "/input jump_previously_visited_buffer"
|
||||||
|
meta-= = "/filter toggle"
|
||||||
|
meta-> = "/input jump_next_visited_buffer"
|
||||||
|
meta-OA = "/input history_global_previous"
|
||||||
|
meta-OB = "/input history_global_next"
|
||||||
|
meta-OC = "/input move_next_word"
|
||||||
|
meta-OD = "/input move_previous_word"
|
||||||
|
meta-OF = "/input move_end_of_line"
|
||||||
|
meta-OH = "/input move_beginning_of_line"
|
||||||
|
meta-Oa = "/input history_global_previous"
|
||||||
|
meta-Ob = "/input history_global_next"
|
||||||
|
meta-Oc = "/input move_next_word"
|
||||||
|
meta-Od = "/input move_previous_word"
|
||||||
|
meta2-15~ = "/buffer -1"
|
||||||
|
meta2-17~ = "/buffer +1"
|
||||||
|
meta2-18~ = "/window -1"
|
||||||
|
meta2-19~ = "/window +1"
|
||||||
|
meta2-1;3A = "/buffer -1"
|
||||||
|
meta2-1;3B = "/buffer +1"
|
||||||
|
meta2-1;3C = "/buffer +1"
|
||||||
|
meta2-1;3D = "/buffer -1"
|
||||||
|
meta2-1;3F = "/window scroll_bottom"
|
||||||
|
meta2-1;3H = "/window scroll_top"
|
||||||
|
meta2-1;5A = "/input history_global_previous"
|
||||||
|
meta2-1;5B = "/input history_global_next"
|
||||||
|
meta2-1;5C = "/input move_next_word"
|
||||||
|
meta2-1;5D = "/input move_previous_word"
|
||||||
|
meta2-1~ = "/input move_beginning_of_line"
|
||||||
|
meta2-200~ = "/input paste_start"
|
||||||
|
meta2-201~ = "/input paste_stop"
|
||||||
|
meta2-20~ = "/bar scroll title * -30%"
|
||||||
|
meta2-21~ = "/bar scroll title * +30%"
|
||||||
|
meta2-23;3~ = "/bar scroll nicklist * b"
|
||||||
|
meta2-23~ = "/bar scroll nicklist * -100%"
|
||||||
|
meta2-24;3~ = "/bar scroll nicklist * e"
|
||||||
|
meta2-24~ = "/bar scroll nicklist * +100%"
|
||||||
|
meta2-3~ = "/input delete_next_char"
|
||||||
|
meta2-4~ = "/input move_end_of_line"
|
||||||
|
meta2-5;3~ = "/window scroll_up"
|
||||||
|
meta2-5~ = "/window page_up"
|
||||||
|
meta2-6;3~ = "/window scroll_down"
|
||||||
|
meta2-6~ = "/window page_down"
|
||||||
|
meta2-7~ = "/input move_beginning_of_line"
|
||||||
|
meta2-8~ = "/input move_end_of_line"
|
||||||
|
meta2-A = "/input history_previous"
|
||||||
|
meta2-B = "/input history_next"
|
||||||
|
meta2-C = "/input move_next_char"
|
||||||
|
meta2-D = "/input move_previous_char"
|
||||||
|
meta2-F = "/input move_end_of_line"
|
||||||
|
meta2-G = "/window page_down"
|
||||||
|
meta2-H = "/input move_beginning_of_line"
|
||||||
|
meta2-I = "/window page_up"
|
||||||
|
meta2-Z = "/input complete_previous"
|
||||||
|
meta2-[E = "/buffer -1"
|
||||||
|
meta-_ = "/input redo"
|
||||||
|
meta-a = "/input jump_smart"
|
||||||
|
meta-b = "/input move_previous_word"
|
||||||
|
meta-d = "/input delete_next_word"
|
||||||
|
meta-f = "/input move_next_word"
|
||||||
|
meta-h = "/input hotlist_clear"
|
||||||
|
meta-jmeta-f = "/buffer -"
|
||||||
|
meta-jmeta-l = "/buffer +"
|
||||||
|
meta-jmeta-r = "/server raw"
|
||||||
|
meta-jmeta-s = "/server jump"
|
||||||
|
meta-j01 = "/buffer 1"
|
||||||
|
meta-j02 = "/buffer 2"
|
||||||
|
meta-j03 = "/buffer 3"
|
||||||
|
meta-j04 = "/buffer 4"
|
||||||
|
meta-j05 = "/buffer 5"
|
||||||
|
meta-j06 = "/buffer 6"
|
||||||
|
meta-j07 = "/buffer 7"
|
||||||
|
meta-j08 = "/buffer 8"
|
||||||
|
meta-j09 = "/buffer 9"
|
||||||
|
meta-j10 = "/buffer 10"
|
||||||
|
meta-j11 = "/buffer 11"
|
||||||
|
meta-j12 = "/buffer 12"
|
||||||
|
meta-j13 = "/buffer 13"
|
||||||
|
meta-j14 = "/buffer 14"
|
||||||
|
meta-j15 = "/buffer 15"
|
||||||
|
meta-j16 = "/buffer 16"
|
||||||
|
meta-j17 = "/buffer 17"
|
||||||
|
meta-j18 = "/buffer 18"
|
||||||
|
meta-j19 = "/buffer 19"
|
||||||
|
meta-j20 = "/buffer 20"
|
||||||
|
meta-j21 = "/buffer 21"
|
||||||
|
meta-j22 = "/buffer 22"
|
||||||
|
meta-j23 = "/buffer 23"
|
||||||
|
meta-j24 = "/buffer 24"
|
||||||
|
meta-j25 = "/buffer 25"
|
||||||
|
meta-j26 = "/buffer 26"
|
||||||
|
meta-j27 = "/buffer 27"
|
||||||
|
meta-j28 = "/buffer 28"
|
||||||
|
meta-j29 = "/buffer 29"
|
||||||
|
meta-j30 = "/buffer 30"
|
||||||
|
meta-j31 = "/buffer 31"
|
||||||
|
meta-j32 = "/buffer 32"
|
||||||
|
meta-j33 = "/buffer 33"
|
||||||
|
meta-j34 = "/buffer 34"
|
||||||
|
meta-j35 = "/buffer 35"
|
||||||
|
meta-j36 = "/buffer 36"
|
||||||
|
meta-j37 = "/buffer 37"
|
||||||
|
meta-j38 = "/buffer 38"
|
||||||
|
meta-j39 = "/buffer 39"
|
||||||
|
meta-j40 = "/buffer 40"
|
||||||
|
meta-j41 = "/buffer 41"
|
||||||
|
meta-j42 = "/buffer 42"
|
||||||
|
meta-j43 = "/buffer 43"
|
||||||
|
meta-j44 = "/buffer 44"
|
||||||
|
meta-j45 = "/buffer 45"
|
||||||
|
meta-j46 = "/buffer 46"
|
||||||
|
meta-j47 = "/buffer 47"
|
||||||
|
meta-j48 = "/buffer 48"
|
||||||
|
meta-j49 = "/buffer 49"
|
||||||
|
meta-j50 = "/buffer 50"
|
||||||
|
meta-j51 = "/buffer 51"
|
||||||
|
meta-j52 = "/buffer 52"
|
||||||
|
meta-j53 = "/buffer 53"
|
||||||
|
meta-j54 = "/buffer 54"
|
||||||
|
meta-j55 = "/buffer 55"
|
||||||
|
meta-j56 = "/buffer 56"
|
||||||
|
meta-j57 = "/buffer 57"
|
||||||
|
meta-j58 = "/buffer 58"
|
||||||
|
meta-j59 = "/buffer 59"
|
||||||
|
meta-j60 = "/buffer 60"
|
||||||
|
meta-j61 = "/buffer 61"
|
||||||
|
meta-j62 = "/buffer 62"
|
||||||
|
meta-j63 = "/buffer 63"
|
||||||
|
meta-j64 = "/buffer 64"
|
||||||
|
meta-j65 = "/buffer 65"
|
||||||
|
meta-j66 = "/buffer 66"
|
||||||
|
meta-j67 = "/buffer 67"
|
||||||
|
meta-j68 = "/buffer 68"
|
||||||
|
meta-j69 = "/buffer 69"
|
||||||
|
meta-j70 = "/buffer 70"
|
||||||
|
meta-j71 = "/buffer 71"
|
||||||
|
meta-j72 = "/buffer 72"
|
||||||
|
meta-j73 = "/buffer 73"
|
||||||
|
meta-j74 = "/buffer 74"
|
||||||
|
meta-j75 = "/buffer 75"
|
||||||
|
meta-j76 = "/buffer 76"
|
||||||
|
meta-j77 = "/buffer 77"
|
||||||
|
meta-j78 = "/buffer 78"
|
||||||
|
meta-j79 = "/buffer 79"
|
||||||
|
meta-j80 = "/buffer 80"
|
||||||
|
meta-j81 = "/buffer 81"
|
||||||
|
meta-j82 = "/buffer 82"
|
||||||
|
meta-j83 = "/buffer 83"
|
||||||
|
meta-j84 = "/buffer 84"
|
||||||
|
meta-j85 = "/buffer 85"
|
||||||
|
meta-j86 = "/buffer 86"
|
||||||
|
meta-j87 = "/buffer 87"
|
||||||
|
meta-j88 = "/buffer 88"
|
||||||
|
meta-j89 = "/buffer 89"
|
||||||
|
meta-j90 = "/buffer 90"
|
||||||
|
meta-j91 = "/buffer 91"
|
||||||
|
meta-j92 = "/buffer 92"
|
||||||
|
meta-j93 = "/buffer 93"
|
||||||
|
meta-j94 = "/buffer 94"
|
||||||
|
meta-j95 = "/buffer 95"
|
||||||
|
meta-j96 = "/buffer 96"
|
||||||
|
meta-j97 = "/buffer 97"
|
||||||
|
meta-j98 = "/buffer 98"
|
||||||
|
meta-j99 = "/buffer 99"
|
||||||
|
meta-k = "/input grab_key_command"
|
||||||
|
meta-l = "/window bare"
|
||||||
|
meta-m = "/mute mouse toggle"
|
||||||
|
meta-n = "/window scroll_next_highlight"
|
||||||
|
meta-p = "/window scroll_previous_highlight"
|
||||||
|
meta-r = "/input delete_line"
|
||||||
|
meta-s = "/mute aspell toggle"
|
||||||
|
meta-u = "/window scroll_unread"
|
||||||
|
meta-wmeta-meta2-A = "/window up"
|
||||||
|
meta-wmeta-meta2-B = "/window down"
|
||||||
|
meta-wmeta-meta2-C = "/window right"
|
||||||
|
meta-wmeta-meta2-D = "/window left"
|
||||||
|
meta-wmeta2-1;3A = "/window up"
|
||||||
|
meta-wmeta2-1;3B = "/window down"
|
||||||
|
meta-wmeta2-1;3C = "/window right"
|
||||||
|
meta-wmeta2-1;3D = "/window left"
|
||||||
|
meta-wmeta-b = "/window balance"
|
||||||
|
meta-wmeta-s = "/window swap"
|
||||||
|
meta-x = "/input zoom_merged_buffer"
|
||||||
|
meta-z = "/window zoom"
|
||||||
|
ctrl-_ = "/input undo"
|
||||||
|
|
||||||
|
[key_search]
|
||||||
|
ctrl-I = "/input search_switch_where"
|
||||||
|
ctrl-J = "/input search_stop"
|
||||||
|
ctrl-M = "/input search_stop"
|
||||||
|
ctrl-R = "/input search_switch_regex"
|
||||||
|
meta2-A = "/input search_previous"
|
||||||
|
meta2-B = "/input search_next"
|
||||||
|
meta-c = "/input search_switch_case"
|
||||||
|
|
||||||
|
[key_cursor]
|
||||||
|
ctrl-J = "/cursor stop"
|
||||||
|
ctrl-M = "/cursor stop"
|
||||||
|
meta-meta2-A = "/cursor move area_up"
|
||||||
|
meta-meta2-B = "/cursor move area_down"
|
||||||
|
meta-meta2-C = "/cursor move area_right"
|
||||||
|
meta-meta2-D = "/cursor move area_left"
|
||||||
|
meta2-1;3A = "/cursor move area_up"
|
||||||
|
meta2-1;3B = "/cursor move area_down"
|
||||||
|
meta2-1;3C = "/cursor move area_right"
|
||||||
|
meta2-1;3D = "/cursor move area_left"
|
||||||
|
meta2-A = "/cursor move up"
|
||||||
|
meta2-B = "/cursor move down"
|
||||||
|
meta2-C = "/cursor move right"
|
||||||
|
meta2-D = "/cursor move left"
|
||||||
|
@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}"
|
||||||
|
@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}"
|
||||||
|
@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}"
|
||||||
|
@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop"
|
||||||
|
@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}"
|
||||||
|
@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop"
|
||||||
|
@chat:m = "hsignal:chat_quote_message;/cursor stop"
|
||||||
|
@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop"
|
||||||
|
|
||||||
|
[key_mouse]
|
||||||
|
@bar(input):button2 = "/input grab_mouse_area"
|
||||||
|
@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%"
|
||||||
|
@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e"
|
||||||
|
@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%"
|
||||||
|
@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b"
|
||||||
|
@chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}"
|
||||||
|
@chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}"
|
||||||
|
@chat(script.scripts):wheeldown = "/script down 5"
|
||||||
|
@chat(script.scripts):wheelup = "/script up 5"
|
||||||
|
@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}"
|
||||||
|
@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}"
|
||||||
|
@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}"
|
||||||
|
@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}"
|
||||||
|
@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}"
|
||||||
|
@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%"
|
||||||
|
@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%"
|
||||||
|
@chat:button1 = "/window ${_window_number}"
|
||||||
|
@chat:button1-gesture-left = "/window ${_window_number};/buffer -1"
|
||||||
|
@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1"
|
||||||
|
@chat:button1-gesture-right = "/window ${_window_number};/buffer +1"
|
||||||
|
@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer"
|
||||||
|
@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%"
|
||||||
|
@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%"
|
||||||
|
@chat:wheeldown = "/window scroll_down -window ${_window_number}"
|
||||||
|
@chat:wheelup = "/window scroll_up -window ${_window_number}"
|
||||||
|
@*:button3 = "/cursor go ${_x},${_y}"
|
||||||
39
dotfiles/weechat/xfer.conf
Normal file
39
dotfiles/weechat/xfer.conf
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
#
|
||||||
|
# weechat -- xfer.conf
|
||||||
|
#
|
||||||
|
|
||||||
|
[look]
|
||||||
|
auto_open_buffer = on
|
||||||
|
progress_bar_size = 20
|
||||||
|
pv_tags = "notify_private"
|
||||||
|
|
||||||
|
[color]
|
||||||
|
status_aborted = lightred
|
||||||
|
status_active = lightblue
|
||||||
|
status_connecting = yellow
|
||||||
|
status_done = lightgreen
|
||||||
|
status_failed = lightred
|
||||||
|
status_waiting = lightcyan
|
||||||
|
text = default
|
||||||
|
text_bg = default
|
||||||
|
text_selected = white
|
||||||
|
|
||||||
|
[network]
|
||||||
|
blocksize = 65536
|
||||||
|
fast_send = on
|
||||||
|
own_ip = ""
|
||||||
|
port_range = ""
|
||||||
|
speed_limit = 0
|
||||||
|
timeout = 300
|
||||||
|
|
||||||
|
[file]
|
||||||
|
auto_accept_chats = off
|
||||||
|
auto_accept_files = off
|
||||||
|
auto_accept_nicks = ""
|
||||||
|
auto_check_crc32 = off
|
||||||
|
auto_rename = on
|
||||||
|
auto_resume = on
|
||||||
|
convert_spaces = on
|
||||||
|
download_path = "%h/xfer"
|
||||||
|
upload_path = "~"
|
||||||
|
use_nick_in_filename = on
|
||||||
@@ -1,2 +1,4 @@
|
|||||||
setxkbmap -option ctrl:nocaps
|
setxkbmap -option ctrl:nocaps
|
||||||
|
test -x /usr/bin/xsettingsd && /usr/bin/xsettingsd &
|
||||||
|
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"
|
||||||
0
dotfiles/zprezto_custom/.keep
Normal file
0
dotfiles/zprezto_custom/.keep
Normal file
52
dotfiles/zprezto_custom/jekyll/functions/_jekyll
Normal file
52
dotfiles/zprezto_custom/jekyll/functions/_jekyll
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#compdef jekyll
|
||||||
|
|
||||||
|
_jekyll() {
|
||||||
|
local curcontext="${curcontext}" state line file
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
local -a _subcommands
|
||||||
|
_subcommands=('docs:list documentation'
|
||||||
|
'import:import posts'
|
||||||
|
'serve:run server'
|
||||||
|
'help:get help'
|
||||||
|
'doctor:deprecation warnings'
|
||||||
|
'build:compile site'
|
||||||
|
'new:create new site'
|
||||||
|
'clean:clean output'
|
||||||
|
'draft:create new draft'
|
||||||
|
'post:create new post'
|
||||||
|
'publish:publish draft'
|
||||||
|
'edit:edit post')
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
"(source)"{-s,--source}"[source]:source dir:_files -/" \
|
||||||
|
"(dest)"{-d,--destination}"[dest]:dest dir:_files -/" \
|
||||||
|
"--safe[safe mode]" \
|
||||||
|
"(plugins)"{-p,--plugins}"[plugins]:plugins dir:_files -/" \
|
||||||
|
"--layouts[layouts]:layouts dir:_files -/" \
|
||||||
|
"--profile[generate liquid profile]" \
|
||||||
|
"(help)"{-h,--help}"[help]" \
|
||||||
|
"(version)"{-v,--version}"[version]" \
|
||||||
|
"(trace)"{-t,--trace}"[trace]" \
|
||||||
|
"1:command:->command" \
|
||||||
|
"*: :->args"
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
command)
|
||||||
|
_describe -t commands "jekyll subcommand" _subcommands
|
||||||
|
;;
|
||||||
|
args)
|
||||||
|
case "$line[1]" in
|
||||||
|
edit)
|
||||||
|
# TODO: Fix to get --source argument
|
||||||
|
local -a postpaths
|
||||||
|
postpaths=("${JEKYLL_DIR}/_posts" "${JEKYLL_DIR}/_drafts")
|
||||||
|
_files -W postpaths
|
||||||
|
;;
|
||||||
|
publish)
|
||||||
|
# TODO: Fix to get --source argument
|
||||||
|
_files -W ${JEKYLL_DIR}/_drafts
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
140
dotfiles/zprezto_custom/jekyll/init.zsh
Normal file
140
dotfiles/zprezto_custom/jekyll/init.zsh
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
function _jekyll_locate_dir {
|
||||||
|
if [[ -n "${JEKYLL_DIR}" && -f "${JEKYLL_DIR}" ]] ; then
|
||||||
|
echo ${JEKYLL_DIR}
|
||||||
|
elif test -f `pwd`/_config.yml ; then
|
||||||
|
pwd
|
||||||
|
elif test -f ${HOME}/Projects/blog/_config.yml ; then
|
||||||
|
echo ${HOME}/Projects/blog
|
||||||
|
else
|
||||||
|
echo "Jekyll instance not found!" >&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _jekyll_set_date {
|
||||||
|
local FILENAME
|
||||||
|
local DATE
|
||||||
|
FILENAME=${1}
|
||||||
|
DATE=${2}
|
||||||
|
sed -i "2,/---/{s/^date:.*$/date: ${DATE}/;s/---/date: ${DATE}\n---/}" ${FILENAME}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _jekyll_find_post {
|
||||||
|
local files
|
||||||
|
local fname
|
||||||
|
local jekyll_dir
|
||||||
|
|
||||||
|
jekyll_dir="${3}"
|
||||||
|
|
||||||
|
if [ -f "${1}" ] ; then
|
||||||
|
printf -- "${1}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [ -f "${jekyll_dir}/_posts/${1}" ] ; then
|
||||||
|
printf -- "${jekyll_dir}/_posts/${1}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [ -f "${jekyll_dir}/_drafts/${1}" ] ; then
|
||||||
|
printf -- "${jekyll_dir}/_drafts/${1}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fname=${2:-${1}}
|
||||||
|
files=(${jekyll_dir}/_posts/*${fname}* ${jekyll_dir}/_drafts/*${fname}*)
|
||||||
|
if [ ${#files} -eq "0" ] ; then
|
||||||
|
echo "No post found for ${fname}" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if [ ${#files} -gt "1" ] ; then
|
||||||
|
echo "Ambiguous results: ${files}" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
printf -- ${files}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function jekyll {
|
||||||
|
setopt localoptions nullglob
|
||||||
|
local JTEMPLATE
|
||||||
|
local TITLE
|
||||||
|
local SLUG
|
||||||
|
local FILENAME
|
||||||
|
local DATE
|
||||||
|
local NEWNAME
|
||||||
|
local JEKYLL_DIR
|
||||||
|
|
||||||
|
JEKYLL_DIR=`_jekyll_locate_dir`
|
||||||
|
|
||||||
|
if [ -z "${JEKYLL_DIR}" ] ; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
JTEMPLATE="---\n"
|
||||||
|
JTEMPLATE+="layout: post\n"
|
||||||
|
JTEMPLATE+="title: \"%s\"\n"
|
||||||
|
JTEMPLATE+="category: Blog\n"
|
||||||
|
JTEMPLATE+="---\n\n"
|
||||||
|
TITLE=${@[2,-1]}
|
||||||
|
SLUG=$(echo -n ${TITLE}|tr A-Z a-z|tr -c -s -- a-z0-9 -)
|
||||||
|
DATE=`date +%Y-%m-%d`
|
||||||
|
|
||||||
|
case "${1:-help}" in
|
||||||
|
help|--help)
|
||||||
|
command jekyll help
|
||||||
|
echo "Added by zsh plugin:"
|
||||||
|
echo " draft Create a new draft post."
|
||||||
|
echo " post Create a new post to publish immediately."
|
||||||
|
echo " publish Publish a draft post by name."
|
||||||
|
echo " edit Edit a post."
|
||||||
|
;;
|
||||||
|
draft)
|
||||||
|
if [ -z "${SLUG}" ] ; then
|
||||||
|
echo "slug is required."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
mkdir -p "${JEKYLL_DIR}/_drafts"
|
||||||
|
FILENAME="${JEKYLL_DIR}/_drafts/${SLUG}.md"
|
||||||
|
printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}"
|
||||||
|
vim "${FILENAME}" '+$' '+startinsert'
|
||||||
|
;;
|
||||||
|
post)
|
||||||
|
if [ -z "${SLUG}" ] ; then
|
||||||
|
echo "slug is required."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
FILENAME="${JEKYLL_DIR}/_posts/${DATE}-${SLUG}.md"
|
||||||
|
printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}"
|
||||||
|
_jekyll_set_date "${FILENAME}" "${DATE}"
|
||||||
|
vim "${FILENAME}" '+$' '+startinsert'
|
||||||
|
;;
|
||||||
|
publish)
|
||||||
|
if [ -z "${SLUG}" ] ; then
|
||||||
|
echo "slug is required."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
FILENAME=$(_jekyll_find_post "${TITLE}" "${SLUG}" "${JEKYLL_DIR}")
|
||||||
|
if [ $? -ne 0 ] ; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if ! [[ "${FILENAME}" =~ '/_drafts/' ]] ; then
|
||||||
|
echo "${FILENAME} is not a draft." >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
NEWNAME=$(echo "${FILENAME}" | sed "s/_drafts\//_posts\/${DATE}-/")
|
||||||
|
mv "${FILENAME}" "${NEWNAME}"
|
||||||
|
_jekyll_set_date "${NEWNAME}" "${DATE}"
|
||||||
|
;;
|
||||||
|
edit)
|
||||||
|
if [ -z "${SLUG}" ] ; then
|
||||||
|
echo "slug is required."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
FILENAME=$(_jekyll_find_post "${TITLE}" "${SLUG}" "${JEKYLL_DIR}")
|
||||||
|
if [ $? -ne 0 ] ; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
vim "${FILENAME}"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
command jekyll "$@"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
36
dotfiles/zprezto_custom/matir/functions/prompt_matir_setup
Normal file
36
dotfiles/zprezto_custom/matir/functions/prompt_matir_setup
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
zstyle ':vcs_info:*' enable git
|
||||||
|
zstyle ':vcs_info:*' check-for-changes true
|
||||||
|
zstyle ':vcs_info:*' formats ' (%b%u)'
|
||||||
|
zstyle ':vcs_info:*' stagedstr '*'
|
||||||
|
zstyle ':vcs_info:*' unstagedstr '*'
|
||||||
|
|
||||||
|
# TODO: add virtualenv/rvm info
|
||||||
|
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[blue]%}${vcs_info_msg_0_}%{$fg[white]%}%#%{$reset_color%} '
|
||||||
|
|
||||||
|
# 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)%}'
|
||||||
|
}
|
||||||
|
|
||||||
|
function prompt_matir_precmd {
|
||||||
|
vcs_info
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_matir_setup "$@"
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
#compdef msfconsole
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2014 Spencer McIntyre
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of the project nor the
|
||||||
|
# names of its contributors may be used to endorse or promote products
|
||||||
|
# derived from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Description
|
||||||
|
# -----------
|
||||||
|
#
|
||||||
|
# Completion script for the Metasploit Framework's msfconsole command
|
||||||
|
# (http://www.metasploit.com/).
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# * Spencer McIntyre
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
_arguments \
|
||||||
|
{-a,--ask}"[Ask before exiting Metasploit or accept 'exit -y']" \
|
||||||
|
"-c[Load the specified configuration file]:configuration file:_files" \
|
||||||
|
{-d,--defanged}"[Execute the console as defanged]" \
|
||||||
|
{-E,--environment}"[Specify the database environment to load from the configuration]:environment:(production development)" \
|
||||||
|
{-h,--help}"[Show help text]" \
|
||||||
|
{-L,--real-readline}"[Use the system Readline library instead of RbReadline]" \
|
||||||
|
{-M,--migration-path}"[Specify a directory containing additional DB migrations]:directory:_files -/" \
|
||||||
|
{-m,--module-path}"[Specifies an additional module search path]:search path:_files -/" \
|
||||||
|
{-n,--no-database}"[Disable database support]" \
|
||||||
|
{-o,--output}"[Output to the specified file]:output file" \
|
||||||
|
{-p,--plugin}"[Load a plugin on startup]:plugin file:_files" \
|
||||||
|
{-q,--quiet}"[Do not print the banner on start up]" \
|
||||||
|
{-r,--resource}"[Execute the specified resource file]:resource file:_files" \
|
||||||
|
{-v,--version}"[Show version]" \
|
||||||
|
{-x,--execute-command}"[Execute the specified string as console commands]:commands" \
|
||||||
|
{-y,--yaml}"[Specify a YAML file containing database settings]:yaml file:_files"
|
||||||
100
dotfiles/zprezto_custom/xtra_completions/functions/_msfvenom
Normal file
100
dotfiles/zprezto_custom/xtra_completions/functions/_msfvenom
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
#compdef msfvenom
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Copyright (c) 2014 Spencer McIntyre
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of the project nor the
|
||||||
|
# names of its contributors may be used to endorse or promote products
|
||||||
|
# derived from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Description
|
||||||
|
# -----------
|
||||||
|
#
|
||||||
|
# Completion script for the Metasploit Framework's msfvenom command
|
||||||
|
# (http://www.metasploit.com/).
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Authors
|
||||||
|
# -------
|
||||||
|
#
|
||||||
|
# * Spencer McIntyre
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
_msfvenom_encoders_list=(
|
||||||
|
'cmd/generic_sh'
|
||||||
|
'cmd/ifs'
|
||||||
|
'cmd/powershell_base64'
|
||||||
|
'cmd/printf_php_mq'
|
||||||
|
'generic/eicar'
|
||||||
|
'generic/none'
|
||||||
|
'mipsbe/byte_xori'
|
||||||
|
'mipsbe/longxor'
|
||||||
|
'mipsle/byte_xori'
|
||||||
|
'mipsle/longxor'
|
||||||
|
'php/base64'
|
||||||
|
'ppc/longxor'
|
||||||
|
'ppc/longxor_tag'
|
||||||
|
'sparc/longxor_tag'
|
||||||
|
'x64/xor'
|
||||||
|
'x86/add_sub'
|
||||||
|
'x86/alpha_mixed'
|
||||||
|
'x86/alpha_upper'
|
||||||
|
'x86/avoid_underscore_tolower'
|
||||||
|
'x86/avoid_utf8_tolower'
|
||||||
|
'x86/bloxor'
|
||||||
|
'x86/call4_dword_xor'
|
||||||
|
'x86/context_cpuid'
|
||||||
|
'x86/context_stat'
|
||||||
|
'x86/context_time'
|
||||||
|
'x86/countdown'
|
||||||
|
'x86/fnstenv_mov'
|
||||||
|
'x86/jmp_call_additive'
|
||||||
|
'x86/nonalpha'
|
||||||
|
'x86/nonupper'
|
||||||
|
'x86/opt_sub'
|
||||||
|
'x86/shikata_ga_nai'
|
||||||
|
'x86/single_static_bit'
|
||||||
|
'x86/unicode_mixed'
|
||||||
|
'x86/unicode_upper'
|
||||||
|
)
|
||||||
|
|
||||||
|
_msfvenom_encoder() {
|
||||||
|
_describe -t encoders 'available encoders' _msfvenom_encoders_list || compadd "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
_arguments \
|
||||||
|
{-a,--arch}"[The architecture to encode as]:architecture:(cmd generic mipsbe mipsle php ppc sparc x64 x86)" \
|
||||||
|
{-b,--bad-chars}"[The list of characters to avoid, example: '\x00\xff']:bad characters" \
|
||||||
|
{-c,--add-code}"[Specify an additional win32 shellcode file to include]:shellcode file:_files" \
|
||||||
|
{-e,--encoder}"[The encoder to use]:encoder:_msfvenom_encoder" \
|
||||||
|
{-f,--format}"[Output format]:output format:(bash c csharp dw dword java js_be js_le num perl pl powershell ps1 py python raw rb ruby sh vbapplication vbscript asp aspx aspx-exe dll elf exe exe-only exe-service exe-small loop-vbs macho msi msi-nouac osx-app psh psh-net psh-reflection vba vba-exe vbs war)" \
|
||||||
|
"--help-formats[List available formats]" \
|
||||||
|
{-h,--help}"[Help banner]" \
|
||||||
|
{-i,--iterations}"[The number of times to encode the payload]:iterations" \
|
||||||
|
{-k,--keep}"[Preserve the template behavior and inject the payload as a new thread]" \
|
||||||
|
{-l,--list}"[List a module type]:module type:(all encoders nops payloads)" \
|
||||||
|
{-n,--nopsled}"[Prepend a nopsled of length size on to the payload]:nopsled length" \
|
||||||
|
{-o,--options}"[List the payload's standard options]" \
|
||||||
|
"--platform[The platform to encode for]:target platform:(android bsd bsdi java linux netware nodejs osx php python ruby solaris unix win)" \
|
||||||
|
{-p,--payload}"[Payload to use. Specify a '-' or stdin to use custom payloads]:payload" \
|
||||||
|
{-s,--space}"[The maximum size of the resulting payload]:length" \
|
||||||
|
{-x,--template}"[Specify an alternate executable template]:template file:_files"
|
||||||
230
dotfiles/zpreztorc
Normal file
230
dotfiles/zpreztorc
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
#
|
||||||
|
# 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' \
|
||||||
|
'history-substring-search' \
|
||||||
|
'jekyll' \
|
||||||
|
'prompt' \
|
||||||
|
'xtra_completions'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Autosuggestions
|
||||||
|
#
|
||||||
|
|
||||||
|
# Set the query found color.
|
||||||
|
# zstyle ':prezto:module:autosuggestions:color' found ''
|
||||||
|
|
||||||
|
#
|
||||||
|
# Completions
|
||||||
|
#
|
||||||
|
|
||||||
|
# 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' \
|
||||||
|
# 'cursor' \
|
||||||
|
# 'root'
|
||||||
|
#
|
||||||
|
# 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 'yes'
|
||||||
|
|
||||||
|
# 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,3 +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[blue]%}$(git_prompt_info)%{$fg[white]%}%#%{$reset_color%} '
|
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" ("
|
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX=")"
|
|
||||||
0
dotfiles/zshenv
Normal file → Executable file
0
dotfiles/zshenv
Normal file → Executable file
52
dotfiles/zshrc
Normal file → Executable file
52
dotfiles/zshrc
Normal file → Executable file
@@ -18,27 +18,27 @@ case $TERM in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
autoload -U colors && colors
|
autoload -U colors && colors
|
||||||
PS1="%{%(!.$fg[red].$fg[green])%}%n%{$fg[white]%}@%{$fg[cyan]%}%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%} "
|
||||||
|
|
||||||
|
if [ `uname` != 'Darwin' ] ; then
|
||||||
|
# ls Colors
|
||||||
|
alias ls='ls --color'
|
||||||
|
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
||||||
|
else
|
||||||
|
alias ls='ls -G'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Load prezto
|
||||||
|
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
|
||||||
|
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
# .profile is universal
|
# .profile is universal
|
||||||
|
# but after oh-my-zsh to use anything setup there
|
||||||
. ~/.profile
|
. ~/.profile
|
||||||
# Deduplicate the path
|
# Deduplicate the path
|
||||||
typeset -U path
|
typeset -U path
|
||||||
|
|
||||||
# LS Colors
|
|
||||||
alias ls='ls --color'
|
|
||||||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
|
||||||
|
|
||||||
# Load oh-my-zsh
|
|
||||||
if [ -d $HOME/.oh-my-zsh ] ; then
|
|
||||||
ZSH=$HOME/.oh-my-zsh
|
|
||||||
ZSH_THEME="matir"
|
|
||||||
ZSH_CUSTOM="$HOME/.zsh_custom"
|
|
||||||
plugins=(git encode64 gpg-agent pep8 pip python tmux urltools extract sudo virsh virtualenv command-not-found)
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
|
||||||
unset ZSH_THEME
|
|
||||||
unset ZSH_CUSTOM
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Keybindings
|
# Keybindings
|
||||||
bindkey '^[[A' history-search-backward
|
bindkey '^[[A' history-search-backward
|
||||||
@@ -52,5 +52,27 @@ if [[ $- == *i* ]] ; then
|
|||||||
for file in $HOME/.zshrc.d/* ; do source "$file" ; done
|
for file in $HOME/.zshrc.d/* ; do source "$file" ; done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# In case ack is named ack-grep
|
||||||
|
if [ -x /usr/bin/ack-grep ] ; then
|
||||||
|
alias ack='/usr/bin/ack-grep'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
|
||||||
|
export PATH="$PATH:$HOME/.rvm/bin"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
if [ -f "`command which nasm`" -a -f "`command which objdump`" ] ; then
|
if [ -f "`command which nasm 2>/dev/null`" -a -f "`command which objdump 2>/dev/null`" ] ; then
|
||||||
assemble_shellcode() {
|
assemble_shellcode() {
|
||||||
if [ -z "$1" ] ; then echo "Usage: $0 <assembly file>" >&2 ; return 1 ; fi
|
if [ -z "$1" ] ; then echo "Usage: $0 <assembly file>" >&2 ; return 1 ; fi
|
||||||
local NASM=`command which nasm`
|
local NASM=`command which nasm`
|
||||||
|
|||||||
17
dotfiles/zshrc.d/gcloud.zsh
Executable file
17
dotfiles/zshrc.d/gcloud.zsh
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
GCL=${HOME}/tools/gcloud
|
||||||
|
|
||||||
|
if [ ! -d ${GCL} ] ; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add bin to path
|
||||||
|
export PATH="${PATH}:${GCL}/bin"
|
||||||
|
|
||||||
|
# Load completion
|
||||||
|
source ${GCL}/completion.zsh.inc
|
||||||
|
|
||||||
|
which kubectl 2>/dev/null >&2 && \
|
||||||
|
source <(kubectl completion zsh) || \
|
||||||
|
true
|
||||||
283
install.sh
283
install.sh
@@ -1,31 +1,57 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set nounset
|
set -o nounset
|
||||||
set errexit
|
set -o errexit
|
||||||
|
|
||||||
function prerequisites {
|
case $(uname) in
|
||||||
if which zsh > /dev/null ; then
|
Linux)
|
||||||
if [[ $- == *i* ]] ; then
|
FINDTYPE="-xtype"
|
||||||
if [[ `getent passwd $USER | cut -d: -f7` != */zsh ]] ; then
|
;;
|
||||||
|
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
|
||||||
|
case $- in
|
||||||
|
*i*)
|
||||||
|
case `getent passwd $USER | cut -d: -f7` in
|
||||||
|
*/zsh)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [ `id` -ne 0 ] ; then
|
||||||
echo 'Enter password to change shell.' >&2
|
echo 'Enter password to change shell.' >&2
|
||||||
|
fi
|
||||||
chsh -s `which zsh`
|
chsh -s `which zsh`
|
||||||
fi
|
;;
|
||||||
fi
|
esac
|
||||||
install_git https://github.com/robbyrussell/oh-my-zsh.git $HOME/.oh-my-zsh
|
;;
|
||||||
|
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
|
||||||
if which vim > /dev/null ; then
|
if which vim > /dev/null 2>&1 ; then
|
||||||
mkdir -p $HOME/.vim/bundle
|
mkdir -p $HOME/.vim/bundle
|
||||||
install_git https://github.com/VundleVim/Vundle.vim.git \
|
install_git https://github.com/VundleVim/Vundle.vim.git \
|
||||||
$HOME/.vim/bundle/Vundle.vim
|
$HOME/.vim/bundle/Vundle.vim
|
||||||
fi
|
fi
|
||||||
if which gdb > /dev/null ; then
|
|
||||||
install_git https://github.com/longld/peda.git $HOME/.peda
|
|
||||||
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 \
|
||||||
@@ -33,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}"`
|
||||||
@@ -41,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}"`
|
||||||
@@ -53,79 +79,98 @@ 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
|
||||||
fi
|
fi
|
||||||
local REPO="${1}"
|
local REPO="${*: -2:1}"
|
||||||
local DESTDIR="${2}"
|
local DESTDIR="${*: -1:1}"
|
||||||
if [[ -d ${DESTDIR}/.git ]] ; then
|
set -- ${@:1:$(($#-2))}
|
||||||
|
if [ -d ${DESTDIR}/.git ] ; then
|
||||||
( cd ${DESTDIR} ; git pull -q )
|
( cd ${DESTDIR} ; git pull -q )
|
||||||
else
|
else
|
||||||
git clone ${REPO} ${DESTDIR}
|
if [ ${MINIMAL} -eq 1 ] ; then
|
||||||
|
git clone --depth 1 $* ${REPO} ${DESTDIR}
|
||||||
|
else
|
||||||
|
git clone $* ${REPO} ${DESTDIR}
|
||||||
|
fi
|
||||||
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
|
||||||
ln -sf ${1} ${LINKNAME}
|
ln -sf ${1} ${LINKNAME}
|
||||||
}
|
}
|
||||||
|
|
||||||
function postinstall {
|
# Custom version of pwndbg's installer
|
||||||
|
install_pwndbg() {
|
||||||
|
if ! which gdb > /dev/null 2>&1 ; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
install_git -b stable https://github.com/pwndbg/pwndbg.git $HOME/.pwndbg
|
||||||
|
mkdir -p $HOME/.pwndbg/vendor
|
||||||
|
local PYVER=$(gdb -batch -q --nx -ex 'pi import platform; print(".".join(platform.python_version_tuple()[:2]))')
|
||||||
|
local PYTHON=$(gdb -batch -q --nx -ex 'pi import sys; print(sys.executable)')
|
||||||
|
PYTHON="${PYTHON}${PYVER}"
|
||||||
|
local PY_PACKAGES=$HOME/.pwndbg/vendor
|
||||||
|
${PYTHON} -m pip install --target ${PY_PACKAGES} -Ur $HOME/.pwndbg/requirements.txt
|
||||||
|
${PYTHON} -m pip install --target ${PY_PACKAGES} -U capstone unicorn
|
||||||
|
# capstone package is broken
|
||||||
|
cp ${PY_PACKAGES}/usr/lib/*/dist-packages/capstone/libcapstone.so ${PY_PACKAGES}/capstone
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
@@ -137,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
|
||||||
@@ -159,19 +206,19 @@ 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 groups | grep -q '\bsudo\b' ; then
|
||||||
@@ -182,24 +229,44 @@ 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}
|
||||||
if [[ ! -f ${pkg_file} ]] ; then return 0 ; fi
|
local pkg_list=""
|
||||||
run_as_root apt-get install -qqy `cat ${pkg_file}`
|
if [ ! -f "${pkg_file}" ] ; then return 0 ; fi
|
||||||
|
while read line ; do
|
||||||
|
if is_comment "${line}" ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if [ -z "${line}" ] ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if apt-cache show ${line} >/dev/null 2>&1 ; then
|
||||||
|
pkg_list="${pkg_list} ${line}"
|
||||||
|
else
|
||||||
|
echo "Warning: package ${line} not found." >&2
|
||||||
|
fi
|
||||||
|
done < ${pkg_file}
|
||||||
|
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
|
||||||
@@ -211,17 +278,18 @@ 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 pref_file=`dirname $0`/installed-prefs
|
||||||
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
|
||||||
@@ -231,12 +299,16 @@ 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
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
/usr/bin/zsh >/dev/null 2>&1 <<EOF
|
/usr/bin/zsh >/dev/null 2>&1 <<EOF
|
||||||
source ${BASEDIR}/dotfiles/zshrc.d/prune-broken-symlinks.zsh
|
source ${BASEDIR}/dotfiles/zshrc.d/prune-broken-symlinks.zsh
|
||||||
prune-broken-symlinks -y ${HOME}/.zshrc.d
|
prune-broken-symlinks -y ${HOME}/.zshrc.d
|
||||||
@@ -244,14 +316,39 @@ function cleanup {
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
function verbose {
|
verbose() {
|
||||||
(( ${VERBOSE:-0} )) && echo "$@" >&2
|
test ${VERBOSE:-0} = 1 && echo "$@" >&2 || return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# Operations
|
||||||
|
|
||||||
|
install_dotfiles() {
|
||||||
|
install_dotfile_dir "${BASEDIR}/dotfiles"
|
||||||
|
test -d "${BASEDIR}/private_dotfiles" && \
|
||||||
|
test -d "${BASEDIR}/.git/git-crypt" && \
|
||||||
|
install_dotfile_dir "${BASEDIR}/private_dotfiles" || \
|
||||||
|
true
|
||||||
|
test -d "${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"
|
||||||
|
test $MINIMAL = 1 || postinstall
|
||||||
|
test $INSTALL_KEYS = 1 && install_keys
|
||||||
|
save_prefs
|
||||||
|
cleanup
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup variables
|
# Setup variables
|
||||||
read_saved_prefs
|
read_saved_prefs
|
||||||
|
|
||||||
# Defaults if not passed in or saved
|
# Defaults if not passed in or saved.
|
||||||
|
# TODO: use flags instead of environment variables.
|
||||||
BASEDIR=${BASEDIR:-$HOME/.skel}
|
BASEDIR=${BASEDIR:-$HOME/.skel}
|
||||||
MINIMAL=${MINIMAL:-0}
|
MINIMAL=${MINIMAL:-0}
|
||||||
INSTALL_KEYS=${INSTALL_KEYS:-1}
|
INSTALL_KEYS=${INSTALL_KEYS:-1}
|
||||||
@@ -261,31 +358,47 @@ 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
|
||||||
|
|
||||||
if which dpkg-query > /dev/null ; then
|
if which dpkg-query > /dev/null 2>&1 ; then
|
||||||
HAVE_X=`dpkg-query -s xserver-xorg 2>/dev/null | grep -c 'Status.*installed'`
|
HAVE_X=$(dpkg-query -s xserver-xorg 2>/dev/null | \
|
||||||
|
grep -c 'Status.*installed' \
|
||||||
|
|| true)
|
||||||
else
|
else
|
||||||
HAVE_X=0
|
HAVE_X=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IS_KALI=`grep -ci kali /etc/os-release 2>/dev/null`
|
IS_KALI=$(grep -ci kali /etc/os-release 2>/dev/null || true)
|
||||||
ARCH=`uname -m`
|
ARCH=$(uname -m)
|
||||||
|
|
||||||
|
OPERATION=${1:-install}
|
||||||
|
|
||||||
(( $MINIMAL )) || prerequisites
|
case $OPERATION in
|
||||||
(( $INSTALL_PKGS )) && is_deb_system && install_apt_pkgs
|
install)
|
||||||
install_dotfile_dir "${BASEDIR}/dotfiles"
|
install_main
|
||||||
test -d "${BASEDIR}/private_dotfiles" && \
|
;;
|
||||||
test -d "${BASEDIR}/.git/git-crypt" && \
|
dotfiles)
|
||||||
install_dotfile_dir "${BASEDIR}/private_dotfiles"
|
install_dotfiles
|
||||||
test -d "${BASEDIR}/local_dotfiles" && \
|
;;
|
||||||
install_dotfile_dir "${BASEDIR}/local_dotfiles"
|
package*)
|
||||||
install_basic_dir "${BASEDIR}/bin" "${HOME}/bin"
|
if [ ${2:-default} != default ] ; then
|
||||||
(( $MINIMAL )) || postinstall
|
install_pkg_set packages.${2}
|
||||||
(( $INSTALL_KEYS )) && install_keys
|
else
|
||||||
save_prefs
|
install_pkg_set packages
|
||||||
cleanup
|
fi
|
||||||
|
;;
|
||||||
|
pwndbg)
|
||||||
|
install_pwndbg
|
||||||
|
;;
|
||||||
|
test)
|
||||||
|
# Do nothing, just sourcing
|
||||||
|
set +o errexit
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown operation $OPERATION." >/dev/stderr
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|||||||
1
keys/ssh/5dea789b_subkey.pub
Normal file
1
keys/ssh/5dea789b_subkey.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDYQOAB5bJ9DjMXyY67GEI99kK1LG8XF+cWJ4md52rPnOeJd0da7l26bn9NtXCma6DP5gZQArfxHsPh7I4SbYJRYxTCCCE/Jsd8mLB22DcoeY+MqPA2g71j3KrYsvuJC++9GHK2Xc7ZRmhAugEmC/NAdtORBVhtBSAUgyCmUczKHoCAqHmq8j54En8kRYjbvlHPpDsNoRuhcH5uDGBIVkbV7UtBl2oUlRNVw7grs6XS7cPU2zCQSxcrRRuAfV4hmGG2eKaPpieNg0MAAbR0G5ssWW3IuYwd1ys5wA0YQuWUhxadUuYc46/cqyyoVIFlfjxCVTX+2w3900SDPOF/YrOwctAb23+78WN6GPnAmmS3zcmXTGsJiw/mmyBlqYI/JdSgrgI+COlcP0rlF/uklzEywfD91m1lno1u2IApdAumZWHR8aFnpHQXfI6rWc1o/V+RBpz5Xe6D2h9CPT3AE303BV09HGmidb0t6bCKoabTDwvE+KojIcbKBji6g8V6KTM=
|
||||||
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 +1 @@
|
|||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC8vQiJn9J2KjNIwX427Zq0gpvD1XdR0j+3gY1DTG1yGU808a001YCw0UTQzaSfRZ0ixWyOiFiZ0UcyZnJlN/dQeIKvxWeIW6T3kjpkjzLiBJbloHT0CvqJoz/VAPuBKH9sVKabZlmufqM3B43XDCDS8UGcxUmHxSFSh4hsqurP+ywI8QsoLz1epiFeUQCqsLG5LZIpthAYDOXtxp6cVoKgosi+zJm7sHG/pIof//WMW1xFCArEQfiWXa3Mv3Ir+geKej3lmWPMZNyGpGVtH9w0VHmzPX6OY02CelUoqe/yQDqZ0SjVKm0WZOHStAep0sxVR7/zHvS36Wk0eSptuenR davidtomaschik@glaptop
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClvMvarQvGaFYhUazA+GN0C2XaU4vHmsvD3G99PJqmd9SGrzSvWw2ZuJwYWQCag4Ft5Zy/A3NZ0/a4ohPbWFF4iX9LnAqSKgMDPv3R3VokW04bFm5uDhXF0lJDOWb8aJuFl56SP2lnbWyP8P8d+3MaFCcuw3F23CS/0ZO5w7CsPsHkvWkmykCB6z/Ju/kqvXK5qYKjAVkZ80LMDNppjN5zZhFZs721zuuMmpFevcfG5c43KujcR/yDfB+t3yfWmaWi21KDapdHXk5lQoxsg6OZe6Wuj7jQq+Zol+ElxD+gn7z2LWXq8a3wyyvGSoKyBfHBjrwzEuUEFbvn5iatPJVX davidtomaschik@davidtomaschik-glaptop2
|
||||||
|
|||||||
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
|
||||||
|
|||||||
1
keys/ssh/matir_pvj.pub
Normal file
1
keys/ssh/matir_pvj.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3CLK0KLup0y8nb1l5X9LTVsvJG1scc7qbLJZIdGC0TlFeAbzUwXmxxJUY/dl/2JKGj9Ai3h393WzxH//tMY4jYLhMLqV487YvteVF+2yVS+q0YtO4RgM6TVOvdp1b4Fgj4EB5hTaO0hB51PxTqnVAK0ZMAuUxQRygpARnB+xwhLU2l0K07RHgpMirWODzzlgD3Y9I+3WIpmAwzubaoS1/R0Frf81ZWQmgvwac6PKsPwvGLygS1ounOwD2PJScP+sE/t2MEYjtqmmAytqsp5kLVkb82fJSkdj1DuHblgZr4aX9r04bVV1ju19CN57VyhbZtf+fBqQQW1lnjMYm9Kjn matir_pvj
|
||||||
1
keys/ssh/trusted/5dea789b_subkey.pub
Symbolic link
1
keys/ssh/trusted/5dea789b_subkey.pub
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../5dea789b_subkey.pub
|
||||||
350
packages.HHV
Normal file
350
packages.HHV
Normal file
@@ -0,0 +1,350 @@
|
|||||||
|
# Kali packages
|
||||||
|
kali-linux-sdr
|
||||||
|
kali-linux-rfid
|
||||||
|
|
||||||
|
# Hardware tools
|
||||||
|
# Electronic schematic and PCB design software
|
||||||
|
kicad
|
||||||
|
# Logic analyzer and protocol decoder software suite
|
||||||
|
sigrok
|
||||||
|
# GNU C compiler (cross compiler for avr)
|
||||||
|
gcc-avr
|
||||||
|
# GNU Debugger for avr
|
||||||
|
gdb-avr
|
||||||
|
# software for programming Atmel AVR microcontrollers
|
||||||
|
avrdude
|
||||||
|
# tool for searching binary images for embedded files and executable code
|
||||||
|
binwalk
|
||||||
|
# free and advanced command line hexadecimal editor
|
||||||
|
radare2
|
||||||
|
# Open on-chip JTAG debug solution for ARM and MIPS systems
|
||||||
|
openocd
|
||||||
|
# AVR development board IDE and built-in libraries
|
||||||
|
arduino
|
||||||
|
# Program your Arduino from the command line
|
||||||
|
arduino-mk
|
||||||
|
# Atmel SAM ARM microcontroller flash programming utility
|
||||||
|
bossa-cli
|
||||||
|
# Cypress EZ-USB FX2 (LP) programmer
|
||||||
|
cycfx2prog
|
||||||
|
# device firmware update (DFU) based USB programmer for Atmel chips
|
||||||
|
dfu-programmer
|
||||||
|
# Device firmware update (DFU) USB programmer
|
||||||
|
dfu-util
|
||||||
|
# tool for documenting hardware designs through timing diagrams
|
||||||
|
drawtiming
|
||||||
|
# A graphical frontend to the Spice simulator
|
||||||
|
easyspice
|
||||||
|
# Emulator and simulator for 8051 microcontrollers
|
||||||
|
emu8051
|
||||||
|
# create and flash firmware files to ESP8266 or ESP32 chips
|
||||||
|
esptool
|
||||||
|
# utility to configure SRAM based ALTERA devices
|
||||||
|
flexloader
|
||||||
|
# VHDL simulator for Linux
|
||||||
|
freehdl
|
||||||
|
# graphical logic circuit simulator
|
||||||
|
glogic
|
||||||
|
# GNU Circuit Analysis package
|
||||||
|
gnucap
|
||||||
|
# Graphical Intel 8085 simulator, assembler and debugger
|
||||||
|
gnusim8085
|
||||||
|
# Simulator for Microchip's PIC microcontrollers
|
||||||
|
gpsim
|
||||||
|
# GNU PIC utilities
|
||||||
|
gputils
|
||||||
|
# Graphical user interface for gnucap and ngspice
|
||||||
|
gspiceui
|
||||||
|
# VCD (Value Change Dump) file waveform viewer
|
||||||
|
gtkwave
|
||||||
|
# waveform viewer eg for spice simulators
|
||||||
|
gwave
|
||||||
|
# switch-level simulator
|
||||||
|
irsim
|
||||||
|
# interface to NXP LPC Microcontrollers ISP serial interface
|
||||||
|
lpctools
|
||||||
|
# debugging tool for MSP430 microcontrollers
|
||||||
|
mspdebug
|
||||||
|
# Spice circuit simulator
|
||||||
|
ngspice
|
||||||
|
# Microchip PIC serial programmer software
|
||||||
|
picprog
|
||||||
|
# tool to decode RFID tag data
|
||||||
|
rfdump
|
||||||
|
# In-System Programmer for 8051 MCUs using usbtiny
|
||||||
|
s51dude
|
||||||
|
# OBD-II vehicle diagnostic scanner
|
||||||
|
scantool
|
||||||
|
# Small Device C Compiler
|
||||||
|
sdcc
|
||||||
|
# Micro-controller simulator for SDCC
|
||||||
|
sdcc-ucsim
|
||||||
|
# Atmel AVR simulator
|
||||||
|
simulavr
|
||||||
|
# MIPS R2000/R3000 emulator
|
||||||
|
spim
|
||||||
|
# STM32 chip flashing utility using a serial bootloader
|
||||||
|
stm32flash
|
||||||
|
|
||||||
|
# fast processor emulator
|
||||||
|
qemu
|
||||||
|
# JTAG programmer for various flash parts and boards
|
||||||
|
urjtag
|
||||||
|
# Firmware programming tool for the USBprog hardware
|
||||||
|
usbprog
|
||||||
|
# Icarus verilog compiler
|
||||||
|
iverilog
|
||||||
|
|
||||||
|
# Misc tools
|
||||||
|
# fast, scalable, distributed revision control system
|
||||||
|
git
|
||||||
|
# Document (PostScript, PDF) viewer
|
||||||
|
evince
|
||||||
|
# terminal multiplexer
|
||||||
|
tmux
|
||||||
|
# minimal dumb-terminal emulation program
|
||||||
|
picocom
|
||||||
|
# GTK+ base UVC Viewer
|
||||||
|
guvcview
|
||||||
|
|
||||||
|
# Other potential useful tools:
|
||||||
|
# c2tool - C2 programming/debugging interface
|
||||||
|
# libswd - SWD programming/debugging interface
|
||||||
|
# jrev/FTjrev - Software functionality similar to that of JTAGulator
|
||||||
|
# Add some offline'd websites?
|
||||||
|
# buspirate, etc.?
|
||||||
|
|
||||||
|
# SDR tools:
|
||||||
|
# gnuradio chirp hackrf kalibrate-rtl rtlsdr-scanner gqrx-sdr multimon-ng uhd-host uhd-images libgnuradio-baz gr-osmosdr gr-iqbal
|
||||||
|
|
||||||
|
# Other tools in the "Electronics" section that might be useful
|
||||||
|
# VLSI CAD Tools
|
||||||
|
alliance
|
||||||
|
# Altus Metrum firmware and utilities
|
||||||
|
altos
|
||||||
|
# Place and route tool for iCE40 family FPGAs
|
||||||
|
arachne-pnr
|
||||||
|
# Chip db files for arachne-pnr
|
||||||
|
arachne-pnr-chipdb
|
||||||
|
# Platform files for Arduino to run on ATmega1284P
|
||||||
|
arduino-mighty-1284p
|
||||||
|
# Arbitrary Transmission Line Calculator
|
||||||
|
atlc
|
||||||
|
# Examples for Arbitrary Transmission Line Calculator
|
||||||
|
atlc-examples
|
||||||
|
# use GDB with Atmel AVR debuggers
|
||||||
|
avarice
|
||||||
|
# assembler for Atmel AVR microcontrollers
|
||||||
|
avra
|
||||||
|
# Programmer for Atmel AVR microcontrollers
|
||||||
|
avrp
|
||||||
|
# ABC - A System for Sequential Synthesis and Verification
|
||||||
|
berkeley-abc
|
||||||
|
# Atmel SAM ARM microcontroller flash programming GUI
|
||||||
|
bossa
|
||||||
|
# Utility to control X10 Firecracker devices for home automation
|
||||||
|
bottlerocket
|
||||||
|
# Electronic Design Automation software focused on easy of use and portability
|
||||||
|
caneda
|
||||||
|
# Handle CAN (Controller Area Network) descriptions - cmdline utilities
|
||||||
|
canmatrix-utils
|
||||||
|
# C Compiler for TI/Chipcon 8051-based RF SOCs
|
||||||
|
# cc1111 Conflicts with sdcc
|
||||||
|
# Verilog code coverage analysis tool
|
||||||
|
covered
|
||||||
|
# Digital Filter Coefficients Generator (DFCGen) GTK+
|
||||||
|
dfcgen-gtk
|
||||||
|
# read temperature sensors in a 1-Wire net
|
||||||
|
digitemp
|
||||||
|
# electrical CAD system
|
||||||
|
electric
|
||||||
|
# Identify, read, write, erase, and verify BIOS/ROM/flash chips
|
||||||
|
flashrom
|
||||||
|
# Tools to handle the bitstream format of Lattice iCE40 FPGAs
|
||||||
|
fpga-icestorm
|
||||||
|
# Chip database files for fpga-icestorm
|
||||||
|
fpga-icestorm-chipdb
|
||||||
|
# Easy-to-use electronic design software
|
||||||
|
fritzing
|
||||||
|
# Easy-to-use electronic design software (data files)
|
||||||
|
fritzing-data
|
||||||
|
# Easy-to-use electronic design software (parts files)
|
||||||
|
fritzing-parts
|
||||||
|
# GPL EDA -- Electronics design software (metapackage)
|
||||||
|
geda
|
||||||
|
# GPL EDA -- Electronics design software (example designs)
|
||||||
|
geda-examples
|
||||||
|
# GPL EDA -- Electronics design software (attribute editor)
|
||||||
|
geda-gattrib
|
||||||
|
# GPL EDA -- Electronics design software (netlister)
|
||||||
|
geda-gnetlist
|
||||||
|
# GPL EDA -- Electronics design software (schematic editor)
|
||||||
|
geda-gschem
|
||||||
|
# GPL EDA -- Electronics design software (symbol checker)
|
||||||
|
geda-gsymcheck
|
||||||
|
# GPL EDA -- Electronics design software (symbols library)
|
||||||
|
geda-symbols
|
||||||
|
# GPL EDA -- Electronics design software (utilities)
|
||||||
|
geda-utils
|
||||||
|
# GPL EDA -- Electronics design software -- gschem -> PCB workflow GUI
|
||||||
|
geda-xgsch2pcb
|
||||||
|
# Gerber file viewer for PCB design
|
||||||
|
gerbv
|
||||||
|
# Placement for digital VLSI design
|
||||||
|
graywolf
|
||||||
|
# Electronic schematic and PCB design software
|
||||||
|
kicad
|
||||||
|
# Common files used by kicad
|
||||||
|
kicad-common
|
||||||
|
# Kicad help files (German)
|
||||||
|
kicad-doc-de
|
||||||
|
# Kicad help files (English)
|
||||||
|
kicad-doc-en
|
||||||
|
# Kicad help files (Spanish)
|
||||||
|
kicad-doc-es
|
||||||
|
# Kicad help files (French)
|
||||||
|
kicad-doc-fr
|
||||||
|
# Kicad help files (Japanese)
|
||||||
|
kicad-doc-ja
|
||||||
|
# Kicad help files (Dutch)
|
||||||
|
kicad-doc-nl
|
||||||
|
# Control programs for the Per Vices Noctar IQ demodulator board
|
||||||
|
langford-utils
|
||||||
|
# GPL EDA -- Electronics design software (data files)
|
||||||
|
libgeda-common
|
||||||
|
# GPL EDA -- Electronics design software (library files)
|
||||||
|
libgeda42
|
||||||
|
# utility library for talking to the LEGO Mindstorms NXT brick
|
||||||
|
libnxt
|
||||||
|
# tool to generate Smith Charts
|
||||||
|
linsmith
|
||||||
|
# Flash programmer for Renesas M16C and R8C microcontrollers
|
||||||
|
m16c-flash
|
||||||
|
# VLSI layout tool
|
||||||
|
magic
|
||||||
|
# Graphical Integrated Development Environment for 8051
|
||||||
|
mcu8051ide
|
||||||
|
# C compiler for LEGO Mindstorms NXT bricks
|
||||||
|
nbc
|
||||||
|
# simulator for the Microchip PIC16C84 microcontroller
|
||||||
|
nitpic
|
||||||
|
# Improved firmware for LEGO Mindstorms NXT bricks
|
||||||
|
nxt-firmware
|
||||||
|
# Open Lighting Architecture
|
||||||
|
ola
|
||||||
|
# shell utilities to talk to an 1-Wire owserver
|
||||||
|
ow-shell
|
||||||
|
# tools to monitor or inspect a ow-server link
|
||||||
|
ow-tools
|
||||||
|
# Dallas 1-wire support
|
||||||
|
owfs
|
||||||
|
# common files used by any of the OWFS programs
|
||||||
|
owfs-common
|
||||||
|
# 1-Wire filesystem
|
||||||
|
owfs-fuse
|
||||||
|
# FTP daemon providing access to 1-Wire networks
|
||||||
|
owftpd
|
||||||
|
# HTTP daemon providing access to 1-Wire networks
|
||||||
|
owhttpd
|
||||||
|
# Backend server for 1-Wire control
|
||||||
|
owserver
|
||||||
|
# printed circuit board (pcb) design program - meta-package
|
||||||
|
pcb
|
||||||
|
# printed circuit board (pcb) design program - common files
|
||||||
|
pcb-common
|
||||||
|
# printed circuit board (pcb) design program - GTK+ interface
|
||||||
|
pcb-gtk
|
||||||
|
# printed circuit board (pcb) design program - LessTif interface
|
||||||
|
pcb-lesstif
|
||||||
|
# printed circuit board (pcb) design program
|
||||||
|
pcb-rnd
|
||||||
|
# command-line tool for engraving PCBs using CNCs
|
||||||
|
pcb2gcode
|
||||||
|
# interfacing with the Arduino from within Pure Data (Pd)
|
||||||
|
pd-pduino
|
||||||
|
# interfacing with your XBee from within Pure Data (Pd)
|
||||||
|
pd-xbee
|
||||||
|
# Transitional dummy package for python-pyvisa
|
||||||
|
pyvisa
|
||||||
|
# Electric schematic editor
|
||||||
|
qelectrotech
|
||||||
|
# symbols needed for qelectrotech
|
||||||
|
qelectrotech-data
|
||||||
|
# examples files for qelectrotech
|
||||||
|
qelectrotech-examples
|
||||||
|
# Open-Source Digital Synthesis Flow
|
||||||
|
qflow
|
||||||
|
# Technology files needed for qflow for osu018
|
||||||
|
qflow-tech-osu018
|
||||||
|
# Technology files needed for qflow for osu035
|
||||||
|
qflow-tech-osu035
|
||||||
|
# Technology files needed for qflow for osu050
|
||||||
|
qflow-tech-osu050
|
||||||
|
# Multi-level, over-the-cell maze router
|
||||||
|
qrouter
|
||||||
|
# symbolic analyzer and solver of linear analog circuits
|
||||||
|
qsapecng
|
||||||
|
# simulator for Microchip PIC16F84 microcontroller
|
||||||
|
simulpic
|
||||||
|
# Utilities for using the Wi-Spy USB spectrum analyzer hardware
|
||||||
|
spectools
|
||||||
|
# Simple command-line tool for LEGO Mindstorms NXT
|
||||||
|
t2n
|
||||||
|
# Tcl/Tk based digital circuit editor and simulator
|
||||||
|
tkgate
|
||||||
|
# Tcl/Tk based digital circuit editor and simulator - data files
|
||||||
|
tkgate-data
|
||||||
|
# Micro In-System Programmer for Atmel's AVR MCUs
|
||||||
|
uisp
|
||||||
|
# USB HID relay driver
|
||||||
|
usbrelay
|
||||||
|
# fast free Verilog simulator
|
||||||
|
verilator
|
||||||
|
# tool for engraving PCBs using CNCs
|
||||||
|
visolate
|
||||||
|
# Data logger for 1-Wire weather sensors
|
||||||
|
w1retap
|
||||||
|
# Data logger for 1-Wire weather sensors (MongoDB plugin)
|
||||||
|
w1retap-mongo
|
||||||
|
# Data logger for 1-Wire weather sensors (MySQL plugin)
|
||||||
|
w1retap-mysql
|
||||||
|
# Data logger for 1-Wire weather sensors (ODBC plugin)
|
||||||
|
w1retap-odbc
|
||||||
|
# Data logger for 1-Wire weather sensors (PostgreSQL plugin)
|
||||||
|
w1retap-pgsql
|
||||||
|
# Data logger for 1-Wire weather sensors (SQLite plugin)
|
||||||
|
w1retap-sqlite
|
||||||
|
# Draw circuit schematics or almost anything
|
||||||
|
xcircuit
|
||||||
|
# Framework for Verilog RTL synthesis
|
||||||
|
yosys
|
||||||
|
# Framework for Verilog RTL synthesis (development files)
|
||||||
|
yosys-dev
|
||||||
|
|
||||||
|
# Other tools in the "Embedded" section that might be useful
|
||||||
|
# Firmware for USB JTAG programmers
|
||||||
|
ixo-usb-jtag
|
||||||
|
# Common include files for the open wince project
|
||||||
|
# openwince-include Conflicts with urjtag
|
||||||
|
# allows programming jtag capable devices such as CPUs or FPGAs
|
||||||
|
# openwince-jtag Conflicts with urjtag
|
||||||
|
# Tools for flashing Rockchip devices
|
||||||
|
rkflashtool
|
||||||
|
# GUI firmware programming tool for the USBprog hardware
|
||||||
|
usbprog-gui
|
||||||
|
|
||||||
|
# Other cross compilers
|
||||||
|
gcc-aarch64-linux-gnu
|
||||||
|
gcc-alpha-linux-gnu
|
||||||
|
gcc-arm-linux-gnueabi
|
||||||
|
gcc-arm-linux-gnueabihf
|
||||||
|
gcc-arm-none-eabi
|
||||||
|
gcc-h8300-hms
|
||||||
|
gcc-hppa-linux-gnu
|
||||||
|
gcc-hppa64-linux-gnu
|
||||||
|
gcc-m68hc1x
|
||||||
|
gcc-m68k-linux-gnu
|
||||||
|
gcc-mips-linux-gnu
|
||||||
|
gcc-mips64-linux-gnuabi64
|
||||||
|
gcc-mips64el-linux-gnuabi64
|
||||||
|
gcc-mipsel-linux-gnu
|
||||||
@@ -1,48 +1,36 @@
|
|||||||
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
|
||||||
ipython
|
ipython
|
||||||
ipython3
|
ipython3
|
||||||
|
jq
|
||||||
kpartx
|
kpartx
|
||||||
ldap-utils
|
ldap-utils
|
||||||
ltrace
|
|
||||||
lvm2
|
lvm2
|
||||||
mosh
|
most
|
||||||
ngrep
|
|
||||||
nmap
|
|
||||||
opensc
|
opensc
|
||||||
openvpn
|
openvpn
|
||||||
p7zip-full
|
p7zip-full
|
||||||
|
python3
|
||||||
|
python3-pip
|
||||||
|
python3-virtualenv
|
||||||
python-crypto
|
python-crypto
|
||||||
python-dev
|
python-dev
|
||||||
python-hachoir-urwid
|
python-hachoir-urwid
|
||||||
|
python-html5lib
|
||||||
python-imaging
|
python-imaging
|
||||||
|
python-nwdiag
|
||||||
python-pip
|
python-pip
|
||||||
python-pypdf
|
python-scapy
|
||||||
|
python-virtualenv
|
||||||
python-yara
|
python-yara
|
||||||
radare2
|
radare2
|
||||||
scapy
|
scapy
|
||||||
scdaemon
|
scdaemon
|
||||||
|
socat
|
||||||
sqlite3
|
sqlite3
|
||||||
strace
|
|
||||||
tcpdump
|
|
||||||
tmux
|
|
||||||
traceroute
|
|
||||||
tshark
|
|
||||||
ufw
|
ufw
|
||||||
unzip
|
|
||||||
vim
|
|
||||||
whois
|
|
||||||
zsh
|
|
||||||
@@ -1 +1,2 @@
|
|||||||
volatility
|
volatility
|
||||||
|
bettercap
|
||||||
|
|||||||
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
|
||||||
BIN
private_dotfiles/java/.userPrefs/burp/prefs.xml
Normal file
BIN
private_dotfiles/java/.userPrefs/burp/prefs.xml
Normal file
Binary file not shown.
Binary file not shown.
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