Skip to content

tumashu/posframe

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

Pop a posframe (just a frame) at point

GNU ELPA GNU-devel ELPA MELPA

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.

NOTE:

  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?

./snapshots/posframe-1.png

Installation

(require 'posframe)

Usage

Create a posframe

Simple way

(when (posframe-workable-p)
  (posframe-show " *my-posframe-buffer*"
                 :string "This is a test"
                 :position (point)))

Advanced way

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

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

(when (posframe-workable-p)
  (posframe-show my-posframe-buffer
                 :position (point)))

Arguments

C-h f posframe-show

Hide a posframe

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

Hide all posframes

M-x posframe-hide-all

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*")
        

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.

posframe-arghandler

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

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)

About

Pop a posframe (just a child-frame) at point, posframe is a **GNU ELPA** package!

Resources

Stars

Watchers

Forks

Packages

No packages published