Groups and Placement

Groups and Placement

I don’t need many groups, rarely more than five. Hence, here are my five default groups.

GroupsNumberType
[EMACS]1Tiling
[TERM]2Tiling
[WWW]3Tiling
[PRIV]4Tiling
[FILES]5Tiling

Groups are specified this way:

(when *initializing*
  (grename "[EMACS]")
  (gnewbg "[TERM]")
  (gnewbg "[WWW]")
  (gnewbg "[PRIV]")
  (gnewbg "[FILES]"))

By default, if nothing is specified as per the group type, my groups are manual tiling groups. Otherwise, as you can see above, they can also be dynamic tiling groups or floating groups.

Next, let’s make sure no previous window placement rule is in place, this will avoid unexpected and hard-to-debug behaviour.

(clear-window-placement-rules)
(define-frame-preference "[FILES]" (nil t t :class "Tiling"))
(define-frame-preference "[PRIV]" (nil t t :class "Tiling"))
(define-frame-preference "[WWW]" (nil t t :class "Tiling"))
(define-frame-preference "[TERM]" (nil t t :class "Tiling"))
(define-frame-preference "[EMACS]" (nil t t :class "Tiling"))

Dynamic groups, if any is created, should have a split ratio of half of the available space.

(setf *dynamic-group-master-split-ratio* 1/2)