karlch / vimiv Goto Github PK
View Code? Open in Web Editor NEWAn image viewer with vim-like keybindings.
Home Page: http://karlch.github.io/vimiv/
License: MIT License
An image viewer with vim-like keybindings.
Home Page: http://karlch.github.io/vimiv/
License: MIT License
A testsuite for vimiv would be great. As I have no experience in this field, this could take a while. The tests should be written with the new codebase in mind, which means for the branch "code_revolution".
Any hints, useful links, tricks or help is appreciated.
Implementing new features has made the code larger than I thought it would become. All of it in one single file with basically one single class is far from great.
To solve this vimiv should be rewritten properly as a python module, with a setup.py as installation method.
Work in progress on branch "code_revolution".
Although these are loaded properly, there are still various methods that simply rely on string.split() and continue from there (e.g. undelete). This fails for files with a space in the filename.
We should provide some central way to escape spaces all over vimiv, possibly using some existing framework or Gtk, GLib, ... internal.
Vimiv could use an own icon by now. I am not a designer myself, so no idea how this will progress.
The jpegtran tool shows that it is possible to do lossless transformation of images. It would be nice if vimiv did this as well. As we already use a C extension for brightness and co., this might be possible in there as well.
I'm not been able to open images without extension:
vimiv /tmp/image
(where image
is a jpeg image file)
Why I need this? Because my email client (alot) displays attached files copying them to /tmp/
with a random name like "adchtODctho".
Anyway, it seems reasonable to me that when vimiv is oppened with a path to a file, it tries to open it, regardless of extension. No?
The link to the documentation page (https://github.com/karlch/vimiv/documentation/) in vimiv's manpage seems to be broken.
Vimiv currently uses a custom mechanism to manage its trash. For better integration into many GNU/Linux Desktop Environments, vimiv should adhere to freedesktop.org's Trash specification. The standard is described here.
If you think that implementing this standard is a good idea, I am willing to implement it and submit a pull request.
I got error "Unsupported marker type" when I try to open photos taken by my new phone, this is a simple.
https://user-images.githubusercontent.com/7871070/28070025-26867f24-667e-11e7-9ae7-a80290b0c0ff.jpg
I have googled it but got nothing.
It is currently not possible to enter thumbnail mode from the library. Instead one has to open an image and go to thumbnail mode from there. For convenience, this should be changed.
It would be nice to have the commandline and the completions floating above the actual window. This would stop the image from jumping up and down when the commandline is opened and could allow for completions above the commandline like in vim.
Really nifty would be tab-able completion, not sure how complex this is though.
Currently the manipulations are all done using PIL. GdkPixbuf supports rotate and flip easily. For the more advanced manipulations there is a simple saturation method to use but changing brightness, sharpness and contrast are not as easy.
Performance would definitely be improved if we wouldn't have to do the extra step with PIL but it may not be worth the hassle if implementing own methods for brightness and co. is rather complex.
When multiple images are marked and one rotates them it fails and the images are weirdly removed from the thumbnail grid.
As the title says, a simple keybinding cheatsheet would be awesome.
I'm getting an error when opening an image by passing full path:
$ vimiv /tmp/dark_avatar.png
Traceback (most recent call last):
File "/usr/bin/vimiv", line 8, in <module>
sys.exit(vimiv.main())
File "/usr/lib/python3.5/site-packages/vimiv/main.py", line 44, in main
paths, index = populate(args, recursive, shuffle_paths)
File "/usr/lib/python3.5/site-packages/vimiv/fileactions.py", line 59, in populate
error, args = populate_single(single, recursive)
File "/usr/lib/python3.5/site-packages/vimiv/fileactions.py", line 31, in populate_single
pos = args.index(arg)
ValueError: '/tmp/dark_avatar.png' is not in list
$ cd /tmp;vimiv dark_avatar.png
works fine.
Thanks for vimiv! Seems pretty good so far!
Is there an option to disable thumbnail cache?
Additionally to the changes according to the freedesktop standard mentioned in #37 and #38 it makes sense to:
At least temporarily the current and the proposed new standard should be supported, possibly with a deprecation warning at start-up.
What do you think @popeye123 ?
Currently the actual scrolling in thumbnail mode is done using the function
thumbnail_scroll. It scrolls the window by the step which is calculated in
thumbnail_move. This does not work properly because the size of thumbnails is
not constant.
It would be much nicer if the Gtk.IconView.scroll_to_path function would work.
It doesn't do anything though because the IconView thinks all thumbnails are
visible, even if they are not for the user.
would be nice if vivim had a command mode (activated with ':')
in this mode the user could do things like :delete
, :move /path
or similar
The warning:
(vimiv:7324): Gtk-WARNING **: Allocating size to vimiv+main+Vimiv 0x1290400 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
appears since Gtk 3.20.
It looks like it happens when the library becomes scrollable, i.e. when there are more entries than screenspace for them.
Implementing vimiv as Gtk.Application has lead to the following warnings at startup when not running in any of these desktop environments.
(vimiv:603): Gtk-WARNING **: Failed to get the GNOME session proxy: The name org.gnome.SessionManageris not owned
(vimiv:603): Gtk-WARNING **: Failed to get the Xfce session proxy: The name org.xfce.SessionManager is not owned
(vimiv:603): Gtk-WARNING **: Failed to get an inhibit portal proxy: The name org.freedesktop.portal.Desktop is not owned
This is not a bug and kind of expected. Also happens in other applications like evince. It would still be nice to disable these warnings while keeping other warnings.
Currently the man pages and the website have to be maintained seperately. It would be much nicer to have one central documentation which dynamically generates parts of the website and the man pages.
I got this feature request per email, main usecase is cropping images quickly after taking a screenshot.
The idea is to enter a "CROP" mode which displays a rectangle to crop the image to. The nodes of the rectangle can be moved with "hjkl" for small steps and "HJKL" for large steps, possibly other keybindings for things like halfing/doubling the size and so forth. The nodes can be switched via "Tab" and "Shift-Tab". Pressing "Return" applies the crop and returns to "Image" mode.
The feature sounds really cool but I have no idea how difficult this would be. If it is too difficult it will not be implemented.
I have several directories, whose name contains the same string, e.g. "April". If I enter /April
vimiv will visit the first result that matches. It would be great if instead it filtered the current directory and only displayed matching files and directories.
Vimiv currently uses a custom mechanism to manage its thumbnails. For better integration into many GNU/Linux Desktop Environments, vimiv should adhere to the Thumbnail Managing Standard specified by freedesktop.org. The standard is described here.
If you think that implementing this standard is a good idea, I am willing to implement it and submit a pull request.
When in thumbnail view and I resize (e.g.: full screen), the grid isn't resizing to fill the new free space.
I just discovered this project; since you aready have relases please tag them via git. :) That enables also a non git AUR package.
i chown
/usr/local
out of habit from using homebrew on osx; if you could change vimiv to install their, installation would be easier for me
The man-pages, especially vimivrc.5 have become rather large and therefore difficult to read and maintain. Creating a simple website for documentation would make sense.
Possible solutions: Github Pages for something a bit more fancy or simply the Github Wiki.
As the title says find a way to test the Gtk commandline parser.
Right now vimiv will simply delete the file, which could lead to accidently deleted images.
Either show a comfirmation dialog (not very vim-like) or use something like the proposed #2
The same applies for stuff like flipping.
Right now when hitting Enter in library mode, the library is closed. One would expect that instead the image is shown on the right side.
Since o
acts as a toggle switch I see no reason for vivim to behave this way.
For consistency and convenience it makes sense to implement search in thumbnail mode as well.
It would be great to be able to rename a file in the library. I do this all the time with vim. Thank you for this awesome program!
vimiv does not start anymore because of this.
Heya - thanks for the new release! I'll submit a package for review in Fedora soon. In the meantime, I was looking for the docs and noticed that the link to the docs returns a 404 error: http://karlch.github.io/vimiv/documentation/
Currently, if one opens a symlink, the picture is shown, however the
working directory of vimiv is changed to the symlink's target's one.
The correct behaviour should be to stay in the symlink's directory.
Now that a testsuite is available more tests have to be written.
I like to crop images that match my screen size, so that it can be used as wallpaper. For this I zoom the image, remove display-bar with b, and crop using import command from imagemagick. The issue is once zoomed to larger size scroll-bar appears, which I don't know how to remove/hide.
(English is not my native language; please excuse typing errors.)
Rotating a jpg flie is NOT lossless, so I don't want it automatically save it. I have read the docs and it seems that there isn't a way to config it.
I have commented the line "im.save(filename, **kwargs)" in imageactions.py and it works as I want. But why not add a setting to configure it? I'll be glad if you could consider to add it.
This fails on some images and leaves artifacts on others. Should be fixed and possibly improved by better algorithms.
Currently if the animation of an animated Gif is stopped the first frame is
displayed as static image. It would be much nicer to show the current frame and
then start playing from there again.
The reason therefore is the way Gdk.PixbufAnimation.get_static_image() is
handled.
The animation state of Gifs gets handled in the function update_image and the
animation state is toggled via the function animation_toggle.
I recently recloned the vimiv repo, and did sudo make
to install.
Although when I try to use vimiv at all, I get this:
$vimiv
File "/usr/bin/vimiv", line 2466
^
SyntaxError: can use starred expression only as assignment target
From the error I'm guessing you have a syntax mistake in the code, I don't know enough about python to fix it myself.
Hi, I simply run the code by ./vimiv.py on the latest dev and error occurred:
Traceback (most recent call last):
File "./vimiv.py", line 6, in
from vimiv.app import Vimiv
File "/home/alex/shared/cs/my_projects/tiled_filemanager/vimiv/vimiv/app.py", line 25, in
from vimiv.thumbnail import Thumbnail
File "/home/alex/shared/cs/my_projects/tiled_filemanager/vimiv/vimiv/thumbnail.py", line 168^
SyntaxError: only named arguments may follow *expression
which correspond to the following code
# Add initial placeholder for all thumbnails
default_pixbuf_max = GdkPixbuf.Pixbuf.new_from_file_at_scale(
self.thumbnail_manager.default_icon,
*self.get_zoom_level(), True)
I have tried with python 2 and 3.
Is seems that something is wrong with the unpacking.
It would be great to have set ignorecase
to easily find files in the library.
There seems to be no option to save opened images. It would be useful for when opening images from the internet. Something like :saveas
.
I'm just copy /etc/vimiv/vimivrc to ~/.vimiv/vimivrc and trying run it over lxqt-runner, but nothing happens. It's only run in console. If I remove ~/.vimiv/vimivrc, it's running over lxqt-runner too, I can't understand how I should debugging it.
Incoming terminal output
File "/usr/lib/python3.6/site-packages/vimiv/app.py", line 183, in activate_vimiv
self._init_widgets()
File "/usr/lib/python3.6/site-packages/vimiv/app.py", line 373, in _init_widgets
self["window"] = Window(self)
File "/usr/lib/python3.6/site-packages/vimiv/window.py", line 41, in __init__
self.toggle_fullscreen()
File "/usr/lib/python3.6/site-packages/vimiv/window.py", line 56, in toggle_fullscreen
if self.get_window().get_state() & Gdk.WindowState.FULLSCREEN:
AttributeError: 'NoneType' object has no attribute 'get_state'```
Running this from Manjaro 17.1 XFCE
This would help for tests and might be useful in general.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.