If you haven’t noticed from all my grumpiness, I recently moved from Nicaragua, where I had two massive 30 inch monitors, arranged in portrait mode, that I wrote on. I liked ‘em.
I’ve had to move back to using a laptop with a secondary display, both in landscape mode, which means that I can’t see a whole page of text.
With either screen formatted in 80 columns in a font I can read comfortably… I have about 30% of each screen’s space horizontally left over for something else, like chat or my agenda… anything, other than ads! Something, productive… whatever it may be.
Maybe chat?
I’d written some elisp a couple years ago that made chatting with multiple people inside of Emac’s ERC client work better in landscape mode, which I just I sat down and dug up:
<p>(defvar last-split-type t)</p>
<p>(defun split-window-p () “Determine if a window can be split”
(interactive)
(if (> 5 (window-height)) t))</p>
<p>(defun split-window-sanely () “SPLIT A WINDOW SANELY”
(interactive)
(if last-split-type
(progn
(setq last-split-type (not last-split-type)) ;; globals bad! FIXME
(split-window-horizontally))
(if (split-window-p) (split-window)
(progn
(select-window (get-largest-window)) ;; or get-lru-window
(split-window) ;; If we can’t succeed, just keep erroring out
)
)))</p>
<p>;; Tile all servers</p>
<p>(defun erc-arrange-session-sanely ()
“Open a window for every non-server buffer related to `erc-session-server’.
All windows are opened in the current frame.”
(interactive)
(unless erc-server-process
(error “No erc-server-process found in current buffer”))
(let ((bufs (erc-buffer-list nil erc-server-process)))
(when bufs
(delete-other-windows)
(setq last-split-type t)
(switch-to-buffer (car bufs))
(setq bufs (cdr bufs))
(while bufs
(split-window-sanely)
;; (other-window 1) ;; with this we get a lovely spiral on bottom right
;; (other-window) ;; with this we get a lovely spiral on top left
(switch-to-buffer (car bufs))
(setq bufs (cdr bufs))
(balance-windows))
(balance-windows))))</p>
What I mostly want right now is the tiling facility I get out of the awesome window manager where you can have a primary window (eating 80 columns!) and two or more secondaries, of any application.
The above piece of code helps a bit, but I’m strongly thinking I’m going to end up turning the darn laptop on its side again. Eventually I hope to pair up a pad of some kind - velcroed in portrait mode to the wall - and a GOOD keyboard, and get off the laptop entirely.
(My dream of switching to working on a pad, whenever a good android based one ships, is in part, why I am so vigorously exploring low resource organizational systems like ikiwiki.
Emacs works JUST great on a 1.2Ghz Arm box - and I look forward, very much, to the day where I don’t have to listen to a fan all day and still be able to write, code, and work.
I can’t really wrap my brain around elisp today. There’s too much C in my head.