aboutsummaryrefslogtreecommitdiff
path: root/README.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'README.markdown')
-rw-r--r--README.markdown160
1 files changed, 80 insertions, 80 deletions
diff --git a/README.markdown b/README.markdown
index 745b3342..a2493b9d 100644
--- a/README.markdown
+++ b/README.markdown
@@ -15,16 +15,16 @@ Installation
$ make -n install
$ make install
-For the default target, you’ll need `bash(1)`, `git(1)`, `install(1)`,
-`make(1)`, `m4(1)`, and `tic(1)`. You’ll need to have a recent enough version
+For the default target, you'll need `bash(1)`, `git(1)`, `install(1)`,
+`make(1)`, `m4(1)`, and `tic(1)`. You'll need to have a recent enough version
of Git to support
[submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) for the Vim
-installation to work; it’s required for the plugin setup.
+installation to work; it's required for the plugin setup.
The installation `Makefile` will overwrite things standing in the way of its
installed files without backing them up, so read the output of `make -n
-install` before running `make install` to make sure you aren’t going to lose
-anything unexpected. If you’re still not sure, install it in a temporary
+install` before running `make install` to make sure you aren't going to lose
+anything unexpected. If you're still not sure, install it in a temporary
directory so you can explore:
$ tmpdir=$(mktemp -d)
@@ -33,7 +33,7 @@ directory so you can explore:
The default target will install the core terminal-only files (cURL, Git, GnuPG,
Vim, and shell and terminal setup files). The remaining dotfiles can be
-installed with the other targets. Take a look at the `Makefile` to see what’s
+installed with the other targets. Take a look at the `Makefile` to see what's
available.
Tools
@@ -41,56 +41,56 @@ Tools
Configuration is included for:
-* [Abook](http://abook.sourceforge.net/) — curses address book program
-* [Bash](https://www.gnu.org/software/bash/) — GNU Bourne-Again Shell,
+* [Abook](http://abook.sourceforge.net/) -- curses address book program
+* [Bash](https://www.gnu.org/software/bash/) -- GNU Bourne-Again Shell,
including a `~/.profile` configured to work with most Bourne-compatible
shells
-* [cURL](https://curl.haxx.se/) — Command-line tool for transferring data with
+* [cURL](https://curl.haxx.se/) -- Command-line tool for transferring data with
URL syntax
* [`dircolors(1)`](https://www.gnu.org/software/coreutils/manual/html_node/dircolors-invocation.html)
- — Color GNU `ls(1)` output
-* [Dunst](http://knopwob.org/dunst/) — A lightweight X11 notification daemon
+ -- Color GNU `ls(1)` output
+* [Dunst](http://knopwob.org/dunst/) -- A lightweight X11 notification daemon
that works with `libnotify`
-* `finger(1)` — User information lookup program
-* [Git](https://git-scm.com/) — Distributed version control system
-* [GnuPG](https://www.gnupg.org/) — GNU Privacy Guard, for private
+* `finger(1)` -- User information lookup program
+* [Git](https://git-scm.com/) -- Distributed version control system
+* [GnuPG](https://www.gnupg.org/) -- GNU Privacy Guard, for private
communication and file encryption
-* [GTK+](http://www.gtk.org/) — GIMP Toolkit, for graphical user interface
+* [GTK+](http://www.gtk.org/) -- GIMP Toolkit, for graphical user interface
elements
-* [i3](https://i3wm.org/) — Tiling window manager
-* [Mutt](http://www.mutt.org/) — Terminal mail user agent
-* [`mysql(1)`](http://linux.die.net/man/1/mysql) — Command-line MySQL client
-* [Ncmpcpp](http://rybczak.net/ncmpcpp/) — ncurses music player client
-* [Newsbeuter](https://www.newsbeuter.org/) — Terminal RSS/Atom feed reader
-* [`psql(1)`](http://linux.die.net/man/1/psql) — Command-line PostgreSQL
+* [i3](https://i3wm.org/) -- Tiling window manager
+* [Mutt](http://www.mutt.org/) -- Terminal mail user agent
+* [`mysql(1)`](http://linux.die.net/man/1/mysql) -- Command-line MySQL client
+* [Ncmpcpp](http://rybczak.net/ncmpcpp/) -- ncurses music player client
+* [Newsbeuter](https://www.newsbeuter.org/) -- Terminal RSS/Atom feed reader
+* [`psql(1)`](http://linux.die.net/man/1/psql) -- Command-line PostgreSQL
client
-* [Perl::Critic](http://perlcritic.com/) — static source code analysis engine
+* [Perl::Critic](http://perlcritic.com/) -- static source code analysis engine
for Perl
-* [Perl::Tidy](http://perltidy.sourceforge.net/) — Perl indenter and
+* [Perl::Tidy](http://perltidy.sourceforge.net/) -- Perl indenter and
reformatter
-* [Readline](https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html) — GNU
+* [Readline](https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html) -- GNU
library for user input used by Bash, MySQL, and others
-* [tmux](https://tmux.github.io/) — Terminal multiplexer similar to GNU
+* [tmux](https://tmux.github.io/) -- Terminal multiplexer similar to GNU
Screen
-* [rxvt-unicode](http://software.schmorp.de/pkg/rxvt-unicode.html) — Fork of
+* [rxvt-unicode](http://software.schmorp.de/pkg/rxvt-unicode.html) -- Fork of
the rxvt terminal emulator with Unicode support
-* [Subversion](https://subversion.apache.org/) — Apache Subversion, a version
+* [Subversion](https://subversion.apache.org/) -- Apache Subversion, a version
control system
-* [Vim](http://www.vim.org/) — Vi IMproved, a text editor
-* [Wyrd](https://packages.debian.org/sid/wyrd) — a `curses` calendar
+* [Vim](http://www.vim.org/) -- Vi IMproved, a text editor
+* [Wyrd](https://packages.debian.org/sid/wyrd) -- a `curses` calendar
frontend for [Remind](https://www.roaringpenguin.com/products/remind)
-* [X11](https://www.x.org/wiki/) — Windowing system with network transparency
+* [X11](https://www.x.org/wiki/) -- Windowing system with network transparency
for Unix
-* [Zsh](http://www.zsh.org/) — Bourne-style shell designed for interactive
+* [Zsh](http://www.zsh.org/) -- Bourne-style shell designed for interactive
use
Also included are a few scripts for `~/.local/bin`, and their `man(1)` pages.
The configurations for Bash, GnuPG, Mutt, tmux, and Vim are the most expansive
and most likely to be of interest. The i3 configuration is mostly changed to
-make window switching behave like Vim windows and tmux panes do, and there’s a
+make window switching behave like Vim windows and tmux panes do, and there's a
fair few resources defined for rxvt-unicode. Otherwise, the rest of the
-configuration isn’t too distant from the defaults.
+configuration isn't too distant from the defaults.
### Shell
@@ -130,7 +130,7 @@ Where I do use features that are only available in versions of Bash newer than
2.05a, such as newer `shopt` options or `PROMPT_DIRTRIM`, they are only run
after testing `BASH_VERSINFO` appropriately.
-When I use any other Bourne-compatible shell, I’m generally happy to accept its
+When I use any other Bourne-compatible shell, I'm generally happy to accept its
defaults for interactive behavior.
A terminal session with my prompt looks something like this:
@@ -154,12 +154,12 @@ It expands based on context to include these elements in this order:
* The exit status of the last command, if non-zero
You can set `PROMPT_COLOR`, `PROMPT_PREFIX`, and `PROMPT_SUFFIX` too, which all
-do about what you’d expect.
+do about what you'd expect.
-This is all managed within the `prompt` function. There’s some mildly hacky
+This is all managed within the `prompt` function. There's some mildly hacky
logic on `tput` codes included such that it should work correctly for most
common terminals using both `termcap(5)` and `terminfo(5)`, including \*BSD
-systems. It’s also designed to degrade gracefully for eight-color and no-color
+systems. It's also designed to degrade gracefully for eight-color and no-color
terminals.
#### Completion
@@ -186,35 +186,35 @@ things I really do get tired of typing repeatedly:
There are a few other little tricks in `bash/bashrc.d`, including:
-* `apf` — Prepend arguments to a command with ones read from a file
-* `bd` — Change into a named ancestor of the current directory
-* `ca` — Count given arguments
-* `cf` — Count files in a given directory
-* `fnl` — Run a command and save its output and error into temporary files
-* `hgrep` — `HISTFILE` search
-* `keep` — Permanently store ad-hoc shell functions and variables
-* `mkcd` — Create a directory and change into it
-* `mkcp` — Create a directory and copy arguments into it
-* `mkmv` — Create a directory and move arguments into it
-* `pa` — Print given arguments, one per line
-* `path` — Manage the contents of `PATH` conveniently
-* `paz` — Print given arguments separated by NULL chars
-* `pd` — Change to the argument’s parent directory
-* `readv` — Print names and values from `read` calls to `stderr`
-* `readz` — Alias for `read -d '' -r`
-* `scr` — Create a temporary directory and change into it
-* `sd` — Switch to a sibling directory
-* `sprunge` — Pastebin frontend tool I pilfered from `#bash` on Freenode
-* `ud` — Change into an indexed ancestor of a directory
+* `apf` -- Prepend arguments to a command with ones read from a file
+* `bd` -- Change into a named ancestor of the current directory
+* `ca` -- Count given arguments
+* `cf` -- Count files in a given directory
+* `fnl` -- Run a command and save its output and error into temporary files
+* `hgrep` -- `HISTFILE` search
+* `keep` -- Permanently store ad-hoc shell functions and variables
+* `mkcd` -- Create a directory and change into it
+* `mkcp` -- Create a directory and copy arguments into it
+* `mkmv` -- Create a directory and move arguments into it
+* `pa` -- Print given arguments, one per line
+* `path` -- Manage the contents of `PATH` conveniently
+* `paz` -- Print given arguments separated by NULL chars
+* `pd` -- Change to the argument's parent directory
+* `readv` -- Print names and values from `read` calls to `stderr`
+* `readz` -- Alias for `read -d '' -r`
+* `scr` -- Create a temporary directory and change into it
+* `sd` -- Switch to a sibling directory
+* `sprunge` -- Pastebin frontend tool I pilfered from `#bash` on Freenode
+* `ud` -- Change into an indexed ancestor of a directory
I also wrap a few command calls with functions to stop me from doing silly
-things that the commands themselves don’t catch. My favourite is the one that
+things that the commands themselves don't catch. My favourite is the one that
stops me from calling `scp(1)` with no colon in either argument. I also do
things like give default arguments to `pwgen(1)`.
### GnuPG
-The configuration for GnuPG is intended to follow [RiseUp’s OpenPGP best
+The configuration for GnuPG is intended to follow [RiseUp's OpenPGP best
practices](https://help.riseup.net/en/security/message-security/openpgp/best-practices).
The configuration file is rebuilt using `m4(1)` and `make(1)` because it
requires hard-coding a path to the SKS keyserver certificate authority, and
@@ -235,23 +235,23 @@ commands for each crypto operation. I wrote [an article about this
setup](https://sanctum.geek.nz/arabesque/linux-crypto-email/) if it sounds
appealing.
-You’ll need [Abook](http://abook.sourceforge.net/) installed if you want to use
+You'll need [Abook](http://abook.sourceforge.net/) installed if you want to use
the `query_command` I have defined, and [msmtp](http://msmtp.sourceforge.net/)
for the `sendmail` command.
### rxvt-unicode
-I’ve butchered the URxvt Perl extensions `selection-to-clipboard` and
+I've butchered the URxvt Perl extensions `selection-to-clipboard` and
`selection` into a single `select` extension in `~/.urxvt/ext`, which is the
only extension I define in `~/.Xresources`.
The included `.Xresources` file assumes that `urxvt` can use 256 colors and
-Perl extensions. If you’re missing functionality, try changing
+Perl extensions. If you're missing functionality, try changing
`perl-ext-common` to `default`.
My choice of font is [Ubuntu Mono](http://font.ubuntu.com/), but the file
should allow falling back to the more common [Deja Vu Sans
-Mono](http://dejavu-fonts.org/wiki/Main_Page). I’ve found
+Mono](http://dejavu-fonts.org/wiki/Main_Page). I've found
[Terminus](http://terminus-font.sourceforge.net/) works well too, but bitmap
fonts are not really my cup of tea. The Lohit Kannada font bit is purely to
make ಠ\_ಠ work correctly. ( ͡° ͜ʖ ͡°) seems to work out of the box.
@@ -278,8 +278,8 @@ I try not to deviate too much from the Vim defaults behaviour in terms of
interactive behavior and keybindings.
The configuration is extensively commented, mostly because I was reading
-through it one day and realised I’d forgotten what half of it did. Plugins are
-loaded using @tpope’s [pathogen.vim](https://github.com/tpope/vim-pathogen).
+through it one day and realised I'd forgotten what half of it did. Plugins are
+loaded using @tpope's [pathogen.vim](https://github.com/tpope/vim-pathogen).
Scripts
-------
@@ -306,10 +306,10 @@ Installed by the `install-bin` target:
* `gms(1)` runs a set of `getmailrc` files; does much the same thing as the
script `getmails` in the `getmail` suite, but runs the requests in parallel
and does up to three silent retries using `try(1)`
-* `han(1)` provides a `keywordprg` for Vim’s Bash script filetype that will
+* `han(1)` provides a `keywordprg` for Vim's Bash script filetype that will
look for `help` topics. You could use it from the shell too.
* `igex(1)` wraps around a command to allow you to ignore error conditions
- that don’t actually worry you, exiting with 0 anyway.
+ that don't actually worry you, exiting with 0 anyway.
* `maybe(1)` is like `true(1)` or `false(1)`; given a probability of success,
it exits with success or failure. Good for quick tests.
* `plmu(1)` retrieves a list of installed modules from
@@ -331,20 +331,20 @@ Installed by the `install-bin` target:
* `vis(1)` edits executable script files in `VISPATH`, defaulting to
`~/.local/bin`, for personal scripting snippets.
-There’s some silly stuff in `install-games`:
+There's some silly stuff in `install-games`:
* `kvlt(6)` translates input to emulate a style of typing unique to black
metal communities on the internet.
-* `zs(6)` prepends “z” case-appropriately to every occurrence of “s” in the
+* `zs(6)` prepends "z" case-appropriately to every occurrence of "s" in the
text on its standard input.
Manuals
-------
The `install-bin` and `install-games` targets install manuals for each script
-they install. There’s also an `install-dotfiles-man` target that uses
+they install. There's also an `install-dotfiles-man` target that uses
`pandoc(1)` to reformat this document as a manual page for section 7
-(`dotfiles(7)`) if you want that. I haven’t made that install by default,
+(`dotfiles(7)`) if you want that. I haven't made that install by default,
because `pandoc(1)` is a bit heavy.
If you want to use the manuals, you may need to add `~/.local/share/man` to
@@ -358,31 +358,31 @@ You can test that both sets of shell scripts are syntactically correct with
scripts in `bin` and `games`.
If you have [ShellCheck](https://www.shellcheck.net/) and/or
-[Perl::Critic](http://perlcritic.com/), there’s a `lint` target for the shell
-script files and Perl files respectively. The files don’t need to pass that
+[Perl::Critic](http://perlcritic.com/), there's a `lint` target for the shell
+script files and Perl files respectively. The files don't need to pass that
check to be installed.
Known issues
------------
-I’d welcome patches or advice on fixing any of these problems.
+I'd welcome patches or advice on fixing any of these problems.
* The `install-terminfo` target does not work correctly on NetBSD due to the
- different way `tic(1)` works, which I don’t understand at all.
+ different way `tic(1)` works, which I don't understand at all.
Note for previous visitors
--------------------------
-Most of this repository’s five-year history was rewritten shortly after I moved
+Most of this repository's five-year history was rewritten shortly after I moved
it from GitHub to cgit, taking advantage of the upheaval to reduce its size and
remove useless binary blobs and third-party stuff that I never should have
-versioned anyway. If you’ve checked this out before, you’ll probably need to do
+versioned anyway. If you've checked this out before, you'll probably need to do
it again, and per-commit links are likely to be broken. Sorry about that.
License
-------
-Public domain; see the included `UNLICENSE` file. It’s just configuration, do
-whatever you like with it if any of it’s useful to you. If you’re feeling
+Public domain; see the included `UNLICENSE` file. It's just configuration, do
+whatever you like with it if any of it's useful to you. If you're feeling
generous, you could always [buy me a coffee](https://sanctum.geek.nz/) next
-time you’re in New Zealand.
+time you're in New Zealand.