urxvt-font icon indicating copy to clipboard operation
urxvt-font copied to clipboard

Resize fonts in a running urxvt process; save changes to $HOME/.Xresources

h2. About

urxvt is a great terminal emulator, but spending time on a mac made me miss the ability (in iTerm!) to dynamically resize text using ⌘+Plus and ⌘+Minus. I was also thinking that it would be be nice if resizing the terminal font could be persisted to @Xresources@. Turns out this was pretty easy to accomplish.

bc. urxvt.perl-lib: /path/to/urxvt-font urxvt.keysym.Control-Shift-Up: perl:font:increment urxvt.keysym.Control-Shift-Down: perl:font:decrement urxvt.perl-ext-common: font

Now, @Ctrl+Shift+<Up>@ and @Ctrl+Shift+<Down>@ will, respectively, enlarge and decrease the text size in a running urxvt window, and save the new font size to @~/.Xresources@, so that it's there for the next time you open a terminal window. With the Monaco font, it's a poor man's iTerm.

h2. Modular font directives

I keep my fonts in a separate xresources file, which gets include by @~/.Xresources@. This way I can version @~/.Xdefaults@ without dirtying the repository every time I change the terminal font size. For this to work, the path defined by @X_RESOURCES@ in @font@ must contain something like this:

bc. /* Fonts / urxvtboldColors: on urxvtfont: xft:Monaco:pixelsize=20:antialias=true:hinting=true:medium urxvtboldFont: xft:Monaco:pixelsize=20:antialias=true:hinting=true:bold ! vim:ft=xdefaults