mirror of
https://github.com/Matir/skel.git
synced 2026-05-26 13:35:42 -07:00
Compare commits
239 Commits
zshopt
...
2022-10-21
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e02dc0be80 | ||
|
|
6c3dea3721 | ||
|
|
cb3ba03c49 | ||
|
|
d7cc6fd508 | ||
|
|
e375d7f472 | ||
|
|
373189f440 | ||
|
|
a719ca9972 | ||
|
|
4937a98ccc | ||
|
|
81093ab3d6 | ||
|
|
ab85cb5ecf | ||
|
|
cbb580fcdf | ||
|
|
aea9e50141 | ||
|
|
10ce6ff7f6 | ||
|
|
cd9bb5d6cc | ||
|
|
5cfbc4e88a | ||
|
|
44d981e3c3 | ||
|
|
3f509e17c1 | ||
|
|
af3365ad8e | ||
|
|
6888e8503f | ||
|
|
e52af2d21a | ||
|
|
a5a5c7d5df | ||
|
|
aca274d7df | ||
|
|
70cdfcdc07 | ||
|
|
9a38b456d7 | ||
|
|
a4196d7bc1 | ||
|
|
cbcc6e6fb6 | ||
|
|
f2ca693f7b | ||
|
|
da43e7533d | ||
|
|
9c9c56b030 | ||
|
|
747bc7becd | ||
|
|
c3c9714b8d | ||
|
|
5865f5130f | ||
|
|
6803ac2ce2 | ||
|
|
c512401acd | ||
|
|
dae254e240 | ||
|
|
2ab9bd3452 | ||
|
|
b68c1e2c65 | ||
|
|
3c8d8ca5e1 | ||
|
|
f6e6c42b26 | ||
|
|
7165e7c93f | ||
|
|
63f401c84b | ||
|
|
dea863ee35 | ||
|
|
d01a320de7 | ||
|
|
0564dbbb3d | ||
|
|
1efa61a9f4 | ||
|
|
77a01d2fda | ||
|
|
71711a5cc0 | ||
|
|
a49474fe60 | ||
|
|
2217cfb47b | ||
|
|
75b0c5db9e | ||
|
|
50174a4f72 | ||
|
|
04470627c6 | ||
|
|
e6318c4cc1 | ||
|
|
15b575c34d | ||
|
|
2db123c772 | ||
|
|
2de511f5f3 | ||
|
|
890a24ec07 | ||
|
|
a3aaed6c0c | ||
|
|
9f4fbfb06a | ||
|
|
273d6b495f | ||
|
|
d41703820d | ||
|
|
5748d014f1 | ||
|
|
2779322b24 | ||
|
|
50948acee4 | ||
|
|
670cf5c8dc | ||
|
|
d213b3b234 | ||
|
|
37d606cc49 | ||
|
|
8f57fad78c | ||
|
|
f8ddb56b02 | ||
|
|
1f59627da9 | ||
|
|
2c88a59188 | ||
|
|
9ec67f4c1c | ||
|
|
db3193e0bc | ||
|
|
9c83b8fc40 | ||
|
|
3da887ffad | ||
|
|
f56b7d0b7b | ||
|
|
e18e66391b | ||
|
|
8b66586fe8 | ||
|
|
ac4109cee6 | ||
|
|
99af2287c5 | ||
|
|
6adaaffabd | ||
|
|
c6f217d47c | ||
|
|
733093ee7a | ||
|
|
441a533e2a | ||
|
|
8d30879224 | ||
|
|
f94a4dc67c | ||
|
|
0bb950b053 | ||
|
|
4ec8f22ab8 | ||
|
|
ba0c734b06 | ||
|
|
f24e3ebb24 | ||
|
|
4af40de24b | ||
|
|
351b136cbc | ||
|
|
a5b0677903 | ||
|
|
ebf5c1cd22 | ||
|
|
94abfa2fe2 | ||
|
|
15f5f91e2a | ||
|
|
2b6229acc3 | ||
|
|
e05a6aa473 | ||
|
|
673fca3c05 | ||
|
|
f6a7b372b7 | ||
|
|
685fb22dd3 | ||
|
|
e788dedf69 | ||
|
|
a482092fdb | ||
|
|
b3eb8a8e44 | ||
|
|
3afee0505b | ||
|
|
50b74fc06e | ||
|
|
74bf253950 | ||
|
|
434120cc90 | ||
|
|
97e23b3669 | ||
|
|
f9f3dd05c8 | ||
|
|
6e095d9fbc | ||
|
|
c25540a398 | ||
|
|
fae178e8ac | ||
|
|
15ea12d54b | ||
|
|
291de7b2c1 | ||
|
|
bbba28e166 | ||
|
|
27dc8fb22c | ||
|
|
a5f55034fa | ||
|
|
062da36145 | ||
|
|
9e3b929a4b | ||
|
|
3170a41c4b | ||
|
|
b37f95383c | ||
|
|
e6e66b0d05 | ||
|
|
6e6b63cb28 | ||
|
|
20bb942ac6 | ||
|
|
d256cdf12b | ||
|
|
c20739472f | ||
|
|
66e6833623 | ||
|
|
bc5f9a2741 | ||
|
|
04d4ab4d25 | ||
|
|
ce1d4780b6 | ||
|
|
8e79910857 | ||
|
|
999ef09790 | ||
|
|
2f9841e2ac | ||
|
|
2879f63aff | ||
|
|
79a3e1f46c | ||
|
|
62392e3712 | ||
|
|
9717fef420 | ||
|
|
3c83cb1761 | ||
|
|
2a71557663 | ||
|
|
b6a2b65704 | ||
|
|
398e39b9eb | ||
|
|
f6b5cd90fc | ||
|
|
1d14f294eb | ||
|
|
f3cb3607db | ||
|
|
d117ee6b2e | ||
|
|
7e249843a6 | ||
|
|
465bfd37f1 | ||
|
|
5ad1ad4616 | ||
|
|
e82cad68e1 | ||
|
|
5e372e2b35 | ||
|
|
9e392af7d1 | ||
|
|
68bcf536cb | ||
|
|
698f2defa9 | ||
|
|
a42128f5c9 | ||
|
|
6559acbf90 | ||
|
|
a654a7747c | ||
|
|
d158a0a373 | ||
|
|
229d5353e3 | ||
|
|
20389cba90 | ||
|
|
aaf56b794d | ||
|
|
827665279a | ||
|
|
8467bfce20 | ||
|
|
116ae13896 | ||
|
|
0f08f9710a | ||
|
|
9c147af8c1 | ||
|
|
5e498f9bcd | ||
|
|
1cab41bfd5 | ||
|
|
3e225ae2ab | ||
|
|
cc15b17e28 | ||
|
|
7aa9e57a59 | ||
|
|
530b205b3d | ||
|
|
0bed0a80a3 | ||
|
|
244c5da0e7 | ||
|
|
e885afbff9 | ||
|
|
8a0e4cd774 | ||
|
|
5cf313140c | ||
|
|
f0c3ab8753 | ||
|
|
8cd3682a23 | ||
|
|
ee83a40686 | ||
|
|
7f9a3774ae | ||
|
|
8d7c76b227 | ||
|
|
0a92dd0ed7 | ||
|
|
eae69fe414 | ||
|
|
dcef7445b2 | ||
|
|
11d1086a68 | ||
|
|
a88d120b3c | ||
|
|
15479f3829 | ||
|
|
9178794de5 | ||
|
|
fc120b66fe | ||
|
|
57b181bd74 | ||
|
|
aa6a2e806d | ||
|
|
eec3c9ba7a | ||
|
|
d67b18f2ea | ||
|
|
72b82ff2e3 | ||
|
|
6492beb726 | ||
|
|
08142409f8 | ||
|
|
8225785dcc | ||
|
|
c7c97b84c5 | ||
|
|
f9ce8b3df8 | ||
|
|
69c1184b58 | ||
|
|
7e432287ac | ||
|
|
50cb109c99 | ||
|
|
c915b20450 | ||
|
|
f3ea935dd5 | ||
|
|
a6414425b7 | ||
|
|
ad73f12103 | ||
|
|
7d35ace5bb | ||
|
|
e4f2cc94b5 | ||
|
|
fcbe2e781b | ||
|
|
7a5abd73cb | ||
|
|
07926d6673 | ||
|
|
24690e8399 | ||
|
|
2232dce811 | ||
|
|
f6de62700a | ||
|
|
01272f4474 | ||
|
|
e176b0c136 | ||
|
|
67fad831e5 | ||
|
|
048d7fb1ba | ||
|
|
24c1c8edfb | ||
|
|
614adeed08 | ||
|
|
12a92703f0 | ||
|
|
288a9c3a7e | ||
|
|
2419693164 | ||
|
|
b8607f4bdc | ||
|
|
5c2289e283 | ||
|
|
deb8b62c12 | ||
|
|
8e984d3c3b | ||
|
|
eb0206575a | ||
|
|
44d273dd7c | ||
|
|
8029afc15a | ||
|
|
f5766e7661 | ||
|
|
88c096cd95 | ||
|
|
3005abff34 | ||
|
|
8b9c9581e4 | ||
|
|
9d85ae77fa | ||
|
|
693b349024 | ||
|
|
a82e0cdb37 | ||
|
|
80d0b2844e |
Binary file not shown.
7
.gitmodules
vendored
7
.gitmodules
vendored
@@ -18,14 +18,7 @@
|
||||
path = dotfiles/vim/pack/matir/start/ctrlp
|
||||
url = https://github.com/ctrlpvim/ctrlp.vim.git
|
||||
fetchRecurseSubmodules = true
|
||||
[submodule "dotfiles/vim/pack/matir/start/vim-go"]
|
||||
path = dotfiles/vim/pack/matir/start/vim-go
|
||||
url = https://github.com/fatih/vim-go.git
|
||||
fetchRecurseSubmodules = true
|
||||
[submodule "dotfiles/tmux/tmux-logging"]
|
||||
path = dotfiles/tmux/tmux-logging
|
||||
url = https://github.com/tmux-plugins/tmux-logging.git
|
||||
fetchRecurseSubmodules = true
|
||||
[submodule "dotfiles/vim/pack/matir/start/syntastic"]
|
||||
path = dotfiles/vim/pack/matir/start/syntastic
|
||||
url = https://github.com/vim-syntastic/syntastic.git
|
||||
|
||||
13
README.md
13
README.md
@@ -1,5 +1,5 @@
|
||||
|
||||
### About ###
|
||||
|
||||
This is a repository of configuration files that I like to have on all the
|
||||
machines that I use. I can just clone the repository and run "repo/setup.sh"
|
||||
and get most things setup the way I like them.
|
||||
@@ -14,12 +14,14 @@ This now uses [git-crypt](https://github.com/AGWA/git-crypt) to protect
|
||||
I still wouldn't check in anything terribly sensitive, like private keys.
|
||||
|
||||
### Usefulness ###
|
||||
|
||||
Mostly I post this to github so I can quickly grab the things I want, but it
|
||||
might also be useful to others. Feel free to raise an issue if you have any
|
||||
questions. I don't anticipating taking merge requests -- make your own
|
||||
dotfiles. ;)
|
||||
|
||||
### Options ###
|
||||
|
||||
```
|
||||
BASEDIR: Where the skel framework is installed. Defaults to $HOME/.skel
|
||||
MINIMAL: Don't do things that require git clones or installation of anything
|
||||
@@ -31,9 +33,10 @@ INSTALL_PKGS: Install common packages, if on a Debian-like system.
|
||||
(Defaults to opposite of $MINIMAL.)
|
||||
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.
|
||||
- [X] Re-do the installation of packages.
|
||||
- [X] Make manual installation of sets easy/possible.
|
||||
- [X] Make missing packages not cause a full set failure.
|
||||
- [X] Allow comments and blank lines. in packages
|
||||
|
||||
@@ -26,5 +26,8 @@ function verify_dest {
|
||||
|
||||
verify_dest "$DEST"
|
||||
|
||||
exec nice rsync -Hax --delete --exclude-from="$HOME/.rsync_ignore" \
|
||||
time nice rsync -Hax --delete --exclude-from="$HOME/.rsync_ignore" \
|
||||
--delete-excluded "${HOME}/" "$DEST"
|
||||
echo "Backup completed..."
|
||||
time sync
|
||||
echo "Run finished, safe to unmount."
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
CHROME_BINS="google-chrome-beta google-chrome"
|
||||
for bin in ${CHROME_BINS} ; do
|
||||
if command -v ${bin} >/dev/null 2>&1 ; then
|
||||
CHROME=$(command -v ${bin})
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if test -z "${CHROME}" ; then
|
||||
echo "Chrome not found!" >/dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set alternate HOME to use alternate NSS DB
|
||||
export HOME=${HOME}/.chrome-pentest
|
||||
mkdir -p ${HOME}
|
||||
|
||||
# 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
|
||||
exec ${CHROME} --user-data-dir=${HOME}/chrome-pentest --proxy-server=127.0.0.1:8080
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
#!/bin/sh
|
||||
LOCKTIME="${SCREENSAVER_MIN:-5}"
|
||||
LOCKER="i3lock -c 000000"
|
||||
# intentionally want word splitting below
|
||||
/usr/bin/xss-lock -- ${LOCKER} &
|
||||
exec /usr/bin/xautolock \
|
||||
-time 5 \
|
||||
-time "${LOCKTIME}" \
|
||||
-detectsleep \
|
||||
-locker "${LOCKER}" \
|
||||
-notify 30 \
|
||||
|
||||
446
bin/install_tool
446
bin/install_tool
@@ -5,35 +5,51 @@ set -ue
|
||||
REINSTALL=0
|
||||
PACKAGES=1
|
||||
|
||||
export GO111MODULE=on
|
||||
|
||||
while getopts -- "-:" a ; do
|
||||
# shellcheck disable=SC2154
|
||||
case "${a}" in
|
||||
-)
|
||||
case "${OPTARG}" in
|
||||
reinstall)
|
||||
REINSTALL=1
|
||||
;;
|
||||
no-packages)
|
||||
PACKAGES=0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown long option ${OPTARG}" >/dev/stderr
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
case "${OPTARG}" in
|
||||
reinstall)
|
||||
REINSTALL=1
|
||||
;;
|
||||
no-packages)
|
||||
PACKAGES=0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown long option ${OPTARG}" >/dev/stderr
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
echo "Unknown short option ${OPTARG}" >/dev/stderr
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $(($OPTIND-1))
|
||||
shift $((OPTIND-1))
|
||||
|
||||
function list_tools {
|
||||
echo "Options:" >/dev/stderr
|
||||
awk 'BEGIN {s=0;FS=")"};/main tool selection/{s=1};/^\s+\w+)$/{if(s==1){print $1}}' "$0" | sort | while read -r opt; do
|
||||
echo -e "\\t${opt}" >/dev/stderr
|
||||
done
|
||||
}
|
||||
|
||||
if [ $# -ne 1 ] ; then
|
||||
echo "Usage: ${0} <tool>" >/dev/stderr
|
||||
list_tools
|
||||
exit 1
|
||||
fi
|
||||
TOOL=${1}
|
||||
|
||||
function die {
|
||||
echo $* >/dev/stderr
|
||||
return 1
|
||||
echo "$@" >/dev/stderr
|
||||
exit 1
|
||||
}
|
||||
|
||||
function install_pkgs {
|
||||
@@ -41,15 +57,15 @@ function install_pkgs {
|
||||
return 0
|
||||
fi
|
||||
# TODO: check if packages are already installed
|
||||
if [ `id -u` -ne "0" ] ; then
|
||||
sudo apt-get -y install $* || (
|
||||
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 $*
|
||||
echo "$@"
|
||||
false )
|
||||
return 0
|
||||
fi
|
||||
apt-get -y install $*
|
||||
apt-get -y install "$@"
|
||||
}
|
||||
|
||||
function download {
|
||||
@@ -57,7 +73,7 @@ function download {
|
||||
DST=${2}
|
||||
echo -n "Downloading ${SRC} to ${DST}..." >&2
|
||||
# TODO: consider curl instead?
|
||||
wget --no-server-response -q -O ${DST} --content-disposition ${SRC}
|
||||
wget --no-server-response -q -O "${DST}" --content-disposition "${SRC}"
|
||||
echo " done." >&2
|
||||
}
|
||||
|
||||
@@ -67,192 +83,418 @@ function check_sudo {
|
||||
|
||||
function add_bin_symlink {
|
||||
local TARGET NAME BINDIR
|
||||
TARGET=${1}
|
||||
NAME=${2:-$(basename ${1})}
|
||||
BINDIR=${HOME}/bin/tools/
|
||||
mkdir -p -- ${BINDIR}
|
||||
ln -sf ${DESTDIR}/${TARGET} ${BINDIR}/${NAME}
|
||||
TARGET="${1}"
|
||||
NAME="${2:-$(basename "${1}")}"
|
||||
BINDIR="${HOME}/bin/tools/"
|
||||
mkdir -p -- "${BINDIR}"
|
||||
ln -sf "${DESTDIR}/${TARGET}" "${BINDIR}/${NAME}"
|
||||
}
|
||||
|
||||
mkdir -p "${HOME}/tools"
|
||||
|
||||
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
|
||||
function makedest {
|
||||
if [ -d "${DESTDIR}" ] ; then
|
||||
if [ "${REINSTALL}" -eq 1 ] ; then
|
||||
rm -ri "${DESTDIR}"
|
||||
else
|
||||
echo "${DESTDIR} exists but not reinstalling." >/dev/stderr
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
mkdir -p "${DESTDIR}"
|
||||
}
|
||||
|
||||
function makedest_or_die {
|
||||
makedest || die "Aborting."
|
||||
}
|
||||
|
||||
# Begin main tool selection
|
||||
case ${TOOL} in
|
||||
john)
|
||||
makedest_or_die
|
||||
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
|
||||
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}
|
||||
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}
|
||||
mkdir -p "${HOME}/.john"
|
||||
touch "${HOME}/.john/john.pot"
|
||||
ln -sf "${HOME}/.john/*" "${DESTDIR}"
|
||||
add_bin_symlink john
|
||||
;;
|
||||
wordlists)
|
||||
mkdir -p ${DESTDIR}
|
||||
makedest
|
||||
download \
|
||||
http://downloads.skullsecurity.org/passwords/rockyou.txt.bz2 \
|
||||
${DESTDIR}/rockyou.txt.bz2
|
||||
bunzip2 ${DESTDIR}/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
|
||||
"${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
|
||||
"${DESTDIR}/hak5.txt.bz2"
|
||||
bunzip2 "${DESTDIR}/hak5.txt.bz2"
|
||||
;;
|
||||
seclists)
|
||||
git clone https://github.com/danielmiessler/SecLists.git ${DESTDIR}
|
||||
git clone https://github.com/danielmiessler/SecLists.git "${DESTDIR}"
|
||||
;;
|
||||
werdlists)
|
||||
git clone --depth 1 https://github.com/decal/werdlists.git "${DESTDIR}"
|
||||
;;
|
||||
gcloud)
|
||||
mkdir -p ${DESTDIR}
|
||||
gtemp=`mktemp -d`
|
||||
makedest_or_die
|
||||
gbase="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/"
|
||||
# TODO: find a way to make this version independent
|
||||
gsdk="google-cloud-sdk-209.0.0-linux-x86_64.tar.gz"
|
||||
gsdk="google-cloud-sdk-385.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}
|
||||
tar zxf /tmp/gcloud.tar.gz --strip-components=1 -C "${DESTDIR}"
|
||||
rm /tmp/gcloud.tar.gz
|
||||
add_bin_symlink bin/gcloud
|
||||
;;
|
||||
android-sdk)
|
||||
# TODO: find a way to make this version independent
|
||||
asdk="https://dl.google.com/android/repository/tools_r25.2.3-linux.zip"
|
||||
asdk="https://dl.google.com/android/repository/platform-tools_r31.0.2-linux.zip"
|
||||
download ${asdk} /tmp/android-tools.zip
|
||||
unzip -d ${DESTDIR} /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"
|
||||
"${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
|
||||
makedest
|
||||
if ! download \
|
||||
https://portswigger.net/DownloadUpdate.ashx\?Product=Free \
|
||||
"${DESTDIR}/burp-free.jar" ; 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
|
||||
chmod +x "${DESTDIR}"/*.jar
|
||||
ln -sf "${DESTDIR}"/*.jar "${HOME}/bin/burp"
|
||||
fi
|
||||
;;
|
||||
mitmproxy)
|
||||
ver=$(python -c 'import urllib2; import json; print(json.load(urllib2.urlopen("https://api.github.com/repos/mitmproxy/mitmproxy/releases/latest"))["name"].replace("v",""))')
|
||||
download https://snapshots.mitmproxy.org/${ver}/mitmproxy-${ver}-linux.tar.gz /tmp/mitmproxy.tar.gz
|
||||
mkdir -p ${DESTDIR}
|
||||
tar zx -C ${DESTDIR} -f /tmp/mitmproxy.tar.gz
|
||||
makedest_or_die
|
||||
ver=$(python3 -c 'from urllib import request; import json; print(json.load(request.urlopen("https://api.github.com/repos/mitmproxy/mitmproxy/releases/latest"))["tag_name"].replace("v",""))')
|
||||
download \
|
||||
"https://snapshots.mitmproxy.org/${ver}/mitmproxy-${ver}-linux.tar.gz" \
|
||||
/tmp/mitmproxy.tar.gz
|
||||
tar zx -C "${DESTDIR}" -f /tmp/mitmproxy.tar.gz
|
||||
rm /tmp/mitmproxy.tar.gz
|
||||
add_bin_symlink mitmproxy
|
||||
add_bin_symlink mitmweb
|
||||
add_bin_symlink mitmdump
|
||||
;;
|
||||
esp)
|
||||
makedest_or_die
|
||||
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
|
||||
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
|
||||
git clone --recursive https://github.com/espressif/esp-idf.git "${DESTDIR}/esp-idf"
|
||||
;;
|
||||
dex2jar)
|
||||
makedest_or_die
|
||||
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}
|
||||
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
|
||||
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}
|
||||
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"
|
||||
;;
|
||||
pm3iceman)
|
||||
install_pkgs git ca-certificates build-essential pkg-config \
|
||||
libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev \
|
||||
libbz2-dev libbluetooth-dev libpython3-dev libssl-dev
|
||||
src="https://github.com/RfidResearchGroup/proxmark3.git"
|
||||
git clone "${src}" "${DESTDIR}"
|
||||
cd "${DESTDIR}"
|
||||
make clean && make -sj2
|
||||
check_sudo && sudo /bin/sh -c \
|
||||
"cp -rf ./driver/77-pm3-usb-device-blacklist.rules \
|
||||
/etc/udev/rules.d/77-pm3-usb-device-blacklist.rules &&
|
||||
udevadm control --reload-rules"
|
||||
add_bin_symlink pm3
|
||||
;;
|
||||
cyberchef)
|
||||
mkdir -p ${DESTDIR}
|
||||
src=$(python -c 'import urllib2; import json; print(filter(lambda x: x["name"]=="cyberchef.htm", json.load(urllib2.urlopen("https://api.github.com/repos/gchq/CyberChef/releases/latest"))["assets"])[0]["browser_download_url"])')
|
||||
download ${src} ${DESTDIR}/cyberchef.html
|
||||
makedest
|
||||
cd "${DESTDIR}"
|
||||
src=$(python3 -c 'from urllib import request; import json; print(json.load(request.urlopen("https://api.github.com/repos/gchq/CyberChef/releases/latest"))["assets"][0]["browser_download_url"])')
|
||||
download "${src}" "${DESTDIR}/cyberchef.zip"
|
||||
unzip -d "${DESTDIR}" "${DESTDIR}/cyberchef.zip"
|
||||
ln -sf CyberChef*.html "${DESTDIR}/cyberchef.html"
|
||||
;;
|
||||
apktool)
|
||||
mkdir -p ${DESTDIR}
|
||||
makedest_or_die
|
||||
download \
|
||||
https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool \
|
||||
${DESTDIR}/apktool
|
||||
"${DESTDIR}/apktool"
|
||||
download \
|
||||
https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.3.3.jar \
|
||||
${DESTDIR}/apktool.jar
|
||||
chmod +x ${DESTDIR}/apktool
|
||||
"${DESTDIR}/apktool.jar"
|
||||
chmod +x "${DESTDIR}/apktool"
|
||||
add_bin_symlink apktool
|
||||
;;
|
||||
ptf)
|
||||
makedest_or_die
|
||||
src="https://github.com/trustedsec/ptf.git"
|
||||
git clone ${src} ${DESTDIR}
|
||||
git clone "${src}" "${DESTDIR}"
|
||||
;;
|
||||
pwndbg)
|
||||
if ! which gdb > /dev/null 2>&1 ; then
|
||||
if ! command -v gdb > /dev/null 2>&1 ; then
|
||||
echo 'No gdb available!' >/dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
git clone --depth 1 -b stable https://github.com/pwndbg/pwndbg.git ${DESTDIR}
|
||||
local PY_PACKAGES=${DESTDIR}/vendor
|
||||
mkdir -p ${PY_PACKAGES}
|
||||
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)')
|
||||
git clone --depth 1 -b stable https://github.com/pwndbg/pwndbg.git "${DESTDIR}"
|
||||
PY_PACKAGES=${DESTDIR}/vendor
|
||||
mkdir -p "${PY_PACKAGES}"
|
||||
PYVER=$(gdb -batch -q --nx -ex 'pi import platform; print(".".join(platform.python_version_tuple()[:2]))')
|
||||
PYTHON=$(gdb -batch -q --nx -ex 'pi import sys; print(sys.executable)')
|
||||
PYTHON="${PYTHON}${PYVER}"
|
||||
${PYTHON} -m pip install --target ${PY_PACKAGES} -Ur ${DESTDIR}/requirements.txt
|
||||
${PYTHON} -m pip install --target ${PY_PACKAGES} -U capstone unicorn
|
||||
"${PYTHON}" -m pip install --target "${PY_PACKAGES}" -Ur "${DESTDIR}/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
|
||||
cp "${PY_PACKAGES}/usr/lib/*/dist-packages/capstone/libcapstone.so" "${PY_PACKAGES}/capstone"
|
||||
;;
|
||||
gef)
|
||||
if ! which gdb > /dev/null 2>&1 ; then
|
||||
makedest_or_die
|
||||
if ! command -v gdb > /dev/null 2>&1 ; then
|
||||
echo 'No gdb available!' >/dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
mkdir -p ${DESTDIR}
|
||||
download \
|
||||
https://github.com/hugsy/gef/raw/master/gef.py \
|
||||
${DESTDIR}/gef.py
|
||||
"${DESTDIR}/gef.py"
|
||||
;;
|
||||
aflplusplus)
|
||||
install_pkgs libtool-bin libglib2.0-dev libpixman-1-dev clang clang-tools \
|
||||
llvm python3-setuptools
|
||||
git clone "https://github.com/vanhauser-thc/AFLplusplus" "${DESTDIR}"
|
||||
make -C "${DESTDIR}" distrib
|
||||
;;
|
||||
exploitdb)
|
||||
if test -d "${DESTDIR}" ; then
|
||||
echo "Already installed, updating instead..." >/dev/stderr
|
||||
"${DESTDIR}/searchsploit" -u
|
||||
else
|
||||
git clone --depth 1 \
|
||||
https://github.com/offensive-security/exploitdb.git \
|
||||
"${DESTDIR}"
|
||||
add_bin_symlink searchsploit
|
||||
cp "${DESTDIR}/.searchsploit_rc" "${HOME}/.searchsploit_rc"
|
||||
sed -i "s|/opt/exploitdb|${DESTDIR}|" "${HOME}/.searchsploit_rc"
|
||||
fi
|
||||
;;
|
||||
cura)
|
||||
makedest
|
||||
ver=$(python3 -c 'from urllib import request; import json; print(json.load(request.urlopen("https://api.github.com/repos/Ultimaker/Cura/releases/latest"))["name"].replace("v",""))')
|
||||
echo "Latest Cura is ${ver}"
|
||||
download \
|
||||
"https://github.com/Ultimaker/Cura/releases/download/${ver}/Cura-${ver}.AppImage" \
|
||||
"${DESTDIR}/Cura.AppImage"
|
||||
chmod +x "${DESTDIR}/Cura.AppImage"
|
||||
add_bin_symlink "Cura.AppImage" cura
|
||||
;;
|
||||
rr)
|
||||
ver=$(python3 -c 'from urllib import request; import json; print(json.load(request.urlopen("https://api.github.com/repos/mozilla/rr/releases/latest"))["name"])')
|
||||
echo "Latest rr is ${ver}"
|
||||
download \
|
||||
"https://github.com/mozilla/rr/releases/download/${ver}/rr-${ver}-Linux-$(uname -m).deb" \
|
||||
"/tmp/rr.deb"
|
||||
sudo dpkg -i /tmp/rr.deb
|
||||
;;
|
||||
nmap-parse-output)
|
||||
git clone --depth 1 \
|
||||
https://github.com/ernw/nmap-parse-output.git \
|
||||
"${DESTDIR}"
|
||||
add_bin_symlink nmap-parse-output
|
||||
cat <<EOF >"${HOME}/.zshrc.d/99-nmap-parse-output.zsh"
|
||||
if test -d ${DESTDIR} ; then
|
||||
autoload bashcompinit
|
||||
bashcompinit
|
||||
source ${DESTDIR}/_nmap-parse-output
|
||||
fi
|
||||
EOF
|
||||
;;
|
||||
logiops)
|
||||
install_pkgs cmake libevdev-dev libudev-dev libconfig++-dev checkinstall
|
||||
git clone "https://github.com/PixlOne/logiops.git" "${DESTDIR}"
|
||||
mkdir -p "${DESTDIR}/build"
|
||||
cd "${DESTDIR}/build"
|
||||
cmake ..
|
||||
make
|
||||
sudo checkinstall --pkgname logiops --maintainer "${USER}" -y
|
||||
;;
|
||||
aws)
|
||||
DN=$(mktemp -d)
|
||||
cd "${DN}"
|
||||
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "${DN}/awscliv2.zip"
|
||||
unzip "${DN}/awscliv2.zip"
|
||||
mv "${DN}/aws/dist" "${DESTDIR}"
|
||||
add_bin_symlink aws
|
||||
rm -rf ${DN}
|
||||
;;
|
||||
tmpmail)
|
||||
install_pkgs curl w3m jq
|
||||
mkdir -p ${DESTDIR}
|
||||
curl -L "https://git.io/tmpmail" > ${DESTDIR}/tmpmail
|
||||
chmod +x ${DESTDIR}/tmpmail
|
||||
add_bin_symlink tmpmail
|
||||
;;
|
||||
gf)
|
||||
install_pkgs golang-go silversearcher-ag
|
||||
go get -u github.com/tomnomnom/gf
|
||||
mkdir -p ${HOME}/.config
|
||||
if test -d ${HOME}/.config/gf ; then
|
||||
git -C ${HOME}/.config/gf pull
|
||||
else
|
||||
git clone https://github.com/Matir/gf-patterns.git ${HOME}/.config/gf
|
||||
fi
|
||||
;;
|
||||
gron)
|
||||
go get -u github.com/tomnomnom/gron
|
||||
;;
|
||||
httprobe)
|
||||
go get -u github.com/tomnomnom/httprobe
|
||||
;;
|
||||
ffuf)
|
||||
go get -u github.com/ffuf/ffuf
|
||||
;;
|
||||
gobuster)
|
||||
go get -u github.com/OJ/gobuster
|
||||
;;
|
||||
amass)
|
||||
go get -u github.com/OWASP/Amass/v3/...
|
||||
;;
|
||||
cht.sh)
|
||||
install_pkgs rlwrap
|
||||
mkdir -p ${DESTDIR}
|
||||
curl https://cht.sh/:cht.sh > ${DESTDIR}/cht.sh
|
||||
chmod +x ${DESTDIR}/cht.sh
|
||||
add_bin_symlink cht.sh
|
||||
;;
|
||||
age)
|
||||
go get -u filippo.io/age/cmd/age
|
||||
go get -u filippo.io/age/cmd/age-keygen
|
||||
;;
|
||||
docker-compose)
|
||||
mkdir -p ${DESTDIR}
|
||||
curl -L \
|
||||
"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \
|
||||
-o "${DESTDIR}/docker-compose"
|
||||
chmod +x "${DESTDIR}/docker-compose"
|
||||
add_bin_symlink docker-compose
|
||||
;;
|
||||
tldr)
|
||||
pip3 install --user tldr
|
||||
;;
|
||||
blint)
|
||||
pip3 install --user blint
|
||||
;;
|
||||
dust)
|
||||
if ! command -v cargo >/dev/null 2>&1 ; then
|
||||
echo "This needs cargo (for rust)!" >/dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
cargo install du-dust
|
||||
;;
|
||||
bottom)
|
||||
if ! command -v cargo >/dev/null 2>&1 ; then
|
||||
echo "This needs cargo (for rust)!" >/dev/stderr
|
||||
exit 1
|
||||
fi
|
||||
cargo install bottom
|
||||
;;
|
||||
delta)
|
||||
if !check_sudo ; then
|
||||
echo "Must be able to run as sudo."
|
||||
exit 1
|
||||
fi
|
||||
dpkg_url=$(curl https://api.github.com/repos/dandavison/delta/releases/latest | \
|
||||
jq -r '.assets[] | select(.name|test(".*_amd64.deb")) | select(.name|test(".*musl.*")|not) | .browser_download_url')
|
||||
dpkg_name="/tmp/delta_amd64.deb"
|
||||
download "${dpkg_url}" "${dpkg_name}"
|
||||
sudo dpkg -i "${dpkg_name}"
|
||||
;;
|
||||
ropper)
|
||||
install_pkgs python3-z3
|
||||
pip3 install --user pyvex ropper
|
||||
;;
|
||||
kubeconform)
|
||||
go install github.com/yannh/kubeconform/cmd/kubeconform@latest
|
||||
;;
|
||||
kubectx)
|
||||
git clone https://github.com/ahmetb/kubectx.git "${DESTDIR}"
|
||||
add_bin_symlink kubectx
|
||||
add_bin_symlink kubens
|
||||
COMPDIR="${HOME}/.zshrc.completions"
|
||||
mkdir -p "${COMPDIR}"
|
||||
ln -sf "${DESTDIR}/completion/_kubectx.zsh" "${COMPDIR}"
|
||||
ln -sf "${DESTDIR}/completion/_kubens.zsh" "${COMPDIR}"
|
||||
;;
|
||||
starship)
|
||||
mkdir -p ${DESTDIR}
|
||||
download \
|
||||
"https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-musl.tar.gz" \
|
||||
/tmp/starship.tar.gz
|
||||
tar -C ${DESTDIR} -zxf /tmp/starship.tar.gz starship
|
||||
add_bin_symlink starship
|
||||
;;
|
||||
arduino-cli)
|
||||
mkdir -p "${DESTDIR}"
|
||||
download \
|
||||
"https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_64bit.tar.gz" \
|
||||
/tmp/arduino-cli.tar.gz
|
||||
tar -C "${DESTDIR}" -zxf /tmp/arduino-cli.tar.gz arduino-cli
|
||||
add_bin_symlink arduino-cli
|
||||
;;
|
||||
ghidra)
|
||||
zip_url=$(curl https://api.github.com/repos/NationalSecurityAgency/ghidra/releases/latest | \
|
||||
jq -r '.assets[] | select(.name|test(".*.zip")) | .browser_download_url')
|
||||
download "${zip_url}" /tmp/ghidra.zip
|
||||
unzip -d "${DESTDIR}" /tmp/ghidra.zip
|
||||
mv ${DESTDIR}/*/* ${DESTDIR}
|
||||
add_bin_symlink ghidraRun ghidra
|
||||
;;
|
||||
doctl)
|
||||
# TODO: other architectures
|
||||
tar_url=$(curl https://api.github.com/repos/digitalocean/doctl/releases/latest | \
|
||||
jq -r '.assets[] | select(.name|test(".*linux-amd64\\.tar\\.gz")) | .browser_download_url')
|
||||
download "${tar_url}" /tmp/doctl.tar.gz
|
||||
mkdir -p "${DESTDIR}"
|
||||
tar -C "${DESTDIR}" -zxf /tmp/doctl.tar.gz "doctl"
|
||||
add_bin_symlink doctl
|
||||
;;
|
||||
*)
|
||||
echo "Unknown tool: ${TOOL}" >/dev/stderr
|
||||
echo "Options:" >/dev/stderr
|
||||
for opt in $(awk 'BEGIN {s=0;FS=")"};/main tool selection/{s=1};/^\s+\w+)$/{if(s==1){print $1}}' $0|sort); do
|
||||
echo -e "\t${opt}" >/dev/stderr
|
||||
done
|
||||
list_tools
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
22
bin/nvidia_hold.sh
Executable file
22
bin/nvidia_hold.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
function list_nvidia_installed {
|
||||
dpkg-query -l '*nvidia*' | grep '^[hi]i' | awk '{print $2}'
|
||||
}
|
||||
|
||||
function hold_or_unhold {
|
||||
apt-mark "${1:-hold}" $(list_nvidia_installed)
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
hold|h)
|
||||
hold_or_unhold hold
|
||||
;;
|
||||
unhold|u)
|
||||
hold_or_unhold unhold
|
||||
;;
|
||||
*)
|
||||
echo "$0 <hold|unhold>" >/dev/stderr
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
46
bin/pactl_helper
Executable file
46
bin/pactl_helper
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
function get_active_sink {
|
||||
pactl list short sinks | grep RUNNING | awk '{print $2}'
|
||||
}
|
||||
|
||||
function get_active_source {
|
||||
pactl list short sources | grep RUNNING | awk '{print $2}'
|
||||
}
|
||||
|
||||
function get_default_sink {
|
||||
pactl info | grep '^Default Sink:' | awk '{print $NF}'
|
||||
}
|
||||
|
||||
function get_default_source {
|
||||
pactl info | grep '^Default Source:' | awk '{print $NF}'
|
||||
}
|
||||
|
||||
function micmute {
|
||||
MODE=${1:-toggle}
|
||||
pactl set-source-mute $(get_default_source) ${MODE}
|
||||
}
|
||||
|
||||
function mute {
|
||||
MODE=${1:-toggle}
|
||||
pactl set-sink-mute $(get_default_sink) ${MODE}
|
||||
}
|
||||
|
||||
function volume {
|
||||
VOL="${1}"
|
||||
if test -z "${VOL}" ; then
|
||||
echo "Need volume spec!"
|
||||
exit 1
|
||||
fi
|
||||
pactl set-sink-volume $(get_default_sink) "${VOL}"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
mute|micmute|volume)
|
||||
$*
|
||||
;;
|
||||
*)
|
||||
echo "Unknown command!"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
48
bin/qdisc_span.sh
Executable file
48
bin/qdisc_span.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ue
|
||||
|
||||
ACTION="add"
|
||||
|
||||
if [ "${1}" == "-d" ] ; then
|
||||
ACTION="del"
|
||||
shift
|
||||
fi
|
||||
|
||||
BRIDGE="${1}"
|
||||
DEST="${2}"
|
||||
|
||||
function setup_span {
|
||||
if tc qdisc show dev "${1}" | grep -q 'qdisc ingress ffff' ; then
|
||||
return 0
|
||||
fi
|
||||
tc qdisc add dev "${1}" ingress
|
||||
tc filter add dev "${1}" parent ffff: protocol all u32 match u8 0 0 action mirred egress mirror dev "${DEST}"
|
||||
}
|
||||
|
||||
function del_span {
|
||||
tc qdisc del dev "${1}" ingress
|
||||
}
|
||||
|
||||
function handle_iface {
|
||||
case "${ACTION}" in
|
||||
add)
|
||||
setup_span "${1}"
|
||||
;;
|
||||
del)
|
||||
del_span "${1}"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown action!"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function get_bridge_ifaces {
|
||||
bridge link | grep "master ${1}" | cut -d: -f2 | cut -d@ -f1
|
||||
}
|
||||
|
||||
for iface in $(get_bridge_ifaces "${BRIDGE}") ; do
|
||||
handle_iface "$iface"
|
||||
done
|
||||
62
bin/screenshot.sh
Executable file
62
bin/screenshot.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Screenshot tool to try a few different tools
|
||||
|
||||
set -ue
|
||||
|
||||
TOOLS="flameshot scrot"
|
||||
SCREENDIR=${SCREENDIR:-${HOME}/Pictures/Screenshots}
|
||||
SCROT_FORMAT="%F-%T.png"
|
||||
|
||||
function default_screenshot_command {
|
||||
for tool in ${TOOLS} ; do
|
||||
if which "${tool}" >/dev/null 2>&1 ; then
|
||||
echo "${tool}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
exit 1
|
||||
}
|
||||
|
||||
TOOL=${SHOT:-$(default_screenshot_command)}
|
||||
CMD=${1:-region}
|
||||
|
||||
function flameshot_gui_capture {
|
||||
flameshot gui -p "${SCREENDIR}"
|
||||
}
|
||||
|
||||
function flameshot_region_capture {
|
||||
flameshot_gui_capture
|
||||
}
|
||||
|
||||
function flameshot_window_capture {
|
||||
flameshot_gui_capture
|
||||
}
|
||||
|
||||
function flameshot_full_capture {
|
||||
flameshot full -p "${SCREENDIR}"
|
||||
}
|
||||
|
||||
function scrot_region_capture {
|
||||
scrot -s "${SCREENDIR}/${SCROT_FORMAT}"
|
||||
}
|
||||
|
||||
function scrot_window_capture {
|
||||
scrot -u "${SCREENDIR}/${SCROT_FORMAT}"
|
||||
}
|
||||
|
||||
function scrot_full_capture {
|
||||
scrot "${SCREENDIR}/${SCROT_FORMAT}"
|
||||
}
|
||||
|
||||
case "${CMD}" in
|
||||
region|window|full)
|
||||
mkdir -p "${SCREENDIR}"
|
||||
${TOOL}_${CMD}_capture
|
||||
exit $?
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 [region|window|full]" >/dev/stderr
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
26
bin/setup/nerdfonts.sh
Executable file
26
bin/setup/nerdfonts.sh
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ue
|
||||
|
||||
VER="v2.2.2"
|
||||
|
||||
FONTS=(
|
||||
https://github.com/ryanoasis/nerd-fonts/releases/download/${VER}/DejaVuSansMono.zip
|
||||
https://github.com/ryanoasis/nerd-fonts/releases/download/${VER}/FiraCode.zip
|
||||
https://github.com/ryanoasis/nerd-fonts/releases/download/${VER}/FiraMono.zip
|
||||
https://github.com/ryanoasis/nerd-fonts/releases/download/${VER}/Hack.zip
|
||||
https://github.com/ryanoasis/nerd-fonts/releases/download/${VER}/Inconsolata.zip
|
||||
https://github.com/ryanoasis/nerd-fonts/releases/download/${VER}/OpenDyslexic.zip
|
||||
)
|
||||
|
||||
FPATH=${HOME}/.fonts/nerdfonts
|
||||
mkdir -p ${FPATH}
|
||||
cd ${FPATH}
|
||||
|
||||
for f in ${FONTS[@]}; do
|
||||
BN=$(basename $f)
|
||||
wget -O ${FPATH}/${BN} ${f}
|
||||
unzip -o -d ${FPATH} ${FPATH}/${BN}
|
||||
done
|
||||
|
||||
fc-cache -v
|
||||
24
clone.sh
Executable file
24
clone.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ue
|
||||
|
||||
# Script to clone and install
|
||||
|
||||
# Wrapped in a function to prevent incomplete execution if download is
|
||||
# interrupted
|
||||
function installer_main {
|
||||
if ! command -v git >/dev/null 2>&1 ; then
|
||||
( if [ "$EUID" != 0 ] ; then
|
||||
sudo apt install -y git
|
||||
else
|
||||
apt install -y git
|
||||
fi ) || ( echo 'Failed to install git!' >/dev/stderr; false)
|
||||
fi
|
||||
|
||||
git clone https://github.com/Matir/skel.git ${HOME}/.skel
|
||||
|
||||
${HOME}/.skel/install.sh
|
||||
${HOME}/.skel/install.sh packages minimal
|
||||
}
|
||||
|
||||
installer_main
|
||||
10
conf/logid.cfg
Normal file
10
conf/logid.cfg
Normal file
@@ -0,0 +1,10 @@
|
||||
devices: ({
|
||||
name: "Wireless Mouse MX Master 3";
|
||||
|
||||
smartshift: {
|
||||
on: true;
|
||||
threshold: 30;
|
||||
};
|
||||
|
||||
dpi: 1500;
|
||||
});
|
||||
1
dotfiles/Xkbmap
Normal file
1
dotfiles/Xkbmap
Normal file
@@ -0,0 +1 @@
|
||||
-option ctrl:nocaps -option compose:ralt
|
||||
@@ -5,7 +5,7 @@
|
||||
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
|
||||
alias luksFormat='cryptsetup luksFormat -s 512 -c aes-xts-plain64 -h sha256 -i 15000'
|
||||
alias luksFormat='cryptsetup luksFormat --type=luks2 --pbkdf-memory=2560000 --pbkdf=argon2id -i 15000 -s 512 -h sha256 -c aes-xts-plain64'
|
||||
|
||||
# Colors
|
||||
if ls --version >/dev/null 2>&1 ; then
|
||||
@@ -37,4 +37,22 @@ alias dircount="for d in * ; do find \$d -type d | wc -l | tr -d '\n' ; echo ' '
|
||||
alias drop_caches="echo 3 | sudo /usr/bin/tee /proc/sys/vm/drop_caches"
|
||||
|
||||
# dump acpi temperature
|
||||
alias temp='printf "%02.2f\n" "$(cat /sys/class/thermal/thermal_zone0/temp)e-3"'
|
||||
alias gettemp='printf "%02.2f\n" "$(cat /sys/class/thermal/thermal_zone0/temp)e-3"'
|
||||
|
||||
# get git working directory
|
||||
alias gitroot="git rev-parse --show-toplevel"
|
||||
|
||||
# SSH without host key checking
|
||||
alias sshanon="ssh -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no"
|
||||
|
||||
# Straight to ipython
|
||||
alias ipy="ipython3"
|
||||
|
||||
# Skip the header on bc
|
||||
alias bc="command bc -q"
|
||||
|
||||
# Get a decently readable df
|
||||
alias dfh="df -h -x tmpfs -x devtmpfs"
|
||||
|
||||
# Clear the GPG agent
|
||||
alias clear-gpg-agent="echo RELOADAGENT | gpg-connect-agent"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Load env first
|
||||
if [ -f $HOME/.env ] ; then source $HOME/.env ; fi
|
||||
if [ -f $HOME/.shenv ] ; then source $HOME/.shenv ; fi
|
||||
|
||||
# History settings
|
||||
HISTCONTROL=ignoredups:ignorespace
|
||||
|
||||
33
dotfiles/config/fish/fish_variables
Normal file
33
dotfiles/config/fish/fish_variables
Normal file
@@ -0,0 +1,33 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR EDITOR:vim
|
||||
SETUVAR __fish_initialized:3100
|
||||
SETUVAR fish_color_autosuggestion:586e75
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:93a1a1
|
||||
SETUVAR fish_color_comment:586e75
|
||||
SETUVAR fish_color_cwd:green
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:268bd2
|
||||
SETUVAR fish_color_error:dc322f
|
||||
SETUVAR fish_color_escape:00a6b2
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||
SETUVAR fish_color_normal:normal
|
||||
SETUVAR fish_color_operator:00a6b2
|
||||
SETUVAR fish_color_param:839496
|
||||
SETUVAR fish_color_quote:657b83
|
||||
SETUVAR fish_color_redirection:6c71c4
|
||||
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dblack
|
||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell\x0aType\x20\x60help\x60\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish
|
||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||
SETUVAR fish_pager_color_completion:B3A06D
|
||||
SETUVAR fish_pager_color_description:B3A06D
|
||||
SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
11
dotfiles/config/gh/config.yml
Normal file
11
dotfiles/config/gh/config.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
# What protocol to use when performing git operations. Supported values: ssh, https
|
||||
git_protocol: https
|
||||
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
|
||||
editor: !!null vim
|
||||
# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
|
||||
prompt: enabled
|
||||
# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager.
|
||||
pager: !!null less -R
|
||||
# Aliases allow you to create nicknames for gh commands
|
||||
aliases:
|
||||
co: pr checkout
|
||||
39
dotfiles/config/htop/htoprc
Normal file
39
dotfiles/config/htop/htoprc
Normal file
@@ -0,0 +1,39 @@
|
||||
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||
# The parser is also very primitive, and not human-friendly.
|
||||
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
||||
sort_key=46
|
||||
sort_direction=-1
|
||||
tree_sort_key=0
|
||||
tree_sort_direction=1
|
||||
hide_kernel_threads=1
|
||||
hide_userland_threads=1
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
highlight_changes=0
|
||||
highlight_changes_delay_secs=5
|
||||
find_comm_in_cmdline=1
|
||||
strip_exe_from_cmdline=1
|
||||
show_merged_command=0
|
||||
tree_view=0
|
||||
tree_view_always_by_pid=0
|
||||
header_margin=1
|
||||
detailed_cpu_time=0
|
||||
cpu_count_from_one=1
|
||||
show_cpu_usage=1
|
||||
show_cpu_frequency=0
|
||||
show_cpu_temperature=0
|
||||
degree_fahrenheit=0
|
||||
update_process_names=0
|
||||
account_guest_in_cpu_meter=0
|
||||
color_scheme=6
|
||||
enable_mouse=1
|
||||
delay=15
|
||||
left_meters=AllCPUs Memory Swap
|
||||
left_meter_modes=1 1 1
|
||||
right_meters=Tasks LoadAverage Uptime
|
||||
right_meter_modes=2 2 2
|
||||
hide_function_bar=0
|
||||
@@ -87,6 +87,10 @@ 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
|
||||
|
||||
# do some scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
# Move workspaces between monitors
|
||||
bindsym $mod+Shift+greater move workspace to output right
|
||||
bindsym $mod+Shift+less move workspace to output left
|
||||
@@ -135,6 +139,8 @@ bindsym $mod+l exec \
|
||||
bash -c "i3lock -c 000000 && (sleep 2 && xset dpms force off) &"
|
||||
bindsym $alt+Control+l exec \
|
||||
bash -c "i3lock -c 000000 && (sleep 2 && xset dpms force off) &"
|
||||
# suspend under systemd
|
||||
bindsym $mod+Control+s exec --no-startup-id systemctl suspend
|
||||
|
||||
# things to start quickly
|
||||
bindsym $mod+g exec /usr/bin/google-chrome-beta --password-store=gnome
|
||||
@@ -146,39 +152,33 @@ 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
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/bin/pactl_helper volume +5%
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id ~/bin/pactl_helper volume -5%
|
||||
bindsym XF86AudioMute exec --no-startup-id ~/bin/pactl_helper mute toggle
|
||||
bindsym XF86AudioMicMute exec --no-startup-id ~/bin/pactl_helper micmute toggle
|
||||
bindsym F13 exec --no-startup-id ~/bin/pactl_helper micmute 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
|
||||
# region/selection
|
||||
bindsym --release Print exec --no-startup-id \
|
||||
mkdir -p $screendir && \
|
||||
/usr/bin/scrot $screendir/$scrotformat
|
||||
# current window
|
||||
~/bin/screenshot.sh region
|
||||
# full screen
|
||||
bindsym --release Shift+Print exec --no-startup-id \
|
||||
mkdir -p $screendir && \
|
||||
/usr/bin/scrot -u $screendir/$scrotformat
|
||||
# selection
|
||||
~/bin/screenshot.sh full
|
||||
# single window
|
||||
bindsym --release $alt+Sys_Req exec --no-startup-id \
|
||||
mkdir -p $screendir && \
|
||||
/usr/bin/scrot -s $screendir/$scrotformat
|
||||
~/bin/screenshot.sh window
|
||||
|
||||
# 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
|
||||
exec --no-startup-id dex --autostart --environment x-cinnamon
|
||||
# Solaar for mouse
|
||||
exec --no-startup-id sh -c 'command solaar -w hide || true'
|
||||
|
||||
# customize windows
|
||||
for_window [window_role="pop-up"] floating enable
|
||||
|
||||
4
dotfiles/config/nvim/init.vim
Normal file
4
dotfiles/config/nvim/init.vim
Normal file
@@ -0,0 +1,4 @@
|
||||
" nvim config
|
||||
set runtimepath^=~/.vim runtimepath+=~/.vim/after
|
||||
let &packpath = &runtimepath
|
||||
source ~/.vimrc
|
||||
19
dotfiles/config/starship.toml
Normal file
19
dotfiles/config/starship.toml
Normal file
@@ -0,0 +1,19 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
[directory]
|
||||
fish_style_pwd_dir_length = 1
|
||||
|
||||
[gcloud]
|
||||
# This is just too noisy
|
||||
disabled = true
|
||||
symbol = "️🇬️ "
|
||||
|
||||
[status]
|
||||
disabled = false
|
||||
symbol = "⛌"
|
||||
|
||||
[username]
|
||||
show_always = true
|
||||
|
||||
[ruby]
|
||||
detect_variables = []
|
||||
15
dotfiles/config/user-dirs.dirs
Normal file
15
dotfiles/config/user-dirs.dirs
Normal file
@@ -0,0 +1,15 @@
|
||||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||
XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/Shared"
|
||||
XDG_DOCUMENTS_DIR="$HOME/Documents"
|
||||
XDG_MUSIC_DIR="$HOME/Music"
|
||||
XDG_PICTURES_DIR="$HOME/Pictures"
|
||||
XDG_VIDEOS_DIR="$HOME/Videos"
|
||||
@@ -0,0 +1,195 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfce4-keyboard-shortcuts" version="1.0">
|
||||
<property name="commands" type="empty">
|
||||
<property name="default" type="empty">
|
||||
<property name="<Alt>F1" type="empty"/>
|
||||
<property name="<Alt>F2" type="empty">
|
||||
<property name="startup-notify" type="empty"/>
|
||||
</property>
|
||||
<property name="<Alt>F3" type="empty">
|
||||
<property name="startup-notify" type="empty"/>
|
||||
</property>
|
||||
<property name="<Primary><Alt>Delete" type="empty"/>
|
||||
<property name="<Primary><Alt>l" type="empty"/>
|
||||
<property name="<Primary><Alt>t" type="empty"/>
|
||||
<property name="XF86Display" type="empty"/>
|
||||
<property name="<Super>p" type="empty"/>
|
||||
<property name="<Primary>Escape" type="empty"/>
|
||||
<property name="XF86WWW" type="empty"/>
|
||||
<property name="HomePage" type="empty"/>
|
||||
<property name="XF86Mail" type="empty"/>
|
||||
<property name="Print" type="empty"/>
|
||||
<property name="<Alt>Print" type="empty"/>
|
||||
<property name="<Shift>Print" type="empty"/>
|
||||
<property name="<Super>e" type="empty"/>
|
||||
<property name="<Primary><Alt>f" type="empty"/>
|
||||
<property name="<Primary><Alt>Escape" type="empty"/>
|
||||
<property name="<Primary><Shift>Escape" type="empty"/>
|
||||
<property name="<Super>r" type="empty">
|
||||
<property name="startup-notify" type="empty"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="custom" type="empty">
|
||||
<property name="<Alt>F2" type="string" value="xfce4-appfinder --collapsed">
|
||||
<property name="startup-notify" type="bool" value="true"/>
|
||||
</property>
|
||||
<property name="<Alt>Print" type="string" value="xfce4-screenshooter -w"/>
|
||||
<property name="<Super>r" type="string" value="xfce4-appfinder -c">
|
||||
<property name="startup-notify" type="bool" value="true"/>
|
||||
</property>
|
||||
<property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
|
||||
<property name="XF86Mail" type="string" value="exo-open --launch MailReader"/>
|
||||
<property name="<Alt>F3" type="string" value="xfce4-appfinder">
|
||||
<property name="startup-notify" type="bool" value="true"/>
|
||||
</property>
|
||||
<property name="Print" type="string" value="xfce4-screenshooter"/>
|
||||
<property name="<Primary>Escape" type="string" value="xfdesktop --menu"/>
|
||||
<property name="<Shift>Print" type="string" value="xfce4-screenshooter -r"/>
|
||||
<property name="<Primary><Alt>Delete" type="string" value="xfce4-session-logout"/>
|
||||
<property name="<Primary><Alt>t" type="string" value="exo-open --launch TerminalEmulator"/>
|
||||
<property name="<Primary><Alt>f" type="string" value="thunar"/>
|
||||
<property name="<Primary><Alt>l" type="string" value="xflock4"/>
|
||||
<property name="<Alt>F1" type="string" value="xfce4-popup-applicationsmenu"/>
|
||||
<property name="<Super>p" type="string" value="xfce4-display-settings --minimal"/>
|
||||
<property name="<Primary><Shift>Escape" type="string" value="xfce4-taskmanager"/>
|
||||
<property name="<Super>e" type="string" value="thunar"/>
|
||||
<property name="<Primary><Alt>Escape" type="string" value="xkill"/>
|
||||
<property name="HomePage" type="string" value="exo-open --launch WebBrowser"/>
|
||||
<property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
|
||||
<property name="override" type="bool" value="true"/>
|
||||
<property name="<Super>l" type="string" value="xflock4"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="xfwm4" type="empty">
|
||||
<property name="default" type="empty">
|
||||
<property name="<Alt>Insert" type="empty"/>
|
||||
<property name="Escape" type="empty"/>
|
||||
<property name="Left" type="empty"/>
|
||||
<property name="Right" type="empty"/>
|
||||
<property name="Up" type="empty"/>
|
||||
<property name="Down" type="empty"/>
|
||||
<property name="<Alt>Tab" type="empty"/>
|
||||
<property name="<Alt><Shift>Tab" type="empty"/>
|
||||
<property name="<Alt>Delete" type="empty"/>
|
||||
<property name="<Primary><Alt>Down" type="empty"/>
|
||||
<property name="<Primary><Alt>Left" type="empty"/>
|
||||
<property name="<Shift><Alt>Page_Down" type="empty"/>
|
||||
<property name="<Alt>F4" type="empty"/>
|
||||
<property name="<Alt>F6" type="empty"/>
|
||||
<property name="<Alt>F7" type="empty"/>
|
||||
<property name="<Alt>F8" type="empty"/>
|
||||
<property name="<Alt>F9" type="empty"/>
|
||||
<property name="<Alt>F10" type="empty"/>
|
||||
<property name="<Alt>F11" type="empty"/>
|
||||
<property name="<Alt>F12" type="empty"/>
|
||||
<property name="<Primary><Shift><Alt>Left" type="empty"/>
|
||||
<property name="<Primary><Alt>End" type="empty"/>
|
||||
<property name="<Primary><Alt>Home" type="empty"/>
|
||||
<property name="<Primary><Shift><Alt>Right" type="empty"/>
|
||||
<property name="<Primary><Shift><Alt>Up" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_1" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_2" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_3" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_4" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_5" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_6" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_7" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_8" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_9" type="empty"/>
|
||||
<property name="<Alt>space" type="empty"/>
|
||||
<property name="<Shift><Alt>Page_Up" type="empty"/>
|
||||
<property name="<Primary><Alt>Right" type="empty"/>
|
||||
<property name="<Primary><Alt>d" type="empty"/>
|
||||
<property name="<Primary><Alt>Up" type="empty"/>
|
||||
<property name="<Super>Tab" type="empty"/>
|
||||
<property name="<Primary>F1" type="empty"/>
|
||||
<property name="<Primary>F2" type="empty"/>
|
||||
<property name="<Primary>F3" type="empty"/>
|
||||
<property name="<Primary>F4" type="empty"/>
|
||||
<property name="<Primary>F5" type="empty"/>
|
||||
<property name="<Primary>F6" type="empty"/>
|
||||
<property name="<Primary>F7" type="empty"/>
|
||||
<property name="<Primary>F8" type="empty"/>
|
||||
<property name="<Primary>F9" type="empty"/>
|
||||
<property name="<Primary>F10" type="empty"/>
|
||||
<property name="<Primary>F11" type="empty"/>
|
||||
<property name="<Primary>F12" type="empty"/>
|
||||
<property name="<Super>KP_Left" type="empty"/>
|
||||
<property name="<Super>KP_Right" type="empty"/>
|
||||
<property name="<Super>KP_Up" type="empty"/>
|
||||
<property name="<Super>KP_Down" type="empty"/>
|
||||
<property name="<Super>KP_Page_Up" type="empty"/>
|
||||
<property name="<Super>KP_Home" type="empty"/>
|
||||
<property name="<Super>KP_End" type="empty"/>
|
||||
<property name="<Super>KP_Next" type="empty"/>
|
||||
</property>
|
||||
<property name="custom" type="empty">
|
||||
<property name="<Primary>F12" type="string" value="workspace_12_key"/>
|
||||
<property name="<Alt>F4" type="string" value="close_window_key"/>
|
||||
<property name="<Primary><Alt>KP_3" type="string" value="move_window_workspace_3_key"/>
|
||||
<property name="<Primary><Alt>Down" type="string" value="down_workspace_key"/>
|
||||
<property name="<Primary><Alt>KP_9" type="string" value="move_window_workspace_9_key"/>
|
||||
<property name="<Primary><Alt>End" type="string" value="move_window_next_workspace_key"/>
|
||||
<property name="<Primary><Shift><Alt>Left" type="string" value="move_window_left_key"/>
|
||||
<property name="<Primary><Alt>KP_4" type="string" value="move_window_workspace_4_key"/>
|
||||
<property name="Right" type="string" value="right_key"/>
|
||||
<property name="Down" type="string" value="down_key"/>
|
||||
<property name="<Shift><Alt>Page_Down" type="string" value="lower_window_key"/>
|
||||
<property name="<Alt>Tab" type="string" value="cycle_windows_key"/>
|
||||
<property name="<Primary><Shift><Alt>Right" type="string" value="move_window_right_key"/>
|
||||
<property name="<Primary><Alt>Right" type="string" value="right_workspace_key"/>
|
||||
<property name="<Alt>F6" type="string" value="stick_window_key"/>
|
||||
<property name="<Primary><Alt>KP_5" type="string" value="move_window_workspace_5_key"/>
|
||||
<property name="<Primary>F11" type="string" value="workspace_11_key"/>
|
||||
<property name="<Alt>F10" type="string" value="maximize_window_key"/>
|
||||
<property name="<Alt>Delete" type="string" value="del_workspace_key"/>
|
||||
<property name="<Super>Tab" type="string" value="switch_window_key"/>
|
||||
<property name="<Primary><Alt>d" type="string" value="show_desktop_key"/>
|
||||
<property name="<Super>KP_Page_Up" type="string" value="tile_up_right_key"/>
|
||||
<property name="<Alt>F7" type="string" value="move_window_key"/>
|
||||
<property name="Up" type="string" value="up_key"/>
|
||||
<property name="<Primary><Alt>KP_6" type="string" value="move_window_workspace_6_key"/>
|
||||
<property name="<Alt>F11" type="string" value="fullscreen_key"/>
|
||||
<property name="<Alt>space" type="string" value="popup_menu_key"/>
|
||||
<property name="<Super>KP_Home" type="string" value="tile_up_left_key"/>
|
||||
<property name="Escape" type="string" value="cancel_key"/>
|
||||
<property name="<Primary><Alt>KP_1" type="string" value="move_window_workspace_1_key"/>
|
||||
<property name="<Shift><Alt>Page_Up" type="string" value="raise_window_key"/>
|
||||
<property name="<Primary><Alt>Home" type="string" value="move_window_prev_workspace_key"/>
|
||||
<property name="<Alt><Shift>Tab" type="string" value="cycle_reverse_windows_key"/>
|
||||
<property name="<Primary><Alt>Left" type="string" value="left_workspace_key"/>
|
||||
<property name="<Alt>F12" type="string" value="above_key"/>
|
||||
<property name="<Primary><Shift><Alt>Up" type="string" value="move_window_up_key"/>
|
||||
<property name="<Alt>F8" type="string" value="resize_window_key"/>
|
||||
<property name="<Primary><Alt>KP_7" type="string" value="move_window_workspace_7_key"/>
|
||||
<property name="<Primary><Alt>KP_2" type="string" value="move_window_workspace_2_key"/>
|
||||
<property name="<Super>KP_End" type="string" value="tile_down_left_key"/>
|
||||
<property name="<Primary><Alt>Up" type="string" value="up_workspace_key"/>
|
||||
<property name="<Alt>F9" type="string" value="hide_window_key"/>
|
||||
<property name="Left" type="string" value="left_key"/>
|
||||
<property name="<Primary><Alt>KP_8" type="string" value="move_window_workspace_8_key"/>
|
||||
<property name="<Alt>Insert" type="string" value="add_workspace_key"/>
|
||||
<property name="override" type="bool" value="true"/>
|
||||
<property name="<Super>1" type="string" value="workspace_1_key"/>
|
||||
<property name="<Super>2" type="string" value="workspace_2_key"/>
|
||||
<property name="<Super>3" type="string" value="workspace_3_key"/>
|
||||
<property name="<Super>4" type="string" value="workspace_4_key"/>
|
||||
<property name="<Super>5" type="string" value="workspace_5_key"/>
|
||||
<property name="<Super>6" type="string" value="workspace_6_key"/>
|
||||
<property name="<Super>7" type="string" value="workspace_7_key"/>
|
||||
<property name="<Super>8" type="string" value="workspace_8_key"/>
|
||||
<property name="<Super>9" type="string" value="workspace_9_key"/>
|
||||
<property name="<Super>0" type="string" value="workspace_10_key"/>
|
||||
<property name="<Super>Left" type="string" value="tile_left_key"/>
|
||||
<property name="<Super>Right" type="string" value="tile_right_key"/>
|
||||
<property name="<Super>Up" type="string" value="tile_down_key"/>
|
||||
<property name="<Super>Down" type="string" value="tile_up_key"/>
|
||||
<property name="<Super>Page_Down" type="string" value="tile_down_right_key"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="providers" type="array">
|
||||
<value type="string" value="xfwm4"/>
|
||||
<value type="string" value="commands"/>
|
||||
</property>
|
||||
</channel>
|
||||
93
dotfiles/config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
Normal file
93
dotfiles/config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
Normal file
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfwm4" version="1.0">
|
||||
<property name="general" type="empty">
|
||||
<property name="activate_action" type="string" value="switch"/>
|
||||
<property name="borderless_maximize" type="bool" value="true"/>
|
||||
<property name="box_move" type="bool" value="false"/>
|
||||
<property name="box_resize" type="bool" value="false"/>
|
||||
<property name="button_layout" type="string" value="O|SHMC"/>
|
||||
<property name="button_offset" type="int" value="0"/>
|
||||
<property name="button_spacing" type="int" value="0"/>
|
||||
<property name="click_to_focus" type="bool" value="false"/>
|
||||
<property name="cycle_apps_only" type="bool" value="false"/>
|
||||
<property name="cycle_draw_frame" type="bool" value="true"/>
|
||||
<property name="cycle_raise" type="bool" value="false"/>
|
||||
<property name="cycle_hidden" type="bool" value="true"/>
|
||||
<property name="cycle_minimum" type="bool" value="true"/>
|
||||
<property name="cycle_minimized" type="bool" value="false"/>
|
||||
<property name="cycle_preview" type="bool" value="true"/>
|
||||
<property name="cycle_tabwin_mode" type="int" value="0"/>
|
||||
<property name="cycle_workspaces" type="bool" value="false"/>
|
||||
<property name="double_click_action" type="string" value="maximize"/>
|
||||
<property name="double_click_distance" type="int" value="5"/>
|
||||
<property name="double_click_time" type="int" value="250"/>
|
||||
<property name="easy_click" type="string" value="Alt"/>
|
||||
<property name="focus_delay" type="int" value="316"/>
|
||||
<property name="focus_hint" type="bool" value="true"/>
|
||||
<property name="focus_new" type="bool" value="true"/>
|
||||
<property name="frame_opacity" type="int" value="100"/>
|
||||
<property name="frame_border_top" type="int" value="0"/>
|
||||
<property name="full_width_title" type="bool" value="true"/>
|
||||
<property name="horiz_scroll_opacity" type="bool" value="false"/>
|
||||
<property name="inactive_opacity" type="int" value="100"/>
|
||||
<property name="maximized_offset" type="int" value="0"/>
|
||||
<property name="mousewheel_rollup" type="bool" value="true"/>
|
||||
<property name="move_opacity" type="int" value="100"/>
|
||||
<property name="placement_mode" type="string" value="center"/>
|
||||
<property name="placement_ratio" type="int" value="20"/>
|
||||
<property name="popup_opacity" type="int" value="100"/>
|
||||
<property name="prevent_focus_stealing" type="bool" value="false"/>
|
||||
<property name="raise_delay" type="int" value="250"/>
|
||||
<property name="raise_on_click" type="bool" value="true"/>
|
||||
<property name="raise_on_focus" type="bool" value="false"/>
|
||||
<property name="raise_with_any_button" type="bool" value="true"/>
|
||||
<property name="repeat_urgent_blink" type="bool" value="false"/>
|
||||
<property name="resize_opacity" type="int" value="100"/>
|
||||
<property name="scroll_workspaces" type="bool" value="true"/>
|
||||
<property name="shadow_delta_height" type="int" value="0"/>
|
||||
<property name="shadow_delta_width" type="int" value="0"/>
|
||||
<property name="shadow_delta_x" type="int" value="0"/>
|
||||
<property name="shadow_delta_y" type="int" value="-3"/>
|
||||
<property name="shadow_opacity" type="int" value="50"/>
|
||||
<property name="show_app_icon" type="bool" value="false"/>
|
||||
<property name="show_dock_shadow" type="bool" value="true"/>
|
||||
<property name="show_frame_shadow" type="bool" value="true"/>
|
||||
<property name="show_popup_shadow" type="bool" value="false"/>
|
||||
<property name="snap_resist" type="bool" value="false"/>
|
||||
<property name="snap_to_border" type="bool" value="true"/>
|
||||
<property name="snap_to_windows" type="bool" value="false"/>
|
||||
<property name="snap_width" type="int" value="10"/>
|
||||
<property name="vblank_mode" type="string" value="auto"/>
|
||||
<property name="theme" type="string" value="Default"/>
|
||||
<property name="tile_on_move" type="bool" value="true"/>
|
||||
<property name="title_alignment" type="string" value="center"/>
|
||||
<property name="title_font" type="string" value="Sans Bold 9"/>
|
||||
<property name="title_horizontal_offset" type="int" value="0"/>
|
||||
<property name="titleless_maximize" type="bool" value="false"/>
|
||||
<property name="title_shadow_active" type="string" value="false"/>
|
||||
<property name="title_shadow_inactive" type="string" value="false"/>
|
||||
<property name="title_vertical_offset_active" type="int" value="0"/>
|
||||
<property name="title_vertical_offset_inactive" type="int" value="0"/>
|
||||
<property name="toggle_workspaces" type="bool" value="false"/>
|
||||
<property name="unredirect_overlays" type="bool" value="true"/>
|
||||
<property name="urgent_blink" type="bool" value="false"/>
|
||||
<property name="use_compositing" type="bool" value="true"/>
|
||||
<property name="workspace_count" type="int" value="6"/>
|
||||
<property name="wrap_cycle" type="bool" value="true"/>
|
||||
<property name="wrap_layout" type="bool" value="true"/>
|
||||
<property name="wrap_resistance" type="int" value="10"/>
|
||||
<property name="wrap_windows" type="bool" value="false"/>
|
||||
<property name="wrap_workspaces" type="bool" value="false"/>
|
||||
<property name="zoom_desktop" type="bool" value="true"/>
|
||||
<property name="zoom_pointer" type="bool" value="true"/>
|
||||
<property name="workspace_names" type="array">
|
||||
<value type="string" value="Workspace 1"/>
|
||||
<value type="string" value="Workspace 2"/>
|
||||
<value type="string" value="Workspace 3"/>
|
||||
<value type="string" value="Workspace 4"/>
|
||||
<value type="string" value="Workspace 5"/>
|
||||
<value type="string" value="Workspace 6"/>
|
||||
</property>
|
||||
</property>
|
||||
</channel>
|
||||
@@ -1,12 +1,12 @@
|
||||
[user]
|
||||
name = David Tomaschik
|
||||
email = david@systemoverlord.com
|
||||
signingKey = 0x5DEA789B
|
||||
|
||||
[core]
|
||||
excludesfile = ~/.gitignore
|
||||
editor = vim
|
||||
whitespace = trailing-space,space-before-tab
|
||||
pager = command -v delta >/dev/null 2>&1 && delta || less -eFiJM~ -j3
|
||||
|
||||
[color]
|
||||
diff = auto
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
[diff]
|
||||
tool = vimdiff
|
||||
colorMoved = default
|
||||
|
||||
[difftool]
|
||||
prompt = false
|
||||
@@ -23,9 +24,12 @@
|
||||
last = log -1 HEAD
|
||||
# Thanks to
|
||||
# http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/
|
||||
ls = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate
|
||||
logs = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate
|
||||
lg = log -p
|
||||
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
|
||||
files = ls-files
|
||||
ls = ls-files
|
||||
lol = log --graph --pretty=format:'%C(yellow)%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cblue(%cr)%Creset' --abbrev-commit --date=relative
|
||||
f = "!git ls-files | grep -i"
|
||||
logtree = log --graph --oneline --decorate --all
|
||||
|
||||
@@ -39,7 +43,7 @@
|
||||
user = matir
|
||||
|
||||
# Site specific config
|
||||
[url "https://github.com./"]
|
||||
[url "https://github.com/"]
|
||||
insteadOf = "github:"
|
||||
insteadOf = "github://"
|
||||
|
||||
@@ -56,10 +60,29 @@
|
||||
|
||||
[credential]
|
||||
helper = cache --timeout=36000
|
||||
|
||||
[receive]
|
||||
denyCurrentBranch = updateInstead
|
||||
|
||||
[merge]
|
||||
tool = vimdiff
|
||||
conflictstyle = diff3
|
||||
|
||||
[mergetool]
|
||||
prompt = false
|
||||
|
||||
[include]
|
||||
path = ~/.gitconfig.local
|
||||
|
||||
[pull]
|
||||
rebase = false
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
[interactive]
|
||||
diffFilter = command -v delta >/dev/null 2>&1 && delta || cat
|
||||
|
||||
[delta]
|
||||
navigate = true
|
||||
line-numbers = true
|
||||
|
||||
@@ -17,6 +17,13 @@ Thumbs.db
|
||||
# Try to avoid accidentally checking in private keys
|
||||
id_rsa
|
||||
id_ecdsa
|
||||
id_ed25519
|
||||
|
||||
# Kicad backup files
|
||||
*.kicad_pcb-bak
|
||||
|
||||
# Mypy cache path
|
||||
.mypy_cache
|
||||
|
||||
# These files should basically never be committed
|
||||
.env
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use-agent
|
||||
# HKPS requires gnupg-curl for gpg1
|
||||
keyserver hkps://keys.openpgp.org
|
||||
keyserver hkps://keyserver.ubuntu.com
|
||||
keyserver-options auto-key-retrieve no-honor-keyserver-url
|
||||
auto-key-locate keyserver
|
||||
personal-digest-preferences SHA256
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# Should only use POSIX constructs.
|
||||
|
||||
# Always load ENV
|
||||
test -f "$HOME/.env" && . "$HOME/.env"
|
||||
test -f "$HOME/.shenv" && . "$HOME/.shenv"
|
||||
|
||||
# Setup GREP_COLORS
|
||||
export GREP_COLOR='01;31'
|
||||
@@ -26,4 +26,12 @@ if [ "$(uname)" = "Darwin" ] ; then
|
||||
export CLICOLOR
|
||||
fi
|
||||
|
||||
# Setup for libvirt
|
||||
if [ -z "${LIBVIRT_DEFAULT_URI}" ] ; then
|
||||
if [ "$(id -u)" = "0" ] || (id -g -n | grep -q "\blibvirt\b") ; then
|
||||
LIBVIRT_DEFAULT_URI="qemu:///system"
|
||||
export LIBVIRT_DEFAULT_URI
|
||||
fi
|
||||
fi
|
||||
|
||||
test -f "${HOME}/.profile.local" && . "${HOME}/.profile.local"
|
||||
|
||||
@@ -1,13 +1,44 @@
|
||||
tmp
|
||||
Downloads
|
||||
.AndroidStudio*
|
||||
.Genymobile
|
||||
.Ticket to Ride*
|
||||
.android*
|
||||
.ansible
|
||||
.arduino*
|
||||
.aws
|
||||
.bundle
|
||||
.cache
|
||||
.local/share/Trash
|
||||
.wine
|
||||
.thumbnails
|
||||
.cargo
|
||||
.config/discord
|
||||
.config/gcloud/logs
|
||||
.dropbox-dist
|
||||
.gnupg.bak
|
||||
.gradle
|
||||
.histfile
|
||||
.kube/cache
|
||||
.local/share/Steam
|
||||
.local/share/Trash
|
||||
.local/lib
|
||||
.m2
|
||||
.npm
|
||||
.p2
|
||||
.rvm*
|
||||
.rustup
|
||||
.sliver
|
||||
.sqlite_history
|
||||
.thumbnails
|
||||
.virtualenvs
|
||||
.wine
|
||||
.zcompdump
|
||||
.zcompdump*
|
||||
.sqlite_history
|
||||
VirtualBox VMs
|
||||
Audits
|
||||
Downloads
|
||||
SpiderOak Hive
|
||||
VirtualBox VMs
|
||||
tmp
|
||||
tools
|
||||
.minikube
|
||||
.config/unity3d/cache
|
||||
.xsession-errors*
|
||||
.config/google-chrome-beta
|
||||
.config/google-chrome
|
||||
Unity
|
||||
|
||||
@@ -5,8 +5,8 @@ umask 027
|
||||
|
||||
# Paths and preferences
|
||||
export PYTHONPATH="$HOME/.python:$PYTHONPATH"
|
||||
export GOPATH="$HOME/Projects/Go:/usr/share/gocode"
|
||||
export PATH="$HOME/bin:/sbin:/usr/sbin:$PATH:$GOPATH/bin"
|
||||
export GOPATH="$HOME/go:$HOME/Projects/Go:/usr/share/gocode"
|
||||
export PATH="$HOME/bin:$HOME/bin/tools:/sbin:/usr/sbin:$PATH:$HOME/go/bin"
|
||||
export VISUAL=vim
|
||||
export EDITOR=vim
|
||||
export DEBEMAIL="david@systemoverlord.com"
|
||||
@@ -34,20 +34,20 @@ if [ -z "${BROWSER}" ] ; then
|
||||
for t in google-chrome-beta google-chrome firefox ; do
|
||||
if BROWSER=$(command -v ${t}); then
|
||||
export BROWSER
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# For virtualenvwrapper
|
||||
export WORKON_HOME=$HOME/.virtualenvs
|
||||
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
|
||||
|
||||
# GPG full key id
|
||||
export GPG_ID=7FD58D9A196DCEEEAD671F94F4D7A7915DEA789B
|
||||
|
||||
# Setup locale
|
||||
if test -x /usr/bin/locale ; then
|
||||
for l in en_US.utf8 C.UTF-8 C ; do
|
||||
for l in en_US.utf8 en_US.UTF-8 C.UTF-8 C ; do
|
||||
if /usr/bin/locale -a | grep -q "${l}" ; then
|
||||
export LC_CTYPE=${l}
|
||||
export LC_NUMERIC=${l}
|
||||
@@ -78,5 +78,11 @@ else
|
||||
fi
|
||||
export LC_COLLATE=C
|
||||
|
||||
# Opt out of .net telemetry
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
# Suppress lvm warnings
|
||||
export LVM_SUPPRESS_FD_WARNINGS=1
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
test -e "$HOME/.localenv" && . "$HOME/.localenv"
|
||||
@@ -4,6 +4,9 @@ Protocol 2
|
||||
# Permit Local Overrides
|
||||
Include ~/.ssh/config.d/*
|
||||
|
||||
# SSH known host hashing doesn't buy much with shell history, etc.
|
||||
HashKnownHosts no
|
||||
|
||||
# Enable canonicalization, unless overridden
|
||||
CanonicalizeHostname yes
|
||||
CanonicalizeFallbackLocal yes
|
||||
@@ -14,6 +17,10 @@ CanonicalizeMaxDots 0
|
||||
Host *.*
|
||||
CheckHostIP yes
|
||||
|
||||
Host *.cloudshell.dev
|
||||
# Cloudshell hostnames are too long for unix sockets
|
||||
ControlMaster no
|
||||
|
||||
Match canonical all
|
||||
CheckHostIP no
|
||||
ControlMaster auto
|
||||
|
||||
@@ -1,7 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
REMOTE_LINK="${HOME}/.ssh/remote_agent.sock"
|
||||
# Roughly based on this article:
|
||||
# https://werat.github.io/2017/02/04/tmux-ssh-agent-forwarding.html
|
||||
|
||||
if test \! -L "${REMOTE_LINK}" -a -n "${SSH_AUTH_SOCK}" ; then
|
||||
REMOTE_LINK="${HOME}/.ssh/ssh_auth_sock"
|
||||
|
||||
if [ "${1:-}" = "force" ] && [ -S "${SSH_AUTH_SOCK}" ] ; then
|
||||
ln -sf "${SSH_AUTH_SOCK}" "${REMOTE_LINK}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test \! -S "${REMOTE_LINK}" -a -S "${SSH_AUTH_SOCK}" ; then
|
||||
ln -sf "${SSH_AUTH_SOCK}" "${REMOTE_LINK}"
|
||||
fi
|
||||
|
||||
# Handle X forwarding, per sshd(8)
|
||||
if read proto cookie && [ -n "$DISPLAY" ]; then
|
||||
if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
|
||||
# X11UseLocalhost=yes
|
||||
echo add unix:`echo $DISPLAY |
|
||||
cut -c11-` $proto $cookie
|
||||
else
|
||||
# X11UseLocalhost=no
|
||||
echo add $DISPLAY $proto $cookie
|
||||
fi | xauth -q -
|
||||
fi
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
# Update environment on reconnect
|
||||
set -g update-environment "DISPLAY WINDOWID SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION"
|
||||
|
||||
# Use symlink socket
|
||||
set-environment -g 'SSH_AUTH_SOCK' ~/.ssh/ssh_auth_sock
|
||||
|
||||
# Custom binds
|
||||
bind K confirm kill-server
|
||||
bind X confirm kill-window
|
||||
|
||||
Submodule dotfiles/tmux/tmux-logging updated: b085ad423b...4717cbd4c8
Submodule dotfiles/vim/pack/matir/opt/solarized8 updated: 9afbe12f68...7b6399093c
Submodule dotfiles/vim/pack/matir/start/ctrlp deleted from 2e773fd8c7
Submodule dotfiles/vim/pack/matir/start/editorconfig updated: c718cefc51...8f6eba5fd6
Submodule dotfiles/vim/pack/matir/start/fugitive updated: 35f1095f9b...2a53d79248
Submodule dotfiles/vim/pack/matir/start/surround updated: fab8621670...f51a26d371
Submodule dotfiles/vim/pack/matir/start/syntastic deleted from 0336c35c0b
Submodule dotfiles/vim/pack/matir/start/vim-go deleted from 13128e5f30
@@ -23,12 +23,33 @@ set expandtab
|
||||
set shiftround
|
||||
set backspace=indent,eol,start
|
||||
" Shift-tab to go backwards in insert mode
|
||||
imap <S-Tab> <Esc><<A
|
||||
" Does not work with YCM
|
||||
inoremap <S-Tab> <C-d>
|
||||
|
||||
" Line numbering, ruler
|
||||
set number
|
||||
set ruler
|
||||
|
||||
" Setup viminfo for recording positions, etc.
|
||||
if !has('nvim')
|
||||
set viminfo='10,\"100,:20,%,n~/.viminfo
|
||||
endif
|
||||
" Jump back when editing a file
|
||||
function! ResCur()
|
||||
" Don't jump in git commits since they're generated.
|
||||
if &ft == 'gitcommit'
|
||||
return
|
||||
endif
|
||||
if line("'\"") <= line("$")
|
||||
normal! g`"
|
||||
return
|
||||
endif
|
||||
endfunction
|
||||
augroup resCur
|
||||
autocmd!
|
||||
autocmd BufWinEnter * call ResCur()
|
||||
augroup END
|
||||
|
||||
" File options
|
||||
set encoding=utf-8
|
||||
" Syntax highlighting, look and feel
|
||||
@@ -72,7 +93,6 @@ imap <silent> <F4> <ESC>:set invpaste<CR>:set paste?<CR>
|
||||
" Mediocre Hex editing in vim
|
||||
" Source: http://vim.wikia.com/wiki/Improved_hex_editing
|
||||
" TODO: move to an include
|
||||
nnoremap <C-H> :Hexmode<CR>
|
||||
command -bar Hexmode call ToggleHex()
|
||||
function ToggleHex()
|
||||
" hex mode should be considered a read-only operation
|
||||
@@ -114,18 +134,56 @@ endfunction
|
||||
" Options for syntastic
|
||||
let g:syntastic_enable_signs = 1
|
||||
let g:syntastic_auto_loc_list = 2
|
||||
let g:syntastic_check_on_wq = 0
|
||||
let g:syntastic_go_checkers = ['govet', 'errcheck', 'go']
|
||||
let g:syntastic_python_checkers=['flake8']
|
||||
" Because XXE
|
||||
let g:syntastic_xml_checkers=['']
|
||||
let g:syntastic_xslt_checkers=['']
|
||||
autocmd BufReadPost *
|
||||
\ if &readonly
|
||||
\| let b:syntastic_mode = 'passive'
|
||||
\| else
|
||||
\| silent! unlet b:syntastic_mode
|
||||
\| endif
|
||||
|
||||
" Have F5 run the tests and display errors
|
||||
nnoremap <silent> <F5> :SyntasticCheck<CR> :Errors<CR>
|
||||
|
||||
" Load vim-ycm if installed on the system level
|
||||
if isdirectory("/usr/share/vim-youcompleteme")
|
||||
" Currently only works on debian-based systems...
|
||||
" It also does not play nicely with virtual envs, so we skip it then
|
||||
if isdirectory("/usr/share/vim-youcompleteme") && empty($VIRTUAL_ENV)
|
||||
let g:ycm_gopls_binary_path='gopls'
|
||||
let g:ycm_autoclose_preview_window_after_insertion=1
|
||||
set runtimepath+=/usr/share/vim-youcompleteme
|
||||
endif
|
||||
|
||||
" Enable vim-bracketed-paste mode
|
||||
" From
|
||||
" https://github.com/ConradIrwin/vim-bracketed-paste/blob/master/plugin/bracketed-paste.vim
|
||||
if exists("g:loaded_bracketed_paste")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_bracketed_paste = 1
|
||||
|
||||
let &t_ti .= "\<Esc>[?2004h"
|
||||
let &t_te = "\e[?2004l" . &t_te
|
||||
|
||||
function! XTermPasteBegin(ret)
|
||||
set pastetoggle=<f29>
|
||||
set paste
|
||||
return a:ret
|
||||
endfunction
|
||||
|
||||
execute "set <f28>=\<Esc>[200~"
|
||||
execute "set <f29>=\<Esc>[201~"
|
||||
map <expr> <f28> XTermPasteBegin("i")
|
||||
imap <expr> <f28> XTermPasteBegin("")
|
||||
vmap <expr> <f28> XTermPasteBegin("c")
|
||||
cmap <f28> <nop>
|
||||
cmap <f29> <nop>
|
||||
|
||||
" Include a .vimrc.local if it exists
|
||||
if filereadable(glob("~/.vimrc.local"))
|
||||
source ~/.vimrc.local
|
||||
|
||||
@@ -6,7 +6,8 @@ content_disposition = on
|
||||
# Recursive download options
|
||||
no_parent = on
|
||||
follow_ftp = on
|
||||
adjust_extension = on
|
||||
# Good for HTML, not for other things
|
||||
adjust_extension = off
|
||||
robots = off
|
||||
|
||||
# Show responses
|
||||
|
||||
@@ -66,7 +66,8 @@ zstyle ':completion::complete:*' use-cache on
|
||||
zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache"
|
||||
|
||||
# .profile is universal
|
||||
. ~/.profile
|
||||
emulate sh -c '. /etc/profile'
|
||||
emulate sh -c '. ~/.profile'
|
||||
# Deduplicate the path
|
||||
typeset -U path
|
||||
|
||||
@@ -83,36 +84,39 @@ bindkey '^h' backward-delete-char
|
||||
# ok, a few emacs convenience bindings
|
||||
bindkey '^w' backward-kill-word
|
||||
bindkey '^r' history-incremental-search-backward
|
||||
# delete really deletes
|
||||
bindkey "^[[3~" delete-char
|
||||
|
||||
# Source extras and aliases if interactive
|
||||
if [[ $- == *i* ]] ; then
|
||||
if [[ -e $HOME/.aliases ]] ; then source $HOME/.aliases ; fi
|
||||
if [[ -e $HOME/.aliases.local ]] ; then source $HOME/.aliases.local ; fi
|
||||
# zsh-only-ism to avoid error if glob doesn't expand
|
||||
for file in $HOME/.zshrc.d/[a-zA-Z0-9]*.zsh(N) ; do
|
||||
source "$file"
|
||||
done
|
||||
# extra completions, prompt
|
||||
fpath=(~/.zshrc.completions ~/.zshrc.d/matir_prompt $fpath)
|
||||
fpath=(~/.zshrc.completions ~/.zshrc.d/matir_prompt ~/.zshrc.d/agnoster_prompt $fpath)
|
||||
# Completion
|
||||
zstyle ':compinstall' filename "${HOME}/.zshrc"
|
||||
zstyle ':completion:*' users root ${USER}
|
||||
# Modules after fpath
|
||||
autoload -Uz compinit && compinit -i
|
||||
autoload -Uz promptinit && promptinit
|
||||
# Prompt
|
||||
prompt matir
|
||||
# Virtualenvwrapper
|
||||
if test -f /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh ; then
|
||||
source /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh
|
||||
elif test -f /usr/bin/virtualenvwrapper_lazy.sh ; then
|
||||
source /usr/bin/virtualenvwrapper_lazy.sh
|
||||
fi
|
||||
# Enable grc if we have it
|
||||
if ls --version 2>&1 >/dev/null ; then
|
||||
alias ls='ls --color -C'
|
||||
if command ls --version >/dev/null 2>&1 ; then
|
||||
alias ls="$(whence -p ls) --color=auto -C"
|
||||
fi
|
||||
[[ -s "/etc/grc.zsh" ]] && source /etc/grc.zsh
|
||||
# Syntax highlighting and substring search
|
||||
if test -f /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ; then
|
||||
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
elif test -f /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ; then
|
||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
fi
|
||||
if test -f ${HOME}/.zshrc.d/_zsh-history-substring-search.zsh ; then
|
||||
source ${HOME}/.zshrc.d/_zsh-history-substring-search.zsh
|
||||
@@ -121,6 +125,14 @@ if [[ $- == *i* ]] ; then
|
||||
bindkey -M vicmd 'k' history-substring-search-up
|
||||
bindkey -M vicmd 'j' history-substring-search-down
|
||||
fi
|
||||
# Suggestions
|
||||
if test -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh ; then
|
||||
# Works well for solarized
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=10"
|
||||
# Strategy -- note that 'completion' is slow AF
|
||||
ZSH_AUTOSUGGEST_STRATEGY=(history)
|
||||
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
fi
|
||||
fi # End interactive-only block
|
||||
|
||||
# In case ack is named ack-grep
|
||||
@@ -128,13 +140,25 @@ if [ -x /usr/bin/ack-grep ] ; then
|
||||
alias ack='/usr/bin/ack-grep'
|
||||
fi
|
||||
|
||||
# Setup PATH for tools
|
||||
PATH=${PATH}:${HOME}/bin/tools
|
||||
# Got rust?
|
||||
if test -d ${HOME}/.cargo/bin ; then
|
||||
PATH=${PATH}:${HOME}/.cargo/bin
|
||||
fi
|
||||
|
||||
# Most is nice, if we have it
|
||||
if command -v most >/dev/null 2>&1; then
|
||||
export PAGER="most"
|
||||
# Pip packages
|
||||
if test -d ${HOME}/.local/bin ; then
|
||||
PATH=${PATH}:${HOME}/.local/bin
|
||||
fi
|
||||
|
||||
if test -z "${PAGER}" && command -v less >/dev/null 2>&1; then
|
||||
export PAGER="less"
|
||||
fi
|
||||
|
||||
# Load any local settings
|
||||
if [ -e $HOME/.zshrc.local ] ; then source $HOME/.zshrc.local ; fi
|
||||
|
||||
# Set prompt based on local settings
|
||||
if test -f "${HOME}/.zprompt" ; then
|
||||
THEME=${THEME:=$(cat "${HOME}/.zprompt")}
|
||||
fi
|
||||
prompt "${THEME:-matir}" >/dev/null 2>&1
|
||||
|
||||
5
dotfiles/zshrc.completions/_gf
Normal file
5
dotfiles/zshrc.completions/_gf
Normal file
@@ -0,0 +1,5 @@
|
||||
#compdef gf
|
||||
|
||||
function _gf {
|
||||
_arguments "1: :($(gf -list))"
|
||||
}
|
||||
173
dotfiles/zshrc.d/agnoster_prompt/prompt_agnoster_setup
Normal file
173
dotfiles/zshrc.d/agnoster_prompt/prompt_agnoster_setup
Normal file
@@ -0,0 +1,173 @@
|
||||
# vim:ft=zsh ts=2 sw=2 sts=2
|
||||
#
|
||||
# agnoster's Theme - https://gist.github.com/3712874
|
||||
# A Powerline-inspired theme for ZSH
|
||||
#
|
||||
# # README
|
||||
#
|
||||
# In order for this theme to render correctly, you will need a
|
||||
# [Powerline-patched font](https://gist.github.com/1595572).
|
||||
#
|
||||
# In addition, I recommend the
|
||||
# [Solarized theme](https://github.com/altercation/solarized/) and, if you're
|
||||
# using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over Terminal.app -
|
||||
# it has significantly better color fidelity.
|
||||
#
|
||||
# # Goals
|
||||
#
|
||||
# The aim of this theme is to only show you *relevant* information. Like most
|
||||
# prompts, it will only show git information when in a git working directory.
|
||||
# However, it goes a step further: everything from the current user and
|
||||
# hostname to whether the last call exited with an error to whether background
|
||||
# jobs are running in this shell will all be displayed automatically when
|
||||
# appropriate.
|
||||
|
||||
### Segments of the prompt, default order declaration
|
||||
|
||||
typeset -aHg AGNOSTER_PROMPT_SEGMENTS=(
|
||||
prompt_status
|
||||
prompt_context
|
||||
prompt_virtualenv
|
||||
prompt_dir
|
||||
prompt_git
|
||||
prompt_end
|
||||
)
|
||||
|
||||
### Segment drawing
|
||||
# A few utility functions to make it easy and re-usable to draw segmented prompts
|
||||
|
||||
CURRENT_BG='NONE'
|
||||
if [[ -z "$PRIMARY_FG" ]]; then
|
||||
PRIMARY_FG=black
|
||||
fi
|
||||
|
||||
# Characters
|
||||
SEGMENT_SEPARATOR="\ue0b0"
|
||||
PLUSMINUS="\u00b1"
|
||||
BRANCH="\ue0a0"
|
||||
DETACHED="\u27a6"
|
||||
CROSS="\u2718"
|
||||
LIGHTNING="\u26a1"
|
||||
GEAR="\u2699"
|
||||
|
||||
# Begin a segment
|
||||
# Takes two arguments, background and foreground. Both can be omitted,
|
||||
# rendering default background/foreground.
|
||||
prompt_segment() {
|
||||
local bg fg
|
||||
[[ -n $1 ]] && bg="%K{$1}" || bg="%k"
|
||||
[[ -n $2 ]] && fg="%F{$2}" || fg="%f"
|
||||
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then
|
||||
print -n "%{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%}"
|
||||
else
|
||||
print -n "%{$bg%}%{$fg%}"
|
||||
fi
|
||||
CURRENT_BG=$1
|
||||
[[ -n $3 ]] && print -n $3
|
||||
}
|
||||
|
||||
# End the prompt, closing any open segments
|
||||
prompt_end() {
|
||||
if [[ -n $CURRENT_BG ]]; then
|
||||
print -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
|
||||
else
|
||||
print -n "%{%k%}"
|
||||
fi
|
||||
print -n "%{%f%}"
|
||||
CURRENT_BG=''
|
||||
}
|
||||
|
||||
### Prompt components
|
||||
# Each component will draw itself, and hide itself if no information needs to be shown
|
||||
|
||||
# Context: user@hostname (who am I and where am I)
|
||||
prompt_context() {
|
||||
local user=`whoami`
|
||||
|
||||
if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CONNECTION" ]]; then
|
||||
prompt_segment $PRIMARY_FG default " %(!.%{%F{yellow}%}.)$user@%m "
|
||||
fi
|
||||
}
|
||||
|
||||
# Git: branch/detached head, dirty status
|
||||
prompt_git() {
|
||||
local color ref
|
||||
is_dirty() {
|
||||
test -n "$(git status --porcelain --ignore-submodules)"
|
||||
}
|
||||
ref="$vcs_info_msg_0_"
|
||||
if [[ -n "$ref" ]]; then
|
||||
if is_dirty; then
|
||||
color=yellow
|
||||
ref="${ref} $PLUSMINUS"
|
||||
else
|
||||
color=green
|
||||
ref="${ref} "
|
||||
fi
|
||||
if [[ "${ref/.../}" == "$ref" ]]; then
|
||||
ref="$BRANCH $ref"
|
||||
else
|
||||
ref="$DETACHED ${ref/.../}"
|
||||
fi
|
||||
prompt_segment $color $PRIMARY_FG
|
||||
print -n " $ref"
|
||||
fi
|
||||
}
|
||||
|
||||
# Dir: current working directory
|
||||
prompt_dir() {
|
||||
prompt_segment blue $PRIMARY_FG ' %~ '
|
||||
}
|
||||
|
||||
# Status:
|
||||
# - was there an error
|
||||
# - am I root
|
||||
# - are there background jobs?
|
||||
prompt_status() {
|
||||
local symbols
|
||||
symbols=()
|
||||
[[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}$CROSS"
|
||||
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}$LIGHTNING"
|
||||
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}$GEAR"
|
||||
|
||||
[[ -n "$symbols" ]] && prompt_segment $PRIMARY_FG default " $symbols "
|
||||
}
|
||||
|
||||
# Display current virtual environment
|
||||
prompt_virtualenv() {
|
||||
if [[ -n $VIRTUAL_ENV ]]; then
|
||||
color=cyan
|
||||
prompt_segment $color $PRIMARY_FG
|
||||
print -Pn " $(basename $VIRTUAL_ENV) "
|
||||
fi
|
||||
}
|
||||
|
||||
## Main prompt
|
||||
prompt_agnoster_main() {
|
||||
RETVAL=$?
|
||||
CURRENT_BG='NONE'
|
||||
for prompt_segment in "${AGNOSTER_PROMPT_SEGMENTS[@]}"; do
|
||||
[[ -n $prompt_segment ]] && $prompt_segment
|
||||
done
|
||||
}
|
||||
|
||||
prompt_agnoster_precmd() {
|
||||
vcs_info
|
||||
PROMPT='%{%f%b%k%}$(prompt_agnoster_main) '
|
||||
}
|
||||
|
||||
prompt_agnoster_setup() {
|
||||
autoload -Uz add-zsh-hook
|
||||
autoload -Uz vcs_info
|
||||
|
||||
prompt_opts=(cr subst percent)
|
||||
|
||||
add-zsh-hook precmd prompt_agnoster_precmd
|
||||
|
||||
zstyle ':vcs_info:*' enable git
|
||||
zstyle ':vcs_info:*' check-for-changes false
|
||||
zstyle ':vcs_info:git*' formats '%b'
|
||||
zstyle ':vcs_info:git*' actionformats '%b (%a)'
|
||||
}
|
||||
|
||||
prompt_agnoster_setup "$@"
|
||||
17
dotfiles/zshrc.d/aliases.zsh
Normal file
17
dotfiles/zshrc.d/aliases.zsh
Normal file
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# On some systems, bat is batcat
|
||||
if ! command -v bat >/dev/null 2>&1 ; then
|
||||
if command -v batcat >/dev/null 2>&1 ; then
|
||||
alias bat=$(command -v batcat)
|
||||
fi
|
||||
fi
|
||||
|
||||
# FFUF aliases
|
||||
if command -v ffuf >/dev/null 2>&1 ; then
|
||||
if test -d $HOME/tools/seclists ; then
|
||||
alias ffuf-files="ffuf -c -w $HOME/tools/seclists/Discovery/Web-Content/raft-large-files.txt"
|
||||
alias ffuf-dirs="ffuf -c -w $HOME/tools/seclists/Discovery/Web-Content/raft-large-directories.txt"
|
||||
alias ffuf-quick="ffuf -c -w $HOME/tools/seclists/Discovery/Web-Content/quickhits.txt"
|
||||
fi
|
||||
fi
|
||||
4
dotfiles/zshrc.d/cnf.zsh
Normal file
4
dotfiles/zshrc.d/cnf.zsh
Normal file
@@ -0,0 +1,4 @@
|
||||
# TODO: this is horribly unportable. Fix it.
|
||||
if test -r /etc/zsh_command_not_found && test -r /var/lib/command-not-found/commands.db ; then
|
||||
source /etc/zsh_command_not_found
|
||||
fi
|
||||
9
dotfiles/zshrc.d/dmesg.zsh
Normal file
9
dotfiles/zshrc.d/dmesg.zsh
Normal file
@@ -0,0 +1,9 @@
|
||||
function dmesg {
|
||||
if [ $(id -u) -eq 0 ] ; then
|
||||
command dmesg "$@"
|
||||
elif id | grep -q '(sudo)' ; then
|
||||
sudo dmesg "$@"
|
||||
else
|
||||
command dmesg "$@"
|
||||
fi
|
||||
}
|
||||
23
dotfiles/zshrc.d/functions.zsh
Normal file
23
dotfiles/zshrc.d/functions.zsh
Normal file
@@ -0,0 +1,23 @@
|
||||
function dumpenv {
|
||||
tr '\0' '\n' < /proc/${1}/environ
|
||||
}
|
||||
|
||||
if test -x "/sbin/starship" ; then
|
||||
_STARSHIP_PATH="/sbin/starship"
|
||||
function starship_prompt {
|
||||
eval $(/sbin/starship init zsh)
|
||||
}
|
||||
elif test -x "${HOME}/tools/starship/starship" ; then
|
||||
_STARSHIP_PATH="${HOME}/tools/starship/starship"
|
||||
function starship_prompt {
|
||||
eval $($HOME/tools/starship/starship init zsh)
|
||||
}
|
||||
fi
|
||||
if test -f ${HOME}/.zprompt ; then
|
||||
if test "$(cat ${HOME}/.zprompt)" = "starship" ; then
|
||||
if test -n "${_STARSHIP_PATH:-}" ; then
|
||||
eval $(${_STARSHIP_PATH} init zsh)
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
unset _STARSHIP_PATH
|
||||
@@ -2,16 +2,23 @@
|
||||
|
||||
GCL=${HOME}/tools/gcloud
|
||||
|
||||
if [ ! -d ${GCL} ] ; then
|
||||
return
|
||||
if [ -d "${GCL}" ] ; then
|
||||
# Add bin to path
|
||||
export PATH="${PATH}:${GCL}/bin"
|
||||
|
||||
# Load completion
|
||||
source "${GCL}/completion.zsh.inc"
|
||||
elif [ -f /usr/share/google-cloud-sdk/completion.zsh.inc ] ; then
|
||||
source /usr/share/google-cloud-sdk/completion.zsh.inc
|
||||
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) || \
|
||||
function kubectl() {
|
||||
if ! type __start_kubectl >/dev/null 2>&1; then
|
||||
source <(command kubectl completion zsh)
|
||||
fi
|
||||
|
||||
command kubectl "$@"
|
||||
} || \
|
||||
true
|
||||
|
||||
@@ -2,6 +2,10 @@ if ! which gpg-agent >/dev/null 2>&1 ; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if test -f ${HOME}/.no-gpg-agent ; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Set the default paths to gpg-agent files.
|
||||
_gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf"
|
||||
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env.$UID"
|
||||
@@ -20,13 +24,19 @@ fi
|
||||
# Inform gpg-agent of the current TTY for user prompts.
|
||||
export GPG_TTY="$(tty)"
|
||||
|
||||
# Integrate with the SSH module.
|
||||
# Setup SSH agent support
|
||||
if grep '^enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then
|
||||
# Load required functions.
|
||||
autoload -Uz add-zsh-hook
|
||||
|
||||
# Override the ssh-agent environment file default path.
|
||||
_ssh_agent_env="$_gpg_agent_env"
|
||||
if test -z "$SSH_AUTH_SOCK" ; then
|
||||
SSH_AUTH_SOCK="/run/user/$(id -u)/gnupg/S.gpg-agent.ssh"
|
||||
if test -S "$SSH_AUTH_SOCK" ; then
|
||||
export SSH_AUTH_SOCK
|
||||
else
|
||||
unset SSH_AUTH_SOCK
|
||||
fi
|
||||
fi
|
||||
|
||||
# Updates the GPG-Agent TTY before every command since SSH does not set it.
|
||||
function _gpg-agent-update-tty {
|
||||
|
||||
@@ -24,3 +24,11 @@ histmode() {
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
histsearch() {
|
||||
fc -l -m "${1}" 1
|
||||
}
|
||||
|
||||
histbrowse() {
|
||||
fc -l 1
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
if which ipython >/dev/null 2>/dev/null ; then
|
||||
if command -v ipython >/dev/null || command -v ipython3 >/dev/null ; then
|
||||
export PYTHONSTARTUP="${HOME}/.ipython.py"
|
||||
fi
|
||||
|
||||
@@ -80,6 +80,7 @@ function jekyll {
|
||||
tr -c -s -- a-z0-9 - | # Replace non-alphanums with dashes
|
||||
sed 's/^-*\([^-].*[^-]\)-*$/\1/' # Remove leading and trailing slashes
|
||||
)
|
||||
TITLE=$(echo ${TITLE} | sed 's/\\/\\\\/g;s/"/\\"/g')
|
||||
DATE=`date +%Y-%m-%d`
|
||||
|
||||
case "${1:-help}" in
|
||||
@@ -141,10 +142,10 @@ function jekyll {
|
||||
${EDITOR} "${FILENAME}"
|
||||
;;
|
||||
dev)
|
||||
command jekyll serve -D -I "$@"
|
||||
command bundle exec jekyll serve -D -I "$@"
|
||||
;;
|
||||
*)
|
||||
command jekyll "$@"
|
||||
command bundle exec jekyll "$@"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
8
dotfiles/zshrc.d/lesshighlight.zsh
Normal file
8
dotfiles/zshrc.d/lesshighlight.zsh
Normal file
@@ -0,0 +1,8 @@
|
||||
test -f /usr/share/source-highlight/src-hilite-lesspipe.sh && \
|
||||
function srcless {
|
||||
if [ $# -ne 1 ] ; then
|
||||
echo "$0 <what>" > /dev/stderr
|
||||
return 1
|
||||
fi
|
||||
/usr/share/source-highlight/src-hilite-lesspipe.sh $1 | less -R
|
||||
}
|
||||
39
dotfiles/zshrc.d/logging.zsh
Normal file
39
dotfiles/zshrc.d/logging.zsh
Normal file
@@ -0,0 +1,39 @@
|
||||
LOGGER_ENV=""
|
||||
LOGGER_DIR="${LOGGER_DIR:-${HOME}/.zlogs}"
|
||||
|
||||
function _logger_now {
|
||||
print -P "%D{%Y%m%d-%H%M%S}"
|
||||
}
|
||||
|
||||
function logenv {
|
||||
LOGGER_ENV="${1:-}"
|
||||
if test -z "${LOGGER_ENV}" ; then
|
||||
return 0
|
||||
fi
|
||||
mkdir -p "${LOGGER_DIR}/${LOGGER_ENV}"
|
||||
}
|
||||
|
||||
# Executed on prompt
|
||||
function _logger_precmd {
|
||||
_RV="$?"
|
||||
if test -z "${LOGGER_ENV}" ; then
|
||||
return 0
|
||||
fi
|
||||
_LOGGER_STOP="$(_logger_now)"
|
||||
_LOGGER_DATE="$(print -P '%D{%Y%m%d}')"
|
||||
echo "$_LOGGER_START $_LOGGER_STOP $$ $_RV $_LOGGER_CMD" >>| \
|
||||
"${LOGGER_DIR}/${LOGGER_ENV}/${_LOGGER_DATE}.log"
|
||||
return 0
|
||||
}
|
||||
|
||||
# Executed on command entry
|
||||
function _logger_preexec {
|
||||
_LOGGER_CMD="${2}"
|
||||
_LOGGER_START="$(_logger_now)"
|
||||
return 0
|
||||
}
|
||||
|
||||
typeset -a precmd_functions
|
||||
precmd_functions+=_logger_precmd
|
||||
typeset -a preexec_functions
|
||||
preexec_functions+=_logger_preexec
|
||||
@@ -34,6 +34,9 @@ function prompt_matir_setup {
|
||||
RPROMPT+='%? '
|
||||
RPROMPT+='%{$reset_color%})'
|
||||
RPROMPT+='${PROMPT_VIMODE}'
|
||||
|
||||
# Disable virtualenv's own python info
|
||||
VIRTUAL_ENV_DISABLE_PROMPT="yes"
|
||||
}
|
||||
|
||||
function zle-keymap-select {
|
||||
@@ -46,7 +49,7 @@ zle -N zle-keymap-select
|
||||
zle -N zle-line-init zle-keymap-select
|
||||
|
||||
function prompt_matir_precmd {
|
||||
vcs_info
|
||||
vcs_info 2>/dev/null
|
||||
if [ $VIRTUAL_ENV ] ; then
|
||||
VIRTUAL_ENV_SHORT=" (py:$(basename $VIRTUAL_ENV))"
|
||||
else
|
||||
|
||||
@@ -12,7 +12,7 @@ prune-broken-symlinks() {
|
||||
ASK=1
|
||||
fi
|
||||
DIR=${1:-.}
|
||||
FINDCMD=(find ${DIR} -type l -xtype l)
|
||||
FINDCMD=(find -L ${DIR} -xdev -type l)
|
||||
if (($ASK)) ; then
|
||||
local FILES
|
||||
FILES=`${FINDCMD} -print`
|
||||
|
||||
@@ -1,14 +1 @@
|
||||
# Enable RVM if available
|
||||
if [[ -s ${HOME}/.rvm/scripts/rvm ]] ; then
|
||||
source ${HOME}/.rvm/scripts/rvm
|
||||
else
|
||||
function install_rvm {
|
||||
export rvm_ignore_dotfiles=yes
|
||||
pushd `mktemp -d`
|
||||
curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer
|
||||
curl -O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc
|
||||
gpg --verify rvm-installer.asc && \
|
||||
bash rvm-installer stable
|
||||
popd
|
||||
}
|
||||
fi
|
||||
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
|
||||
|
||||
43
dotfiles/zshrc.d/skelify.zsh
Normal file
43
dotfiles/zshrc.d/skelify.zsh
Normal file
@@ -0,0 +1,43 @@
|
||||
#!/bin/zsh
|
||||
#
|
||||
# Skelify -- move a file to my .skel and setup symlinks
|
||||
|
||||
function skelify {
|
||||
local target
|
||||
local whichdir
|
||||
local relhome
|
||||
local fname
|
||||
local fulltarget
|
||||
for target in $~@; do
|
||||
if test -d ${target} ; then
|
||||
skelify ${target}/* || return 1
|
||||
elif test -f ${target} ; then
|
||||
if ! whichdir=$(cd $(dirname $target) && pwd); then
|
||||
echo Could not find directory for $target >/dev/stderr
|
||||
return 1
|
||||
fi
|
||||
fname=$(basename ${target})
|
||||
relhome=${whichdir#${HOME}/}
|
||||
fulltarget="${whichdir}/${fname}"
|
||||
if [[ ${relhome} == ${whichdir} ]] ; then
|
||||
echo ${whichdir} is not in home >/dev/stderr
|
||||
return 1
|
||||
fi
|
||||
if [[ ${relhome:0:1} == "." ]] ; then
|
||||
relhome=${relhome:1}
|
||||
elif [[ ${fname:0:1} == "." ]] ; then
|
||||
fname=${fname:1}
|
||||
else
|
||||
echo skelify only supports dotfiles >/dev/stderr
|
||||
return 1
|
||||
fi
|
||||
echo ${target}
|
||||
mkdir -p ${HOME}/.skel/${relhome}
|
||||
mv ${target} ${HOME}/.skel/${relhome}/${fname}
|
||||
ln -s ${fulltarget} ${HOME}/.skel/${relhome}/${fname}
|
||||
else
|
||||
echo ${target} is not a directory or file. >/dev/stderr
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
@@ -10,8 +10,8 @@ zstyle ':completion:*:(ssh|scp):*:hosts-domain' ignored-patterns '<->.<->.<->.<-
|
||||
zstyle ':completion:*:(ssh|scp):*:hosts-ipaddr' ignored-patterns '^<->.<->.<->.<->' '127.0.0.<->'
|
||||
zstyle ':completion:*:(ssh|scp):*:users' ignored-patterns adm bin daemon halt lp named shutdown sync
|
||||
zstyle -e ':completion:*:(ssh|scp):*' hosts 'reply=(
|
||||
${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) \
|
||||
/dev/null)"}%%[# ]*}//,/ }
|
||||
${=${${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) \
|
||||
/dev/null)"}%%[# ]*}##\|*}//,/ }
|
||||
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*}
|
||||
${=${${${${(@M)${(f)"$(<~/.ssh/config)"}:#Host *}#Host }:#*\**}:#*\?*}}
|
||||
)'
|
||||
|
||||
3
dotfiles/zshrc.d/usage.zsh
Normal file
3
dotfiles/zshrc.d/usage.zsh
Normal file
@@ -0,0 +1,3 @@
|
||||
function duh {
|
||||
du -sk "$@" | sort -n | while read size fname; do for unit in K M G T P E Z Y; do if [ $size -lt 1024 ]; then echo -e "${size}${unit}\t${fname}"; break; fi; size=$((size/1024)); done; done
|
||||
}
|
||||
7
dotfiles/zshrc.d/vmstat.zsh
Normal file
7
dotfiles/zshrc.d/vmstat.zsh
Normal file
@@ -0,0 +1,7 @@
|
||||
function vmstat {
|
||||
local _extra_args
|
||||
if [ "$(tput cols)" -gt 80 ] ; then
|
||||
_extra_args="-w"
|
||||
fi
|
||||
command vmstat ${_extra_args} "$@"
|
||||
}
|
||||
219
install.sh
219
install.sh
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck disable=SC2155,SC2223
|
||||
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o shwordsplit 2>/dev/null || true # Make zsh behave like bash
|
||||
@@ -18,7 +20,7 @@ case $(uname) in
|
||||
esac
|
||||
|
||||
is_comment() {
|
||||
if [ $(echo "${1}" | cut -c1-1) = '#' ] ; then
|
||||
if [ "$(echo "${1}" | cut -c1-1)" = '#' ] ; then
|
||||
true
|
||||
else
|
||||
false
|
||||
@@ -26,17 +28,17 @@ is_comment() {
|
||||
}
|
||||
|
||||
prerequisites() {
|
||||
if which zsh > /dev/null 2>&1 ; then
|
||||
if command -v zsh > /dev/null 2>&1 ; then
|
||||
case $- in
|
||||
*i*)
|
||||
case `getent passwd $USER | cut -d: -f7` in
|
||||
case "$(getent passwd "${USER}" | cut -d: -f7)" in
|
||||
*/zsh)
|
||||
;;
|
||||
*)
|
||||
if [ `id` -ne 0 ] ; then
|
||||
if [ "$(id)" -ne 0 ] ; then
|
||||
echo 'Enter password to change shell.' >&2
|
||||
fi
|
||||
chsh -s `which zsh`
|
||||
chsh -s "$(command -v zsh)"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@@ -51,9 +53,10 @@ install_dotfile_dir() {
|
||||
local dotfile
|
||||
local submodule_prune="$(git -C "${BASEDIR}" submodule status -- "${SRCDIR}" 2>/dev/null | \
|
||||
awk '{print $2}' | \
|
||||
while read submod ; do
|
||||
while read -r submod ; do
|
||||
echo -n " -o -path ${BASEDIR}/${submod}"
|
||||
done)"
|
||||
# shellcheck disable=SC2086
|
||||
find "${SRCDIR}" \( -name .git -o \
|
||||
-path "${SRCDIR}/private_dotfiles" -o \
|
||||
-name install.sh -o \
|
||||
@@ -61,17 +64,17 @@ install_dotfile_dir() {
|
||||
-name .gitignore \
|
||||
${submodule_prune} \) \
|
||||
-prune -o ${FINDTYPE} f -print | \
|
||||
while read dotfile ; do
|
||||
while read -r dotfile ; do
|
||||
local TARGET="${HOME}/.${dotfile#${SRCDIR}/}"
|
||||
mkdir -p $(dirname "${TARGET}")
|
||||
mkdir -p "$(dirname "${TARGET}")"
|
||||
ln -s -f "${dotfile}" "${TARGET}"
|
||||
done
|
||||
git submodule status -- "${SRCDIR}" 2>/dev/null | \
|
||||
git -C "${BASEDIR}" submodule status -- "${SRCDIR}" 2>/dev/null | \
|
||||
awk '{print $2}' | \
|
||||
while read submodule ; do
|
||||
while read -r submodule ; do
|
||||
local FULLNAME="${BASEDIR}/${submodule}"
|
||||
local TARGET="${HOME}/.${FULLNAME#${SRCDIR}/}"
|
||||
mkdir -p $(dirname "${TARGET}")
|
||||
mkdir -p "$(dirname "${TARGET}")"
|
||||
if test -L "${TARGET}" ; then
|
||||
if [ "$(readlink "${TARGET}")" != "${FULLNAME}" ] ; then
|
||||
echo "${TARGET} points to $(readlink "${TARGET}") not ${FULLNAME}!" >/dev/stderr
|
||||
@@ -89,39 +92,39 @@ install_basic_dir() {
|
||||
local DESTDIR="${2}"
|
||||
local file
|
||||
find "${SRCDIR}" ${FINDTYPE} f -print | \
|
||||
while read file ; do
|
||||
while read -r file ; do
|
||||
local TARGET="${2}/${file#${SRCDIR}/}"
|
||||
mkdir -p `dirname "${TARGET}"`
|
||||
mkdir -p "$(dirname "${TARGET}")"
|
||||
ln -s -f "${file}" "${TARGET}"
|
||||
done
|
||||
}
|
||||
|
||||
install_git() {
|
||||
# Install or update a git repository
|
||||
if ! which git > /dev/null ; then
|
||||
if ! command -v git > /dev/null 2>&1 ; then
|
||||
return 1
|
||||
fi
|
||||
local REPO="${*: -2:1}"
|
||||
local DESTDIR="${*: -1:1}"
|
||||
set -- ${@:1:$(($#-2))}
|
||||
if [ -d ${DESTDIR}/.git ] ; then
|
||||
( cd ${DESTDIR} ; git pull -q )
|
||||
set -- "${@:1:$(($#-2))}"
|
||||
if [ -d "${DESTDIR}/.git" ] ; then
|
||||
( cd "${DESTDIR}" ; git pull -q )
|
||||
else
|
||||
if [ ${MINIMAL} -eq 1 ] ; then
|
||||
git clone --depth 1 $* ${REPO} ${DESTDIR}
|
||||
if [ "${MINIMAL}" -eq 1 ] ; then
|
||||
git clone --depth 1 "$@" "${REPO}" "${DESTDIR}"
|
||||
else
|
||||
git clone $* ${REPO} ${DESTDIR}
|
||||
git clone "$@" "${REPO}" "${DESTDIR}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
add_bin_symlink() {
|
||||
local LINKNAME=${HOME}/bin/${2:-`basename $1`}
|
||||
if [ -e ${LINKNAME} -a ! -h ${LINKNAME} ] ; then
|
||||
local LINKNAME="${HOME}/bin/${2:-$(basename "$1")}"
|
||||
if [ -e "${LINKNAME}" ] && ! [ -h "${LINKNAME}" ] ; then
|
||||
echo "Refusing to overwrite ${LINKNAME}" >&2
|
||||
return 1
|
||||
fi
|
||||
ln -sf ${1} ${LINKNAME}
|
||||
ln -sf "${1}" "${LINKNAME}"
|
||||
}
|
||||
|
||||
postinstall() {
|
||||
@@ -131,24 +134,24 @@ postinstall() {
|
||||
ssh_key_already_installed() {
|
||||
# Return 1 if the key isn't already installed, 0 if it is
|
||||
local AK="${HOME}/.ssh/authorized_keys"
|
||||
if [ ! -f $AK ] ; then
|
||||
if [ ! -f "$AK" ] ; then
|
||||
return 1
|
||||
fi
|
||||
local KEYFP=`ssh-keygen -l -f $1 2>/dev/null | awk '{print $2}'`
|
||||
local TMPF=`mktemp`
|
||||
local KEYFP="$(ssh-keygen -l -f "$1" 2>/dev/null | awk '{print $2}')"
|
||||
local TMPF="$(mktemp)"
|
||||
local key
|
||||
while read key ; do
|
||||
while read -r key ; do
|
||||
if is_comment "${key}" ; then
|
||||
continue
|
||||
fi
|
||||
echo "$key" > $TMPF
|
||||
local EFP=`ssh-keygen -l -f ${TMPF} 2>/dev/null | awk '{print $2}'`
|
||||
echo "$key" > "$TMPF"
|
||||
local EFP="$(ssh-keygen -l -f "${TMPF}" 2>/dev/null | awk '{print $2}')"
|
||||
if [ "$EFP" = "$KEYFP" ] ; then
|
||||
rm $TMPF 2>/dev/null
|
||||
rm "$TMPF" 2>/dev/null
|
||||
return 0
|
||||
fi
|
||||
done < ${AK}
|
||||
rm $TMPF 2>/dev/null
|
||||
done < "${AK}"
|
||||
rm "$TMPF" 2>/dev/null
|
||||
return 1
|
||||
}
|
||||
|
||||
@@ -158,30 +161,30 @@ install_ssh_keys() {
|
||||
local AK="${HOME}/.ssh/authorized_keys"
|
||||
local key
|
||||
local keydir
|
||||
if test ${TRUST_ALL_KEYS} = 1 ; then
|
||||
keydir=${BASEDIR}/keys/ssh
|
||||
if test "${TRUST_ALL_KEYS}" = 1 ; then
|
||||
keydir="${BASEDIR}/keys/ssh"
|
||||
else
|
||||
keydir=${BASEDIR}/keys/ssh/trusted
|
||||
keydir="${BASEDIR}/keys/ssh/trusted"
|
||||
fi
|
||||
for key in ${keydir}/* ; do
|
||||
for key in "${keydir}"/* ; do
|
||||
if [ ! -f "${key}" ] ; then
|
||||
continue
|
||||
fi
|
||||
if ssh_key_already_installed "${key}" ; then
|
||||
verbose "Key `basename ${key}` already installed..."
|
||||
verbose "Key $(basename "${key}") already installed..."
|
||||
continue
|
||||
fi
|
||||
echo "# `basename ${key}` added from skel on `date +%Y-%m-%d`" >> ${AK}
|
||||
cat ${key} >> ${AK}
|
||||
echo "# $(basename "${key}") added from skel on $(date +%Y-%m-%d)" >> "${AK}"
|
||||
cat "${key}" >> "${AK}"
|
||||
done
|
||||
}
|
||||
|
||||
install_gpg_keys() {
|
||||
which gpg >/dev/null 2>&1 || \
|
||||
command -v gpg >/dev/null 2>&1 || \
|
||||
return 0
|
||||
local key
|
||||
for key in ${BASEDIR}/keys/gpg/* ; do
|
||||
gpg --import < ${key} >/dev/null
|
||||
for key in "${BASEDIR}"/keys/gpg/* ; do
|
||||
gpg --import < "${key}" >/dev/null 2>&1
|
||||
done
|
||||
}
|
||||
|
||||
@@ -190,13 +193,14 @@ install_known_hosts() {
|
||||
if [ ! -f "${BASEDIR}/keys/known_hosts" ] ; then
|
||||
return 0
|
||||
fi
|
||||
mkdir -p ${HOME}/.ssh
|
||||
mkdir -p "${HOME}/.ssh"
|
||||
if [ -f "${HOME}/.ssh/known_hosts" ] ; then
|
||||
local tmpf=`mktemp`
|
||||
cat ${BASEDIR}/keys/known_hosts ${HOME}/.ssh/known_hosts | sort -u > $tmpf
|
||||
mv $tmpf ${HOME}/.ssh/known_hosts
|
||||
local tmpf="$(mktemp)"
|
||||
cat "${BASEDIR}"/keys/known_hosts "${HOME}"/.ssh/known_hosts \
|
||||
| sort -u > "$tmpf"
|
||||
mv "$tmpf" "${HOME}"/.ssh/known_hosts
|
||||
else
|
||||
cp ${BASEDIR}/keys/known_hosts ${HOME}/.ssh/known_hosts
|
||||
cp "${BASEDIR}"/keys/known_hosts "${HOME}"/.ssh/known_hosts
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -212,10 +216,10 @@ is_deb_system() {
|
||||
|
||||
run_as_root() {
|
||||
# Attempt to run as root
|
||||
if [ ${USER} = "root" ] ; then
|
||||
if [ "${USER}" = "root" ] ; then
|
||||
"$@"
|
||||
return $?
|
||||
elif test -x $(which sudo 2>/dev/null) ; then
|
||||
elif test -x "$(command -v sudo 2>/dev/null)" ; then
|
||||
verbose "Using sudo to run ${1}..."
|
||||
sudo "$@"
|
||||
return $?
|
||||
@@ -227,24 +231,25 @@ install_pkg_set() {
|
||||
local pkg_file=${BASEDIR}/${1}
|
||||
local pkg_list=""
|
||||
if [ ! -f "${pkg_file}" ] ; then
|
||||
echo "Package set $(basename ${pkg_file}) does not exist." 1>&2
|
||||
echo "Package set $(basename "${pkg_file}") does not exist." 1>&2
|
||||
return 1
|
||||
fi
|
||||
while read line ; do
|
||||
while read -r line ; do
|
||||
if is_comment "${line}" ; then
|
||||
continue
|
||||
fi
|
||||
if [ -z "${line}" ] ; then
|
||||
continue
|
||||
fi
|
||||
if [ "$(apt-cache -q show ${line} 2>/dev/null)" != "" ] ; then
|
||||
if [ "$(apt-cache -q show "${line}" 2>/dev/null)" != "" ] ; then
|
||||
pkg_list="${pkg_list} ${line}"
|
||||
else
|
||||
echo "Warning: package ${line} not found." >&2
|
||||
fi
|
||||
done < ${pkg_file}
|
||||
done < "${pkg_file}"
|
||||
if [ -n "${pkg_list}" ] ; then
|
||||
verbose "Installing ${pkg_list}"
|
||||
# shellcheck disable=SC2086
|
||||
run_as_root apt-get install -qqy ${pkg_list}
|
||||
fi
|
||||
}
|
||||
@@ -254,55 +259,76 @@ install_apt_pkgs() {
|
||||
( echo "Can't run apt-get commands" >&2 && \
|
||||
return 1 )
|
||||
install_pkg_set packages.minimal
|
||||
if test $MINIMAL = 1 ; then
|
||||
if test "$MINIMAL" = 1 ; then
|
||||
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}
|
||||
test $HAVE_X = 1 && install_chrome
|
||||
test "$HAVE_X" = 1 && install_pkg_set packages.X
|
||||
test "$IS_KALI" = 1 && install_pkg_set packages.kali
|
||||
install_pkg_set "packages.${ARCH}"
|
||||
test "$HAVE_X" = 1 && install_chrome
|
||||
}
|
||||
|
||||
install_chrome() {
|
||||
local TMPD=`mktemp -d`
|
||||
local CHROME_ARCH=`echo ${ARCH} | sed 's/x86_64/amd64/'`
|
||||
local TMPD="$(mktemp -d)"
|
||||
local CHROME_ARCH="${ARCH/x86_64/amd64}"
|
||||
dpkg-query -l 'google-chrome*' >/dev/null 2>&1 && return 0
|
||||
/usr/bin/wget --quiet -O ${TMPD}/google-chrome.deb \
|
||||
https://dl.google.com/linux/direct/google-chrome-beta_current_${CHROME_ARCH}.deb
|
||||
run_as_root /usr/bin/dpkg -i ${TMPD}/google-chrome.deb || \
|
||||
/usr/bin/wget --quiet -O "${TMPD}/google-chrome.deb" \
|
||||
"https://dl.google.com/linux/direct/google-chrome-beta_current_${CHROME_ARCH}.deb"
|
||||
run_as_root /usr/bin/dpkg -i "${TMPD}/google-chrome.deb" || \
|
||||
run_as_root /usr/bin/apt-get install -qq -f -y || \
|
||||
( echo "Could not install chrome." >&2 && return 1 )
|
||||
rm -rf ${TMPD}
|
||||
rm -rf "${TMPD}"
|
||||
}
|
||||
|
||||
setup_git_email() {
|
||||
local gc_local="${HOME}/.gitconfig.local"
|
||||
if test -f "${gc_local}" ; then
|
||||
return 0
|
||||
fi
|
||||
if [ "${USER:0:5}" != "david" ] ; then
|
||||
return 0
|
||||
fi
|
||||
local domain="$(hostname -f | grep -E -o '[a-z0-9-]+\.[a-z0-9-]+$')"
|
||||
case "$(echo "${domain}" | md5sum | awk '{print $1}')" in
|
||||
b21a24d528346ef7d3932306ed96ede5|a5ed434a3f5089b489576cceab824f25)
|
||||
;;
|
||||
*)
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
echo -e "[user]\n email=${USER}@${domain}" > "${gc_local}"
|
||||
}
|
||||
|
||||
read_saved_prefs() {
|
||||
# Can't use basedir here as we don't have it yet
|
||||
local old_pref_file=`dirname $0`/installed-prefs
|
||||
local pref_file=`dirname $0`/.installed-prefs
|
||||
if [ -f ${old_pref_file} -a ! -f ${pref_file} ] ; then
|
||||
mv ${old_pref_file} ${pref_file}
|
||||
local old_pref_file="$(dirname "$0")/installed-prefs"
|
||||
local pref_file="$(dirname "$0")/.installed-prefs"
|
||||
if [ -f "${old_pref_file}" ] && ! [ -f "${pref_file}" ] ; then
|
||||
mv "${old_pref_file}" "${pref_file}"
|
||||
fi
|
||||
if [ -f ${pref_file} ] ; then
|
||||
if [ -f "${pref_file}" ] ; then
|
||||
verbose "Loading saved skel preferences from ${pref_file}"
|
||||
# source is a bashism
|
||||
. ${pref_file}
|
||||
# shellcheck disable=SC1090
|
||||
. "${pref_file}"
|
||||
fi
|
||||
}
|
||||
|
||||
save_prefs() {
|
||||
test $SAVE = 1 || return 0
|
||||
test "$SAVE" = 1 || return 0
|
||||
local pref_file=${BASEDIR}/.installed-prefs
|
||||
(echo_pref BASEDIR
|
||||
echo_pref MINIMAL
|
||||
echo_pref INSTALL_KEYS
|
||||
echo_pref TRUST_ALL_KEYS
|
||||
echo_pref INSTALL_PKGS
|
||||
echo_pref VERBOSE) > $pref_file
|
||||
echo_pref VERBOSE) > "$pref_file"
|
||||
}
|
||||
|
||||
echo_pref() {
|
||||
eval "local val=\${$1}"
|
||||
echo "$1=\${$1:-${val}}"
|
||||
# shellcheck disable=SC2154
|
||||
echo ": \${$1:=${val}}"
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
@@ -318,39 +344,44 @@ EOF
|
||||
}
|
||||
|
||||
verbose() {
|
||||
test ${VERBOSE:-0} = 1 && echo "$@" >&2 || return 0
|
||||
test "${VERBOSE:-0}" = 1 && echo "$@" >&2 || return 0
|
||||
}
|
||||
|
||||
# Operations
|
||||
|
||||
install_dotfiles() {
|
||||
install_dotfile_dir "${BASEDIR}/dotfiles"
|
||||
# shellcheck disable=SC2015
|
||||
test -d "${BASEDIR}/private_dotfiles" && \
|
||||
test -d "${BASEDIR}/.git/git-crypt" && \
|
||||
install_dotfile_dir "${BASEDIR}/private_dotfiles" || \
|
||||
true
|
||||
# shellcheck disable=SC2015
|
||||
test -d "${BASEDIR}/local_dotfiles" && \
|
||||
install_dotfile_dir "${BASEDIR}/local_dotfiles" || \
|
||||
true
|
||||
}
|
||||
|
||||
install_main() {
|
||||
test $MINIMAL = 1 || command -v git >/dev/null 2>&1 && \
|
||||
git -C ${BASEDIR} submodule update --init --recursive
|
||||
test $MINIMAL = 1 || prerequisites
|
||||
test $INSTALL_PKGS = 1 && is_deb_system && install_apt_pkgs
|
||||
test -d "${BASEDIR}/.git" && command -v git >/dev/null 2>&1 && \
|
||||
git -C "${BASEDIR}" pull --ff-only
|
||||
test "$MINIMAL" = 1 || ( command -v git >/dev/null 2>&1 && \
|
||||
git -C "${BASEDIR}" submodule update --init --recursive )
|
||||
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
|
||||
test "$MINIMAL" = 1 || postinstall
|
||||
test "$INSTALL_KEYS" = 1 && install_keys
|
||||
save_prefs
|
||||
setup_git_email
|
||||
cleanup
|
||||
}
|
||||
|
||||
install_dconf() {
|
||||
which dconf >/dev/null 2>&1 || return 1
|
||||
find "${BASEDIR}/dconf" -type f -printf '/%P\n' | while read dcpath ; do
|
||||
dconf load ${dcpath}/ < "${BASEDIR}/dconf/${dcpath}"
|
||||
command -v dconf >/dev/null 2>&1 || return 1
|
||||
find "${BASEDIR}/dconf" -type f -printf '/%P\n' | while read -r dcpath ; do
|
||||
dconf load "${dcpath}/" < "${BASEDIR}/dconf/${dcpath}"
|
||||
done
|
||||
}
|
||||
|
||||
@@ -359,21 +390,21 @@ read_saved_prefs
|
||||
|
||||
# Defaults if not passed in or saved.
|
||||
# TODO: use flags instead of environment variables.
|
||||
BASEDIR=${BASEDIR:-$HOME/.skel}
|
||||
MINIMAL=${MINIMAL:-0}
|
||||
INSTALL_KEYS=${INSTALL_KEYS:-1}
|
||||
TRUST_ALL_KEYS=${TRUST_ALL_KEYS:-0}
|
||||
INSTALL_PKGS=${INSTALL_PKGS:-0}
|
||||
VERBOSE=${VERBOSE:-0}
|
||||
SAVE=${SAVE:-1}
|
||||
: ${BASEDIR:=$HOME/.skel}
|
||||
: ${MINIMAL:=0}
|
||||
: ${INSTALL_KEYS:=1}
|
||||
: ${TRUST_ALL_KEYS:=0}
|
||||
: ${INSTALL_PKGS:=0}
|
||||
: ${VERBOSE:=0}
|
||||
: ${SAVE:=1}
|
||||
|
||||
# Check prerequisites
|
||||
if [ ! -d $BASEDIR ] ; then
|
||||
if [ ! -d "$BASEDIR" ] ; then
|
||||
echo "Please install to $BASEDIR!" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if which dpkg-query > /dev/null 2>&1 ; then
|
||||
if command -v dpkg-query > /dev/null 2>&1 ; then
|
||||
HAVE_X=$(dpkg-query -s xserver-xorg 2>/dev/null | \
|
||||
grep -c 'Status.*installed' \
|
||||
|| true)
|
||||
@@ -395,7 +426,7 @@ case $OPERATION in
|
||||
;;
|
||||
package*)
|
||||
PKG_SET=${2:-minimal}
|
||||
install_pkg_set packages.${PKG_SET}
|
||||
install_pkg_set "packages.${PKG_SET}"
|
||||
;;
|
||||
test)
|
||||
# Do nothing, just sourcing
|
||||
@@ -410,3 +441,5 @@ case $OPERATION in
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "OK"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
mQINBE0NehoBEACyWRyVfB97KKqHHEBYOZVwApwMEQb/nR+iyF8iXLlE9j+Tv86n
|
||||
n0a2IP/NFIrDLm5QgyB1QW1TomIUut523tKps/Okvj6bQqgrekEQNvbBgxBEJhlP
|
||||
@@ -12,891 +11,97 @@ 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
|
||||
XAZ85dsgHo4vFaChttcUEG6giBKVBTZuswv6VxR86d/4fcP8qUwjH3ndbwmP9N31
|
||||
ZGoQsw24W+t75nQ+elKEP9/g+4Acyb1NkmpFGD5BXw+VWv80SmB7YhJSqUoyqowM
|
||||
z+aJASIEEAECAAwFAk7WJwAFAwASdQAACgkQlxC4m8pXrXy2xQgAyg1nc1fRIlSm
|
||||
L73/gGlbCzVQttArtv18MzpRTimYyp2OEj82SK2eWSlRKLXeQGyqb3iGzp74TC3D
|
||||
NSog7su3zUz3b+h/+tAKuVnK0kMPHWXrAFTYe3nLBFIOT5jmp/2xtPWsl8xSZReA
|
||||
P5CXtGSDj3a4nipIj1MMQ5vQ3YELfnkEr/NVNxBuaJ1jIw3FzLeGugtoyCSPYQuC
|
||||
wEz4DJqXb2r9o/d3YXoWoRYKB5Mq8M/NhYkhrRoIdkgZd9b/5Nj7ytM1T+WYLHUh
|
||||
dOy7LDA35h5ClfCAOuNczgDFL2zqCf83soC6fay4C7SWO3QNguXi2uMhmqtC0TLJ
|
||||
yY7fa5fVTYi3BBARAgB3BQJO4rBPcBpodHRwOi8vdW5kZXJncmlkLm5ldC9sZWdh
|
||||
bC9ncGcvcG9saWN5LzIwMDkxMTIxLzczMjNiODIzNTkwYWNkOGRlY2YxMjliNzU0
|
||||
ZWNmOGUxMDA2NjkyNDQ0MzJiMGQyMjY3MjA5MDQyMGRlYTI3MjkACgkQ1XPVsSmr
|
||||
TN3SmwCgyOp2DP2eHA+2E4lmwDANPbF8YNoAnR90yzUdQhTItRMai9mV4lAqckz7
|
||||
iLcEEBECAHcFAk7isFpwGmh0dHA6Ly91bmRlcmdyaWQubmV0L2xlZ2FsL2dwZy9w
|
||||
b2xpY3kvMjAwOTExMjEvNzMyM2I4MjM1OTBhY2Q4ZGVjZjEyOWI3NTRlY2Y4ZTEw
|
||||
MDY2OTI0NDQzMmIwZDIyNjcyMDkwNDIwZGVhMjcyOQAKCRBUTEhoYtvfYiagAJ9T
|
||||
n0b2Hf6+9NNsuWZYpk1d/etgmgCfRpakvv6yk4Gp3EexASjfgKYlaOKInAQQAQIA
|
||||
BgUCTuI+VwAKCRDhyUtG3x3UcZxXA/4iIgD9yvpIVzfGu1m/aDXEcACpsO8QgT+J
|
||||
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
|
||||
aXI/Maioszm5pco=
|
||||
=wlrV
|
||||
tCpEYXZpZCBUb21hc2NoaWsgPGRhdmlkQHN5c3RlbW92ZXJsb3JkLmNvbT6JAjkE
|
||||
EwEKACMCGwECHgECF4AFAk0NkpYGCwkIBwMCBhUKCQgLAgUWAgMBAAAKCRD016eR
|
||||
Xep4m7M4D/9XXAWJtTw353Ee/9NEALTP+SxW8B+u8KHcNAon4WPsdknauC9y7yyq
|
||||
YlDpSEFCSyH93yjbqmAdUl6BmxgxlAt8RXlAZ5mYXlI4y04iN/JsVv58llwzVB75
|
||||
eZfV7Z56IUyPh6cZz0g2XwMDDCOZvnhJkgkxS+O6T7fz8PaHdt1Q7MRoglFYNKBD
|
||||
/Zqyv2LouhW7r0oEHxQuM0Pr98M097+mvoOcx+sP5D/JbuM3DJxME0rkZn4zodrq
|
||||
250td6a7vrE6RBYjLOaYFC2ebVgF95EpTr/vBU2Lnk1fgJIuv/ZfQBOQ6v9mnFyn
|
||||
4QWUzhfr37ZLPx/CIcEMah5IHGFBWI5Kj52CNwL/OoFkyxWTDI0QgwlRSimolfHF
|
||||
uYc1b3HYua23P+2izNHmlX5Lc5UOseIX7Jbf7UiEJmS9IuWPhkyZCNLSVP38SWVH
|
||||
NVH2OmzuXS94ZmLVLkgNEhkMSvRY6XXkWRm/8qwNTjXyTgTnNED4r6AHK2rtyQtK
|
||||
4IfJnOnmBeIqUVUdaKGSf4LDXVhq1EuRnqIKguzJpbx3efkIHztrNOF/Qt7BX3Aj
|
||||
76A08Z37x+3/Ted/8Jsxs11ZsUFOoiHLR1M8GaYqB4d51LD+nWnxsO65/rTJhALV
|
||||
EpgK3rhy2vxBw74f6IKibgC608kNSxlymuW4HqrH/LOJgvMvrYHW1LkBjQRNDY/7
|
||||
AQwA28c6b9y1jE6PpKOYut3vuBymq3gIwLQ1Y8nXJzj4CeFnoxcYN5oIph3TV290
|
||||
MXLL+i8GOOSQ3GhM5PVCyciXdnOwfEFnc4Y/gaCVu5wrXW2MFJYeR7NM5TaSZnB2
|
||||
437lBBmVGfT9j3kPkJSlxG2U6Z5b0Zlv7jiuOAQAjNfYUvepGyg6OaI7QoaNK+QL
|
||||
ij09+F/7KajzqaOmCrnsGadY0gMv1Np8h0vwqT5Si9rAtdxy9gY5tQ2+12P2DHXB
|
||||
ObKr0Fewc2IFGnCbXTD3tpYcov+OY0ZSLG/t3NgWkKkxE182KlNfv4C3vvKCKrSI
|
||||
mf+HQh862UBbVbxQZiIOJznyB7PF6RK9CjdDnwgpO9P6SR0AarEyKl17j1O7QTi9
|
||||
OdKGHPptmoLYXCeraTfS6edQvNUMoWf2gGWIKE40lkAZQZWZ32nBXeLff3amRcih
|
||||
amns9Deo95MxkQIMgFiOhVxBXkVjZA97GX730QPf2T57af+4kmghd/Ue7vxuSbFk
|
||||
5mQpABEBAAGJAiUEGAEKAA8CGwwFAlSY+iIFCQtN0SUACgkQ9NenkV3qeJsMXA//
|
||||
fm+CHlTVKFeMzEhHQNs5lcYdtCoIJMUUY/GcllLntKlqIsfqakjxgBpifSYHcSyZ
|
||||
6lRNNRMFyKS+oaSNimh5UWWQlserUFOTWLLseZtaZa2NX9/8/Hbm0jm0Mgk3mnfN
|
||||
1qPu6g6EfaUNEDNoZAFvPxDy9OU83sjaEg5wKh39iswvoqiqyoknAL4DRV0FYRke
|
||||
gsrC+vXv8T5DojNYNPpUb2C119g3rDuIju/AYP7I0sT2HrK4EfSu02az2ydFFmTA
|
||||
Vko5kDv8TYFi0LA3F27oO8NBsSopW8vfvLHyUSelreQuljZEGJdTp+Vk7nwnjZQ4
|
||||
Ye6xW69YvM03M6s+WLE0kUBLzud+LcJCwfhBQYjlMvcrmyY1REs8XYKOnjzgtdre
|
||||
kQHX8DXASnrX97FpRePS1a0b7K5Zn6HnZxXOPFrbRCfc9USrT5RlnpUw94L+Lqf1
|
||||
fWdeAgUy3j40Fym8xc/lGfA1b7eNBRaptp7IYh7mATKzMvQqyHZWziG9gg9FYmZi
|
||||
fszHLY7ZAoxKxnL8bntMYSFtVc4zPqmFXG5KA9jFI/U+w0c7oJ+v+HCvPQ+pB5iq
|
||||
bsiDRH+CtXBvUSUcf08Ze9XRrah0w9kfO188bIrJCkfFzR14rfZr7f1YzbQQPHgv
|
||||
7kNqfiLNOyOJz5u7fsIAqLhA5Wv+xDy9dHXR/AxWWu6JAkAEKAEIACoFAlYy7NUj
|
||||
HQFNb3ZpbmcgdG8gMjA0OCBiaXQgZm9yIHNtYXJ0Y2FyZC4ACgkQ9NenkV3qeJt2
|
||||
7A//ccdD7ZGxSuPhJJkm/0XommGe9uf/YpqsqTsavv2tUe/zIZKyxlFydoU6RNA+
|
||||
4lg1/v38mT5hpcM90D3D2LYsX84sJ5z9QjAYZ6Lz5T+qhQBsbwMJ1HSe5R4SAFRV
|
||||
KW/gi5SZNlLQ1ht8gJUqOndbRFSyGPVRrtaCdpoFsgpdFDUev/b8AoHWKhsyO+T1
|
||||
RgoH0GzdVh/0vOrvKUX6ZmFpz4GIttzWZhlLDAdnS6hfAaSEnv8IVX/iPdoSAFYR
|
||||
mQSq50+bTbzD7ALQcJ/ySHrd5l/7lZ1Tn71zAtrqb31Spcfu0k2DfDVTl4kVtYhf
|
||||
Yp5rAp6FwFyU76IMPYxHZuYhjGZ38zFYWkMM9pk6t6GvyzdLVCkd+GPzJqcQGEL7
|
||||
bdS7iH5jonXSB8eAf0EzC5DFYUoOK49duJDWGx+NuaG/4iXGSYJRc1c5vy95spMx
|
||||
VKSjmLV8aFWtHMrG7saZnn6nkm3ryUhCkRPBrsKhgHODnWzWKreeOlN457hMALDJ
|
||||
PIVwhPqPujnLUVM62fOrWdjWBcSVwZE7I1wvY8XSfIlO2YfqhA+hLUcuQVbRVLnF
|
||||
Fn/ZcWqTzB/Ym6S8T5UTuv6RSDDQCwMPzkpK9MUy0Q8qWB+CPdZLDgP+kjYP4kX9
|
||||
928gEV3AJPnuGoYAeaSvxzavKGbWLU4iOycYg78bqjubIAO5AQ0EVjLs+AEIAL9a
|
||||
P593SAsrpANYz/GblUZUa9WeO/QGejLS13vO/Y5EQIuHULQxl0SPkIU6rSgwepa5
|
||||
8A589wPbNR5PcbOGsjVhhaGdD7nNkIDWHzoIJR5fyHFfH+nXEde1aOl98bDLtE7Q
|
||||
Lf4gFWuci7kKC4rCavqEDvOkrEhd9llbBrvUFx6KnIw13cVo70OeNjjXW07zfn9u
|
||||
3T5nYC3nCqo27q7qHmEqZ/NDKuWi5adySKhskIPP/axmP7nn5hNd5vuGDGxb6/Bb
|
||||
mzzxySJ9o5YKGFJ4+U4YEemcdyG5OXjgg2mOIOIrbLPizvAabS8LvzFe6+TGdlrP
|
||||
7IQN/NHG7GL6ra6fVQkAEQEAAYkCPAQYAQgAJgIbDBYhBH/VjZoZbc7urWcflPTX
|
||||
p5Fd6nibBQJd2Z4aBQkLaRgiAAoJEPTXp5Fd6nibHzcP/23EhJQvkuK4TR06Ge30
|
||||
8wxXTiL6bK0XoVU3pWz2rL+whtsXRlkCqNROYL3yEtk16pHAKxX5cuHTbECAcFdc
|
||||
ndyHWVyFh0vdnIrD/4JqymmW62s2kV9A+zvwLeXIiJ+wTtI2i3VhkdR0ubi7C8WW
|
||||
OTxRQzO++rm3bJwVfMPzkjReJ2xLLURHDXlg4X5LUMMlQPNC2rAjgsCdv4nypuSx
|
||||
6wXziEyWJP0ZDZIO0576IxElED8AFCNJfnHqHx1lnIxLIrErgB8Agx7mueQi5zTx
|
||||
TasveQ5qNhnDUrnJKf374J1B9tKvk+Mpty+izFjYtQc+Rzn4KnEyXnj110CvMUTb
|
||||
sO3FxYxsk13DBpDjQIAlP/6yDeyLOtfPQX4Mw0HdWHe9Z/O+LZgZOhpnT3ifv57D
|
||||
LNg321pUVY1fTypTrW0UjyVHys50L2L3MWNGqrmPzS7z/0Xc53PRDJKdyrfiGnUD
|
||||
1oZ+vBWQjmTTDkAoimntXsqRNmi8llDhMD5fIXKJr7MomZbWdU2kMHx9hAZbeZmS
|
||||
4JXlDXuZzELySgEyJ1QCvAjydjsBUYSO4I4caIqLQUIOvuWiiMMchCCeJ3AlQAf/
|
||||
rem0/u6b00Z2DHwO1DQAXxXgvI/jAQvGGq5rCvZ9YBNbs5sqIjRWTAPOOu9Ts20z
|
||||
Z6AP3O56IgEAmrqh/7OfVT2OuQGNBFn2f/wBDADYQOAB5bJ9DjMXyY67GEI99kK1
|
||||
LG8XF+cWJ4md52rPnOeJd0da7l26bn9NtXCma6DP5gZQArfxHsPh7I4SbYJRYxTC
|
||||
CCE/Jsd8mLB22DcoeY+MqPA2g71j3KrYsvuJC++9GHK2Xc7ZRmhAugEmC/NAdtOR
|
||||
BVhtBSAUgyCmUczKHoCAqHmq8j54En8kRYjbvlHPpDsNoRuhcH5uDGBIVkbV7UtB
|
||||
l2oUlRNVw7grs6XS7cPU2zCQSxcrRRuAfV4hmGG2eKaPpieNg0MAAbR0G5ssWW3I
|
||||
uYwd1ys5wA0YQuWUhxadUuYc46/cqyyoVIFlfjxCVTX+2w3900SDPOF/YrOwctAb
|
||||
23+78WN6GPnAmmS3zcmXTGsJiw/mmyBlqYI/JdSgrgI+COlcP0rlF/uklzEywfD9
|
||||
1m1lno1u2IApdAumZWHR8aFnpHQXfI6rWc1o/V+RBpz5Xe6D2h9CPT3AE303BV09
|
||||
HGmidb0t6bCKoabTDwvE+KojIcbKBji6g8V6KTMAEQEAAYkD8gQYAQgAJgIbIhYh
|
||||
BH/VjZoZbc7urWcflPTXp5Fd6nibBQJd2Z4DBQkHpYUHAcDA9CAEGQEKAB0WIQSU
|
||||
XFOKi78TklOo++cIyPoKQ4xDRQUCWfZ//AAKCRAIyPoKQ4xDRfLeC/9n+PFIKVEs
|
||||
GpHm9R/NJpoOuDUT6fzRj4dQrPe+ehjIaolct1+S6O19VczKg3EnglbcH0MNxBeP
|
||||
r74UM4s0c1xyot6DQREq9lZyoGnXjhDAUMDg8funTszEQ63PPoWIJhGVfre+GU0T
|
||||
rOCi2K+xpgeryBChXUeCcs86IVGQUnHHgz5H1jfKKkw8TUJYwsyFJpJ1LdY77JcA
|
||||
396682FsBoxcw029uAUd0p2Heg3oAww2Y7GObpuIJvjeYAJNnWIN/DS8Fugk0cMa
|
||||
Kg/ed/WcNQ8+A8bU5nWOVaRIRg8vSz08H42FqmoQzlsKcVJeT1PEAS7G7jXsLbtw
|
||||
ArE+QcXJ0PjvsDs9yh4YnC0WFeiOCLtpf5+Mc7dc/svf0MRDSA+6uXWTd13vzlq+
|
||||
30jYg87zYGJhhR6I0gQl7yJV2X+nRxnl8MEYIxjqXFEdnPm3yN23eozOs1ZHr0Ra
|
||||
JR8xaFVJIsQ5q/opjwvOqrSsRNG7lHZKoGk6tpJB627RTaQFrPpmBB8JEPTXp5Fd
|
||||
6nibm6QP/15mMVlGUEdOrPmZexUM2FP/deXB7tBv6CLCoeXnqpr7T1R3URogQfNX
|
||||
9H1o1lM5j5mxnBBstIWMY8NRrtioKhrWqPH6sICCqNG7WKyIt+nHkNHeeMDLHqEh
|
||||
pgA1R+1VYa62XCxXk5lwMfWrpU2yNPWzLK9AnqJwDBaJfAV8SuyjpBk85FSCfskG
|
||||
rjK6pLb1U+7tht3T6bO/CuMvdg/9VLsUfThgOOMBQLxT3vcDkSyqZXOCG59P/jyA
|
||||
HeJnZefkQRwp1+RjSSEwlIqSFvTwAnA/f4MwjHJ+fjgKryIaFgFkIRFAVDC1q6nD
|
||||
Na0O7OBQy+TjCkYLAqczIQoJQm0m2fqzBH+SGYyGx0POhH+FowwBuPBm34Hum0Av
|
||||
T8Oi5E77hcTOiprY0D1ub3yBHikb2bLNqtyYKJhCOTiauPfku+nKaGSLkBiHPTfL
|
||||
U43st+s+hOSpk18Q2ZPKPj9R4HkwfirL9rofTZK6LN+zhmAIo9o7U352gDMGWGHC
|
||||
9aoNYRKjuqYfJ5Ab/yU6IGYpiGcEg2Fb5VHjybx/Na7ma9iGfKAGRY3YbPC28vqv
|
||||
73MSwY7RSnHyfM4UZGhI+dUUluldZ6NdWmaLd8AtL59r+SopiV/55aY5bTrqUGvA
|
||||
bVZBmS0kpUHZiye9fzTqRZOJx4tQvG2nhVUmIZ2keTtOiS321PcI
|
||||
=VmF5
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
36
keys/sjca_cert.pem
Normal file
36
keys/sjca_cert.pem
Normal file
@@ -0,0 +1,36 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
@@ -1 +0,0 @@
|
||||
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPee2Rw1yiE9RIrXzslop9dnYgIc3shhXVk5+bPv/BrC8swklnYUSjQOU/lJuAjJJ9X7rx9kvgmL337Taa7dGao= davidtomaschik@gibson
|
||||
1
keys/ssh/id_ecdsa_kion.pub
Normal file
1
keys/ssh/id_ecdsa_kion.pub
Normal file
@@ -0,0 +1 @@
|
||||
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJzWFHQZm6jsh2V+ATJPlEKEQdt3tWNojc2elz3hDs5Q9TPHUolE0/R66osFra5Qr/jonEwqzqwRIduxFYSIATc= david@kion
|
||||
1
keys/ssh/id_ecdsa_zazu.pub
Normal file
1
keys/ssh/id_ecdsa_zazu.pub
Normal file
@@ -0,0 +1 @@
|
||||
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOP0EQthckpi83EoFXtbPnn4Ytd7FYW6Nb3W9ZahqOKhNAqv1owot957ihKHtGKFnYr0Jwgp0TNOdpz6nV9wwCo= david@zazu
|
||||
@@ -1 +0,0 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPlKI3Mt2Hm4YZ0WNOET7SEoXmAABR+eEZ3hnJnA9AJ davidtomaschik@davidtomaschik-glaptop3
|
||||
1
keys/ssh/id_ed25519_glaptop6.pub
Normal file
1
keys/ssh/id_ed25519_glaptop6.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJSM/GRj76roLHo0KV9SgNGNlFmnsiWpRm9r51XqSsnu davidtomaschik@davidtomaschik-glaptop6
|
||||
1
keys/ssh/id_ed25519_wfh_chromebox.pub
Normal file
1
keys/ssh/id_ed25519_wfh_chromebox.pub
Normal file
@@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICvHatAcnYEJ2BXWGN+MaE40avyghYeEZDgfQD8WcRti david@wfh_chromebook
|
||||
@@ -1 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClvMvarQvGaFYhUazA+GN0C2XaU4vHmsvD3G99PJqmd9SGrzSvWw2ZuJwYWQCag4Ft5Zy/A3NZ0/a4ohPbWFF4iX9LnAqSKgMDPv3R3VokW04bFm5uDhXF0lJDOWb8aJuFl56SP2lnbWyP8P8d+3MaFCcuw3F23CS/0ZO5w7CsPsHkvWkmykCB6z/Ju/kqvXK5qYKjAVkZ80LMDNppjN5zZhFZs721zuuMmpFevcfG5c43KujcR/yDfB+t3yfWmaWi21KDapdHXk5lQoxsg6OZe6Wuj7jQq+Zol+ElxD+gn7z2LWXq8a3wyyvGSoKyBfHBjrwzEuUEFbvn5iatPJVX davidtomaschik@davidtomaschik-glaptop2
|
||||
@@ -1 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDi2AoHzzSd/xidvRKS1OE7Pe+aGgyEY1WmWJGJ3POHuaQSbGrp4g1En4QurhXwonPiLBtQ0w6Nbbi/3vrXxSnAkJJKd9LXQtjyXVN68285lRr3DWuWnyokhO3B5aGOb5/4b6Dn8YDRrTRefezjbVavgrTFarZ19PmPmJxH9h+ZPV/hNQ6rZjBjrvGerxpmB6CjgXbIxRdsUcnao3+gyPueBOkyHbfiy7QjQT+SgPjIqT/rza4Q0OqFBTk4D7Y96biE5yY31eNs8H7uvR3PfX0NN5zvP/EqJECPYr/B3vOzAr7B8BsqYbA5UFexrp6gYn+LDzr6jAILhEUp8SsC8UFn davidtomaschik@davidtomaschik-glaptop3
|
||||
@@ -1 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXvqt73qAqS8C597u1wjz0Cvfo1IpiQFE4OKxTBR0mUhhi9UsGXkjZd/EYnqfWQRLcKaQSqN9QcXW7zHrfXtdmcjr3dDZrwXGgCiJnvLTeLecLqYwgaIMMNTmgaTQ3OFB74VCeD496pMbnhmlsN2+WaxNjIxoX+Qadsq/iHtBBt+tSOm5E1x0/ynEGmvO1W0L+8FyV/xnZWQIbBHTrJ931Gt8RDKtt7Y24XYMm5REye40adbxeS4kBwexvp2nTKwkr8sC26dmOz/RgJG3Km1194r0RXsH7iCYYlUBT23f4KOcmVxUlxkSu5d0u2viEID++cN6LT/4rHPdgqMZaVhaB root@uber
|
||||
@@ -1 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ5FLvZsfIfNV8NcUK6+wJ8pDapgu8QAZMX5zuz+fYxsf3KeHlDS0nPojmDLCXaAdd4TUO7KlRyo8BhpsWP8yUwpxUeRgvtYjjWfDgSxXCsGpQzbmTABu8eIaSya00Fao/WeIV1k+2p6S80knmllrBVideGW9ws4zrVQnhOcgKVXskuFBEs3IOQczNPMfI+OnO+qca0rjUh1Z6k3tD6tN6pxh//5CZBgqYf4G1DLnCLIep7tDkTuYjgqH237r6v4WHH87sLRy21yFRzfMWUGPesJvuc8X4Ol822BuQWTCDYy+QYZ9qGDWPcLOLCg7MLP9IVKzIJOrAdOYyp6p2brzj davidtomaschik@uber.g
|
||||
@@ -1 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3CLK0KLup0y8nb1l5X9LTVsvJG1scc7qbLJZIdGC0TlFeAbzUwXmxxJUY/dl/2JKGj9Ai3h393WzxH//tMY4jYLhMLqV487YvteVF+2yVS+q0YtO4RgM6TVOvdp1b4Fgj4EB5hTaO0hB51PxTqnVAK0ZMAuUxQRygpARnB+xwhLU2l0K07RHgpMirWODzzlgD3Y9I+3WIpmAwzubaoS1/R0Frf81ZWQmgvwac6PKsPwvGLygS1ounOwD2PJScP+sE/t2MEYjtqmmAytqsp5kLVkb82fJSkdj1DuHblgZr4aX9r04bVV1ju19CN57VyhbZtf+fBqQQW1lnjMYm9Kjn matir_pvj
|
||||
@@ -1 +0,0 @@
|
||||
../id_ecdsa_chromebook.pub
|
||||
@@ -1 +0,0 @@
|
||||
../id_ecdsa_human.pub
|
||||
1
keys/ssh/trusted/id_ecdsa_scar.pub
Symbolic link
1
keys/ssh/trusted/id_ecdsa_scar.pub
Symbolic link
@@ -0,0 +1 @@
|
||||
../id_ecdsa_scar.pub
|
||||
1
keys/ssh/trusted/id_ecdsa_zazu.pub
Symbolic link
1
keys/ssh/trusted/id_ecdsa_zazu.pub
Symbolic link
@@ -0,0 +1 @@
|
||||
../id_ecdsa_zazu.pub
|
||||
@@ -1 +0,0 @@
|
||||
../id_rsa_human.pub
|
||||
1
keys/ssh/trusted/id_rsa_scar.pub
Symbolic link
1
keys/ssh/trusted/id_rsa_scar.pub
Symbolic link
@@ -0,0 +1 @@
|
||||
../id_rsa_scar.pub
|
||||
@@ -1,10 +1,14 @@
|
||||
audacity
|
||||
cinnamon
|
||||
codequery
|
||||
flameshot
|
||||
fonts-inconsolata
|
||||
fonts-powerline
|
||||
gimp
|
||||
keepassx
|
||||
meld
|
||||
network-manager-openvpn-gnome
|
||||
solaar
|
||||
vim-gtk
|
||||
wireshark
|
||||
wkhtmltopdf
|
||||
|
||||
14
packages.cli
14
packages.cli
@@ -1,15 +1,21 @@
|
||||
bat
|
||||
binfmt-support
|
||||
build-essential
|
||||
cryptsetup
|
||||
dsniff
|
||||
duf
|
||||
ecryptfs-utils
|
||||
exa
|
||||
exuberant-ctags
|
||||
grc
|
||||
fd-find
|
||||
fzf
|
||||
httpie
|
||||
iftop
|
||||
iptraf
|
||||
ipython
|
||||
ipython3
|
||||
jarwrapper
|
||||
jc
|
||||
jq
|
||||
kpartx
|
||||
ldap-utils
|
||||
@@ -17,6 +23,7 @@ lvm2
|
||||
most
|
||||
msitools
|
||||
nasm
|
||||
nvim
|
||||
opensc
|
||||
openvpn
|
||||
p7zip-full
|
||||
@@ -35,9 +42,12 @@ python3-scapy
|
||||
python3-pip
|
||||
python3-virtualenv
|
||||
radare2
|
||||
ripgrep
|
||||
scapy
|
||||
scdaemon
|
||||
socat
|
||||
source-highlight
|
||||
sqlite3
|
||||
ufw
|
||||
ugrep
|
||||
vim-youcompleteme
|
||||
zsh-syntax-highlighting
|
||||
|
||||
@@ -2,6 +2,7 @@ fonts-anonymous-pro
|
||||
fonts-dejavu
|
||||
fonts-dseg
|
||||
fonts-elusive-icons
|
||||
fonts-firacode
|
||||
fonts-font-awesome
|
||||
fonts-freefont-otf
|
||||
fonts-hack
|
||||
@@ -14,6 +15,7 @@ fonts-ocr-a
|
||||
fonts-ocr-b
|
||||
fonts-open-sans
|
||||
fonts-oxygen
|
||||
fonts-powerline
|
||||
fonts-roboto
|
||||
fonts-stix
|
||||
fonts-ubuntu
|
||||
|
||||
BIN
private_dotfiles/config/gcloud/configurations/config_bsidessf
Normal file
BIN
private_dotfiles/config/gcloud/configurations/config_bsidessf
Normal file
Binary file not shown.
BIN
private_dotfiles/config/gcloud/configurations/config_default
Executable file
BIN
private_dotfiles/config/gcloud/configurations/config_default
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
1
sysctl/userns.conf
Normal file
1
sysctl/userns.conf
Normal file
@@ -0,0 +1 @@
|
||||
kernel.unprivileged_userns_clone=1
|
||||
@@ -1 +1,2 @@
|
||||
BUS=="usb", SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6014", GROUP="plugdev"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", GROUP="plugdev"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", GROUP="plugdev"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user