 'left: Align on the left side of the currently selected window.
 
 'right: Align on the right side of the currently selected
-window."
+window.
+
+<function>: Call the specified function with no arguments to
+determine side, must return one of the above four values."
   :type '(choice (const :tag "Above" above)
                  (const :tag "Below" below)
                  (const :tag "Left" left)
                  (const :tag "Right" right))
   :group 'shackle)
 
-(defcustom shackle-default-ratio 0.5
-  "Default ratio of aligned windows.
-Must be a floating point number between 0 and 1.  A value of 0.5
-splits the window in half, a value of 0.33 in a third, etc."
-  :type 'float
+(define-obsolete-variable-alias 'shackle-default-ratio 'shackle-default-size
+  "0.9.0")
+(defcustom shackle-default-size 0.5
+  "Default size of aligned windows.
+A floating point number between 0 and 1 is interpreted as a
+ratio.  An integer equal or greater than 1 is interpreted as a
+number of lines."
+  :type 'number
   :group 'shackle)
 
 (defcustom shackle-rules nil


:regexp and t

A default rule can be set up with `shackle-default-rule'.
To make an exception to `shackle-default-rule', use the condition
you want to exclude and either not use the key in question, use a


;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.

;; This file is distributed in the hope that it will be useful,
