Repository navigation
Releases: thornbux/glimt
Releases · thornbux/glimt
Release list
Glimt 0.39.0
Fixed
- A program installed while Glimt runs (zenity, sqlite3, ffmpeg) is found without a restart: only
a program that is there is remembered, one that is not is asked for again. - glimt --remote open of a folder or file whose name ends in a space opens it as named, instead of
a trimmed name that is not there. - Escape closes the Check Images window, as it closes the pan view; a check still running stops.
Changed
- egui and eframe 0.37 (from 0.36.2), with accesskit 0.25: the same look and keys; the names in
keys= are unchanged, as the test pins them. The arrow after Sort by and All types in the status
bar and the arrow keys of the Keyboard Map are from the fonts Glimt ships, as egui no longer
bundles the emoji fonts that drew them; a test holds every sign of the UI text to those fonts. - The release tests click menu items, buttons and choices by their text (a test-hooks build's
glimt --remote where LABEL), not by screen coordinates, so a change to the look no longer breaks
them. - The file list and everything indexed into it (the shown image, selection, panes, decoded slots,
search matches, drags) are one List, made anew when the list is read again: nothing indexed can
outlive its list, whatever is added later; what follows a file is carried over by name in one
place. - Every receiver of a background thread's answer is a Receiving, whose only ways to read tell once
when the thread is gone and forget it, so no new receiver can leave the window waiting for a
thread that broke. - The manual (Help → Help Manual, and the user guide on the website) is in short paragraphs and
lists instead of one block of text per chapter; every fact and key as before. - The rule that a file which is there but cannot be read is never written over (the settings,
marks, the keyword tree, the sort manager's folders, a sidecar) is one function, where each had
its own copy.
Glimt 0.38.5
Changed
- Preferences is in ten sections, each with a heading and an icon: Look, Keyboard, Image,
Slideshow, File list, Deleting, Colour management, Memory and CPU, Video, Start and system; the
settings are grouped by what they are about instead of one long list. - A plugin's edits and a repair's renames ask for the folder to be read again by name (relist) in
the one report every file operation sends, instead of posing as a failed delete. - What holds places in the file list is let go in one place (list_changed) when the list is read
again or files are taken out, the selection is restored by name in one place, the thumbnails'
look change in one, and the folder watcher ends with the old list in one, instead of the same
lines written by hand in two or three places each.
Fixed
- The rating set in a sidecar, the keywords set in one, the info and print template, ffprobe's
sizes, the desktop's theme answers, colord's device list and plugin desktop files are fed broken
input in every test run, as the other parsers are. - A plugin, Open With or Play Video program's output is not kept in memory while it runs (a
converter writing a 2 GB file to its output would be), only its errors. - A Rename Many that could not put every name back and could keep no plan for the next start (no
state folder, a full disk) says where the files are, instead of promising a repair that cannot
come. - The orientations that turn an image a quarter, the test for a JPEG by name and which files
another program reads are each written once, where they were in three, five and two places that
had to change together. - A PDF printed to a file and a new thumbnail are written through the one write-beside-and-rename
every file Glimt writes goes through, instead of two copies of it; a later change to that one
reaches them too. - Open Several Folders after a file of a type the Types menu leaves out (a RAW with RAW off, a
video with videos off) lists by the menu again, instead of keeping that type listed for the
folders too. - With --lock-settings (a kiosk, a shared machine) a change to the keyword tree lasts for the
session only, as the other settings do, instead of being written to the tree file. - Renaming a folder or a collection, and a new collection's file, never land over one of that name
made by another window or program between the look and the rename (RENAME_NOREPLACE, as a moved
file); one rule for all three. - A file that breaks the EXIF reader costs only itself in the exif: index, instead of its whole
share of the folder (1/N of the files) silently left out of every exif: search. - Check Images and sorting RAW files by EXIF date read a file through the usual size limit, so a
file that claims gigabytes (a sparse or damaged one) is refused instead of read whole. - Asking gio for a share's local path before mounting it, the Open With list (gio info and gio
mime) and lpstat have the usual time limit, and lp is ended after two minutes without an answer,
instead of Connecting…, an Open With list at … or the busy pointer for ever while a server does
not answer; the mount's own watchdog is the one every such program uses. - A folder listing, the selection's size or the subfolders whose thread broke no longer leave the
busy pointer, Reading folder…, auto refresh or a waiting --remote select stuck for the window's
life: told once, and nothing waits; and the Pan view stops reading an old list's days when the
folder or its order changes, instead of starting the new ones only after every old file was
read. - A layout's other panes keep their files when the folder is read again (auto refresh, another
sort order, a file added), as the shown image does, instead of keeping their places in the list,
which are other files' then: a slideshow one pane at a time no longer shows another image in a
pane after a refresh. - A Rename Many cut short by a crash and finished at the next start tells marks, stars and
collections about the renames, so they follow the files as after a finished Rename Many; and the
list is read again when the steps are done, not before. - Keywords, a comment or the alt text typed in the panel are written as a sidecar job like every
other sidecar write, so Move, Rename and Delete of that image wait until they have landed,
instead of the new keywords being left under the old name while the photo moves without them. - Rename and Rename Many run as a job like every other writer: closing waits for them (since
0.38.2 the window could close in the middle of a batch, and the next start said it was a crash),
the status bar counts them and Stop puts the names done so far back; and Copy, Move, Delete,
Rename Folder, Move Folder to Trash and plugins wait while a Rename Many runs, as a step would
find its file gone and the undo could not put the others back. - HEIC, AVIF and video frames are decoded no larger than the view (ffmpeg scales them), with the
real size from ffprobe for the zoom and the status bar, instead of a whole 48 MP frame for each
image shown or preloaded; the print and thumbnails report their real size too. - A settings file with a byte that is not UTF-8 (a path in another encoding) is saved again like
any other, instead of every later save being refused with "cannot be read".
Glimt 0.38.4
Added
- An icon before every item of the menus and submenus, from the Phosphor set the toolbar uses.
- glimt --remote slideshow, random and fullscreen take on or off, so a script sets a state instead
of flipping whatever the window was in; without the word they go to the other, as before.
Changed
- The settings that are one of a few are written by name (fit_mode=width, fade=long,
histogram=rgb, thumb_size=large, toolbar_icons=large, view_filter=inverted, cpu_use=full), so
that a longer list in a later version cannot change what a saved number means; the numbers of
before are still read. - The size an image is decoded to goes with its decode job (the view's box, turned with the shown
image when that is turned by hand, at least the projector's), instead of one shared box set in
one frame and read in the next; neighbours of a turned image are decoded at their own size at
once. - A move or copy reports its moved files and the gone ones in one message, so their marks follow
before the gone ones are forgotten whatever the timing; nothing depends on two messages' order
any more. - A rename step is done, undone and put right after a crash by one and the same code
(journal::step), so a case fixed for one of them holds for the others. - Closing waits for everything being written through one count held by every writer (file jobs, a
turned image, a print, keywords, the settings), instead of a list of counters a new writer had
to be added to; a third close ends at once without waiting for anything.
Fixed
- The Pan view shows the days read so far while a large folder is still being read, every half
second, instead of nothing until every date is known; Escape closes it. - Include Subfolders is kept across starts, as the other View toggles are, now that a large tree
shows its top folders at once; since 0.38.0 the saved setting was turned off at every start. - Release tests of daily use: the zoom and fit keys, the wheel and a drag, Open With (the default
application and the list), the clipboard read back, and the Norwegian interface in a real
window; closing is waited for instead of a fixed second, and the first image before the keys. - A plugin that is an editor no longer keeps the busy pointer on for as long as it stays open: a
plugin runs without it, as Open With does; its failure is still told. - A kiosk always listens for --remote quit, also with remote control turned off in the settings;
where it cannot (no $XDG_RUNTIME_DIR), it says so and Ctrl+Q closes it, instead of a kiosk
nothing but kill ends. - glimt --remote open takes one path: two words are refused as two paths (exit 2), instead of
being joined into the name of a file that is not there. - A PDF printed to a file and a new thumbnail are written like every other file Glimt writes:
never through a link planted at the temporary file's name, and a PDF that was a link stays one. - Mounting a share that never answers (a NAS asleep, a VPN down) gives up after a minute and says
so, and reading a Lightroom catalog has the usual time limit, instead of Connecting… and the
busy pointer for ever. - A damaged GIF, animated WebP or APNG whose frame header claims gigabytes is refused, instead of
a failed allocation ending Glimt at once; damaged JPEG, TIFF, PNG, WebP, HEIC, colour profile
and marks files are fed to their readers in every test run too. - Renaming a collection waits for an edit of it under way in another window, so the edit lands in
the renamed file instead of in a new file of the old name. - glimt --remote select or current sent while the window is still reading a large folder, or has a
dialog open, comes back as no answer (exit 1) once the time is up, never as an empty answer with
exit 0 that a script takes for every file selected; and one client waiting holds up no other. - The print dialog's preview shows a photo with its own colour profile in the print's colours, as
the page will have them. One small decode for thumbnails, the preview and the print, where there
were three. - A file whose decoder crashes gets its failure mark in the thumbnail cache like any other,
instead of being decoded again on every visit. - A background thread that ends without its answer (it broke on a file) is told once, and nothing
waits for it any more: Rename Many is not refused for the rest of the session, closing does not
wait for ever, the Pan view, Find Duplicates and the exif: search do not stay at Comparing or
Calculating. Find Duplicates leaves out only the file that broke its reader, not the whole share
of the list that worker had. - The exif: index and the Pan view's days stop being read when the folder is left or the window
closed, instead of reading every file to the end for no one and keeping the busy pointer on. - A move within a file system is one step that never replaces a file (renameat2 with
RENAME_NOREPLACE), so a crash or a forced close in the middle no longer leaves the photo under
two names; file systems without it keep the way of before. - Renaming one file runs in the background, as Rename Many does, so a share that stalls no longer
holds the window; one path for both. - A collection's file loses an image only once it is really deleted, in one place for Delete and
Move Folder to Trash alike: a delete that fails or is stopped leaves the collection as it was,
in its order, instead of taking the images out first and putting them back at the end. - An image that could not be read (a share away for a moment) is read again when it is shown
again, instead of the failure being kept for the session; the keywords edited mark their own
file for the exif: search, not the one shown; panes are filled again after a delete; the
selection's size follows a refresh; Open Folders includes the subfolders as the menu says, also
after a collection. - Copy, Move, Rename, Delete and the folder operations wait while keywords are being written to
the files, as they wait for a turned image being saved, so a batch of keywords no longer misses
the files moved before their turn; a file moved meanwhile counts as failed, not done. - Save Orientation with Auto Rotate off writes the turn on the pixels as the view showed them,
instead of on the file's EXIF orientation, which turned the photo wrong for every viewer that
reads it. - A slideshow of the subfolders in random order stopped before its listing arrived no longer
leaves the folder in random order, shuffled again at every refresh. - In the Flatpak, whether a program is on the host is asked of the shell once (host_has) and
remembered: the file dialogs, Open, the screen saver inhibitor and the Lightroom import decide
their fallbacks the same way, and the release tests run them as a Flatpak. - A slideshow asks for its next frame itself, whatever it did in this one, so no layout, order or
search can leave it standing still; its moves are one decision, tested over every combination. - Rename, Rename Many, Copy and Move refuse a new name whose sidecar is another file's also when
the file has no sidecar of its own, so a photo never shows a stranger's keywords; one rule for
all four. A sidecar that cannot go with its copied or moved photo is told, instead of left
behind in silence. - A turned image whose save lands after the file was deleted, moved or renamed is not made again
under its old name, whatever operation moved it: the save is refused and told. A plugin run on
an image being saved turned waits, as Delete does, and its own report no longer ends that save's
guard. - In the Flatpak, Open With lists the programs installed as Flatpaks and the user's own, not only
the distribution's: the host's programs get the host's data folders, not the sandbox's.
Glimt 0.38.3
Fixed
- Glimt is offered under Open With for Panasonic's older .raw files too, which it reads.
- The Pan view's calendar shows the weekdays in Norwegian too in the Norwegian interface.
- glimt --remote open with a file name that is not UTF-8 opens it when no Glimt is running, and
else says it cannot send it, instead of opening a name with a replacement character that is
no file. - %dimensions% in printed captions is the size shown, upright, also for a portrait turned by EXIF
and for RAW files, instead of the stored size or a RAW's thumbnail. - A folder is not renamed or moved to the trash while a turned image in it is being saved, which
left a hidden temporary file as large as the image behind. - A move whose source cannot be removed (someone else's file in a shared folder) leaves no second
name behind in the folder it went to. - Open With finds the applications installed on the system also in the Flatpak, where it said none
were found, and no longer lists the Flatpak Glimt itself. - A RAW photo whose preview is less than twice the view's size (a 24 MP camera on a 4K screen) is
read only as far as its preview, not whole. - The images after one turned a quarter by hand are decoded at their size at once, not too small
first, and a turned photo on the projector is sharp. - Keywords, comments and alt text are written through the same thread as stars and tags, in the
order they were made, and closing waits for them; a share that stopped answering no longer holds
up the saving of settings and stars. - Move and Copy refuse a photo whose sidecar name in the folder is taken by another file's, as
Rename does, instead of giving the photo that file's keywords and stars and leaving its own
behind. - A Rename Many whose plan could not be written (a full disk) leaves no half plan behind, which
the next start would offer to finish and so undo the renames. - With Auto Rotate off, files no thumbnail could be made of are marked and not tried again on
every visit, as with it on (since 0.38.2). - Ctrl+Shift+C copies the image to the clipboard, as the menu says, instead of opening Copy to
Folder. - A slideshow in a layout that changes one image at a time goes on with Fade off, or in power
saving, instead of standing still once its images are loaded. - A slideshow in random order in a layout that changes one image at a time goes on into a new
round, instead of shuffling the whole list on every frame and standing still. - Full screen in the Flatpak, on a host where no screen saver inhibitor runs, stays smooth,
instead of trying again on every frame and drawing about five frames a second (since 0.38.2). - New Collection works on a new install again, where the collections folder is not there yet,
instead of saying the collection could not be saved (since 0.38.2).
Glimt 0.38.2
Fixed
- In the Pan view, an image whose camera left its EXIF date blank is under No date, instead of a
day of its own with a heading of dashes. - Find Duplicates stopped halfway shows no result, instead of saying it found no duplicates among
all the images. - Exposure times from 0.3 to 0.8 s show as such in the EXIF panel and overlay, instead of 1/3 s,
1/2 s or 1/1 s. - A copy of a private photo is not readable by others while it is written; it gets the photo's
permissions once whole. - In the Flatpak, the projector window has Glimt's icon and stays with Glimt in the dock, instead
of an entry of its own with a generic icon. - Plugins and decoders whose desktop file starts with a comment are found, instead of silently
left out. - Putting a cut-short Rename Many right no longer now and then does nothing, when Glimt started
another program at that moment. - With Auto Rotate off, thumbnails are made as the image is stored, also in a folder seen before,
instead of taken upright from the shared cache. - In the Flatpak, a host without zenity falls back to kdialog for the file dialogs, opening with
the default program falls back to xdg-open, and the screen saver is kept off by systemd-inhibit
where gnome-session-inhibit is missing; a host with neither file dialog says so instead of doing
nothing. - Rename refuses a new name whose sidecar is left over from another file, as Rename Many does,
instead of giving the renamed photo that file's keywords and stars. - A sidecar moved along with its image to another drive is on disk there before the original goes,
as the image is, so a stick pulled out or a power cut no longer loses its keywords. - Rename Many that cannot put every name back after a failure (a share that stopped answering)
keeps its plan and says so, so the next start offers to put the files right, instead of saying
nothing was renamed. - Keywords, comments and stars still waiting to be written when their folder is renamed no longer
make a folder of the old name again, full of sidecars of nothing. - A link planted beside a collection or a photo in a shared folder, where Glimt puts its lock or
temporary file, no longer empties the file it points to. - Marks and stars of files moved to another folder go along with them also when the move's two
reports arrive between two frames, instead of now and then being forgotten. - A slideshow in random order goes on when a search hides the shown image or shows only one,
instead of shuffling the whole list on every frame and standing still. - An image turned a quarter by hand in Fit, Fit Width or Fit Height is decoded once at the size
shown, instead of too small first and then again. - Zooming in a layout of several panes decodes each pane's image at full size once, instead of
again and again on every frame with the panes never sharp.
Glimt 0.38.1
Fixed
- Sentences of the Norwegian interface that were half English ("3 filer copied to …", the status
bar's "selected" and "bytes", the file dialogs' titles) are Norwegian throughout. - Images printed on small photo paper with a wide margin are decoded for the room they get, not
for less (since 0.38.0). - Landscape pages printed on both sides turn on the short edge, so the backs are the right way up
(since 0.38.0). - glimt --remote subfolders takes only on or off, and tells anything else as an unknown command
instead of doing nothing (since 0.38.0). - Enter in a text field of the Print dialog (the page text, the template) ends the typing instead
of printing at once (since 0.38.0). - Turning Include Subfolders on during a slideshow in random order keeps it random: the images
found so far came in name order and took the shuffled list's place (since 0.38.0). - The images of a tree found so far wait one at a time for the window: a window not drawn while a
large tree was read could gather a copy of the list for every quarter second. - With Include Subfolders on, a tree is read in name order and opens on its first image, also in
another sort order, instead of on an image of its last subfolder (since 0.38.0); its first
images show as soon as they are found, also inside one large subfolder.
Changed
- The images of a large tree found so far come less often as the list grows, never taking more
than a fifth of the reading's time to copy.
Glimt 0.38.0
Added
- The interface in Norwegian bokmål (src/no_nb.po), chosen by the system's language (LANG) or in
Preferences → Language; a text not translated shows in English, and the Help Manual, the command
line and --remote stay English. - The Print dialog shows the first page as it will print: the images, their text and the page
text, laid out as the PDF is. - Printing on both sides of the paper, on a printer that can.
- Text at the top and the bottom of every printed page, with %page% and %pages% for the page
numbers, as Geeqie's page text. - The text under each printed image comes from a template, as the full screen info's: the file
name by default, or its date, camera, keywords, comment and other EXIF fields, as Geeqie's image
text. - Printing can fill each box with its image, cut to the box, for even contact sheets and
borderless photo prints. - One image a page prints at a size of one's own, 10 to 100 % of the room it has, centred, as
Geeqie's Image size. - A margin of one's own around the printed page, 0 to 50 mm, instead of always 10 mm.
- Printing turns the paper by the image as before, or always portrait or landscape; a contact
sheet on landscape paper turns its grid with it. - Printing on A3, A5, Legal and photo paper of 10 × 15 and 13 × 18 cm, beside A4 and Letter.
- glimt --remote subfolders on|off turns Include Subfolders on or off.
Changed
- The About page links to glimt.pario.no and to Glimt's MIT License.
- Include Subfolders is off at every start: kept on, a start in a folder with many subfolders read
the whole tree before any folder showed.
Fixed
- With Include Subfolders on, the images of a folder's tree show as they are found, a subfolder at
a time, in name order; the sort asked for comes when the whole tree is read. - With Include Subfolders on, a folder's own subfolders show at once, before its whole tree is
read; and opening another folder meanwhile stops reading the tree, which went on in the
background until its end.
Glimt 0.37.2
Fixed
- A thumbnail is written whole or not at all: on a full disk a cut-off PNG could land in the
thumbnail cache other programs share. - Folders added to the sort manager in two windows at the same moment both stay: its file is
locked while it is read and written, as the keyword tree's. - Keywords, a comment and alt text are saved in the background, not in the window's thread: a
sidecar on a slow or stalled share no longer freezes the window when a field is left or the next
image shown. - Rename Many keeps the letters of names that are not UTF-8 (Latin-1 from an old camera or a
Windows zip) where the pattern has *, instead of turning them into "�" for good. - A collection's file is no longer written again when a move or rename leaves its images as they
were, nor called gone for an unrelated folder renamed while it is shown. - Renaming or moving a file with many marked files is quick again: all marks are looked through
only when a folder is renamed (since 0.37.0). - Two Glimt windows from different builds (an AppImage and a distribution's package) wait for each
other's sidecar writes too: the lock is chosen by a fixed hash of the path, not Rust's own,
which may differ between Rust releases. - A sidecar on a share that stopped answering no longer holds up the sidecar writes of other
images in the window, nor through them the window itself (since 0.37.1). - Closing Glimt no longer waits for a plugin's program to end, such as an editor opened from Glimt
(since 0.37.1). - A decoder program that leaves a helper running with its error output open is stopped after its
time limit too, instead of holding a decoding thread for good (since 0.37.0). - A turn not saved yet is saved into its file under the new name after Rename, Rename Many or
Rename Folder, instead of being dropped (since 0.37.0). - The turn and mirror keys in an empty folder no longer end Glimt (since 0.37.0).
Security
- A lossy WebP saved turned is no longer briefly readable by others while it is made: ffmpeg hands
it over in memory, and Glimt writes it through its own temporary file, private from the start,
as every other format. - A JPEG, RAW or SVG file larger than Glimt decodes (512 MB) is refused by its size before it is
read: a sparse or crafted file of gigabytes in a folder could fill memory and end Glimt when its
thumbnail was made.
Changed
- The About page shows Glimt's logo beside its name and version.
Glimt 0.37.1
Changed
- Glimt prints the median, 90 % and slowest of its frames at exit, in the window thread's
processor time, and the release tests check the median with 500,000 files selected and the
Delete dialog open: the slowest frame on the clock varied from 20 to 64 ms between two runs of
the same build, as it counts other threads' work too.
Fixed
- Keywords, a comment, alt text or stars saved for the same image by two Glimt windows at the same
moment both stay in its XMP sidecar: each window now waits for the other's write, through a lock
in Glimt's runtime folder, not a file beside the photo. - Closing Glimt while it prints to a PDF, moves files or a folder to the trash, puts a cut-short
Rename Many right, runs a plugin or imports Lightroom collections waits for that to end, as it
does for copies and moves, instead of ending it halfway.
Glimt 0.37.0
Fixed
- The busy pointer goes when background work ends however it ends, also when a worker thread
panics: each one now holds a guard instead of counting by hand. - ffmpeg, ffprobe and decoder programs are all stopped after 30 seconds, with every program they
started and also on the host in the Flatpak: ffmpeg's own limit counted only its working time,
so one waiting on a share that stopped answering held the image for good. - A turn not saved yet is saved into the file it was made on, whatever happens to the list
meanwhile, and not at all when another program removed that file.
Changed
- Delete, Rename and Rename Many act on the files they asked about, found by name wherever the
list put them meanwhile (another image shown by --remote, the folder read again), instead of
doing nothing when the list changed; nothing is done only when another folder is shown or the
files are gone. - A window writes only its own change to a collection's file (images taken out, renamed, added or
put in order), never its whole list, so what other windows changed meanwhile always stays. - Glimt prints its slowest frame at exit, beside the first image's time, and the release tests
check it with 500,000 files selected, renamed, deleted and searched.