Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Favorites (starred files) #104

Open
clefebvre opened this issue Jul 20, 2020 · 1 comment
Open

Favorites (starred files) #104

clefebvre opened this issue Jul 20, 2020 · 1 comment

Comments

@clefebvre
Copy link
Member

clefebvre commented Jul 20, 2020

Xapp should make it easy to quickly access the user's favorite files.

Starring files

To star a file, right-click it and choose "Star".

To unstar a file, right-click it and choose "Unstar".

Storage

We don't want to use indexing for this. A flat string array in dconf seems perfect.

Utility functions

libxapp should provide utility functions to:

  • add a path
  • remove a path
  • test if a path is starred
  • list starred paths for a given set of mimetypes, or for a given app

Nemo

  • The pin/unpin feature is replaced with star/unstar.
  • Starred files are pinned (i.e. they show at the top of the directory and in bold characters).
  • Starred files are given a star emblem.
  • In the sidebar, a new item called "Starred" is visible which shows all the starred files.

Cinnamon menu

  • A new "Starred Documents" is shown, above "Recent Documents", to list all the starred files.
  • If supported by the file manager, in Places, a new "Starred" place is shown.

Xed, Pix, Xviewer

  • Instead of showing recent files directly in the File menu, we now show a "Recent" submenu.
  • Above that submenu, a "Starred" submenu shows all the starred file which mimetype is handled by the application.

Xreader

  • Same as in Xed, Pix, Xviewer.
  • Xreader also shows a screen by default to show the recent documents. This screen needs to support starred documents as well.

Things to decide

pruning

We probably don't need to prune since the list of starred files is unlikely to get very big. It might be worth being able to unstar files which aren't accessible though (either on unmounted disks, or removed altogether).

The content of the starred place in Nemo could show inaccessible files. These could be shown dimmed for instance with a tooltip that explains why, and that would make it easy for the user to prune by unstarring them.

size of cinnamon menu

Would it be better to have recent and starred items in the same category? If so, how would we separate them?

terminology

Shall we call these files "Starred", or "Favorites"?

compatibility

  • How do we access these files from GtkFileChooser?
  • Can we be compatible with Nautilus starred items without using indexing?
  • If not, can we disable nautilus starred in GtkFileChooser?

Starred directories

Should we let users star directories? This can be useful for the following reasons:

  • To pin them (shown first and in bold)
  • To have their content starred.

If we do, do we consider all files in a starred directory to be starred?

@okaestne
Copy link

It might be a little confusing to have both bookmarks and favorites as they seem to serve the same purpose in my opinion. The latter just adds the ability to favorite files instead of folders.

Anyways, I would like to suggest to store these starred files (and folders?) as symlinks in a certain folder instead of dconf for two reasons:

  1. Accessible and manageable via terminal and other apps natively
    1. Access starred items: ls ~/.config/nemo/starred
    2. Un-star item: rm ~/.config/nemo/starred/some-file
  2. Easier to iterate (walk) over all items and to detect invalid entries (broken links)

A problem that still need to be addressed is that starred files (or their parent folders) might be moved or deleted, so we need to track them somehow. A solution might be to add a file monitor to each starred file the same way we are doing it for the bookmarks already.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants