Migrating from the Gtk Version to Qt#
Some time ago I decided to rewrite vimiv completely in Qt because I was not happy with the Gtk version and the source code. For some more details, you can check the corresponding issue on github.
Besides the maintenance improvements for me and cleaner code + tests which should make contributing easier, there were a number of major improvements and new feature including:
Much better performance, especially in thumbnail mode.
Complete customization with styles.
The possibility to bind key sequences like
gg
.A keyhint widget popping up after 500 ms to help you with finding the missing part of key sequences.
Customization of the statusbar with status modules.
A plugin system enabling print support.
Automatic reload when the image / directory was changed from the outside.
Better synchronization between the various modes.
Overall I hope that the improvements of the Qt version outweigh the inconvenience of a lot of breaking changes. The following sections summarize some of the major changes to give you a feeling of what will break when migrating. If you have any questions or need help, please do not hesitate to open an issue on github or contact me directly.
Major Changes#
Key Sequences#
It is now possible to bind key sequences like gg
. This possibility changed the
default bindings for switching modes. The library is entered with gl
and toggled
with tl
. Same holds for thumbnail and manipulate mode with t
as suffix instead
of l
. Image mode can only be entered with gi
, not toggled, as it is the “normal”
mode of vimiv. To help you with partial matches, a keyhint widget pops up 500 ms after
the first key press.
Keybinding Names#
Naming of modifiers has changed to account for key sequences and for consistency.
Shift+
is largely replaced by the actual character, e.g.Shift+w
becomesW
. Where this is not possible, use<shift>
, e.g.<shift><tab>
.^q
becomes<ctrl>q
.Alt+l
becomes<alt>l
.
If keys have a string representation, this is their keybinding. So
+
,/
and so forth are the valid keybindings, notplus
orslash
. Only exceptions are<colon>
for:
and<equal>
for=
as these are valid separators for the configuration file.Special keys with no string representation are always surrounded in
<>
brackets and are lower-case. ThereforeEscape
becomes<escape>
,Return
<return>
and so forth.
Hint
If you want to figure out the name of a specific key or mouse button, run vimiv with
--debug gui.eventhandler
. You can find the corresponding name in the first
output line after pressing/clicking it. For example, when pressing the q
key,
you would retrieve something along:
DEBUG <gui.eventhandler> EventHandlerMixin: handling q for mode library
Command Names#
Command handling has been redesigned for better scalability. This means that many names and/or arguments have changed. You can find a complete overview of the current commands in the documentation. If you have trouble finding out how a previous command changed or are missing something, please do not hesitate to open an issue on github or contact me directly.
Settings#
The rewrite has been used to rethink various settings. I hope the names are now clearer
and the handling is more consistent. This is a brief overview of what happened to the
settings that were available in the gtk version. The word before the .
indicates the
section, the one after is the option name.
Setting |
Change |
---|---|
general.start_fullscreen |
Removed, use the |
general.start_slideshow |
Removed, use |
general.slideshow_delay |
Moved to |
general.shuffle |
Moved to |
general.display_bar |
Moved to |
general.default_thumbsize |
Moved to |
general.geometry |
Removed, use |
general.recursive |
Removed, use the corresponding shell tools instead |
general.rescale_svg |
Removed, this is always done as it is now performant |
general.overzoom |
Moved to |
general.search_case_sensitive |
Moved to |
general.incsearch |
Moved to |
general.copy_to_primary |
Removed, the |
general.commandline_padding |
Removed, use styles instead |
general.thumb_padding |
Removed, use styles instead |
general.completion_height |
Removed, use styles instead |
general.play_animations |
Moved to |
library.start_show_library |
Moved to |
library.library_width |
Removed, use styles instead |
library.expand_lib |
Removed, please open an issue if you miss this feature |
library.border_width |
Removed, use styles instead |
library.markup |
Removed, use styles instead |
library.show_hidden |
Remains the same |
library.desktop_start_dir |
Removed, please open an issue if you miss this feature |
library.file_check_amount |
Removed, we use the total number of files instead |
library.tilde_in_statusbar |
Moved to |
edit.autosave_images |
Moved to |
Manipulate#
Navigation in manipulate mode has been redesigned for better scalability. The one letter shortcuts to manipulation names were unfortunately rather limiting…
To focus the next/previous manipulation in the current tab, use
n
/p
.To focus the next/previous tab, use
<tab>
/<shift><tab>
.
Migration#
When you first launch the qt version and you had a local vimivrc
of the gtk version:
All
vimiv
folders are backed up tovimiv-gtk-backup
.Your tags are migrated accordingly.
A welcome pop-up with the most important information is shown.