ivy-posframeの設定

ivy-posframeとは実行コマンドごとにivyのメニューの表示位置を調整できるパッケージだ。
github.com

私の設定は以下:

;; コマンドごとに位置を制御できる
;; nilはivy-posframeの適用なし
(setq ivy-posframe-display-functions-alist
      '((swiper          . nil)
        (swiper-avy      . nil)
        (swiper-isearch  . nil)
        (complete-symbol . ivy-posframe-display-at-point)
        (counsel-M-x     . ivy-posframe-display-at-point)
        (flyspell-correct-ivy . ivy-posframe-display-at-point)
        (counsel-recentf . ivy-posframe-display-at-frame-center)
        (t               . ivy-posframe-display)
        ))

;; ivy-posframeの利用中でもswiper-avyを有効にするおまじない
(define-key ivy-posframe-mode-map
  [remap swiper-avy] nil)

;; フリンジの表示
(setq ivy-posframe-parameters
      '((left-fringe . 8)
        (right-fringe . 8)))

;; コマンドごとにフレームの高さも制御できる(tはデフォルト)
(setq ivy-posframe-height-alist '((t      . 20)))

;; 有効化
(ivy-posframe-mode 1)