emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [External] : Re: master cc29fab3a6: Redisplay "invisible" frames tha


From: Drew Adams
Subject: RE: [External] : Re: master cc29fab3a6: Redisplay "invisible" frames that are actually visible on modern X
Date: Tue, 27 Dec 2022 17:42:58 +0000

Apologies if you feel this is too far afield.
I mention it because the discussion has now
touched on the area of desktop icons that can
be made to show popup previews of frames that
might themselves not be visible, and on the
need/cost of updating such previews.
___

My library `thumb-frm.el' provides something
similar.  It lets you "thumbify" frames to
(any size) thumbnail versions.

These are not icons in the usual sense.  But
on a desktop they appear/act much like icons.
They can be any size, down to the size of the
smallest MS Windows icons (~1x1 cm).  They're
not just previews; they're normal frames.

By default (controlled by a user option) they
have no menu-bar or tool-bar, have a scroll
bar (6x6-pixels), and are 30% transparent when
not selected (opaque when selected).

You can move them about and resize them, like
other frames.  You can scroll them, page them,
search in them, `M-x' in them - even edit in
them (though for most edit operations the text
is too tiny).  (You can of course use `C-x C-q'
in them.)  You can monitor the progressive
output in a buffer such as `*Messages*' from a
height of 100, 1,000 or 10,000 meters.

In one sense they're kind of like tabs on a tab
bar - that's one way to use them.  But they can
be any size and anywhere on the desktop (even
on top of or overlapping each other), and they
show you more than just a buffer name.

Thumbnail frames are just tiny - they're still
normal frames.  Going back & forth between the
thumbified and dethumbified versions of a frame
is a single keystroke or click.

And each (the thumbnail and the full-size
frame) has its own position and size - moving
or resizing one doesn't affect the other.  A
thumbnail records and restores the properties
of the frame it was thumbified from.

By default (a user option), (de)thumbifying is
a _replacement_ for (de)iconifying - commands
such as `iconify-frame' are advised to use
thumbnails instead.

The original behavior of iconifying commands
remains available using different names:
`thumfr-really-iconify(-or-deiconify)-frame'.
Similarly, by default `raise-frame' does a 
dethumbify, and its original behavior is via
command `thumfr-only-raise-frame'.

In addition, you can substitute thumbifying
for iconifying at a lower level, letting you
use the window-manager's "minimize" button to
thumbify:

(define-key special-event-map [iconify-frame]
            'thumfr-thumbify-frame-upon-event)

And anywhere that your window manager would
give you a preview of a frame it will still
give you a preview, whether or not the frame
is thumbified.

E.g., on MS Windows, task-bar mouseover of the
GNU Emacs icon shows previews of the frames
equally, thumbified or not, and the previews
are all at the same scale.  In the preview you
can't tell the difference (except by, say,
noticing a menu-bar, if that's excluded from
thumbnail frames).
___

Dunno whether or how much you might think this
is related to having desktop icons be able to
show a frame preview on mouseover.  I think it
gives you a preview (which can be much more
than a preview, and which needs no refreshing)
_in the "icon" itself_.

https://www.emacswiki.org/emacs/download/thumb-frm.el

This page provides some (old) description and
screenshots.

https://www.emacswiki.org/emacs/FisheyeWithThumbs

But, by default, I now use thumbnails that are
quite a bit smaller than what's shown there.

And I personally don't bother with any of the
arranging or cycling commands.  I just thumbify
a frame at its same location, and if I want the
thumbnail elsewhere I move it.

And if I want, I resize it like any other frame,
using my `zoom-in|out':

https://www.emacswiki.org/emacs/download/zoom-frm.el

reply via email to

[Prev in Thread] Current Thread [Next in Thread]