Поддерживайте базу данных, отсортированную по частоте (частота + новизна).
Просто загрузите последнюю версию и добавьте исполняемый файл frece
в PATH
.
Пользователи Arch Linux могут установить его из пакетов AUR frece
или frece-git
.
frece
предоставляет следующие подкоманды:
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
Дополнительную информацию см. в frece --help
или в разделе Examples
.
Начните с создания базы данных:
# Create list of entries
$ echo " apple
banana
cherry " > fruits.txt
# Initialize a database using list of items
$ frece init " fruits.db " " fruits.txt "
Получите доступ к записям и распечатайте список записей, отсортированный по частоте:
# Access an entry
$ frece increment " fruits.db " " cherry "
# Print out frecency sorted list
$ frece print " fruits.db "
cherry
apple
banana
Кроме того, база данных может пополняться новыми записями:
# 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
Следующие примеры можно найти в каталоге examples
:
examples/dir Open a directory
examples/emoji Copy an emoji to clipboard
examples/file Open a file
Например, examples/dir
можно использовать следующим образом:
Инициализируйте/обновите базу данных в $HOME/.frece_dir.db
, предоставив список путей к каталогам для индексации:
SEARCH_PATHS=( " $HOME " " /some/other/path " )
./examples/dir_update.sh " ${SEARCH_PATHS[@]} "
Совет: периодически запускайте это через таймер systemd или cronjob, чтобы обновить базу данных.
Откройте с помощью rofi, при необходимости предоставив список аргументов:
ROFI_ARGS=(-p ' folders ' -i -levenshtein-sort)
./examples/dir_rofi.sh " ${ROFI_ARGS[@]} "
Откроется меню rofi с записями, отсортированными по частоте:
Аналогичным образом предлагаются и другие примеры, в том числе скрипт rofi для копирования смайлов в буфер обмена: