Re: [dev] [dmenu] sorted unlimited history

From: Chris Johnson <raugturi_AT_gmail.com>
Date: Mon, 11 Mar 2013 17:25:36 -0400

I thought of the check for whether or not it exists when I was working on
it, but I wasn't sure what all to check for. I only use it to run
executable files so for my case it's easy, but I wasn't sure what all might
get put in there. When I asked in the irc channel there was some mention
of things other than files that would show up in the list, so I decided not
to worry about the check and let the user prune bogus history items some
other way. I think someone put together an example to do the pruning that
was basically a one line bash script which could be run separately from
dmenu itself.


On Mon, Mar 11, 2013 at 4:37 PM, Peter Hartman
<peterjohnhartman_AT_gmail.com>wrote:

> 2013/3/11 Chris Johnson <raugturi_AT_gmail.com>:
> > I created a patch to have sorted (first by number of previous runs, then
> by
> > most recent) and unlimited history. It is similar to the patch from
> Peter
> > John Hartman, but modified in the following ways:
>
> Hi Chris,
>
> That's neat. I moved to using a shell script wrapper to dmenu to do
> history --- I believe those scripts are on the website --- but it
> won't do the neat trick of moving things to the top based on how often
> they are used. I'd advocate something like this get moved into dmenu
> tip.
>
> It'd also be nice (more generally, even without the history patch, but
> especially with it) to have a check to verify that the file still
> exists. For instance, I use the history feature on dmenu when I open
> pdf files on my system, e.g. [1] where .dmenu_cache_pdfs is generated
> via a cron script. But, of course, sometimes I will move or rename
> pdf files around, and then the history file will be all dumb. It'd be
> a one-line fix.
>
> [1] pdf-opener
>
> #!/bin/bash
> HISTFILE=~/.dmenu_cache_pdfs.hist
> CACHEFILE=~/.dmenu_cache_pdfs
> exe=$(tac $HISTFILE $CACHEFILE | sed 's|^/home/peterjh/||'| dmenu -p
> "*" -i -l 10)
>
> echo "$exe"
> case "$exe" in
> o*) opt="okular"
> exe=$(echo "$exe" | sed 's/^o //')
> ;;
> *) opt="mailcap"
> ;;
> esac
>
> if [ ! -f "/home/peterjh/$exe" ] ; then
> exit
> fi
>
> if [ $? -eq 0 ]; then
> exe="/home/peterjh/$exe"
> sed -i "\|$exe|d" $HISTFILE
> echo "$exe" >> $HISTFILE
> case "$opt" in
> okular)
> okular "$exe" &
> ;;
> mailcap)
> run-mailcap "$exe" &
> ;;
> esac
> fi
>
>
>
>
> --
> sic dicit magister P
> Université du Québec à Montréal / Loyola University Chicago
> http://individual.utoronto.ca/peterjh
> gpg 1024D/ED6EF59B (7D1A 522F D08E 30F6 FA42 B269 B860 352B ED6E F59B)
> gpg --keyserver pgp.mit.edu --recv-keys ED6EF59B
>
>
Received on Mon Mar 11 2013 - 22:25:36 CET

This archive was generated by hypermail 2.3.0 : Mon Mar 11 2013 - 22:36:05 CET