Welcome!
Gwenview is a fast and easy to use image viewer for KDE. For more information, have a look at the overview.News
What’s new in Gwenview from KDE 4.8
Aurélien
- 2012.01.27
Now that KDE 4.8 has been released, it’s time to recap all changes you will find in Gwenview.
The main change is the addition of animations when viewing images: crossfading between images and nicer-to-use comparisons. You can learn more from this previous blog article.
This change was not nice for users of some graphic cards whose OpenGL drivers do not support what Gwenview tries to do. I decided to play it safe for now: animations in Gwenview now use software rendering by default. For better performance, you can enable OpenGL rendering in the configuration dialog.
This new version of Gwenview also comes with a lot of smaller changes, some of them caused by the limitations which were introduced by the new animation system.
Scrolling and Zooming
- No more scrollbars: A bird-eye view lets you scroll the image.

- Nicer zoom cursor. I realized Qt now supports truecolor cursors, so I drew a nicer magnifying glass cursor instead of the black+white+1bit-alpha-channel version. Holding down Ctrl to zoom won’t bring you back to the 90s anymore!
- Pressing ‘F’ toggles zoom-to-fit on and off.
- More consistent behavior: SVG images can now be scrolled using the same shortcuts as scrolling raster images.
Global User interface changes
- The “sidebar collapser”, the little arrow on the left of the view which let you hide the sidebar is gone. It has been replaced by a button in the statusbar.
- Labels for some of the toolbar buttons have been removed, reducing its width. It should now be more usable on small netbook-like screens.
Tools
- The red-eye reduction and crop tools no longer show floating widgets over the image, a thin bar slides from the bottom of the window instead.

Behavior
- Compared images follow thumbnail view order: previously when one selected two or more images to compare them, they would not necessarily appear in the same order as in the thumbnail bar.
- Arrow-key navigation in zoom-to-fit mode. This one has been requested by quite a few people. When an image is in zoom-to-fit mode, you can go to the previous and next image with the arrow keys. When you zoom in, arrow keys are used to scroll the image. This is very similar to the behavior provided by phones or digital cameras.
Video support
- The on-screen-display is now transparent.

- One can use the left and right arrow keys to seek
- A late addition: an undocumented shortcut (P) to toggle playback
- Note that video support is a bit fishy right now: it seems Phonon does not always play well with its video widget being embedded in a QGraphicsView, known symptoms are wrong colors or wrong aspect ratio. Hopefully this will improve in the next releases.
4.8.1 should bring you its usual series of bug fixes, among them is generating thumbnails for all images of the current folder, not only the currently visible ones. This fix is a bit bigger than your usual .1 fixes, so if you are willing to test it, you are welcome. The code is available on Gwenview git repository, in the “gen-all-thumbnails” branch.
I hope you enjoy this new Gwenview!
Oups, my burst shots are all shuffled!
Aurélien
- 2012.01.04
At the end of December my wife and I were invited with other parents to my daughter last dance lesson of the year.
Of course, I brought my camera with me. I shot a little bit more than 160 pictures from the one hour lesson (if that sounds like a crazy number, then you probably don’t have kids…).
Some of them were shot in burst mode, where the camera continuously takes a few pictures per second, increasing the chances the wannabe photographer gets at least one decent picture (and partially explaining the embarrassing large number of shots…)
Importing, aka, the mistake
Back home, I imported the pictures with Gwenview importer and started to comb through them to get rid of the cruft.
Burst mode is fun, but Gwenview importer does not play nice with it: by default it renames imported pictures using the shot date found in the image EXIF information. I like this feature because I find it more expressive to have a picture named “2011-12-17_12-47-47.jpg” than “pict0234.jpg”. It has one big drawback though: the precision of time information stored in EXIF is one second. When one shoots in burst mode, more than one picture per second is produced… In such a situation, Gwenview importer inserts a “_n” suffix just before the extension dot, where “n” starts at “1″ and is increased until the importer can create a file name which does not exist. It gets even a bit nastier when you realize Gwenview importer does not necessarily import pictures in file order, meaning the “n” values do not necessarily match the order in which the pictures were taken… not good.
Workarounds
I want to address this issue correctly in KDE SC 4.9, but meanwhile here are some workarounds.
If you haven’t yet imported your burst-mode pictures, you can either disable image renaming altogether or change the “Rename Format” from “{date}_{time}.{ext.lower}” to “{date}_{time}_{name.lower}.{ext.lower}”. This way imported images will still carry the original image name and will be properly ordered. File names will be a bit ugly, but at least you will be safe.

Configuring Gwenview importer to append the original file name at the end of imported pictures
If you have already imported the pictures it gets a bit more tricky. I looked at the EXIF information my camera recorded and noticed pictures have a “Exif.Panasonic.SequenceNumber” tag (yes, that sounds vendor-specific :/). This tag is set to 0 for normal pictures, but starts at 1 and goes up for burst-mode pictures. I thus put together “pict-exif-rename”, a quick Python script using pyexiv2 to rename all images, appending a suffix based on the sequence number if it is greater than 0.
I pushed “pict-exif-rename” as a github gist, maybe you will find it useful.
It would be interesting to hear from different camera owners about the presence of the “Exif.Panasonic.SequenceNumber” tag (or an equivalent). You can quickly check its presence by running “exiv2 -Pkv a_picture.jpg | grep SequenceNumber”. All pictures taken with my camera (Panasonic DMC-FS16) have this tag, it is set to 0 for non burst-mode pictures.
Announcing Gwenview Forum
Aurélien
- 2011.12.14
Gwenview has had a mailing-list for a very long time now, but time changes. Nowadays I believe forums are more appropriate for end-users discussions than mailing-lists for a few reasons:
- Forum do not require setting up individual passwords for every topic you are interested in.
- It is easier to join an existing conversation on a forum you just discovered than on a mailing list you have not subscribed yet.
- It is easier for non-technical users to read and join a forum.
Therefore I asked for a Gwenview forum to be created on forum.kde.org. You can find it forum.kde.org/viewforum.php?f=213 (too bad forums do not get nicer urls :/). Come and ask your questions here!
I plan to phase out the mailing-list. I haven’t yet decided of a day when it will be turned off but it’s probably going to happen in a month or two. After that the only remaining bit of SourceForge infrastructure used for Gwenview will be the (outdated) website, maybe I’ll get around to create a site for Gwenview under kde.org domain…
Crossfade!
Aurélien
- 2011.10.19
I have been a bit quiet lately, but haven’t been slacking
Among other things, I started working on implementing one of the oldest most-wanted feature of Gwenview: crossfade transitions between images. I have pushed the code to Gwenview git repository. It still lives in topic branches for now though.
I first worked with an evolution of the QWidget-based code. This is quite stable but it is too slow at HD (1920×1080) resolution. You can find this work in the “agateau/xfade” branch.
I thus decided to bite the bullet and start a massive refactor of the code, rebasing it on QGraphicsView with an OpenGL viewport. This is the much-faster-but-currently-full-of-regressions “agateau/xfade-qgv” branch.
This change makes Gwenview much smoother to use when going through images but it also helps quite a bit in comparison mode: images move around when selected and unselected, making it easier to track where they go.
I recorded a short video to demonstrate the current state of the xfade-qgv branch. It demonstrates both going through images and image comparison. In this video Gwenview runs on a HD monitor. Note that I had to record it with a digital camera, desktop recorders did not produce a smooth animation, so the video quality is not exactly optimal.
I hope I can bring the xfade-qgv branch back to feature-parity with master so that it can be merged in before Soft Feature Freeze (October 27th!).
June 2011 wrap-up
Aurélien
- 2011.07.07
8th of July, high time for June wrap up…
I was away for a little less than two weeks in June, as I attended the Qt Contributor Summit (see report) and a Canonical Sprint.
Gwenview
Most of my time this month was spent on Gwenview, polishing it to be ready for the KDE SC 4.7 release. Here is the list of changes I made:
- Black screen fixes
- Thumbnails are now automatically refreshed when they are modified from a KIPI plugin or outside Gwenview. Additionally, the user can press F5 in thumbnail mode to force a thumbnail refresh.
- In the importer, the “Import all” button is now only enabled if there are documents to import.
- The crop tool got reworked:
- The widget now remains visible when zooming and scrolling
- The widget adjusts its position when the window is enlarged
- The crop side handles are always visible even when one zoom to
a point where only part of the crop selection is visible
- Other smaller bug fixes…
“Common UI mistakes in KDE applications” series
I didn’t write any new article for my series on common UI mistakes in KDE applications but I created a page to link them all.
I would like to add links to the page from the articles themselves but I need advice on the best way to do this without causing Planet KDE and Planet Ubuntu to repost them. Any idea?
Desktop Summit
I registered for the Desktop Summit, and will hopefully be holding a workshop there, more on this later.
Skanlite
Finally I did some work on Skanlite, which I use quite a lot to scan my receipts.
- Removed crosshair cursor from view scrollbars
- Added colon for property labels
- Moved checkbox labels to the right
- Proposed use of KIntNumInput and KDoubleNumInput to replace home-made widgets (not in yet)
I have other ideas for Skanlite. Time will tell if I get some of them done in July (and if Kåre, Skanlite maintainer, accepts them of course)
As usual, if you want to, you are welcome to support me.
Hunting down black screens
Aurélien
- 2011.06.03
Today I spent some time on Gwenview, trying to get rid of an annoying bug: when you browse images in fullscreen or when you zoom into large images, sometimes the screen goes black for a few milliseconds (bug 227155)
The changes ended up being a bit more involved than I expected, but I got rid of most black screens. You may still get some when you go to a document of a “different kind” (going from a photo to an SVG for example) but you should not see black screens anymore when going through photos or zooming them in.
I fixed a few regressions and I am quite confident it is now stable, but Gwenview could use more testers for this change. If you use KDE master (the fixes are not in Beta 2), just go through your images, manipulate them and if you find some weirdness, file a bug, help all of us enjoy a black-screen-less photo browsing world!
April May 2011 wrap-up
Aurélien
- 2011.05.28
Woah… I have been neglecting my blogging duties lately… I spent the first two weeks of May away from home: Started with a Canonical sprint, followed by 2 days at Ubuntu Developer Summit (UDS), followed by 2 days at Solutions Linux. I didn’t manage to write any April wrap-up post while I was away and it felt lame to write one in the middle of May so I am going to sum up both April and May in this post.
KMessageWidget
KMessageWidget got integrated into kdelibs in time for 4.7! I am quite happy with this. There are one or two bugs I need to address and a few features I would like to add later, but it is already useful.
It feels good to read about other projects starting to use it. I am looking forward to being surprised by a KMessageWidget poping up in applications I use.
Gwenview
Besides KMessageWidget, I worked a bit on Gwenview, mostly fixing bugs:
- Fixed build with libjpeg-turbo
- Improved the image info sidebar:
- Fixed display of megapixel count
- Show tooltips for cropped texts
- Made it possible to select text
- Some work on keyboard handling:
- Prevent Nepomuk description field from stealing focus
- Made it possible to switch between two images with Tab and Shift+Tab
- Added a shortcut to the “Synchronize document views” action (Ctrl+Y)
- At startup, focus the current document view, instead of the zoom slider
- When browsing the trash, it is now possible to restore files
- Fixed the nasty “Images are renamed on double-click” bug: If you ran KDE in double-click mode, double-clicking an image would show it but it would also trigger the inline rename, if you then pressed “space” to go to the next image it would stay there and replace the image name with ” “…
- Do not block the UI while loading KIPI plugins. That one has been bothering me for a while: before this fix, Gwenview would block while loading plugins when you first clicked the “Plugins” menu. Now it loads them in the background and show a disabled “Loading…” entry in the menu.
- Replaced some custom widgets with KMessageWidget
- Got rid of the error dialog which appeared sometimes when an image failed to load
UDS and Solutions Linux
These two days at UDS was quite productive. It felt good to hang out again with Kubuntu regulars and to get to meet others like Michał Zając and Alex Fiestas (another KDE developer getting involved in Kubuntu, yeah!) for the first time.
Alex gave me some interesting feedback on KMessageWidget, which he started to use in Bluedevil control module.
I am also particularly pleased I was able to work with Jonathan Thomas on some UI polish for Muon. You may have read about it on Jonathan blog. And Muon is now using KMessageWidget too, how awesome is that?
I would have preferred to stay the full week at UDS but I also wanted to attend Solutions Linux, a French Linux exhibition where I have been helping manning the KDE booth for a few years now. So I flew back from Budapest to Paris in the early morning of Wednesday.
Solutions Linux was great as usual. Contrary to previous years, we didn’t have any Kubuntu CD. This year we gave away some nice OpenSuSE DVD. I had a bunch of Kubuntu goodies however: there were some leftover stickers and pens from last year which I brought back this year. And I still have some left for Solutions Linux 2012! (Yes I got a lot of goodies last year)
As usual we were located next to our GNOME friends. It seems every year they aim for a more minimalist booth: last year the booth was sometimes unmanned… but on the last day this year they managed to reach a whole new level: a computer-less booth! And to say people do not believe us when we tell them GNOME is all about removing options
. Since we are competitors, but gentlemen nevertheless, we lend them a laptop on which they ran the GNOME 3 live DVD.
I played a bit with GNOME 3: it’s quite nice actually, there are a few ideas I really like. I am probably going to install it on my machine to play with it a bit more.
Diary
In other news, I started writing a daily diary. Sometimes at the end of the day I feel like I haven’t been doing anything, writing down tasks I did like this avoid that feeling and helps improving my mood
. It should also be quite helpful to write future wrap ups.
I keep this diary in a plain-old paper-based notebook as I came to really enjoy the feeling of writing lines with a pen on plain paper and taking a break from the keyboard, but I am a bit torn: I would love to have a way to grep my diary! Unfortunately I don’t think anyone has created grep-able notebooks yet, too bad.
March 2011 wrap-up
Aurélien
- 2011.04.04
4th of April, time for March wrap-up…
What happened in March?
Gwenview compare mode
In last month wrap-up, I presented my work on Gwenview compare mode, but was not satisfied with the user interface for the compare mode: I thought it was too busy. I simplified it by getting rid of the concept of best-candidate, instead you just select more than one (and up to 6) documents and Gwenview will show them side by side. The only user interface specific to compare-mode is a small HUD at the bottom of the document views, allowing you to either deselect the document or trash it.
After a few improvements like adding a synchronize feature, +/- select buttons for items in the thumbnail bar and highlighting of the current item in the thumbnail bar, I decided it was good enough to be merged to master. There are still a few adjustments I want to do, but nothing too intrusive.
Compare two images
Or go crazy and compare 6 of them… (I hope you have a big screen!)
Compare mode works in fullscreen too
Communication
Spent some time preparing my slides for the two presentations I gave at the KDE 4.6 Release Party organized by the Toulibre association in Toulouse. The event was really great, a warm thank-you to Toulibre. I think both presentations went rather well, except for some hiccup while demonstrating Gwenview Importer. Presentations have been recorded, videos as well as slides should be online soon.
I also wrote a new post for my series on common UI errors in KDE applications: Being GNOME friendly. It received a mixed reception, but given the subject, that was to be expected.
Other contributions
Since I took KDE Partition Manager as an example of margins being wrong in my UI errors article, I tried to make up for pointing fingers by patching the problem. Patch has been accepted. Here is a montage showing the space savings:
Note that you should also get a bit more usable space when using Oxygen theme, even if it reduces the effects of double-margins.
I also resumed my use of RSIBreak, “thanks” to the return of my left wrist pain. This led me to port it from QSystemTrayIcon to KStatusNotifierItem. Patch is in, you can now enjoy nicer tooltips and mouse-over effects (and even get a fully functional RSIBreak if, like me, you find yourself running Unity 2D in a nested session from within a KDE session, but I guess it’s not a common situation…)
What’s planned for April?
For April I’d like to make the latest adjustments to Gwenview compare mode and maybe start working on some metadata-related bugs… I am not too sure yet, we’ll see. I am also attending KDE UX Sprint in Berlin, which I am looking forward to. Who knows what will come out of it?
So, not much planned, but that does not mean I plan to slack! Don’t worry, your contributions will be put into good use
February 2011 wrap-up
Aurélien
- 2011.02.26
February did not went as expected: there was quite a lot of work to do on Unity 2D before Ubuntu Natty feature freeze, so I was asked to work on two Fridays. Not exactly what I planned…
So, what did I manage to get done in February nevertheless?
Gwenview and the SVG KPart moved to git. The repositories are here: Gwenview and SVG KPart. Thanks a lot to the KDE git people and to Marcel Wiesweg of digiKam fame, for his detailed instructions regarding the move of kdegraphics modules.
I initially planned to work on simplifying Gwenview importer but decided to give up for now as it was becoming too complex and not as important as another feature I have been wanting to implement for years now: a compare “mode”.
I am not fully happy with the behavior yet. I like that it is not a separate mode: to compare pictures from browse mode you only have to select two pictures and switch to view or fullscreen. From view mode, control-click on a second picture in the thumbnail bar to compare it with the current one. As you can see on the screenshot I went for an asymmetric layout: the “best” picture is on the left and the “candidate” on the right. I am afraid it might be too complex, I need to try it with some real-world set of pictures (and real-world users). It is also missing a “synchronize” checkbox to be able to zoom and scroll the two pictures at once.
You can find the code in the compare-mode branch of Gwenview repository.
What to expect from march?
I am invited to a KDE SC 4.6 Release Party in the beautiful city of Toulouse, organized by the Toulibre association. I won’t be just staying there chatting, eating and drinking though: a great Jedi, who shall remain anonymous (hi Kevin!) managed to mind-trick me into giving two presentations, so I am going to spend some time to prepare them.
I also plan to continue working on Gwenview compare mode. I hope to get it mostly ready by the end of this month.
Finally I want to resume the “Common UI Mistakes” series, since I did not have the time to write anything in February.
If you like what happened in February (not that there is that much to like this month!) or are interested in what is planned for March, consider supporting my work.
January 2011 wrap-up
Aurélien
- 2011.02.07
This month was not as productive as I expected. I spent one week at the Platform Rally for Ubuntu Natty, and the next one taking care of ill daughter, son and wife… Looks like everyone waited for me to come back before getting sick
I got through the illness week relatively unaffected, which is quite unusual.
Done in January
Blogs
- Posted part 3 of my Common user interface mistakes in KDE applications series.
- Published the first version of ColumnResizer, a Qt class to help keeping columns of widgets aligned across layouts in dialogs.
I am quite happy to see some people have started using it. Please notify me if you use it, I want to polish the API before either proposing the class for kdelibs or trying to write a patch for Qt layouts to provide similar functionality.
Some minor UI touches
- Use an Oxygen version of the “Open Share Icon” for the “Share” button
- Fixed ugliness of Gwenview start page when running on GNOME
- Hidden icon of the seek slider in Gwenview video player
- Reworked one of the dialog of the Kubuntu Notification Helper (Here is a before/after)
What to expect for February
I didn’t find the time to work on Gwenview importer in January, so I am putting this task back for this month. I also plan another post for my Common user interface mistakes in KDE applications series.
February is going to be short, and we are already the 7th, so I am not going to plan anything else, time will tell if I get more done…
If you like what happened in January or are interested in what is planned for February, consider supporting my work.








