diff --git a/al-recent-files-pipemenu b/al-recent-files-pipemenu new file mode 100644 index 0000000..70d2ec8 --- /dev/null +++ b/al-recent-files-pipemenu @@ -0,0 +1,104 @@ +#!/bin/sh +# al-recent-files-pipemenu - a script to parse .recently-used.xbel +# and generate openbox pipe menu +# Copyright (C) 2010 John Crawley +# Borrowed with love by arcolinux. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# version 2012/07/01-cb + +# Usage: add +# +# to your .config/openbox/menu.xml, or use with cbpp-places-pipemenu (see comments there) + +maximum_entries=15 # max. number of entries in menu + +####################################################################### + +# look for recently-used.xbel +if [ $XDG_DATA_HOME ] && [ -r "${XDG_DATA_HOME}/recently-used.xbel" ] +then + file_path="${XDG_DATA_HOME}/recently-used.xbel" +elif [ -r "${HOME}/.local/share/recently-used.xbel" ] +then + file_path="${HOME}/.local/share/recently-used.xbel" +elif [ -r "${HOME}/.recently-used.xbel" ] +then + file_path="${HOME}/.recently-used.xbel" +else + echo "$0: cannot find a readable recently-used.xbel file" >&2 + echo ' + +' + exit 1 +fi + +# if argument is --clear, empty .recently-used.xbel +[ "$1" = '--clear' ] && { + cat <<':EOF' > "${file_path}" + + + +:EOF + exit +} + +maximum_entries=$((maximum_entries+2)) + +pre=' + ' +post=' + ' + +files=$( tac "${file_path}" | awk -v MAX="$maximum_entries" -v PR="$pre" -v MI="$mid" -v PO="$post" 'BEGIN { + RS=""; + FS=""; +} +(NR == MAX) {exit} +!/ + + + + ''"$0"'' --clear + + + + +' +printf '%s' "$output" # printf because echo sometimes eats backslashes \ No newline at end of file