Giter Club home page Giter Club logo

vimiv's People

Contributors

aszlig avatar karlch avatar maxice8 avatar nagy avatar sanjayankur31 avatar woefe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vimiv's Issues

Tests

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.

Rebase code as a python module

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".

Dealing with files with spaces in filename

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.

Icon

Vimiv could use an own icon by now. I am not a designer myself, so no idea how this will progress.

Lossless rotating/flipping of images

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.

Open images without extension

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?

Use freedesktop.org's Trash specification

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.

Floating commandline and completion elements

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.

Migrate all manipulate code to GdkPixbuf

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.

Error when opening an image by passing full path

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.

Additional XDG_*_HOME changes

Additionally to the changes according to the freedesktop standard mentioned in #37 and #38 it makes sense to:

  • Look for configuration files (vimivrc and keys.conf) in XDG_CONFIG_HOME/vimiv/
  • Save data, namely history, logfile and Tags in XDG_DATA_HOME/vimiv/

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 ?

Better handling of scrolling in thumbnail mode

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.

command mode with advanced options?

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

Gtk Warning since Gtk 3.20

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.

Gtk-Warning concerning session proxy

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.

Better way to generate documentation

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.

Cropping of Images

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.

Filter files and directories

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.

Use freedesktop.org's Thumbnail Managing Standard

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.

Tags?

I just discovered this project; since you aready have relases please tag them via git. :) That enables also a non git AUR package.

install to /usr/local

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

Create a website for documentation

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.

delete key should ask for comfirmation

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.

Enter in library mode closes sidebar

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.

Search in thumbnail mode

For consistency and convenience it makes sense to implement search in thumbnail mode as well.

Rename files

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!

Avoid changing working directory upon symlink usage

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.

More tests

Now that a testsuite is available more tests have to be written.

hide scrollbar

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.

Disable the auto-save when rotate (or flip)

(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.

Proper toggling of animated Gifs

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.

SyntaxError: can use starred expression only as assignment target

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.

Some error while running

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.

Request: save as

There seems to be no option to save opened images. It would be useful for when opening images from the internet. Something like :saveas.

can't start over run dialog with ~/.vimiv/vimivrc

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.

Unable to start vimiv with "-f" flag

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.