108 Commits
v0.2 ... dc26

Author SHA1 Message Date
David Tomaschik
da545f0de7 Support restoring dconf. 2018-07-08 13:56:37 -07:00
David Tomaschik
8d9cf14608 Add a minimal inputrc. 2018-07-06 15:52:20 +02:00
David Tomaschik
bdc1551122 Prevent hiding cursor when moving with arrows. 2018-07-05 14:35:49 +02:00
David Tomaschik
ba497cd5bf Enable syntax highlighting in zsh. 2018-07-04 11:12:37 +02:00
David Tomaschik
ca63946c5e Merge remote-tracking branch 'gh/master' 2018-06-25 20:47:36 +02:00
David Tomaschik
0b6fa6b0fa Install dex with i3. 2018-06-25 20:46:10 +02:00
David Tomaschik
12247790a6 Use dex for desktop files. 2018-06-25 20:45:34 +02:00
David Tomaschik
4d245198a8 Add SSH canonicalization settings. 2018-06-25 20:45:14 +02:00
David Tomaschik
8f4e4fe77b I don't like noglob scp. 2018-06-18 09:25:48 -07:00
David Tomaschik
1cafe1cf7a Don't always send a fake user agent. 2018-06-13 14:26:44 -07:00
David Tomaschik
ba546d478e Add tmux copy/pasta. 2018-06-11 21:55:00 -07:00
David Tomaschik
08d9567bdf Update zsh. 2018-06-11 21:29:50 -07:00
David Tomaschik
a460ee3bb4 More convenience keybindings. 2018-06-10 12:57:38 -07:00
David Tomaschik
f005bae9e6 Move SSH config to include-based. 2018-06-02 21:18:26 -07:00
David Tomaschik
3279d52505 Change locale detection. 2018-05-25 21:03:08 -07:00
David Tomaschik
939c604381 Fix env syntax. 2018-05-24 20:09:45 -07:00
David Tomaschik
d2061e29ef Make .env POSIX compliant. 2018-05-20 21:41:24 -07:00
David Tomaschik
de62342054 Merge branch 'master' of https://github.com/Matir/skel 2018-05-20 21:39:24 -07:00
David Tomaschik
2cf2aa4e78 Merge branch 'master' of https://github.com./Matir/skel 2018-05-16 17:05:55 -07:00
David Tomaschik
672767d758 Add PICKit3 udev rules. 2018-05-16 17:05:06 -07:00
David Tomaschik
96c2c37eb8 Merge branch 'master' of https://github.com./Matir/skel 2018-05-12 15:57:30 -07:00
David Tomaschik
ffb5d753cd Always try sudo if needed. 2018-05-12 15:57:23 -07:00
David Tomaschik
7a7340ef1d Add chromebook key. 2018-05-12 15:57:23 -07:00
David Tomaschik
b1bea45a48 Update skel to handle minimal environments. 2018-05-12 15:57:23 -07:00
David Tomaschik
01432d1f41 Roll back removing titles for groupings. 2018-05-12 15:57:17 -07:00
David Tomaschik
d6800370de Always try sudo if needed. 2018-05-12 12:50:16 -07:00
David Tomaschik
8f547abf93 Add chromebook key. 2018-05-12 12:45:25 -07:00
David Tomaschik
a02825fb1f Update skel to handle minimal environments. 2018-05-07 22:25:17 -07:00
David Tomaschik
5e3d133f8b Switch to vim keybindings. 2018-05-02 22:13:42 -07:00
David Tomaschik
48477290f0 Fix zshrc compinstall path 2018-05-02 14:43:34 -07:00
David Tomaschik
6bf68dfb2e Merge branch 'master' of https://github.com./Matir/skel 2018-04-23 22:12:14 -07:00
David Tomaschik
590a1a2fa0 Script to setup APT proxy. 2018-04-23 22:12:05 -07:00
David Tomaschik
697db6ca24 Merge branch 'master' of https://github.com./Matir/skel 2018-04-18 16:08:35 -07:00
David Tomaschik
f028c2f320 Fix SSH to github when ndots=2. 2018-04-18 16:07:50 -07:00
David Tomaschik
32a1c18c5d Add compose key. 2018-04-18 16:07:34 -07:00
David Tomaschik
4ec3fa1e22 Fix tab completion of usernames. 2018-04-18 16:07:15 -07:00
David Tomaschik
26685dfadb Add jekyll dev command. 2018-04-16 11:59:39 -07:00
David Tomaschik
0b327577e7 Fixing completion. 2018-04-15 17:45:02 -07:00
David Tomaschik
373f6c31c6 Merge branch 'master' of https://github.com./Matir/skel 2018-04-15 09:10:27 -07:00
David Tomaschik
4f7d98930d More improvements in slugs. 2018-04-11 16:09:29 +02:00
David Tomaschik
1aa256252f Note untracked files. 2018-04-07 20:05:47 +02:00
David Tomaschik
5705cb59c8 Use $EDITOR for editing. 2018-04-07 14:46:27 +02:00
David Tomaschik
c8b33e39c7 Avoid leading and trailing dashes in blog post slugs. 2018-04-07 13:58:02 +02:00
David Tomaschik
a9012bebea Add docker tab completion. 2018-04-07 12:26:54 +02:00
David Tomaschik
6100557a2b Add nasm to packages.cli. 2018-03-22 14:11:23 -07:00
David Tomaschik
5709d8fbb0 Setup locale in .env. 2018-03-18 17:55:27 -07:00
David Tomaschik
5dc84926be Add zlogin to build zcompdump.zwc. 2018-03-18 15:52:15 -07:00
David Tomaschik
b303c1b5c5 virtualenv info in prompt 2018-03-17 21:34:38 -07:00
David Tomaschik
dfd2b48b94 Merge branch 'master' of https://github.com./Matir/skel 2018-03-17 21:24:25 -07:00
David Tomaschik
0e1370a93f Initialize virtualenv. 2018-03-17 21:24:20 -07:00
David Tomaschik
4ebf519af7 Add Zeal documentation browser. 2018-03-17 21:03:45 -07:00
David Tomaschik
1386dc49d0 Rename installed-prefs to .installed-prefs. 2018-03-17 16:59:37 -07:00
David Tomaschik
360aa1c8ec Update zpretorc. 2018-03-16 22:45:02 -07:00
David Tomaschik
8e8d220539 Update rsync_ignore. 2018-03-16 21:03:24 -07:00
David Tomaschik
9b7561ce8f Merge branch 'master' of https://github.com./Matir/skel 2018-03-16 21:03:02 -07:00
David Tomaschik
c9c65e10d7 Install latest mitmproxy. 2018-03-14 22:15:52 -07:00
David Tomaschik
61b4dbe963 Do cyberchef install_tool style. 2018-03-14 13:44:40 -07:00
David Tomaschik
20a8db806c Make HISTFILE zprezto compatible. 2018-03-13 11:26:25 -07:00
David Tomaschik
be1bca8dbe Fix up prompt for vicmd mode. 2018-03-11 17:15:45 -07:00
David Tomaschik
9c3ad64036 Fix up GREP_COLORS. 2018-03-11 16:21:43 -07:00
David Tomaschik
d392eb8dfc Optimize backup. 2018-03-11 16:21:32 -07:00
David Tomaschik
6f15f7096a Fix prompt for git. 2018-03-11 12:44:41 -07:00
David Tomaschik
c7e40f1321 Fix rvm changes. 2018-03-10 23:14:16 -08:00
David Tomaschik
376fbb9f73 Merge branch 'prezto' 2018-03-10 23:13:03 -08:00
David Tomaschik
769989127b Fix up prezto. 2018-03-10 23:11:35 -08:00
David Tomaschik
4091cc3f03 Basic prezto support. 2018-03-10 22:49:32 -08:00
David Tomaschik
82c2833490 Remove google-chrome-burp alias. 2018-03-09 12:43:03 -08:00
David Tomaschik
634f031c56 Add google-chrome-burp as script. 2018-03-09 12:42:51 -08:00
David Tomaschik
7564acc939 Fix alias. 2018-03-09 11:35:47 -08:00
David Tomaschik
bfaabd18d0 Fix uber keys. 2018-03-06 08:48:26 -08:00
David Tomaschik
286eb02f4b Update git branches on push.
This pushes to clean checked-out repositories.  Only works since git
2.3.0, so on older versions, I'll apparently need to use a local dotfile
for those systems.

git config receive.denyCurrentBranch updateInstead
2018-03-04 22:15:36 -08:00
David Tomaschik
5a9e0b6578 Merge branch 'master' of theta.systemoverlord.com:.skel 2018-03-04 22:08:32 -08:00
David Tomaschik
f77ed125de Fix alias change. Doh. 2018-03-03 17:50:59 -08:00
David Tomaschik
24676d6a87 Don't use GNU aliases on NetBSD either. 2018-03-03 17:43:01 -08:00
David Tomaschik
d08af13a1c Update ssh/config. 2018-03-03 17:42:13 -08:00
David Tomaschik
8c9627caa1 Chmod only if exists. 2018-03-01 21:08:56 -08:00
David Tomaschik
40485f10f0 Conditional gpg. 2018-03-01 20:53:57 -08:00
David Tomaschik
b5ef3c37e4 Fix dotfile installation conditionals. 2018-03-01 20:52:35 -08:00
David Tomaschik
874750f22b Add python-nwdiag package. 2018-02-19 14:23:28 -08:00
David Tomaschik
89f555cdcb Merge branch 'master' of https://www.github.com/Matir/skel 2018-02-18 12:54:10 -08:00
David Tomaschik
4a7b263a9e Error handling for jekyll. 2018-02-14 18:27:39 -08:00
David Tomaschik
753035cc57 Support installing dotfiles separately. 2018-02-13 11:08:42 -08:00
David Tomaschik
32275ca788 Different workaround for ndots configuration. 2018-02-13 11:05:31 -08:00
David Tomaschik
58f63a17dc udev rules for various devices I use. 2018-02-10 15:07:28 -08:00
David Tomaschik
f355fe84d2 Add xsettingsd. 2018-02-09 13:33:03 -08:00
David Tomaschik
f3125f7cd7 Merge branch 'master' of https://www.github.com/Matir/skel 2018-02-05 16:27:34 -08:00
David Tomaschik
6894dc9214 Fix gitconfig to use www and other github aliases. 2018-02-05 16:26:33 -08:00
David Tomaschik
a59cbf1e41 Add new glaptop SSH keys.
Signed-off-by: David Tomaschik <david@systemoverlord.com>
2018-02-04 15:22:42 -08:00
David Tomaschik
d43bbcfae9 Add new glaptop SSH keys. 2018-02-04 14:58:37 -08:00
David Tomaschik
00cf4d1577 Add most to package list. 2018-02-03 19:20:40 -08:00
David Tomaschik
143e6e1e74 Use most if available. 2018-01-30 21:21:46 -08:00
David Tomaschik
8f6127d19d Fix conditional. 2018-01-30 19:35:44 -08:00
David Tomaschik
7c5a617897 Final bashism cleanup. 2018-01-30 19:25:47 -08:00
David Tomaschik
696cc9c6cd Fix some bashisms in install.sh. 2018-01-29 22:36:47 -08:00
David Tomaschik
2c2ac626e5 Make install script run on FreeBSD. 2018-01-30 05:35:34 +00:00
David Tomaschik
0431c83423 Merge remote-tracking branch 'vdesktop/master' 2018-01-27 10:31:51 -08:00
David Tomaschik
d9ae2ca974 Add socat to package list. 2018-01-27 10:31:13 -08:00
David Tomaschik
db007ad604 More MacOS fixes. 2018-01-26 09:39:38 -08:00
David Tomaschik
89ee4ce390 Merge branch 'master' of https://github.com/Matir/skel 2018-01-26 09:27:01 -08:00
David Tomaschik
48fb9289b4 Nasty hack to fix find on MacOS. 2018-01-26 09:26:58 -08:00
David Tomaschik
430bb6e7b9 Fix ls alias on MacOS. 2018-01-26 09:24:07 -08:00
David Tomaschik
bf81c13d47 Merge branch 'master' of xi.systemoverlord.com:.skel 2018-01-25 19:26:40 -08:00
David Tomaschik
bda75033a0 python-pypdf is entirely virtual. 2018-01-25 00:44:12 +00:00
David Tomaschik
53f7bc9fe3 Fix package installation. 2018-01-25 00:24:33 +00:00
David Tomaschik
a2acbeb8b5 Update weechat config. 2018-01-18 21:29:10 -08:00
David Tomaschik
de89e88c90 Weechat config bump. 2018-01-18 21:23:19 -08:00
David Tomaschik
87fd3193e0 Remove default package list. 2017-12-02 12:41:13 +01:00
David Tomaschik
d96a41aeaf Update package installation to have minimal grouping. 2017-12-02 12:40:53 +01:00
69 changed files with 4028 additions and 661 deletions

1
.gitignore vendored
View File

@@ -1,4 +1,5 @@
installed-prefs installed-prefs
.installed-prefs
*.swp *.swp
*~ *~
*.bak *.bak

34
bin/_install_apt_proxy.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/bash
set -o errexit
set -o nounset
if test -f /etc/apt/apt.conf.d/90-proxy ; then
echo "Looks already setup."
fi
cat >/etc/apt/proxy-detect <<'EOF'
#!/bin/bash
PROXY=192.168.60.10:3142
if ! test -x /bin/nc ; then
echo DIRECT
exit 0
fi
if nc -w 2 -z ${PROXY/:/ } ; then
echo ${PROXY}
exit 0
fi
echo DIRECT
EOF
chmod +x /etc/apt/proxy-detect
cat >/etc/apt/apt.conf.d/90-proxy <<'EOF'
Acquire::http::Proxy-Auto-Detect "/etc/apt/proxy-detect";
EOF
echo "Setup APT Proxying."

View File

@@ -2,4 +2,4 @@
apt-get install -y \ apt-get install -y \
i3 i3lock xss-lock rxvt-unicode-256color fonts-inconsolata scrot \ i3 i3lock xss-lock rxvt-unicode-256color fonts-inconsolata scrot \
xautolock xbacklight i3status xautolock xbacklight i3status dex

View File

@@ -26,5 +26,5 @@ function verify_dest {
verify_dest "$DEST" verify_dest "$DEST"
rsync -Hax --delete --exclude-from="$HOME/.rsync_ignore" \ exec nice rsync -Hax --delete --exclude-from="$HOME/.rsync_ignore" \
--delete-excluded "${HOME}/" "$DEST" --delete-excluded "${HOME}/" "$DEST"

View File

@@ -1,3 +1,11 @@
#!/bin/bash #!/bin/bash
exec xdg-open $(dirname $0)/cyberchef.html set -u
CHEF_FILE=${HOME}/tools/cyberchef/cyberchef.html
if [ ! -f ${CHEF_FILE} ] ; then
${HOME}/bin/install_tool cyberchef
fi
exec xdg-open ${CHEF_FILE}

File diff suppressed because one or more lines are too long

3
bin/google-chrome-burp Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
# Launch chrome for burp
exec /usr/bin/google-chrome-beta --ignore-certificate-errors --user-data-dir=${HOME}/.config/chrome-pentest --proxy-server=127.0.0.1:8080

View File

@@ -31,10 +31,16 @@ if [ $# -ne 1 ] ; then
fi fi
TOOL=${1} TOOL=${1}
function die {
echo $* >/dev/stderr
return 1
}
function install_pkgs { function install_pkgs {
if [ ${PACKAGES} -eq 0 ] ; then if [ ${PACKAGES} -eq 0 ] ; then
return 0 return 0
fi fi
# TODO: check if packages are already installed
if [ `id -u` -ne "0" ] ; then if [ `id -u` -ne "0" ] ; then
sudo apt-get -y install $* || ( sudo apt-get -y install $* || (
echo -n "Unable to install packages, please ensure these " >/dev/stderr echo -n "Unable to install packages, please ensure these " >/dev/stderr
@@ -50,6 +56,7 @@ function download {
SRC=${1} SRC=${1}
DST=${2} DST=${2}
echo -n "Downloading ${SRC} to ${DST}..." >&2 echo -n "Downloading ${SRC} to ${DST}..." >&2
# TODO: consider curl instead?
wget --no-server-response -q -O ${DST} --content-disposition ${SRC} wget --no-server-response -q -O ${DST} --content-disposition ${SRC}
echo " done." >&2 echo " done." >&2
} }
@@ -137,8 +144,7 @@ case ${TOOL} in
fi fi
;; ;;
mitmproxy) mitmproxy)
# Find a better way to get the latest src=$(python -c 'import urllib2; import json; print(filter(lambda x: x["name"].endswith("-linux.tar.gz"), json.load(urllib2.urlopen("https://api.github.com/repos/mitmproxy/mitmproxy/releases/latest"))["assets"])[0]["browser_download_url"])')
src="https://github.com/mitmproxy/mitmproxy/releases/download/v2.0.1/mitmproxy-2.0.1-linux.tar.gz"
download ${src} /tmp/mitmproxy.tar.gz download ${src} /tmp/mitmproxy.tar.gz
mkdir -p ${DESTDIR} mkdir -p ${DESTDIR}
tar zx -C ${DESTDIR} -f /tmp/mitmproxy.tar.gz tar zx -C ${DESTDIR} -f /tmp/mitmproxy.tar.gz
@@ -176,6 +182,11 @@ case ${TOOL} in
/etc/udev/rules.d/77-mm-usb-device-blacklist.rules && /etc/udev/rules.d/77-mm-usb-device-blacklist.rules &&
udevadm control --reload-rules" udevadm control --reload-rules"
;; ;;
cyberchef)
mkdir -p ${DESTDIR}
src=$(python -c 'import urllib2; import json; print(filter(lambda x: x["name"]=="cyberchef.htm", json.load(urllib2.urlopen("https://api.github.com/repos/gchq/CyberChef/releases/latest"))["assets"])[0]["browser_download_url"])')
download ${src} ${DESTDIR}/cyberchef.html
;;
*) *)
echo "Unknown tool: ${TOOL}" >/dev/stderr echo "Unknown tool: ${TOOL}" >/dev/stderr
exit 1 exit 1

View File

@@ -0,0 +1,24 @@
[media-keys]
screensaver=['<Primary><Alt>l', 'XF86ScreenSaver']
[wm]
move-to-workspace-1=['<Shift><Super>exclam']
move-to-workspace-2=['<Shift><Super>at']
move-to-workspace-3=['<Shift><Super>numbersign']
move-to-workspace-4=['<Shift><Super>dollar']
move-to-workspace-5=['<Shift><Super>percent']
move-to-workspace-6=['<Shift><Super>asciicircum']
move-to-workspace-7=['<Shift><Super>ampersand']
move-to-workspace-8=['<Shift><Super>asterisk']
move-to-workspace-9=['<Shift><Super>parenleft']
switch-to-workspace-4=['<Super>4']
switch-to-workspace-1=['<Super>1']
switch-to-workspace-10=['<Super>0']
switch-to-workspace-3=['<Super>3']
switch-to-workspace-8=['<Super>8']
switch-to-workspace-5=['<Super>5']
move-to-workspace-10=['<Shift><Super>parenright']
switch-to-workspace-2=['<Super>2']
switch-to-workspace-9=['<Super>9']
switch-to-workspace-6=['<Super>6']
switch-to-workspace-7=['<Super>7']

View File

@@ -3,7 +3,7 @@ Xcursor.size: 16
!!! !!!
! Xft for fonts ! Xft for fonts
!!! !!!
Xft.dpi: 96 !Xft.dpi: 144
Xft.antialias: false Xft.antialias: false
Xft.lcdfilter: lcddefault Xft.lcdfilter: lcddefault
Xft.rgba: rgb Xft.rgba: rgb

View File

@@ -8,10 +8,13 @@ alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo
alias luksFormat='cryptsetup luksFormat -s 512 -c aes-xts-plain64 -h sha256 -i 15000' alias luksFormat='cryptsetup luksFormat -s 512 -c aes-xts-plain64 -h sha256 -i 15000'
# Colors # Colors
alias ls='ls --color=auto' if [ `uname` != 'Darwin' -a `uname` != 'NetBSD' ] ; then
alias grep='grep --color=auto' # Should have a better way to check for GNU versions
alias egrep='egrep --color=auto' alias ls='ls --color=auto'
alias fgrep='fgrep --color=auto' alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
fi
# Easy upgrade # Easy upgrade
alias dist-upgrade="sudo sh -c 'apt-get update && apt-get -y dist-upgrade'" alias dist-upgrade="sudo sh -c 'apt-get update && apt-get -y dist-upgrade'"
@@ -25,9 +28,6 @@ alias mdcode="sed 's/^/ /'"
# Intel format plz # Intel format plz
alias objdump="command objdump -M intel" alias objdump="command objdump -M intel"
# Launch chrome for burp
alias chrome-for-burp="/usr/bin/google-chrome --ignore-certificate-errors --user-data-dir=${HOME}/.chrome-for-burp --proxy-server=127.0.0.1:8080 >/dev/null 2>&1 &"
# Useful directory utilities # Useful directory utilities
alias dircount="for d in * ; do find \$d -type d | wc -l | tr -d '\n' ; echo ' ' \$d ; done | sort -n" alias dircount="for d in * ; do find \$d -type d | wc -l | tr -d '\n' ; echo ' ' \$d ; done | sort -n"

View File

@@ -177,6 +177,7 @@ exec --no-startup-id gnome-settings-daemon
exec --no-startup-id (sleep 2; nm-applet) & exec --no-startup-id (sleep 2; nm-applet) &
exec --no-startup-id xset r rate 200 20 exec --no-startup-id xset r rate 200 20
exec --no-startup-id ~/bin/autostart.py exec --no-startup-id ~/bin/autostart.py
exec --no-startup-id dex --autostart --environment x-cinnamon
# customize windows # customize windows
for_window [window_role="pop-up"] floating enable for_window [window_role="pop-up"] floating enable

View File

@@ -1,4 +1,3 @@
tlsv1 tlsv1
user-agent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0 Safari/537.36"
create-dirs create-dirs
referer = ";auto" referer = ";auto"

View File

@@ -15,14 +15,48 @@ export LESS="-MR"
export QUOTING_STYLE="literal" # Coreutils quotes export QUOTING_STYLE="literal" # Coreutils quotes
# Fix gnome-terminal # Fix gnome-terminal
if [[ $TERM == "xterm" && $COLORTERM == "gnome-terminal" ]] ; then if [ "$TERM" = "xterm" -a "$COLORTERM" = "gnome-terminal" ] ; then
export TERM="xterm-256color" export TERM="xterm-256color"
fi fi
# For virtualenvwrapper # For virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
# GPG full key id # GPG full key id
export GPG_ID=7FD58D9A196DCEEEAD671F94F4D7A7915DEA789B export GPG_ID=7FD58D9A196DCEEEAD671F94F4D7A7915DEA789B
if [[ -e $HOME/.localenv ]] ; then source $HOME/.localenv ; fi # Setup locale
if test -x /usr/bin/locale ; then
for l in en_US.UTF-8 C.UTF-8 C ; do
if /usr/bin/locale -a | grep -q "${l}" ; then
export LC_CTYPE=${l}
export LC_NUMERIC=${l}
export LC_TIME=${l}
export LC_MONETARY=${l}
export LC_MESSAGES=${l}
export LC_PAPER=${l}
export LC_NAME=${l}
export LC_ADDRESS=${l}
export LC_TELEPHONE=${l}
export LC_MEASUREMENT=${l}
export LC_IDENTIFICATION=${l}
break
fi
done
else
export LC_CTYPE=C
export LC_NUMERIC=C
export LC_TIME=C
export LC_MONETARY=C
export LC_MESSAGES=C
export LC_PAPER=C
export LC_NAME=C
export LC_ADDRESS=C
export LC_TELEPHONE=C
export LC_MEASUREMENT=C
export LC_IDENTIFICATION=C
fi
export LC_COLLATE=C
if [ -e $HOME/.localenv ] ; then source $HOME/.localenv ; fi

View File

@@ -39,11 +39,13 @@
user = matir user = matir
# Site specific config # Site specific config
[url "https://github.com/"] [url "https://github.com./"]
insteadOf = github:// insteadOf = "github:"
insteadOf = "github://"
[url "ssh://git@github.com/"] [url "ssh://git@github.com/"]
pushInsteadOf = github:// pushInsteadOf = "github:"
pushInsteadOf = "github://"
[url "git://gist.github.com/"] [url "git://gist.github.com/"]
insteadOf = "gist:" insteadOf = "gist:"
@@ -51,5 +53,8 @@
[url "git@gist.github.com:"] [url "git@gist.github.com:"]
pushInsteadOf = "gist:" pushInsteadOf = "gist:"
pushInsteadOf = "git://gist.github.com/" pushInsteadOf = "git://gist.github.com/"
[credential] [credential]
helper = cache --timeout=36000 helper = cache --timeout=36000
[receive]
denyCurrentBranch = updateInstead

4
dotfiles/inputrc Normal file
View File

@@ -0,0 +1,4 @@
set editing-mode vi
set keymap vi
set convert-meta on

View File

@@ -1,4 +1,8 @@
# Always load ENV # Always load ENV
test -f "$HOME/.env" && . "$HOME/.env" test -f "$HOME/.env" && . "$HOME/.env"
# Setup GREP_COLORS
export GREP_COLOR='01;31'
export GREP_COLORS='mt=01;31:mc=01;31:ms=01;31'
test -f "${HOME}/.profile.local" && . "${HOME}/.profile.local" test -f "${HOME}/.profile.local" && . "${HOME}/.profile.local"

View File

@@ -10,3 +10,4 @@ Downloads
.sqlite_history .sqlite_history
VirtualBox VMs VirtualBox VMs
Audits Audits
SpiderOak Hive

View File

@@ -1,9 +1,19 @@
# Universal Settings (can't override) # Universal Settings
# Never fall back to protocol 1: it's broken
Protocol 2 Protocol 2
CanonicalizeHostname yes
CanonicalizeMaxDots 0
CanonicalizeFallbackLocal yes
Include ~/.ssh/config.d/*
CanonicalDomains systemoverlord.com
# Defaults (May be Overridden) # Defaults (May be Overridden)
Host * Host *.*
CheckHostIP yes
Match canonical all
CheckHostIP no
ControlMaster auto ControlMaster auto
ControlPath ~/.ssh/master/%r@%h:%p ControlPath ~/.ssh/master/%r@%h:%p
ControlPersist yes ControlPersist yes
@@ -11,9 +21,6 @@ Host *
ForwardX11 no ForwardX11 no
ForwardX11Trusted no ForwardX11Trusted no
ServerAliveInterval 120 ServerAliveInterval 120
CheckHostIP no UpdateHostKeys yes
User david
Host warzone VerifyHostKeyDNS yes
Hostname warzone.shadowcats.club
Port 22
User matir

View File

@@ -57,3 +57,7 @@ bind M \
set -g mouse-select-pane off \;\ set -g mouse-select-pane off \;\
set -g mouse-select-window off \;\ set -g mouse-select-window off \;\
display 'Mouse: OFF' display 'Mouse: OFF'
# tmux X clipboard integration
bind C-c run "tmux show-buffer | xsel -i -b"
bind C-v run "tmux set-buffer -- \"$(xsel -o -b)\"; tmux paste-buffer"

View File

@@ -1,5 +1,5 @@
# #
# alias.conf -- weechat v1.0.1 # weechat -- alias.conf
# #
[cmd] [cmd]

View File

@@ -1,5 +1,5 @@
# #
# aspell.conf -- weechat v1.0.1 # weechat -- aspell.conf
# #
[color] [color]

View File

@@ -1,5 +1,5 @@
# #
# charset.conf -- weechat v1.0.1 # weechat -- charset.conf
# #
[default] [default]

View File

@@ -1,5 +1,5 @@
# #
# exec.conf -- weechat v1.0.1 # weechat -- exec.conf
# #
[command] [command]

View File

@@ -1,8 +1,10 @@
# #
# irc.conf -- weechat v1.0.1 # weechat -- irc.conf
# #
[look] [look]
buffer_open_before_autojoin = on
buffer_open_before_join = off
buffer_switch_autojoin = on buffer_switch_autojoin = on
buffer_switch_join = on buffer_switch_join = on
color_nicks_in_names = off color_nicks_in_names = off
@@ -25,7 +27,6 @@ highlight_channel = "$nick"
highlight_pv = "$nick" highlight_pv = "$nick"
highlight_server = "$nick" highlight_server = "$nick"
highlight_tags_restrict = "irc_privmsg,irc_notice" highlight_tags_restrict = "irc_privmsg,irc_notice"
item_away_message = on
item_channel_modes_hide_args = "k" item_channel_modes_hide_args = "k"
item_display_server = buffer_plugin item_display_server = buffer_plugin
item_nick_modes = on item_nick_modes = on
@@ -34,9 +35,6 @@ join_auto_add_chantype = off
msgbuffer_fallback = current msgbuffer_fallback = current
new_channel_position = none new_channel_position = none
new_pv_position = none new_pv_position = none
nick_color_force = ""
nick_color_hash = sum
nick_color_stop_chars = "_|["
nick_completion_smart = speakers nick_completion_smart = speakers
nick_mode = prefix nick_mode = prefix
nick_mode_empty = off nick_mode_empty = off
@@ -58,11 +56,11 @@ smart_filter_join_unmask = 30
smart_filter_mode = "+" smart_filter_mode = "+"
smart_filter_nick = on smart_filter_nick = on
smart_filter_quit = on smart_filter_quit = on
temporary_servers = off
topic_strip_colors = off topic_strip_colors = off
[color] [color]
input_nick = lightcyan input_nick = lightcyan
item_away = yellow
item_channel_modes = default item_channel_modes = default
item_lag_counting = default item_lag_counting = default
item_lag_finished = yellow item_lag_finished = yellow
@@ -73,14 +71,15 @@ mirc_remap = "1,-1:darkgray"
nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue" nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
notice = green notice = green
reason_quit = default reason_quit = default
topic_current = default
topic_new = white topic_new = white
topic_old = default topic_old = default
[network] [network]
alternate_nick = on
autoreconnect_delay_growing = 2 autoreconnect_delay_growing = 2
autoreconnect_delay_max = 600 autoreconnect_delay_max = 600
ban_mask_default = "*!$ident@$host" ban_mask_default = "*!$ident@$host"
channel_encode = off
colors_receive = on colors_receive = on
colors_send = on colors_send = on
lag_check = 60 lag_check = 60
@@ -90,6 +89,7 @@ lag_reconnect = 0
lag_refresh_interval = 1 lag_refresh_interval = 1
notify_check_ison = 1 notify_check_ison = 1
notify_check_whois = 5 notify_check_whois = 5
sasl_fail_unavailable = on
send_unknown_commands = off send_unknown_commands = off
whois_double_nick = off whois_double_nick = off
@@ -115,16 +115,19 @@ capabilities = ""
command = "" command = ""
command_delay = 0 command_delay = 0
connection_timeout = 60 connection_timeout = 60
default_msg_kick = ""
default_msg_part = "gg"
default_msg_quit = "gg! I'm out."
ipv6 = on ipv6 = on
local_hostname = "" local_hostname = ""
msg_kick = ""
msg_part = "WeeChat ${info:version}"
msg_quit = "WeeChat ${info:version}"
nicks = "Matir,Matir~,Matir[]" nicks = "Matir,Matir~,Matir[]"
nicks_alternate = on
notify = "" notify = ""
password = "" password = ""
proxy = "" proxy = ""
realname = "" realname = ""
sasl_fail = continue
sasl_key = ""
sasl_mechanism = plain sasl_mechanism = plain
sasl_password = "" sasl_password = ""
sasl_timeout = 15 sasl_timeout = 15
@@ -152,11 +155,14 @@ freenode.capabilities
freenode.sasl_mechanism freenode.sasl_mechanism
freenode.sasl_username freenode.sasl_username
freenode.sasl_password freenode.sasl_password
freenode.sasl_key
freenode.sasl_timeout freenode.sasl_timeout
freenode.sasl_fail
freenode.autoconnect = on freenode.autoconnect = on
freenode.autoreconnect freenode.autoreconnect
freenode.autoreconnect_delay freenode.autoreconnect_delay
freenode.nicks = "Matir,Matir~" freenode.nicks = "Matir,Matir~"
freenode.nicks_alternate
freenode.username freenode.username
freenode.realname freenode.realname
freenode.local_hostname freenode.local_hostname
@@ -170,9 +176,9 @@ freenode.anti_flood_prio_high
freenode.anti_flood_prio_low freenode.anti_flood_prio_low
freenode.away_check freenode.away_check
freenode.away_check_max_nicks freenode.away_check_max_nicks
freenode.default_msg_kick freenode.msg_kick
freenode.default_msg_part freenode.msg_part
freenode.default_msg_quit freenode.msg_quit
freenode.notify freenode.notify
hak5.addresses = "irc.hak5.org/6697" hak5.addresses = "irc.hak5.org/6697"
hak5.proxy hak5.proxy
@@ -188,17 +194,20 @@ hak5.capabilities
hak5.sasl_mechanism hak5.sasl_mechanism
hak5.sasl_username hak5.sasl_username
hak5.sasl_password hak5.sasl_password
hak5.sasl_key
hak5.sasl_timeout hak5.sasl_timeout
hak5.sasl_fail
hak5.autoconnect = on hak5.autoconnect = on
hak5.autoreconnect hak5.autoreconnect
hak5.autoreconnect_delay hak5.autoreconnect_delay
hak5.nicks hak5.nicks
hak5.nicks_alternate
hak5.username hak5.username
hak5.realname hak5.realname
hak5.local_hostname hak5.local_hostname
hak5.command hak5.command
hak5.command_delay hak5.command_delay
hak5.autojoin = "#hak5,#pineapple,#ducky,#SDR,#lanturtle" hak5.autojoin = "#hak5,#pineapple,#ducky,#SDR,#lanturtle,#bashbunny"
hak5.autorejoin hak5.autorejoin
hak5.autorejoin_delay hak5.autorejoin_delay
hak5.connection_timeout hak5.connection_timeout
@@ -206,9 +215,9 @@ hak5.anti_flood_prio_high
hak5.anti_flood_prio_low hak5.anti_flood_prio_low
hak5.away_check hak5.away_check
hak5.away_check_max_nicks hak5.away_check_max_nicks
hak5.default_msg_kick hak5.msg_kick
hak5.default_msg_part hak5.msg_part
hak5.default_msg_quit hak5.msg_quit
hak5.notify hak5.notify
rpisec.addresses = "irc.rpis.ec/6697" rpisec.addresses = "irc.rpis.ec/6697"
rpisec.proxy rpisec.proxy
@@ -224,11 +233,14 @@ rpisec.capabilities
rpisec.sasl_mechanism rpisec.sasl_mechanism
rpisec.sasl_username rpisec.sasl_username
rpisec.sasl_password rpisec.sasl_password
rpisec.sasl_key
rpisec.sasl_timeout rpisec.sasl_timeout
rpisec.sasl_fail
rpisec.autoconnect = on rpisec.autoconnect = on
rpisec.autoreconnect rpisec.autoreconnect
rpisec.autoreconnect_delay rpisec.autoreconnect_delay
rpisec.nicks rpisec.nicks
rpisec.nicks_alternate
rpisec.username rpisec.username
rpisec.realname rpisec.realname
rpisec.local_hostname rpisec.local_hostname
@@ -242,9 +254,9 @@ rpisec.anti_flood_prio_high
rpisec.anti_flood_prio_low rpisec.anti_flood_prio_low
rpisec.away_check rpisec.away_check
rpisec.away_check_max_nicks rpisec.away_check_max_nicks
rpisec.default_msg_kick rpisec.msg_kick
rpisec.default_msg_part rpisec.msg_part
rpisec.default_msg_quit rpisec.msg_quit
rpisec.notify rpisec.notify
overthewire.addresses = "ircs.overthewire.org/6697" overthewire.addresses = "ircs.overthewire.org/6697"
overthewire.proxy overthewire.proxy
@@ -260,11 +272,14 @@ overthewire.capabilities
overthewire.sasl_mechanism overthewire.sasl_mechanism
overthewire.sasl_username overthewire.sasl_username
overthewire.sasl_password overthewire.sasl_password
overthewire.sasl_key
overthewire.sasl_timeout overthewire.sasl_timeout
overthewire.sasl_fail
overthewire.autoconnect = on overthewire.autoconnect = on
overthewire.autoreconnect overthewire.autoreconnect
overthewire.autoreconnect_delay overthewire.autoreconnect_delay
overthewire.nicks overthewire.nicks
overthewire.nicks_alternate
overthewire.username overthewire.username
overthewire.realname overthewire.realname
overthewire.local_hostname overthewire.local_hostname
@@ -278,7 +293,85 @@ overthewire.anti_flood_prio_high
overthewire.anti_flood_prio_low overthewire.anti_flood_prio_low
overthewire.away_check overthewire.away_check
overthewire.away_check_max_nicks overthewire.away_check_max_nicks
overthewire.default_msg_kick overthewire.msg_kick
overthewire.default_msg_part overthewire.msg_part
overthewire.default_msg_quit overthewire.msg_quit
overthewire.notify overthewire.notify
hackint.addresses = "irc.hackint.org/9999"
hackint.proxy
hackint.ipv6
hackint.ssl = on
hackint.ssl_cert
hackint.ssl_priorities
hackint.ssl_dhkey_size
hackint.ssl_fingerprint
hackint.ssl_verify = on
hackint.password
hackint.capabilities
hackint.sasl_mechanism
hackint.sasl_username
hackint.sasl_password
hackint.sasl_key
hackint.sasl_timeout
hackint.sasl_fail
hackint.autoconnect = on
hackint.autoreconnect
hackint.autoreconnect_delay
hackint.nicks
hackint.nicks_alternate
hackint.username
hackint.realname
hackint.local_hostname
hackint.command
hackint.command_delay
hackint.autojoin
hackint.autorejoin
hackint.autorejoin_delay
hackint.connection_timeout
hackint.anti_flood_prio_high
hackint.anti_flood_prio_low
hackint.away_check
hackint.away_check_max_nicks
hackint.msg_kick
hackint.msg_part
hackint.msg_quit
hackint.notify
afternet.addresses = "irc.afternet.org/6697"
afternet.proxy
afternet.ipv6
afternet.ssl = on
afternet.ssl_cert
afternet.ssl_priorities
afternet.ssl_dhkey_size
afternet.ssl_fingerprint
afternet.ssl_verify = on
afternet.password
afternet.capabilities
afternet.sasl_mechanism
afternet.sasl_username
afternet.sasl_password
afternet.sasl_key
afternet.sasl_timeout
afternet.sasl_fail
afternet.autoconnect = on
afternet.autoreconnect
afternet.autoreconnect_delay
afternet.nicks
afternet.nicks_alternate
afternet.username
afternet.realname
afternet.local_hostname
afternet.command
afternet.command_delay
afternet.autojoin = "#eevblog"
afternet.autorejoin
afternet.autorejoin_delay
afternet.connection_timeout
afternet.anti_flood_prio_high
afternet.anti_flood_prio_low
afternet.away_check
afternet.away_check_max_nicks
afternet.msg_kick
afternet.msg_part
afternet.msg_quit
afternet.notify

View File

@@ -1,5 +1,5 @@
# #
# logger.conf -- weechat v1.0.1 # weechat -- logger.conf
# #
[look] [look]

View File

@@ -1,10 +1,11 @@
# #
# plugins.conf -- weechat v1.0.1 # weechat -- plugins.conf
# #
[var] [var]
fifo.fifo = "on" fifo.fifo = "on"
guile.check_license = "off" guile.check_license = "off"
javascript.check_license = "off"
lua.check_license = "off" lua.check_license = "off"
perl.check_license = "off" perl.check_license = "off"
python.check_license = "off" python.check_license = "off"

View File

@@ -1,5 +1,5 @@
# #
# relay.conf -- weechat v1.0.1 # weechat -- relay.conf
# #
[look] [look]
@@ -18,6 +18,7 @@ text_bg = default
text_selected = white text_selected = white
[network] [network]
allow_empty_password = off
allowed_ips = "" allowed_ips = ""
bind_address = "" bind_address = ""
clients_purge_delay = 0 clients_purge_delay = 0
@@ -26,12 +27,14 @@ ipv6 = on
max_clients = 5 max_clients = 5
password = "${sec.data.relay_password}" password = "${sec.data.relay_password}"
ssl_cert_key = "%h/ssl/relay.pem" ssl_cert_key = "%h/ssl/relay.pem"
ssl_priorities = "NORMAL:-VERS-SSL3.0"
websocket_allowed_origins = "" websocket_allowed_origins = ""
[irc] [irc]
backlog_max_minutes = 1440 backlog_max_minutes = 1440
backlog_max_number = 256 backlog_max_number = 256
backlog_since_last_disconnect = on backlog_since_last_disconnect = on
backlog_since_last_message = off
backlog_tags = "irc_privmsg" backlog_tags = "irc_privmsg"
backlog_time_format = "[%H:%M] " backlog_time_format = "[%H:%M] "

View File

@@ -1,5 +1,5 @@
# #
# script.conf -- weechat v1.0.1 # weechat -- script.conf
# #
[look] [look]
@@ -43,6 +43,8 @@ text_version_selected = lightmagenta
[scripts] [scripts]
autoload = on autoload = on
cache_expire = 1440 cache_expire = 1440
dir = "%h/script" download_timeout = 30
hold = "" hold = ""
path = "%h/script"
url = "http://weechat.org/files/plugins.xml.gz" url = "http://weechat.org/files/plugins.xml.gz"
url_force_https = on

View File

@@ -1,5 +1,5 @@
# #
# sec.conf -- weechat v1.0.1 # weechat -- sec.conf
# #
[crypt] [crypt]
@@ -10,4 +10,4 @@ salt = on
[data] [data]
__passphrase__ = on __passphrase__ = on
relay_password = "F72F34E668B7CE288A36F20629885B9A985EAE9ED04E80C37BF6176FAF8404EE3E0D5D22A6C8E7681ACC0899FB888436AF200183A27591" relay_password = "D1FD30C08951B1A5BCBBB7EE6AAFB6AF9B86017B353182A1CA8826D5A98EB88E7E723591C544FC41A6913EA67E8764E50BDD8A5AD3D0A0"

View File

@@ -1,5 +1,5 @@
# #
# trigger.conf -- weechat v1.0.1 # weechat -- trigger.conf
# #
[look] [look]
@@ -9,6 +9,7 @@ monitor_strip_colors = off
[color] [color]
flag_command = lightgreen flag_command = lightgreen
flag_conditions = yellow flag_conditions = yellow
flag_post_action = lightblue
flag_regex = lightcyan flag_regex = lightcyan
flag_return_code = lightmagenta flag_return_code = lightmagenta
regex = white regex = white
@@ -22,6 +23,7 @@ beep.command = "/print -beep"
beep.conditions = "${tg_highlight} || ${tg_msg_pv}" beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
beep.enabled = on beep.enabled = on
beep.hook = print beep.hook = print
beep.post_action = none
beep.regex = "" beep.regex = ""
beep.return_code = ok beep.return_code = ok
cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
@@ -29,6 +31,7 @@ cmd_pass.command = ""
cmd_pass.conditions = "" cmd_pass.conditions = ""
cmd_pass.enabled = on cmd_pass.enabled = on
cmd_pass.hook = modifier cmd_pass.hook = modifier
cmd_pass.post_action = none
cmd_pass.regex = "==^((/(msg|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==$1$.*+" cmd_pass.regex = "==^((/(msg|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==$1$.*+"
cmd_pass.return_code = ok cmd_pass.return_code = ok
msg_auth.arguments = "5000|irc_message_auth" msg_auth.arguments = "5000|irc_message_auth"
@@ -36,6 +39,7 @@ msg_auth.command = ""
msg_auth.conditions = "" msg_auth.conditions = ""
msg_auth.enabled = on msg_auth.enabled = on
msg_auth.hook = modifier msg_auth.hook = modifier
msg_auth.post_action = none
msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==$1$.*+" msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==$1$.*+"
msg_auth.return_code = ok msg_auth.return_code = ok
server_pass.arguments = "5000|input_text_display;5000|history_add" server_pass.arguments = "5000|input_text_display;5000|history_add"
@@ -43,5 +47,6 @@ server_pass.command = ""
server_pass.conditions = "" server_pass.conditions = ""
server_pass.enabled = on server_pass.enabled = on
server_pass.hook = modifier server_pass.hook = modifier
server_pass.post_action = none
server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==$1$.*4$5" server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==$1$.*4$5"
server_pass.return_code = ok server_pass.return_code = ok

View File

@@ -1,5 +1,5 @@
# #
# weechat.conf -- weechat v1.0.1 # weechat -- weechat.conf
# #
[debug] [debug]
@@ -38,7 +38,9 @@ color_nick_offline = off
color_pairs_auto_reset = 5 color_pairs_auto_reset = 5
color_real_white = off color_real_white = off
command_chars = "" command_chars = ""
command_incomplete = off
confirm_quit = off confirm_quit = off
confirm_upgrade = off
day_change = on day_change = on
day_change_message_1date = "-- %a, %d %b %Y --" day_change_message_1date = "-- %a, %d %b %Y --"
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --" day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
@@ -65,17 +67,24 @@ input_cursor_scroll = 20
input_share = none input_share = none
input_share_overwrite = off input_share_overwrite = off
input_undo_max = 32 input_undo_max = 32
item_away_message = on
item_buffer_filter = "*" item_buffer_filter = "*"
item_buffer_zoom = "!" item_buffer_zoom = "!"
item_mouse_status = "M"
item_time_format = "%H:%M" item_time_format = "%H:%M"
jump_current_to_previous_buffer = on jump_current_to_previous_buffer = on
jump_previous_buffer_when_closing = on jump_previous_buffer_when_closing = on
jump_smart_back_to_buffer = on jump_smart_back_to_buffer = on
key_bind_safe = on key_bind_safe = on
key_grab_delay = 800
mouse = off mouse = off
mouse_timer_delay = 100 mouse_timer_delay = 100
nick_color_force = ""
nick_color_hash = djb2
nick_color_stop_chars = "_|["
nick_prefix = "" nick_prefix = ""
nick_suffix = "" nick_suffix = ""
paste_auto_add_newline = on
paste_bracketed = on paste_bracketed = on
paste_bracketed_timer_delay = 10 paste_bracketed_timer_delay = 10
paste_max_lines = 1 paste_max_lines = 1
@@ -95,6 +104,9 @@ prefix_network = "--"
prefix_quit = "<--" prefix_quit = "<--"
prefix_same_nick = "" prefix_same_nick = ""
prefix_suffix = "|" prefix_suffix = "|"
quote_nick_prefix = "<"
quote_nick_suffix = ">"
quote_time_format = "%H:%M:%S"
read_marker = line read_marker = line
read_marker_always_show = off read_marker_always_show = off
read_marker_string = "- " read_marker_string = "- "
@@ -112,6 +124,8 @@ window_auto_zoom = off
window_separator_horizontal = on window_separator_horizontal = on
window_separator_vertical = on window_separator_vertical = on
window_title = "irc" window_title = "irc"
word_chars_highlight = "!\u00A0,-,_,|,alnum"
word_chars_input = "!\u00A0,-,_,|,alnum"
[palette] [palette]
@@ -155,13 +169,14 @@ chat_text_found_bg = lightmagenta
chat_time = default chat_time = default
chat_time_delimiters = brown chat_time_delimiters = brown
chat_value = cyan chat_value = cyan
chat_value_null = blue
emphasized = yellow emphasized = yellow
emphasized_bg = magenta emphasized_bg = magenta
input_actions = lightgreen input_actions = lightgreen
input_text_not_found = red input_text_not_found = red
item_away = yellow
nicklist_away = cyan nicklist_away = cyan
nicklist_group = green nicklist_group = green
nicklist_offline = blue
separator = blue separator = blue
status_count_highlight = magenta status_count_highlight = magenta
status_count_msg = brown status_count_msg = brown
@@ -173,6 +188,7 @@ status_data_other = default
status_data_private = lightgreen status_data_private = lightgreen
status_filter = green status_filter = green
status_more = yellow status_more = yellow
status_mouse = green
status_name = white status_name = white
status_name_ssl = lightgreen status_name_ssl = lightgreen
status_nicklist_count = default status_nicklist_count = default
@@ -181,6 +197,7 @@ status_time = default
[completion] [completion]
base_word_until_cursor = on base_word_until_cursor = on
command_inline = on
default_template = "%(nicks)|%(irc_channels)" default_template = "%(nicks)|%(irc_channels)"
nick_add_space = on nick_add_space = on
nick_completer = ":" nick_completer = ":"
@@ -203,7 +220,7 @@ max_visited_buffers = 50
[network] [network]
connection_timeout = 60 connection_timeout = 60
gnutls_ca_file = "/etc/ssl/certs/ca-certificates.crt" gnutls_ca_file = "~/.weechat/certs/ca-certificates.crt"
gnutls_handshake_timeout = 30 gnutls_handshake_timeout = 30
proxy_curl = "" proxy_curl = ""

View File

@@ -1,5 +1,5 @@
# #
# xfer.conf -- weechat v1.0.1 # weechat -- xfer.conf
# #
[look] [look]

View File

@@ -1,3 +1,4 @@
setxkbmap -option ctrl:nocaps setxkbmap -option ctrl:nocaps -option compose:ralt
test -x /usr/bin/xsettingsd && /usr/bin/xsettingsd &
test -f "$HOME/.env" && "$HOME/.env" test -f "$HOME/.env" && "$HOME/.env"
test -f "$HOME/.profile" && . "$HOME/.profile" test -f "$HOME/.profile" && . "$HOME/.profile"

45
dotfiles/xsettingsd Normal file
View File

@@ -0,0 +1,45 @@
Gdk/UnscaledDPI 98304
Gdk/WindowScalingFactor 1
Gtk/AutoMnemonics 1
Gtk/ButtonImages 0
Gtk/CanChangeAccels 0
Gtk/ColorPalette "black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90"
Gtk/ColorScheme ""
Gtk/CursorBlinkTimeout 10
Gtk/CursorThemeName "Adwaita"
Gtk/CursorThemeSize 24
Gtk/DecorationLayout "menu:minimize,maximize,close"
Gtk/EnableAnimations 1
Gtk/FontName "Sans 9"
Gtk/IMModule ""
Gtk/IMPreeditStyle "callback"
Gtk/IMStatusStyle "callback"
Gtk/KeyThemeName "Default"
Gtk/MenuBarAccel "F10"
Gtk/MenuImages 0
Gtk/Modules ""
Gtk/RecentFilesEnabled 0
Gtk/RecentFilesMaxAge -1
Gtk/ShellShowsAppMenu 0
Gtk/ShellShowsMenubar 0
Gtk/ShowInputMethodMenu 1
Gtk/ShowUnicodeMenu 1
Gtk/TimeoutInitial 200
Gtk/TimeoutRepeat 20
Gtk/ToolbarIconSize "large"
Gtk/ToolbarStyle "both-horiz"
Net/CursorBlink 1
Net/CursorBlinkTime 1200
Net/DndDragThreshold 8
Net/DoubleClickTime 400
Net/EnableEventSounds 0
Net/EnableInputFeedbackSounds 0
Net/FallbackIconTheme "gnome"
Net/IconThemeName "Humanity"
Net/SoundThemeName "freedesktop"
Net/ThemeName "Ambiance"
Xft/Antialias 1
Xft/DPI 98304
Xft/Hinting 1
Xft/HintStyle "hintslight"
Xft/RGBA "rgb"

8
dotfiles/zlogin Normal file
View File

@@ -0,0 +1,8 @@
# Execute code that does not affect the current session in the background.
{
# Compile the completion dump to increase startup speed.
zcompdump="${ZDOTDIR:-$HOME}/.zcompdump"
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
zcompile "$zcompdump"
fi
} &!

View File

@@ -60,6 +60,7 @@ function jekyll {
local DATE local DATE
local NEWNAME local NEWNAME
local JEKYLL_DIR local JEKYLL_DIR
local EDITOR=${EDITOR:-vim}
JEKYLL_DIR=`_jekyll_locate_dir` JEKYLL_DIR=`_jekyll_locate_dir`
@@ -73,17 +74,23 @@ function jekyll {
JTEMPLATE+="category: Blog\n" JTEMPLATE+="category: Blog\n"
JTEMPLATE+="---\n\n" JTEMPLATE+="---\n\n"
TITLE=${@[2,-1]} TITLE=${@[2,-1]}
SLUG=$(echo -n ${TITLE}|tr A-Z a-z|tr -c -s -- a-z0-9 -) SLUG=$(echo -n ${TITLE} |
tr A-Z a-z | # Everything in lower case
tr -d "'" | # Remove single quotes entirely
tr -c -s -- a-z0-9 - | # Replace non-alphanums with dashes
sed 's/^-*\([^-].*[^-]\)-*$/\1/' # Remove leading and trailing slashes
)
DATE=`date +%Y-%m-%d` DATE=`date +%Y-%m-%d`
case "${1:-help}" in case "${1:-help}" in
help|--help) help|--help)
command jekyll help command jekyll help
echo "Added by oh-my-zsh plugin:" echo "Added by zsh plugin:"
echo " draft Create a new draft post." echo " draft Create a new draft post."
echo " post Create a new post to publish immediately." echo " post Create a new post to publish immediately."
echo " publish Publish a draft post by name." echo " publish Publish a draft post by name."
echo " edit Edit a post." echo " edit Edit a post."
echo " dev Run local server with drafts and incremental."
;; ;;
draft) draft)
if [ -z "${SLUG}" ] ; then if [ -z "${SLUG}" ] ; then
@@ -93,7 +100,7 @@ function jekyll {
mkdir -p "${JEKYLL_DIR}/_drafts" mkdir -p "${JEKYLL_DIR}/_drafts"
FILENAME="${JEKYLL_DIR}/_drafts/${SLUG}.md" FILENAME="${JEKYLL_DIR}/_drafts/${SLUG}.md"
printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}" printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}"
vim "${FILENAME}" '+$' '+startinsert' ${EDITOR} "${FILENAME}" '+$' '+startinsert'
;; ;;
post) post)
if [ -z "${SLUG}" ] ; then if [ -z "${SLUG}" ] ; then
@@ -103,7 +110,7 @@ function jekyll {
FILENAME="${JEKYLL_DIR}/_posts/${DATE}-${SLUG}.md" FILENAME="${JEKYLL_DIR}/_posts/${DATE}-${SLUG}.md"
printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}" printf -- "${JTEMPLATE}" "${TITLE}" > "${FILENAME}"
_jekyll_set_date "${FILENAME}" "${DATE}" _jekyll_set_date "${FILENAME}" "${DATE}"
vim "${FILENAME}" '+$' '+startinsert' ${EDITOR} "${FILENAME}" '+$' '+startinsert'
;; ;;
publish) publish)
if [ -z "${SLUG}" ] ; then if [ -z "${SLUG}" ] ; then
@@ -112,11 +119,11 @@ function jekyll {
fi fi
FILENAME=$(_jekyll_find_post "${TITLE}" "${SLUG}" "${JEKYLL_DIR}") FILENAME=$(_jekyll_find_post "${TITLE}" "${SLUG}" "${JEKYLL_DIR}")
if [ $? -ne 0 ] ; then if [ $? -ne 0 ] ; then
return return 1
fi fi
if ! [[ "${FILENAME}" =~ '/_drafts/' ]] ; then if ! [[ "${FILENAME}" =~ '/_drafts/' ]] ; then
echo "${FILENAME} is not a draft." >&2 echo "${FILENAME} is not a draft." >&2
return return 1
fi fi
NEWNAME=$(echo "${FILENAME}" | sed "s/_drafts\//_posts\/${DATE}-/") NEWNAME=$(echo "${FILENAME}" | sed "s/_drafts\//_posts\/${DATE}-/")
mv "${FILENAME}" "${NEWNAME}" mv "${FILENAME}" "${NEWNAME}"
@@ -131,7 +138,10 @@ function jekyll {
if [ $? -ne 0 ] ; then if [ $? -ne 0 ] ; then
return return
fi fi
vim "${FILENAME}" ${EDITOR} "${FILENAME}"
;;
dev)
command jekyll serve -D -I "$@"
;; ;;
*) *)
command jekyll "$@" command jekyll "$@"

View File

@@ -0,0 +1,69 @@
# vim: syntax=zsh
function prompt_matir_setup {
autoload -Uz add-zsh-hook
autoload -Uz vcs_info
autoload -Uz colors
prompt_opts=(sp subst cr percent)
colors
add-zsh-hook precmd prompt_matir_precmd
# Git related styles
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' formats ' (%b%u%c)'
zstyle ':vcs_info:*' stagedstr '*'
zstyle ':vcs_info:*' unstagedstr '*'
zstyle ':vcs_info:git*+set-message:*' hooks git-untracked
# Virtualenv formatting
zstyle ':prezto:module:python:info:virtualenv' format ' (py:%v)'
PROMPT='%{$fg[black]%}[%{$fg[yellow]%}%h%{$fg[black]%}] ' # History #
PROMPT+='%{%(!.$fg[red].$fg[green])%}%8>..>%n%>>%{$fg[white]%}@' # username@
PROMPT+='%{$fg[blue]%}%12>..>%m%>>%{$fg[white]%}:' # hostname
PROMPT+='%{$fg[green]%}%32<...<%~%<<' # path
PROMPT+='%{$fg[magenta]%}${python_info[virtualenv]}' # virtualenv
PROMPT+='%{$fg[blue]%}${vcs_info_msg_0_}' # VCS info
PROMPT+='%{$fg[white]%}%#%{$reset_color%} ' # prompt symbol
# Editor options
zstyle ':prezto:module:editor:info:keymap:primary' format ''
zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I'
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O'
zstyle ':prezto:module:editor:info:keymap:alternate' format ' [VICMD]'
zstyle ':prezto:module:editor:info:completing' format '...'
# Rprompt setup
local show_return="✘ "
# Default is to show the return value
if zstyle -T ':prezto:module:prompt' show-return-val; then
show_return+='%? '
fi
RPROMPT='%(?:: %{$fg[red]%}'
RPROMPT+=${show_return}
RPROMPT+='%{$reset_color%})'
RPROMPT+='${editor_info[keymap]}'
}
function prompt_matir_precmd {
vcs_info
if (( $+functions[python-info] )); then
python-info
fi
}
### git: Show marker (*) if there are untracked files in repository
# Make sure you have added staged to your 'formats': %c
+vi-git-untracked(){
if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == 'true' ]] && \
git status --porcelain | grep '??' &> /dev/null ; then
hook_com[staged]+='*'
fi
}
prompt_matir_setup "$@"

File diff suppressed because it is too large Load Diff

232
dotfiles/zpreztorc Normal file
View File

@@ -0,0 +1,232 @@
#
# Sets Prezto options.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
#
# General
#
# Set case-sensitivity for completion, history lookup, etc.
# zstyle ':prezto:*:*' case-sensitive 'yes'
# Color output (auto set to 'no' on dumb terminals).
zstyle ':prezto:*:*' color 'yes'
# Add additional directories to load prezto modules from
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto_custom
# Set the Zsh modules to load (man zshmodules).
# zstyle ':prezto:load' zmodule 'attr' 'stat'
# Set the Zsh functions to load (man zshcontrib).
# zstyle ':prezto:load' zfunction 'zargs' 'zmv'
# Set the Prezto modules to load (browse modules).
# The order matters.
zstyle ':prezto:load' pmodule \
'environment' \
'terminal' \
'editor' \
'history' \
'directory' \
'spectrum' \
'utility' \
'completion' \
'matir' \
'tmux' \
'git' \
'gpg' \
'python' \
'ruby' \
'syntax-highlighting' \
'history-substring-search' \
'jekyll' \
'prompt' \
'xtra_completions'
#
# Autosuggestions
#
# Set the query found color.
# zstyle ':prezto:module:autosuggestions:color' found ''
#
# Completions
#
# No groups of completions.
zstyle ':completion:*' format ''
# Set the entries to ignore in static */etc/hosts* for host completion.
# zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
# '0.0.0.0' '127.0.0.1'
#
# Editor
#
# Set the key mapping style to 'emacs' or 'vi'.
zstyle ':prezto:module:editor' key-bindings 'vi'
# Auto convert .... to ../..
# zstyle ':prezto:module:editor' dot-expansion 'yes'
#
# Git
#
# Ignore submodules when they are 'dirty', 'untracked', 'all', or 'none'.
# zstyle ':prezto:module:git:status:ignore' submodules 'all'
#
# GNU Utility
#
# Set the command prefix on non-GNU systems.
zstyle ':prezto:module:gnu-utility' prefix 'g'
#
# History Substring Search
#
# Set the query found color.
# zstyle ':prezto:module:history-substring-search:color' found ''
# Set the query not found color.
# zstyle ':prezto:module:history-substring-search:color' not-found ''
# Set the search globbing flags.
# zstyle ':prezto:module:history-substring-search' globbing-flags ''
#
# OS X
#
# Set the keyword used by `mand` to open man pages in Dash.app
# zstyle ':prezto:module:osx:man' dash-keyword 'manpages'
#
# Pacman
#
# Set the Pacman frontend.
# zstyle ':prezto:module:pacman' frontend 'yaourt'
#
# Prompt
#
# Set the prompt theme to load.
# Setting it to 'random' loads a random theme.
# Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'matir'
# Set the working directory prompt display length.
# By default, it is set to 'short'. Set it to 'long' (without '~' expansion)
# for longer or 'full' (with '~' expansion) for even longer prompt display.
# zstyle ':prezto:module:prompt' pwd-length 'short'
# Set the prompt to display the return code along with an indicator for non-zero
# return codes. This is not supported by all prompts.
# zstyle ':prezto:module:prompt' show-return-val 'yes'
#
# Ruby
#
# Auto switch the Ruby version on directory change.
# zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
#
# Python
#
# Auto switch the Python virtualenv on directory change.
# zstyle ':prezto:module:python:virtualenv' auto-switch 'yes'
# Automatically initialize virtualenvwrapper if pre-requisites are met.
zstyle ':prezto:module:python:virtualenv' initialize 'yes'
#
# Screen
#
# Auto start a session when Zsh is launched in a local terminal.
# zstyle ':prezto:module:screen:auto-start' local 'yes'
# Auto start a session when Zsh is launched in a SSH connection.
# zstyle ':prezto:module:screen:auto-start' remote 'yes'
#
# SSH
#
# Set the SSH identities to load into the agent.
# zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_rsa2' 'id_github'
#
# Syntax Highlighting
#
# Set syntax highlighters.
# By default, only the main highlighter is enabled.
zstyle ':prezto:module:syntax-highlighting' highlighters \
'main' \
'brackets' \
'pattern' \
'line' \
'root'
# Set syntax highlighting styles.
# zstyle ':prezto:module:syntax-highlighting' styles \
# 'builtin' 'bg=blue' \
# 'command' 'bg=blue' \
# 'function' 'bg=blue'
#
# Set syntax pattern styles.
# zstyle ':prezto:module:syntax-highlighting' pattern \
# 'rm*-rf*' 'fg=white,bold,bg=red'
#
# Terminal
#
# Auto set the tab and window titles.
zstyle ':prezto:module:terminal' auto-title 'yes'
# Set the window title format.
zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
# Set the tab title format.
zstyle ':prezto:module:terminal:tab-title' format '%m: %s'
# Set the terminal multiplexer title format.
zstyle ':prezto:module:terminal:multiplexer-title' format '%s'
#
# Tmux
#
# Auto start a session when Zsh is launched in a local terminal.
zstyle ':prezto:module:tmux:auto-start' local 'no'
# Auto start a session when Zsh is launched in a SSH connection.
zstyle ':prezto:module:tmux:auto-start' remote 'no'
# Integrate with iTerm2.
# zstyle ':prezto:module:tmux:iterm' integrate 'yes'
# Set the default session name:
# zstyle ':prezto:module:tmux:session' name 'YOUR DEFAULT SESSION NAME'
#
# Utility
#
# Enabled safe options. This aliases cp, ln, mv and rm so that they prompt
# before deleting or overwriting files. Set to 'no' to disable this safer
# behavior.
zstyle ':prezto:module:utility' safe-ops 'no'

View File

@@ -1,59 +0,0 @@
# Custom plugin to handle gpg-agent 2.1
local GPG_ENV=$HOME/.gnupg/gpg-agent.env
function start_agent_nossh {
eval $(/usr/bin/env gpg-agent --quiet --daemon --write-env-file ${GPG_ENV} 2> /dev/null)
chmod 600 ${GPG_ENV}
export GPG_AGENT_INFO
}
function start_agent_withssh {
eval $(/usr/bin/env gpg-agent --quiet --daemon --enable-ssh-support --write-env-file ${GPG_ENV} 2> /dev/null)
chmod 600 ${GPG_ENV}
export GPG_AGENT_INFO
export SSH_AUTH_SOCK
export SSH_AGENT_PID
}
if [ -z "${GPG_AGENT_INFO}" ] ; then
if which gpgconf >/dev/null 2>&1 ; then
GPG_AGENT_INFO=$(gpgconf --list-dirs agent-socket)
export GPG_AGENT_INFO
if [ -z "${SSH_AUTH_SOCK}" ] ; then
SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
export SSH_AUTH_SOCK
fi
fi
fi
# check if another agent is running
if ! gpg-connect-agent --agent-program /dev/null --quiet /bye > /dev/null 2> /dev/null; then
# source settings of old agent, if applicable
if [ -f "${GPG_ENV}" ]; then
# This can be clobbered by the file
local OLD_SSH_AUTH_SOCK=${SSH_AUTH_SOCK}
. ${GPG_ENV} > /dev/null
export GPG_AGENT_INFO
export SSH_AUTH_SOCK
export SSH_AGENT_PID
fi
# check again if another agent is running using the newly sourced settings
if ! gpg-connect-agent --agent-program /dev/null --quiet /bye > /dev/null 2> /dev/null; then
# check for existing ssh-agent
if [ -n "${OLD_SSH_AUTH_SOCK}" ] ; then
SSH_AUTH_SOCK=${OLD_SSH_AUTH_SOCK};export SSH_AUTH_SOCK
fi
if ssh-add -l > /dev/null 2> /dev/null; then
# ssh-agent running, start gpg-agent without ssh support
start_agent_nossh;
else
# otherwise start gpg-agent with ssh support
start_agent_withssh;
fi
fi
fi
GPG_TTY=$(tty)
export GPG_TTY

View File

@@ -1,7 +0,0 @@
PROMPT='%{$fg[black]%}[%{$fg[yellow]%}%h%{$fg[black]%}] %{%(!.$fg[red].$fg[green])%}%8>..>%n%>>%{$fg[white]%}@%{$fg[blue]%}%12>..>%m%>>%{$fg[white]%}:%{$fg[green]%}%32<...<%~%<<%{$fg[magenta]%}$(virtualenv_prompt_info)%{$fg[blue]%}$(git_prompt_info)%{$fg[white]%}%#%{$reset_color%} '
ZSH_THEME_GIT_PROMPT_PREFIX=" ("
ZSH_THEME_GIT_PROMPT_SUFFIX=")"
ZSH_THEME_VIRTUALENV_PREFIX=" (py:"
ZSH_THEME_VIRTUALENV_SUFFIX=")"
# vim: set textwidth=0 wrapmargin=0:

View File

@@ -1,13 +1,13 @@
# For interactive shells # For interactive shells
HISTFILE=~/.histfile HISTFILE=~/.zhistory
HISTSIZE=1000 HISTSIZE=10000
SAVEHIST=1000 SAVEHIST=10000
setopt appendhistory autocd autopushd extendedglob nohup nomatch histignorespace histlexwords histverify cbases setopt appendhistory autocd autopushd extendedglob nohup nomatch histignorespace histlexwords histverify cbases
unsetopt beep histbeep listbeep flowcontrol unsetopt beep histbeep listbeep flowcontrol
bindkey -e bindkey -v
# Completion # Completion
zstyle :compinstall filename '/home/david/.zshrc' zstyle :compinstall filename "${HOME}/.zshrc"
autoload -Uz compinit && compinit autoload -Uz compinit && compinit
DIRSTACKSIZE=16 DIRSTACKSIZE=16
@@ -20,24 +20,26 @@ esac
autoload -U colors && colors autoload -U colors && colors
PS1="%{$fg[black]%}[%{$fg[yellow]%}%h%{$fg[black]%}] %{%(!.$fg[red].$fg[green])%}%8>..>%n%>>%{$fg[white]%}@%{$fg[blue]%}%12>..>%m%>>%{$fg[white]%}:%{$fg[green]%}%32<...<%~%<<%{$fg[white]%}%#%{$reset_color%} " PS1="%{$fg[black]%}[%{$fg[yellow]%}%h%{$fg[black]%}] %{%(!.$fg[red].$fg[green])%}%8>..>%n%>>%{$fg[white]%}@%{$fg[blue]%}%12>..>%m%>>%{$fg[white]%}:%{$fg[green]%}%32<...<%~%<<%{$fg[white]%}%#%{$reset_color%} "
# LS Colors if [ `uname` != 'Darwin' ] ; then
alias ls='ls --color' # ls Colors
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} alias ls='ls --color'
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
# Load oh-my-zsh else
if [ -d $HOME/.oh-my-zsh ] ; then alias ls='ls -G'
ZSH=$HOME/.oh-my-zsh
ZSH_THEME="matir"
ZSH_CUSTOM="$HOME/.zsh_custom"
plugins=(encode64 gpg-agent pep8 pip python tmux urltools extract sudo virsh virtualenv jekyll metasploit gcloud safe-paste)
test -f /usr/share/virtualenvwrapper/virtualenvwrapper.sh && plugins+=(virtualenvwrapper)
source $ZSH/oh-my-zsh.sh
unset ZSH_THEME
unset ZSH_CUSTOM
fi fi
# Load prezto
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
fi
# noglob scp is so annoying
unalias scp
# Overrides to prezto
unsetopt cdablevars
# .profile is universal # .profile is universal
# but after oh-my-zsh to use anything setup there # but after zprezto to use/override anything setup there
. ~/.profile . ~/.profile
# Deduplicate the path # Deduplicate the path
typeset -U path typeset -U path
@@ -46,8 +48,17 @@ typeset -U path
# Keybindings # Keybindings
bindkey '^[[A' history-search-backward bindkey '^[[A' history-search-backward
bindkey '^[[B' history-search-forward bindkey '^[[B' history-search-forward
# ctrl-arrow keys
bindkey '^[[1;5C' forward-word bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word bindkey '^[[1;5D' backward-word
bindkey '^P' up-history
bindkey '^N' down-history
bindkey '^?' backward-delete-char
bindkey '^h' backward-delete-char
# ok, a few convenience bindings
bindkey '^w' backward-kill-word
bindkey '^r' history-incremental-search-backward
# Source extras and aliases if interactive # Source extras and aliases if interactive
if [[ $- == *i* ]] ; then if [[ $- == *i* ]] ; then
@@ -60,14 +71,10 @@ if [ -x /usr/bin/ack-grep ] ; then
alias ack='/usr/bin/ack-grep' alias ack='/usr/bin/ack-grep'
fi fi
# Most is nice, if we have it
if command -v most >/dev/null 2>&1; then
export PAGER="most"
fi
# Load any local settings # Load any local settings
if [ -e $HOME/.zshrc.local ] ; then source $HOME/.zshrc.local ; fi if [ -e $HOME/.zshrc.local ] ; then source $HOME/.zshrc.local ; fi
function start_esp {
if [ ! -d ${HOME}/tools/esp ] ; then
echo "ESP not installed!" >/dev/stderr
return 1
fi
export PATH="${PATH}:${HOME}/tools/esp/xtensa-esp32-elf/bin"
export IDF_PATH="${HOME}/tools/esp/esp-idf"
}

View File

@@ -1,17 +1,46 @@
#!/bin/bash #!/usr/bin/env bash
set -o nounset set -o nounset
set -o errexit set -o errexit
function prerequisites { case $(uname) in
Linux)
FINDTYPE="-xtype"
;;
Darwin|*BSD)
FINDTYPE="-type"
;;
*)
echo "Unknown OS: $(uname), guessing no GNU utils."
FINDTYPE="-type"
;;
esac
is_comment() {
if [ $(echo "${1}" | cut -c1-1) = '#' ] ; then
true
else
false
fi
}
prerequisites() {
if which zsh > /dev/null 2>&1 ; then if which zsh > /dev/null 2>&1 ; then
if [[ $- == *i* ]] ; then case $- in
if [[ `getent passwd $USER | cut -d: -f7` != */zsh ]] ; then *i*)
case `getent passwd $USER | cut -d: -f7` in
*/zsh)
;;
*)
if [ `id` -ne 0 ] ; then
echo 'Enter password to change shell.' >&2 echo 'Enter password to change shell.' >&2
fi
chsh -s `which zsh` chsh -s `which zsh`
fi ;;
fi esac
install_git https://github.com/robbyrussell/oh-my-zsh.git $HOME/.oh-my-zsh ;;
esac
install_git --recursive https://github.com/sorin-ionescu/prezto.git $HOME/.zprezto
else else
echo "ZSH not found!" >&2 echo "ZSH not found!" >&2
fi fi
@@ -22,7 +51,7 @@ function prerequisites {
fi fi
} }
function install_dotfile_dir { install_dotfile_dir() {
local SRCDIR="${1}" local SRCDIR="${1}"
local dotfile local dotfile
find "${SRCDIR}" \( -name .git -o \ find "${SRCDIR}" \( -name .git -o \
@@ -30,7 +59,7 @@ function install_dotfile_dir {
-name install.sh -o \ -name install.sh -o \
-name README.md -o \ -name README.md -o \
-name .gitignore \) \ -name .gitignore \) \
-prune -o -xtype f -print | \ -prune -o ${FINDTYPE} f -print | \
while read dotfile ; do while read dotfile ; do
local TARGET="${HOME}/.${dotfile#${SRCDIR}/}" local TARGET="${HOME}/.${dotfile#${SRCDIR}/}"
mkdir -p `dirname "${TARGET}"` mkdir -p `dirname "${TARGET}"`
@@ -38,11 +67,11 @@ function install_dotfile_dir {
done done
} }
function install_basic_dir { install_basic_dir() {
local SRCDIR="${1}" local SRCDIR="${1}"
local DESTDIR="${2}" local DESTDIR="${2}"
local file local file
find "${SRCDIR}" -xtype f -print | \ find "${SRCDIR}" ${FINDTYPE} f -print | \
while read file ; do while read file ; do
local TARGET="${2}/${file#${SRCDIR}/}" local TARGET="${2}/${file#${SRCDIR}/}"
mkdir -p `dirname "${TARGET}"` mkdir -p `dirname "${TARGET}"`
@@ -50,7 +79,7 @@ function install_basic_dir {
done done
} }
function install_git { install_git() {
# Install or update a git repository # Install or update a git repository
if ! which git > /dev/null ; then if ! which git > /dev/null ; then
return 1 return 1
@@ -58,10 +87,10 @@ function install_git {
local REPO="${*: -2:1}" local REPO="${*: -2:1}"
local DESTDIR="${*: -1:1}" local DESTDIR="${*: -1:1}"
set -- ${@:1:$(($#-2))} set -- ${@:1:$(($#-2))}
if [[ -d ${DESTDIR}/.git ]] ; then if [ -d ${DESTDIR}/.git ] ; then
( cd ${DESTDIR} ; git pull -q ) ( cd ${DESTDIR} ; git pull -q )
else else
if [[ ${MINIMAL} -eq 1 ]] ; then if [ ${MINIMAL} -eq 1 ] ; then
git clone --depth 1 $* ${REPO} ${DESTDIR} git clone --depth 1 $* ${REPO} ${DESTDIR}
else else
git clone $* ${REPO} ${DESTDIR} git clone $* ${REPO} ${DESTDIR}
@@ -69,9 +98,9 @@ function install_git {
fi fi
} }
function add_bin_symlink { add_bin_symlink() {
local LINKNAME=${HOME}/bin/${2:-`basename $1`} local LINKNAME=${HOME}/bin/${2:-`basename $1`}
if [[ -e ${LINKNAME} && ! -h ${LINKNAME} ]] ; then if [ -e ${LINKNAME} -a ! -h ${LINKNAME} ] ; then
echo "Refusing to overwrite ${LINKNAME}" >&2 echo "Refusing to overwrite ${LINKNAME}" >&2
return 1 return 1
fi fi
@@ -79,7 +108,7 @@ function add_bin_symlink {
} }
# Custom version of pwndbg's installer # Custom version of pwndbg's installer
function install_pwndbg { install_pwndbg() {
if ! which gdb > /dev/null 2>&1 ; then if ! which gdb > /dev/null 2>&1 ; then
return 1 return 1
fi fi
@@ -95,56 +124,53 @@ function install_pwndbg {
cp ${PY_PACKAGES}/usr/lib/*/dist-packages/capstone/libcapstone.so ${PY_PACKAGES}/capstone cp ${PY_PACKAGES}/usr/lib/*/dist-packages/capstone/libcapstone.so ${PY_PACKAGES}/capstone
} }
function postinstall { postinstall() {
# Install Vundle plugins # Install Vundle plugins
if [[ -d $HOME/.vim/bundle/Vundle.vim ]] ; then if [ -d $HOME/.vim/bundle/Vundle.vim ] ; then
vim +VundleInstall +qall vim +VundleInstall +qall
fi fi
# Install other useful tools # Install other useful tools
install_git https://github.com/trustedsec/ptf.git ${HOME}/bin/ptframework && \ install_git https://github.com/trustedsec/ptf.git ${HOME}/bin/ptframework && \
add_bin_symlink ${HOME}/bin/ptframework/ptf add_bin_symlink ${HOME}/bin/ptframework/ptf
# Refresh all gpg keys
if test -x "`which gpg2`" ; then
gpg2 --refresh-keys
else
gpg --refresh-keys
fi
} }
function ssh_key_already_installed { ssh_key_already_installed() {
# Return 1 if the key isn't already installed, 0 if it is # Return 1 if the key isn't already installed, 0 if it is
local AK="${HOME}/.ssh/authorized_keys" local AK="${HOME}/.ssh/authorized_keys"
if [[ ! -f $AK ]] ; then if [ ! -f $AK ] ; then
return 1 return 1
fi fi
local KEYFP=`ssh-keygen -l -f $1 2>/dev/null | awk '{print $2}'` local KEYFP=`ssh-keygen -l -f $1 2>/dev/null | awk '{print $2}'`
local TMPF=`mktemp` local TMPF=`mktemp`
local key local key
while read key ; do while read key ; do
if is_comment "${key}" ; then
continue
fi
echo "$key" > $TMPF echo "$key" > $TMPF
local EFP=`ssh-keygen -l -f ${TMPF} 2>/dev/null | awk '{print $2}'` local EFP=`ssh-keygen -l -f ${TMPF} 2>/dev/null | awk '{print $2}'`
if [[ "$EFP" == "$KEYFP" ]] ; then if [ "$EFP" = "$KEYFP" ] ; then
rm $TMPF 2>/dev/null rm $TMPF 2>/dev/null
return 0 return 0
fi fi
done < <(grep -v '^#' ${AK}) done < ${AK}
rm $TMPF 2>/dev/null rm $TMPF 2>/dev/null
return 1 return 1
} }
function install_ssh_keys { install_ssh_keys() {
# Install SSH keys # Install SSH keys
verbose 'Installing SSH keys...' verbose 'Installing SSH keys...'
local AK="${HOME}/.ssh/authorized_keys" local AK="${HOME}/.ssh/authorized_keys"
local key local key
local keydir local keydir
if (( ${TRUST_ALL_KEYS} )) ; then if test ${TRUST_ALL_KEYS} = 1 ; then
keydir=${BASEDIR}/keys/ssh keydir=${BASEDIR}/keys/ssh
else else
keydir=${BASEDIR}/keys/ssh/trusted keydir=${BASEDIR}/keys/ssh/trusted
fi fi
for key in ${keydir}/* ; do for key in ${keydir}/* ; do
if [[ ! -f ${key} ]] ; then if [ ! -f "${key}" ] ; then
continue continue
fi fi
if ssh_key_already_installed "${key}" ; then if ssh_key_already_installed "${key}" ; then
@@ -156,20 +182,22 @@ function install_ssh_keys {
done done
} }
function install_gpg_keys { install_gpg_keys() {
which gpg >/dev/null 2>&1 || \
return 0
local key local key
for key in ${BASEDIR}/keys/gpg/* ; do for key in ${BASEDIR}/keys/gpg/* ; do
gpg --import < ${key} >/dev/null gpg --import < ${key} >/dev/null
done done
} }
function install_known_hosts { install_known_hosts() {
verbose 'Installing known hosts...' >&2 verbose 'Installing known hosts...' >&2
if [[ ! -f ${BASEDIR}/keys/known_hosts ]] ; then if [ ! -f "${BASEDIR}/keys/known_hosts" ] ; then
return 0 return 0
fi fi
mkdir -p ${HOME}/.ssh mkdir -p ${HOME}/.ssh
if [[ -f ${HOME}/.ssh/known_hosts ]] ; then if [ -f "${HOME}/.ssh/known_hosts" ] ; then
local tmpf=`mktemp` local tmpf=`mktemp`
cat ${BASEDIR}/keys/known_hosts ${HOME}/.ssh/known_hosts | sort | uniq > $tmpf cat ${BASEDIR}/keys/known_hosts ${HOME}/.ssh/known_hosts | sort | uniq > $tmpf
mv $tmpf ${HOME}/.ssh/known_hosts mv $tmpf ${HOME}/.ssh/known_hosts
@@ -178,22 +206,22 @@ function install_known_hosts {
fi fi
} }
function install_keys { install_keys() {
install_ssh_keys install_ssh_keys
install_gpg_keys install_gpg_keys
install_known_hosts install_known_hosts
} }
function is_deb_system { is_deb_system() {
test -f /usr/bin/apt-get test -f /usr/bin/apt-get
} }
function run_as_root { run_as_root() {
# Attempt to run as root # Attempt to run as root
if [[ ${USER} == "root" ]] ; then if [ ${USER} = "root" ] ; then
"$@" "$@"
return $? return $?
elif groups | grep -q '\bsudo\b' ; then elif test -x $(which sudo 2>/dev/null) ; then
verbose "Using sudo to run ${1}..." verbose "Using sudo to run ${1}..."
sudo "$@" sudo "$@"
return $? return $?
@@ -201,15 +229,15 @@ function run_as_root {
return 1 return 1
} }
function install_pkg_set { install_pkg_set() {
local pkg_file=${BASEDIR}/${1} local pkg_file=${BASEDIR}/${1}
local pkg_list="" local pkg_list=""
if [[ ! -f ${pkg_file} ]] ; then return 0 ; fi if [ ! -f "${pkg_file}" ] ; then return 0 ; fi
cat ${pkg_file} | while read line ; do while read line ; do
if [[ ${line:0:1} == '#' ]] ; then if is_comment "${line}" ; then
continue continue
fi fi
if [[ -z ${line} ]] ; then if [ -z "${line}" ] ; then
continue continue
fi fi
if apt-cache show ${line} >/dev/null 2>&1 ; then if apt-cache show ${line} >/dev/null 2>&1 ; then
@@ -217,22 +245,28 @@ function install_pkg_set {
else else
echo "Warning: package ${line} not found." >&2 echo "Warning: package ${line} not found." >&2
fi fi
done done < ${pkg_file}
if [ -n "${pkg_list}" ] ; then
verbose "Installing ${pkg_list}"
run_as_root apt-get install -qqy ${pkg_list} run_as_root apt-get install -qqy ${pkg_list}
fi
} }
function install_apt_pkgs { install_apt_pkgs() {
run_as_root apt-get update -qq || \ run_as_root apt-get update -qq || \
( echo "Can't run apt-get commands" >&2 && \ ( echo "Can't run apt-get commands" >&2 && \
return 1 ) return 1 )
install_pkg_set packages install_pkg_set packages.minimal
(( $HAVE_X )) && install_pkg_set packages.X if test $MINIMAL = 1 ; then
(( $IS_KALI )) && install_pkg_set packages.kali return 0
fi
test $HAVE_X = 1 && install_pkg_set packages.X
test $IS_KALI = 1 && install_pkg_set packages.kali
install_pkg_set packages.${ARCH} install_pkg_set packages.${ARCH}
(( $HAVE_X )) && install_chrome test $HAVE_X = 1 && install_chrome
} }
function install_chrome { install_chrome() {
local TMPD=`mktemp -d` local TMPD=`mktemp -d`
local CHROME_ARCH=`echo ${ARCH} | sed 's/x86_64/amd64/'` local CHROME_ARCH=`echo ${ARCH} | sed 's/x86_64/amd64/'`
dpkg-query -l 'google-chrome*' >/dev/null 2>&1 && return 0 dpkg-query -l 'google-chrome*' >/dev/null 2>&1 && return 0
@@ -244,18 +278,23 @@ function install_chrome {
rm -rf ${TMPD} rm -rf ${TMPD}
} }
function read_saved_prefs { read_saved_prefs() {
# Can't use basedir here as we don't have it yet # Can't use basedir here as we don't have it yet
local pref_file=`dirname $0`/installed-prefs local old_pref_file=`dirname $0`/installed-prefs
local pref_file=`dirname $0`/.installed-prefs
if [ -f ${old_pref_file} -a ! -f ${pref_file} ] ; then
mv ${old_pref_file} ${pref_file}
fi
if [ -f ${pref_file} ] ; then if [ -f ${pref_file} ] ; then
verbose "Loading saved skel preferences from ${pref_file}" verbose "Loading saved skel preferences from ${pref_file}"
source ${pref_file} # source is a bashism
. ${pref_file}
fi fi
} }
function save_prefs { save_prefs() {
(( $SAVE )) || return 0 test $SAVE = 1 || return 0
local pref_file=${BASEDIR}/installed-prefs local pref_file=${BASEDIR}/.installed-prefs
(echo_pref BASEDIR (echo_pref BASEDIR
echo_pref MINIMAL echo_pref MINIMAL
echo_pref INSTALL_KEYS echo_pref INSTALL_KEYS
@@ -264,11 +303,12 @@ function save_prefs {
echo_pref VERBOSE) > $pref_file echo_pref VERBOSE) > $pref_file
} }
function echo_pref { echo_pref() {
echo "$1=\${$1:-${!1}}" eval "local val=\${$1}"
echo "$1=\${$1:-${val}}"
} }
function cleanup { cleanup() {
# Needs zsh # Needs zsh
if ! test -x /usr/bin/zsh ; then if ! test -x /usr/bin/zsh ; then
return 0 return 0
@@ -280,28 +320,41 @@ function cleanup {
EOF EOF
} }
function verbose { verbose() {
(( ${VERBOSE:-0} )) && echo "$@" >&2 || return 0 test ${VERBOSE:-0} = 1 && echo "$@" >&2 || return 0
} }
# Operations # Operations
function install_main { install_dotfiles() {
(( $MINIMAL )) || prerequisites
(( $INSTALL_PKGS )) && is_deb_system && install_apt_pkgs
install_dotfile_dir "${BASEDIR}/dotfiles" install_dotfile_dir "${BASEDIR}/dotfiles"
test -d "${BASEDIR}/private_dotfiles" && \ test -d "${BASEDIR}/private_dotfiles" && \
test -d "${BASEDIR}/.git/git-crypt" && \ test -d "${BASEDIR}/.git/git-crypt" && \
install_dotfile_dir "${BASEDIR}/private_dotfiles" install_dotfile_dir "${BASEDIR}/private_dotfiles" || \
true
test -d "${BASEDIR}/local_dotfiles" && \ test -d "${BASEDIR}/local_dotfiles" && \
install_dotfile_dir "${BASEDIR}/local_dotfiles" install_dotfile_dir "${BASEDIR}/local_dotfiles" || \
true
}
install_main() {
test $MINIMAL = 1 || prerequisites
test $INSTALL_PKGS = 1 && is_deb_system && install_apt_pkgs
install_dotfiles
install_basic_dir "${BASEDIR}/bin" "${HOME}/bin" install_basic_dir "${BASEDIR}/bin" "${HOME}/bin"
(( $MINIMAL )) || postinstall test $MINIMAL = 1 || postinstall
(( $INSTALL_KEYS )) && install_keys test $INSTALL_KEYS = 1 && install_keys
save_prefs save_prefs
cleanup cleanup
} }
install_dconf() {
which dconf >/dev/null 2>&1 || return 1
find "${BASEDIR}/dconf" -type f -printf '/%P\n' | while read dcpath ; do
dconf load ${dcpath}/ < "${BASEDIR}/dconf/${dcpath}"
done
}
# Setup variables # Setup variables
read_saved_prefs read_saved_prefs
@@ -316,7 +369,7 @@ VERBOSE=${VERBOSE:-0}
SAVE=${SAVE:-1} SAVE=${SAVE:-1}
# Check prerequisites # Check prerequisites
if [[ ! -d $BASEDIR ]] ; then if [ ! -d $BASEDIR ] ; then
echo "Please install to $BASEDIR!" 1>&2 echo "Please install to $BASEDIR!" 1>&2
exit 1 exit 1
fi fi
@@ -338,12 +391,27 @@ case $OPERATION in
install) install)
install_main install_main
;; ;;
dotfiles)
install_dotfiles
;;
package*) package*)
if [ ${2:-default} != default ] ; then
install_pkg_set packages.${2} install_pkg_set packages.${2}
else
install_pkg_set packages
fi
;; ;;
pwndbg) pwndbg)
install_pwndbg install_pwndbg
;; ;;
test)
# Do nothing, just sourcing
set +o errexit
;;
dconf)
# Load dconf
install_dconf
;;
*) *)
echo "Unknown operation $OPERATION." >/dev/stderr echo "Unknown operation $OPERATION." >/dev/stderr
exit 1 exit 1

View File

@@ -0,0 +1 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIsFYLEsalNh/l6PtMZhi0f/eZ22uoMw/xYpgPy6vBU6OlpN2FjW7R0pwX29fZjjVQoF0eEG0K/9/CcYcnxtspw= chronos@localhost

View File

@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHPlKI3Mt2Hm4YZ0WNOET7SEoXmAABR+eEZ3hnJnA9AJ davidtomaschik@davidtomaschik-glaptop3

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDi2AoHzzSd/xidvRKS1OE7Pe+aGgyEY1WmWJGJ3POHuaQSbGrp4g1En4QurhXwonPiLBtQ0w6Nbbi/3vrXxSnAkJJKd9LXQtjyXVN68285lRr3DWuWnyokhO3B5aGOb5/4b6Dn8YDRrTRefezjbVavgrTFarZ19PmPmJxH9h+ZPV/hNQ6rZjBjrvGerxpmB6CjgXbIxRdsUcnao3+gyPueBOkyHbfiy7QjQT+SgPjIqT/rza4Q0OqFBTk4D7Y96biE5yY31eNs8H7uvR3PfX0NN5zvP/EqJECPYr/B3vOzAr7B8BsqYbA5UFexrp6gYn+LDzr6jAILhEUp8SsC8UFn davidtomaschik@davidtomaschik-glaptop3

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXvqt73qAqS8C597u1wjz0Cvfo1IpiQFE4OKxTBR0mUhhi9UsGXkjZd/EYnqfWQRLcKaQSqN9QcXW7zHrfXtdmcjr3dDZrwXGgCiJnvLTeLecLqYwgaIMMNTmgaTQ3OFB74VCeD496pMbnhmlsN2+WaxNjIxoX+Qadsq/iHtBBt+tSOm5E1x0/ynEGmvO1W0L+8FyV/xnZWQIbBHTrJ931Gt8RDKtt7Y24XYMm5REye40adbxeS4kBwexvp2nTKwkr8sC26dmOz/RgJG3Km1194r0RXsH7iCYYlUBT23f4KOcmVxUlxkSu5d0u2viEID++cN6LT/4rHPdgqMZaVhaB root@uber

View File

@@ -1 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXvqt73qAqS8C597u1wjz0Cvfo1IpiQFE4OKxTBR0mUhhi9UsGXkjZd/EYnqfWQRLcKaQSqN9QcXW7zHrfXtdmcjr3dDZrwXGgCiJnvLTeLecLqYwgaIMMNTmgaTQ3OFB74VCeD496pMbnhmlsN2+WaxNjIxoX+Qadsq/iHtBBt+tSOm5E1x0/ynEGmvO1W0L+8FyV/xnZWQIbBHTrJ931Gt8RDKtt7Y24XYMm5REye40adbxeS4kBwexvp2nTKwkr8sC26dmOz/RgJG3Km1194r0RXsH7iCYYlUBT23f4KOcmVxUlxkSu5d0u2viEID++cN6LT/4rHPdgqMZaVhaB root@uber ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ5FLvZsfIfNV8NcUK6+wJ8pDapgu8QAZMX5zuz+fYxsf3KeHlDS0nPojmDLCXaAdd4TUO7KlRyo8BhpsWP8yUwpxUeRgvtYjjWfDgSxXCsGpQzbmTABu8eIaSya00Fao/WeIV1k+2p6S80knmllrBVideGW9ws4zrVQnhOcgKVXskuFBEs3IOQczNPMfI+OnO+qca0rjUh1Z6k3tD6tN6pxh//5CZBgqYf4G1DLnCLIep7tDkTuYjgqH237r6v4WHH87sLRy21yFRzfMWUGPesJvuc8X4Ol822BuQWTCDYy+QYZ9qGDWPcLOLCg7MLP9IVKzIJOrAdOYyp6p2brzj davidtomaschik@uber.g

View File

@@ -7,3 +7,4 @@ network-manager-openvpn-gnome
vim-gtk vim-gtk
wireshark wireshark
wkhtmltopdf wkhtmltopdf
zeal

View File

@@ -1,15 +1,7 @@
ack-grep
build-essential build-essential
cryptsetup cryptsetup
curl
dnsutils
dsniff dsniff
ecryptfs-utils ecryptfs-utils
gdb
git
git-crypt
gnupg2
gnupg-agent
gnupg-curl gnupg-curl
iftop iftop
iptraf iptraf
@@ -18,39 +10,28 @@ ipython3
jq jq
kpartx kpartx
ldap-utils ldap-utils
ltrace
lvm2 lvm2
mosh most
ngrep nasm
nmap
opensc opensc
openvpn openvpn
p7zip-full p7zip-full
python3
python3-pip
python3-virtualenv
python-crypto python-crypto
python-dev python-dev
python-hachoir-urwid python-hachoir-urwid
python-html5lib python-html5lib
python-imaging python-imaging
python-nwdiag
python-pip python-pip
python-pypdf
python-scapy python-scapy
python-virtualenv python-virtualenv
python-yara python-yara
python3
python3-pip
python3-virtualenv
radare2 radare2
scapy scapy
scdaemon scdaemon
socat
sqlite3 sqlite3
strace
tcpdump
tmux
traceroute
tshark
ufw ufw
unzip
vim
virtualenvwrapper
whois
zsh

22
packages.minimal Normal file
View File

@@ -0,0 +1,22 @@
ack-grep
curl
dnsutils
gdb
git
git-crypt
gnupg2
gnupg-agent
ltrace
mosh
ngrep
nmap
strace
tcpdump
tmux
traceroute
tshark
unzip
vim
virtualenvwrapper
whois
zsh

Binary file not shown.

Binary file not shown.

2
udev/41-microchip.rules Normal file
View File

@@ -0,0 +1,2 @@
# Pickit 3
ATTR{idVendor}=="04d8", ATTR{idProduct}=="900a", MODE="0666", GROUP="plugdev"

38
udev/49-teensy.rules Normal file
View File

@@ -0,0 +1,38 @@
# UDEV Rules for Teensy boards, http://www.pjrc.com/teensy/
#
# The latest version of this file may be found at:
# http://www.pjrc.com/teensy/49-teensy.rules
#
# This file must be placed at:
#
# /etc/udev/rules.d/49-teensy.rules (preferred location)
# or
# /lib/udev/rules.d/49-teensy.rules (req'd on some broken systems)
#
# To install, type this command in a terminal:
# sudo cp 49-teensy.rules /etc/udev/rules.d/49-teensy.rules
#
# Or use the alternate way (from this forum message) to download and install:
# https://forum.pjrc.com/threads/45595?p=150445&viewfull=1#post150445
#
# After this file is installed, physically unplug and reconnect Teensy.
#
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666"
#
# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.
#
#
# If using USB Serial you get a new device each time (Ubuntu 9.10)
# eg: /dev/ttyACM0, ttyACM1, ttyACM2, ttyACM3, ttyACM4, etc
# apt-get remove --purge modemmanager (reboot may be necessary)
#
# Older modem proding (eg, Ubuntu 9.04) caused very slow serial device detection.
# To fix, add this near top of /lib/udev/rules.d/77-nm-probe-modem-capabilities.rules
# SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", GOTO="nm_modem_probe_end"
#

6
udev/70-u2f.rules Normal file
View File

@@ -0,0 +1,6 @@
# this udev file should be used with udev 188 and newer
ACTION!="add|change", GOTO="u2f_end"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0402|0403|0406|0407|0410", TAG+="uaccess"
LABEL="u2f_end"

8
udev/88-nuand.rules Normal file
View File

@@ -0,0 +1,8 @@
# Nuand bladeRF
ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5246", MODE="660", GROUP="plugdev"
# Nuand bladeRF, legacy VID/PID
ATTR{idVendor}=="1d50", ATTR{idProduct}=="6066", MODE="660", GROUP="plugdev"
# Cypress Bootloader
ATTR{idVendor}=="04b4", ATTR{idProduct}=="00f3", MODE="660", GROUP="plugdev"

4
udev/99-chip.rules Normal file
View File

@@ -0,0 +1,4 @@
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f3a", ATTRS{idProduct}=="efe8", GROUP="plugdev", MODE="0660" SYMLINK+="usb-chip"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="1010", GROUP="plugdev", MODE="0660" SYMLINK+="usb-chip-fastboot"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f3a", ATTRS{idProduct}=="1010", GROUP="plugdev", MODE="0660" SYMLINK+="usb-chip-fastboot"
SUBSYSTEM=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", GROUP="plugdev", MODE="0660" SYMLINK+="usb-serial-adapter"

1
udev/99-ftdi.rules Normal file
View File

@@ -0,0 +1 @@
BUS=="usb", SYSFS{idVendor}=="0403", SYSFS{idProduct}=="6014", GROUP="plugdev"

View File

@@ -0,0 +1,4 @@
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="239a", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="1b4f", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="03eb", ENV{ID_MM_DEVICE_IGNORE}="1"

2
udev/99-redbear.rules Normal file
View File

@@ -0,0 +1,2 @@
ATTRS{idProduct}=="d058", ATTRS{idVendor}=="2b04", MODE="664", GROUP="plugdev"
ATTRS{idVendor}=="2b04", ENV{ID_MM_DEVICE_IGNORE}="1"

14
udev/99-saleae.rules Normal file
View File

@@ -0,0 +1,14 @@
# Rules for the Saleae Logic analyzer to allow to run the programs a normal user
# being part of the plugdev group. Simply copy the file to /etc/udev/rules.d/
# and plug the device
BUS!="usb", ACTION!="add", SUBSYSTEM!=="usb_device", GOTO="saleae_logic_rules_end"
# Saleae Logic analyzer (USB Based)
# Bus 006 Device 006: ID 0925:3881 Lakeview Research
# Bus 001 Device 009: ID 21a9:1004 Product: Logic S/16, Manufacturer: Saleae LLC
ATTR{idVendor}=="0925", ATTR{idProduct}=="3881", MODE="664", GROUP="plugdev"
ATTR{idVendor}=="21a9", ATTR{idProduct}=="1004", MODE="664", GROUP="plugdev"
LABEL="saleae_logic_rules_end"