This repo is for dotfiles, utility scripts, and other things in my personal setup. Ideally, it includes most of the bits and pieces that make a personal machine usable for me.
I mostly use Debian and Debian-like GNU/Linux systems (including Ubuntu). I usually edit text in Vim, and use the xmonad tiling window manager.
I have a partially-finished book about the command line which may be relevant.
As of October 2016, most of this collection is actively maintained, although it doesn't meet the standards of quality, consistency, or documentation you might quite reasonably want from a real software project.
(Then again, neither do most software projects.)
I thief ideas and bits of configuration from the following people and projects:
- Learn Vimscript the Hard Way, Steve Losh
- Advanced Bash Scripting Guide, Mendel Cooper
These days I use ZSH on personal systems and Bash when writing tutorials or doing tech support. I like to keep lots and lots of history. I think shell scripting is a nightmare for most real tasks, but I do it sometimes anyway.
.zshrc- nothing fancy
.sh_common- aliases and variables for both Bash and ZSH; no Bash compatibility guarantees here, since I mostly don't use custom aliases in Bash
Scripts here fall into a handful of categories:
- Short wrappers for getting (or remembering) specific behavior from other tools
- Screenshot and screencast tools used in my work as a writer for DigitalOcean and Adafruit
- Things for working with the p1k3 repo and site
- Text filters and fragments, mostly for use with Vim aliases
- Miscellaneous utilities
Most of these are unlikely to be portable, useful, or documented.
chrome-incognito: run Google Chrome in incognito mode
cheat: a place to hang a personal cheatsheet of sorts
dmenu_unique: run dmenu with big fonts and vertical, only showing each entry once
dog: concatenate argument strings and stdin
filter-decorate: splat some text dingbats into HTML I write sometimes
filter-exec-raw: like above, but different
filter-exec: replace text in-between markers with result of shell-script execution
filter-markdownify: convert a few things in old DigitalOcean tutorials to Markdown
filter-vertical: verticalize a string
firefox-fromselection: open a selected url in firefox
fragment-bullet: print out a "random" dingbat character
get-external-ip: print public IP address
gif-sel-15: take an animated gif of selected screen region
git-diff-wrapper: use vim with
grab-sel: take a screenshot, take a screenshot of a selected region
json_decode.php: decode JSON into PHP data structures
jsonprint.pl: pretty-print JSON with Perl
dmenuto pick a window to jump to
listusers: print an HTML list of users
notesession: start a tmux named session for notes
photocp: copy photos from various media to a home directory location
pmwhich: find the on-filesystem location of a Perl module
rightnow: print the current time in a variety of formats
saytime: speak the time with Festival
timelog: parse a timelogging format (I use this to bill for contracting)
today: print a date
todaydir: find a p1k3 dir for the current date
uni: search unicode codepoint names (via @chneukirchen)
unsorted-unique: print all lines of input once (just an
wip: move a p1k3 file into a work-in-progress directory
words: split input into individual words
xm: call xmodmap (dumb)
xmonad.start: personal version of xmonad startup script
xtfix: do a subtle color shift within the current xterm
unyank: stash a file path, move it to the current directory
tmux for terminal multiplexing (i.e., most of what GNU Screen does).
In practice, this means that I rely on it for
- persistent shell sessions, sometimes attached to multiple machines
- putting a bunch of shell / editor buffers inside one
- capturing and scrolling back through a bunch of output
.tmux.conf is brief, but does contain one useful
snippet for correcting weird Esc-key behavior in Vim.
.vimrc- see file for installation details
- uses Vundle to manage plugins and such
- pulls in a ton of plugins, some more useful than others
- capslock -> ctrl
- I run this a bunch with
bin/xm, which is dumb
.hacksrcif it exists
.Xresourcestweaks xterm behavior and a number of fonts
- behavior changes depending on whether
.hacksrcis linked to
- behavior changes depending on whether
- XMonad config -
bin/xmonad.startfor a drop-in replacement for default XMonad startup on some Debian-like systems, including Gnome/Unity stuff and the like. Perpetually not-quite-right.
building a debian package for dependencies
See instructions in ns-control.