GNU ELPA - posframe


Pop a posframe (just a frame) at point
posframe-1.1.7.tar, 2022-Jan-24, 140 KiB
Feng Shu <>
Browse ELPA's repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET posframe RET

Full description


1 What is posframe?

Posframe can pop up a frame at point, this posframe is a child-frame connected to its root window's buffer.

The main advantages are:

  1. It is fast enough for daily usage :-)
  2. It works well with CJK languages.


  1. For MacOS users, posframe needs Emacs version >= 26.0.91
  2. GNOME users with GTK3 builds need Emacs 27 or later. See variable `posframe-gtk-resize-child-frames' which auto-detects this configuration.

    More details:

    1. Fix some problems with moving and resizing child frames
    2. Emacs's set-frame-size can not work well with gnome-shell?


2 Installation

(require 'posframe)

3 Usage

3.1 Create a posframe

3.1.1 Simple way
(when (posframe-workable-p)
  (posframe-show " *my-posframe-buffer*"
                 :string "This is a test"
                 :position (point)))
3.1.2 Advanced way
(defvar my-posframe-buffer " *my-posframe-buffer*")

(with-current-buffer (get-buffer-create my-posframe-buffer)
  (insert "Hello world"))

(when (posframe-workable-p)
  (posframe-show my-posframe-buffer
                 :position (point)))
3.1.3 Arguments
C-h f posframe-show

3.2 Hide a posframe

(posframe-hide " *my-posframe-buffer*")

3.3 Hide all posframes

M-x posframe-hide-all

3.4 Delete a posframe

  1. Delete posframe and its buffer

    (posframe-delete " *my-posframe-buffer*")
  2. Only delete the frame

    (posframe-delete-frame " *my-posframe-buffer*")

3.5 Delete all posframes

M-x posframe-delete-all

Note: this command will delete all posframe buffers. You probably shouldn't use it if you are sharing a buffer between posframe and other packages.

3.6 posframe-arghandler

posframe-arghandler feature has been removed from posframe-1.1, user can use advice feature instead.

3.7 Mouse banish

Default setting will work well in most case, but for EXWM user, suggest use the below config.

(setq posframe-mouse-banish-function #'posframe-mouse-banish-simple)

Old versions

posframe-1.1.6.tar.lz2022-Jan-1076.3 KiB
posframe-1.1.5.tar.lz2022-Jan-0876.2 KiB
posframe-1.1.4.tar.lz2022-Jan-0776.3 KiB
posframe-1.1.0.tar.lz2021-Nov-0475.8 KiB
posframe-1.0.4.tar.lz2021-Jun-1675.5 KiB
posframe-1.0.3.tar.lz2021-May-3175.4 KiB
posframe-1.0.2.tar.lz2021-Apr-2375.4 KiB
posframe-1.0.1.tar.lz2021-Apr-1675.4 KiB
posframe-1.0.0.tar.lz2021-Apr-1075.4 KiB
posframe-0.9.0.tar.lz2021-Mar-3174.6 KiB
posframe-0.8.8.tar.lz2021-Mar-1174.6 KiB
posframe-0.8.7.tar.lz2021-Mar-0374.6 KiB
posframe-0.8.0.el.lz2020-Aug-1810.7 KiB
posframe-0.7.0.el.lz2020-Apr-059.53 KiB
posframe-0.6.0.el.lz2020-Feb-059.32 KiB
posframe-0.5.0.el.lz2019-Jun-098.77 KiB
posframe-0.4.3.el.lz2019-Mar-138.32 KiB
posframe-0.3.0.el.lz2018-Mar-096.12 KiB
posframe-0.2.0.el.lz2018-Mar-086.07 KiB
posframe-0.1.0.el.lz2018-Feb-275.83 KiB