--- /dev/null
+(defvar my/fringe-width 6)
+
+(defconst my/script-dir
+ (file-name-directory (or load-file-name
+ buffer-file-name)))
+
+(defun my/cleanup ()
+ (dolist (buffer (buffer-list))
+ (kill-buffer buffer)))
+
+(defun my/prepare-UI ()
+ "Prepare UI for taking a screenshot."
+ (ido-mode)
+ (tool-bar-mode -1)
+ (menu-bar-mode -1)
+ (scroll-bar-mode -1)
+ (column-number-mode)
+ (fringe-mode (cons my/fringe-width my/fringe-width))
+ (blink-cursor-mode -1)
+ (setq-default cursor-type 'bar
+ split-width-threshold 80
+ truncate-partial-width-windows t
+ frame-title-format (format "Compact docstrings @ Emacs %s" emacs-version)
+ x-gtk-use-system-tooltips nil)
+ (load-theme 'tango t)
+ ;; (set-face-attribute 'tooltip nil :height 60)
+ (set-face-attribute 'match nil :background "yellow1")
+ (set-face-attribute 'default nil :family "Ubuntu Mono" :height 110)
+ (set-face-attribute 'mode-line nil :foreground "gray60" :background "black")
+ (set-face-attribute 'mode-line-inactive nil :foreground "gray60" :background "#404045")
+ (set-face-attribute 'mode-line-buffer-id nil :foreground "#eab700")
+ (set-fontset-font t 'unicode "Ubuntu Mono")
+ (set-frame-size nil 100 13)
+ (redisplay t))
+
+(defun my/load-package ()
+ "Load package."
+ (package-initialize)
+ (load-library "compact-docstrings"))
+
+(defun my/load-example ()
+ "Prepare files and layout windows."
+ (find-file "etc/before.py")
+ (setq buffer-name "Regular docstrings")
+ (find-file-other-window "after.py")
+ (setq buffer-name "Compact docstrings")
+ (compact-docstrings-mode))
+
+(defun my/prepare-screenshot-1 ()
+ "Prepare for taking a screenshot."
+ (my/prepare-UI)
+ (my/load-package)
+ (my/load-example)
+ (message nil))
+
+(defun my/save-screenshot ()
+ "Save screenshot of current frame."
+ (let ((fname (expand-file-name "compact-docstrings.png" my/script-dir)))
+ (process-lines "import" "-window" (frame-parameter nil 'outer-window-id)
+ fname)
+ (process-lines "mogrify" "-strip" "-matte"
+ "-bordercolor" (face-attribute 'fringe :background)
+ "-border" (format "0x%d" my/fringe-width) fname)
+ (process-lines "optipng" "-o3" fname))
+ (kill-emacs))
+
+(defun my/take-screenshot ()
+ (my/prepare-screenshot-1)
+ (redisplay t)
+ (run-with-idle-timer 1 nil #'my/save-screenshot))
+
+(print default-directory)
+(run-with-idle-timer 0 nil #'my/take-screenshot)