Giter Club home page Giter Club logo

keeporsweep-desktop's Introduction

Randomly declutter your Nextcloud!

Install

This is the ☁️Nextcloud app. You can easily install it from inside your Nextcloud through the app management.

There’s also a desktop app for ⊞Windows, 🍏macOS & 🐧Linux, and more info at 🔀keeporsweep.net.

Contribute

Contributions are always welcome! 😍 Check out the list of issues and see what you like to contribute. We use Vue.js as Javascript framework and Animate.css for the animations.

Development setup

  1. Clone this app into your nextcloud/apps/ folder:
git clone https://github.com/keeporsweep/keeporsweep.git
  1. Enable it from the apps management inside Nextcloud
  2. Get hacking 🎉

keeporsweep-desktop's People

Contributors

dependabot[bot] avatar jancborchardt avatar morrisjobke avatar prashantsengar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

keeporsweep-desktop's Issues

Implement deletion, with trash

The »Sweep« button is not functional at the moment. It’s probably simple to implement, but we should make sure they are moved to the system trash instead of permanently deleted.

Deletion counter

There should be a nice and rewarding counter somewhere which counts up how much you sweep. :)

Could be for example right of the sweep button.

Look into switching from tkinter framework to Kivy

I wanted to start this with Kivy, but it apparently seemed to be broken on Ubuntu 17.10: kivy/kivy#5453

But Kivy seems much better than tkinter for our specific case:

  • It seems it has better support for animations
  • It also is targeted towards touch interfaces (for possible swiping)
  • Additionally works for Android

Empty state when list of files is through

Just like in the Nextcloud app, we should show an empty state when all the files are through. Something like this:
screenshot from 2018-04-07 06-20-48

  • Showing the emptycontent message
  • Disabling the buttons
  • Converting the "Keep" button into a "Reload"/"Shuffle" button

Limit width of element_title and element_details

Currently when there are long file names or directories, the window will become wider. As a result the Keep/Sweep buttons move and that’s quite annoying.

Steps to fix this:

  • Limit the container width
  • Ellipsize from a certain width (some searching revealed that this might only be possible to limit by number of characters)
  • Middle-ellipsize the text (possible in Kivy at least)

How to move forward

So we are starting again after a long time

In my last PR, I attempted to fix a few bugs PR#17

Rewriting them here:

Added deletion counter to fix issue #9
Added image for empty state to fix issue #6
Added preview for text files to fix a few things in issue #1

The updates regarding them

1. Deletion counter

I added it but due to Tkinter's GUI features, there are only two ways to do that

Image 1
Image 2

I could not find a way to do the Twitter like UI because:

  • There can be only one text on the Sweep button
  • Text cannot be kept partially bold and "un-bold" in Tkinter.

We need to find a way to do this

2. Image for empty state

We need to do what we did in Twitter, we will have to generate a new image each time there is an empty state. Can use Pillow for that.

[ ] Need to get the template image, if possible. Otherwise, create one

3. Text file thumbnail works, if there is anything to be changed, I can do that otherwise I will create a new PR just for that and then we can merge it.

All the screenshots for above 3 points can be seen in #17

4. Thumbnail for PDF files

I tried to add this for my personal use when I had a lot of PDF files to be removed. I am using Windows so it was a bit hacky, had to install a lot of things. I am not sure how to go about this. Can we discuss about this?

Create a new release

As we close 3 issues since the last release, we should also publish a new release.
Since pyinstaller's output executable works only on the environment it was developed on, we will need to create executables on different environments and test them.
I can create executables for Windows 10 64-bit and Ubuntu.

Any other suggestions?

Handle other file types except images

Currently only images are shown and the app doesn’t start if the shuffled filelist begins with a non-image.

Steps to take to fix this:

  • A first step would be to simply skip non-images
  • Show a notice in the interface
  • Show the non-images with empty preview box
  • Show filetype icons for non-image files
  • Show previews for other files where possible. Text files should be easy with canvas too

Initial loading time

For big home folders it can take quite some time to load the whole list of files.

To make this quicker, there’s some options:

  • Load the interface first (create_widgets) before the file list creation (random_files) – and move element_preview & element_text out of create_widgets into init
  • Show some loading feedback there after the base interface loaded
  • Load a few first files quickly, and others in the background (not sure this works)

Open file/folder by clicking on preview/filename/path

To check out a bigger view of the file (and others nearby), it would be nice if:

  • Clicking on preview and filename opens the file in the proper viewer or app for it
  • Clicking the path opens the folder where the file is in, ideally with the file highlighted (if that’s at all possible)

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.