Maintenir une base de données triée par fréquence (fréquence + récence).
Téléchargez simplement la dernière version et ajoutez l'exécutable frece
à PATH
.
Les utilisateurs d'Arch Linux peuvent installer à partir des packages AUR frece
ou frece-git
.
frece
fournit les sous-commandes suivantes :
increment Increases an entry's count and resets its timer
init Creates a database file from given list of entries
print Prints list of frecency sorted entries
update Updates a database file from given list of entries
Voir frece --help
ou la section Examples
pour plus d'informations.
Commencez par créer une base de données :
# Create list of entries
$ echo " apple
banana
cherry " > fruits.txt
# Initialize a database using list of items
$ frece init " fruits.db " " fruits.txt "
Accédez aux entrées et imprimez une liste d’entrées triées par fréquence :
# Access an entry
$ frece increment " fruits.db " " cherry "
# Print out frecency sorted list
$ frece print " fruits.db "
cherry
apple
banana
De plus, une base de données peut être mise à jour avec de nouvelles entrées :
# Create another list
$ echo " apple
cherry
elderberry
grapefruit " > fruits.txt
# Update database with new list
# Optionally, purge old entries like "banana"
$ frece update " fruits.db " " fruits.txt " --purge-old
# Print out frecency sorted list (verbosely)
$ frece print " fruits.db " --verbose
frecency count last access date item
0.128476 1 2019-05-17T00:49:14+00:00 cherry
0.000000 0 1970-01-01T00:00:00+00:00 apple
0.000000 0 1970-01-01T00:00:00+00:00 elderberry
0.000000 0 1970-01-01T00:00:00+00:00 grapefruit
Les exemples suivants peuvent être trouvés dans le répertoire examples
:
examples/dir Open a directory
examples/emoji Copy an emoji to clipboard
examples/file Open a file
Par exemple, examples/dir
peut être utilisé comme suit :
Initialisez/mettez à jour une base de données dans $HOME/.frece_dir.db
, en fournissant une liste de chemins vers les répertoires à indexer :
SEARCH_PATHS=( " $HOME " " /some/other/path " )
./examples/dir_update.sh " ${SEARCH_PATHS[@]} "
Astuce : exécutez-le périodiquement via une minuterie systemd ou une tâche cron pour actualiser la base de données.
Ouvrir avec rofi, en fournissant éventuellement une liste d'arguments :
ROFI_ARGS=(-p ' folders ' -i -levenshtein-sort)
./examples/dir_rofi.sh " ${ROFI_ARGS[@]} "
Cela ouvrira un menu rofi avec des entrées triées par fréquence :
De même, d'autres exemples sont proposés, notamment un script rofi pour copier les emojis dans le presse-papiers :