#!/bin/bash

declare -A usage

exec 0< <(pacman -Ql | grep bin)

while read pkg binary; do
  lastused=$(stat -c '%X' "$binary")
  if [[ -z ${usage[$pkg]} ]] || (( lastused > ${usage[$pkg]} )); then
    usage[$pkg]=$lastused
  fi
done

for key in "${!usage[@]}"; do
  printf '%s\t%s\n' "${usage[$key]}" "$key"
done | sort -rn | while read time pkg; do
  printf '%(%c)T\t%s\n' "$time" "$pkg"
done