Dotfiles, utilities, and other apparatus.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

161 lines
6.2 KiB

  1. bpb-kit
  2. =======
  3. This repo is for dotfiles, utility scripts, and other things in my personal
  4. setup. Ideally, it includes most of the bits and pieces that make a personal
  5. machine usable for me.
  6. I mostly use Debian and Debian-like GNU/Linux systems (including Ubuntu). I
  7. usually edit text in Vim, and use the [xmonad][xmonad] tiling window manager.
  8. I have a [partially-finished book about the command line][userland] which may
  9. be relevant.
  10. status
  11. ------
  12. As of October 2016, most of this collection is actively maintained, although it
  13. doesn't meet the standards of quality, consistency, or documentation you might
  14. quite reasonably want from a real software project.
  15. (Then again, neither do most software projects.)
  16. sources
  17. -------
  18. I thief ideas and bits of configuration from the following people and projects:
  19. - [Alan][alan]
  20. - [Ben][ben]
  21. - [Casey][casey]
  22. - [Chris][chris]
  23. - [Christian][christian]
  24. - [Dave][dave]
  25. - [Rob][rob]
  26. - [Todd][todd]
  27. - [Tyler][tyler]
  28. - [Learn Vimscript the Hard Way][vimscript], Steve Losh
  29. - [Advanced Bash Scripting Guide][bash-guide], Mendel Cooper
  30. - [ArchWiki][archwiki]
  31. contents
  32. --------
  33. ### shell stuff
  34. These days I use ZSH on personal systems and Bash when writing tutorials or
  35. doing tech support. I like to keep lots and lots of history. I think shell
  36. scripting is a nightmare for most real tasks, but I do it sometimes anyway.
  37. - [`.bashrc`](home/.bashrc)
  38. - [`.zshrc`](home/.zshrc) - nothing fancy
  39. - [`.sh_common`](home/.sh_common) - aliases and variables for both Bash and ZSH;
  40. no Bash compatibility guarantees here, since I mostly don't use custom
  41. aliases in Bash
  42. ### scripts in [home/bin/](home/bin)
  43. Scripts here fall into a handful of categories:
  44. - Short wrappers for getting (or remembering) specific behavior from other
  45. tools
  46. - Screenshot and screencast tools used in my work as a writer for
  47. DigitalOcean and Adafruit
  48. - Things for working with the [p1k3](https://p1k3.com/) repo and site
  49. - Text filters and fragments, mostly for use with Vim aliases
  50. - Miscellaneous utilities
  51. Most of these are unlikely to be portable, useful, or documented.
  52. - `chrome-incognito`: run Google Chrome in incognito mode
  53. - `cheat`: a place to hang a personal cheatsheet of sorts
  54. - `dmenu_unique`: run dmenu with big fonts and vertical, only showing each entry once
  55. - `dog`: concatenate argument strings and stdin
  56. - `filter-decorate`: splat some text dingbats into HTML I write sometimes
  57. - `filter-exec-raw`: like above, but different
  58. - `filter-exec`: replace text in-between markers with result of shell-script execution
  59. - `filter-markdownify`: convert a few things in old DigitalOcean tutorials to Markdown
  60. - `filter-vertical`: verticalize a string
  61. - `firefox-fromselection`: open a selected url in firefox
  62. - `fragment-bullet`: print out a "random" dingbat character
  63. - `get-external-ip`: print public IP address
  64. - `gif-sel`, `gif-sel-4`, `gif-sel-15`: take an animated gif of selected screen region
  65. - `git-diff-wrapper`: use vim with `git-diff-tool`
  66. - `git-local-to-remote-status`
  67. - `grab`, `grab-sel`: take a screenshot, take a screenshot of a selected region
  68. - `json_decode.php`: decode JSON into PHP data structures
  69. - `jsonprint.pl`: pretty-print JSON with Perl
  70. - `jump-to-window`: use `wmctrl` and `dmenu` to pick a window to jump to
  71. - `listusers`: print an HTML list of users
  72. - `notesession`: start a tmux named session for notes
  73. - `photocp`: copy photos from various media to a home directory location
  74. - `pmwhich`: find the on-filesystem location of a Perl module
  75. - `rightnow`: print the current time in a variety of formats
  76. - `saytime`: speak the time with Festival
  77. - `timelog`: parse a timelogging format (I use this to bill for contracting)
  78. - `today`: print a date
  79. - `todaydir`: find a p1k3 dir for the current date
  80. - `uni`: search unicode codepoint names (via @chneukirchen)
  81. - `unsorted-unique`: print all lines of input once (just an `awk` one-liner)
  82. - `wip`: move a p1k3 file into a work-in-progress directory
  83. - `words`: split input into individual words
  84. - `xm`: call xmodmap (dumb)
  85. - `xmonad.start`: personal version of xmonad startup script
  86. - `xtfix`: do a subtle color shift within the current xterm
  87. - `yank`, `unyank`: stash a file path, move it to the current directory
  88. ### tmux
  89. I use `tmux` for terminal multiplexing (i.e., most of what GNU Screen does).
  90. In practice, this means that I rely on it for
  91. - persistent shell sessions, sometimes attached to multiple machines
  92. - putting a bunch of shell / editor buffers inside one `ssh` or `mosh`
  93. session
  94. - capturing and scrolling back through a bunch of output
  95. My [`.tmux.conf`](home/.tmux.conf) is brief, but does contain one useful
  96. snippet for correcting weird Esc-key behavior in Vim.
  97. ### vim config
  98. - [`.vimrc`](home/.vimrc) - see file for installation details
  99. - uses [Vundle][vundle] to manage plugins and such
  100. - pulls in a ton of plugins, some more useful than others
  101. ### window management
  102. - `.xmodmap`
  103. - capslock -> ctrl
  104. - I run this a bunch with `bin/xm`, which is dumb
  105. - `.xinitrc`
  106. - sources `.hacksrc` if it exists
  107. - `.Xresources` tweaks xterm behavior and a number of fonts
  108. - behavior changes depending on whether `.hacksrc` is linked to
  109. `.hacksrc_hi_dpi`
  110. - XMonad config -
  111. - `.xmobarrc`, `.xmonad/`
  112. - see [`bin/xmonad.start`](bin/xmonad.start) for a drop-in replacement for
  113. default XMonad startup on some Debian-like systems, including Gnome/Unity
  114. stuff and the like. Perpetually not-quite-right.
  115. building a debian package for dependencies
  116. ------------------------------------------
  117. See instructions in [ns-control](ns-control).
  118. [userland]: https://p1k3.com/userland-book/
  119. [vundle]: https://github.com/VundleVim/Vundle.vim
  120. [alan]: https://github.com/acg
  121. [ben]: https://github.com/benlemasurier
  122. [chris]: https://github.com/frencil
  123. [christian]: http://chneukirchen.org/blog/
  124. [dave]: https://stilldavid.com/
  125. [casey]: https://github.com/caseydentinger/
  126. [rob]: https://github.com/robacarp/
  127. [todd]: https://uniontownlabs.org/
  128. [tyler]: https://tylercipriani.com/
  129. [xmonad]: http://xmonad.org/
  130. [vimscript]: http://learnvimscriptthehardway.stevelosh.com/
  131. [bash-guide]: http://www.tldp.org/LDP/abs/html/
  132. [archwiki]: https://wiki.archlinux.org/