diff options
-rw-r--r-- | Makefile | 1 | ||||
-rwxr-xr-x | clerk | 7 | ||||
-rwxr-xr-x | clerk_column.pl | 28 |
3 files changed, 33 insertions, 3 deletions
@@ -4,6 +4,7 @@ endif install: install -Dm755 clerk $(DESTDIR)$(PREFIX)/bin/clerk + install -Dm755 clerk_column.pl $(DESTDIR)$(PREFIX)/bin/clerk_column.pl install -Dm755 clerk_helper $(DESTDIR)$(PREFIX)/bin/clerk_helper install -Dm644 config.clerk $(DESTDIR)$(PREFIX)/share/doc/clerk/config.example install -Dm644 config.clerk $(DESTDIR)/etc/clerk.conf @@ -178,18 +178,18 @@ updateCache () { | sed 's:/[^/]*$::' | awk -F ' ○ ' '!seen[$1 $2 $3 $4]++' \ | uniq \ | gawk -F ' ○ ' '{ printf "%."'${artist_width}'"s\t%."'${date_width}'"s\t%."'${album_width}'"s\t%.300s\n", $1, $2, $3, $4 }' \ - | column -s $'\t' -t -o $'\t' > $HOME/.config/clerk/latest.cache + | clerk_column.pl > $HOME/.config/clerk/latest.cache mpc --format '[%albumartist%|%artist%]\t(%date%)\t%album% [(CD %disc%)]\t%file%' \ search filename '' \ | sed 's:/[^/]*$::' \ | awk -F '\t' '!seen[$1 $2 $3 $4]++' \ | sort \ | gawk -F '\t' '{ printf "%."'${artist_width}'"s\t%."'${date_width}'"s\t%."'${album_width}'"s\t%.300s\n", $1, $2, $3, $4 }' \ - | column -t -s $'\t' -o $'\t' > $HOME/.config/clerk/albums.cache + | clerk_column.pl > $HOME/.config/clerk/albums.cache mpc --format '%track%\t%title%\t%artist%\t(%date%)\t%album%\t%file%' \ search filename '' \ | gawk -F '\t' '{ printf "%."'${track_width}'"s\t%."'${title_width}'"s\t%."'${artist_width}'"s\t%."'${date_width}'"s\t%."'${album_width}'"s\t%.500s\n", $1, $2, $3, $4, $5, $6 }' \ - | column -s $'\t' -t -o $'\t' \ + | clerk_column.pl \ > $HOME/.config/clerk/tracks.cache notify-send "clerk" "finished updating cache files" date=$(mpc stats | grep 'DB Updated: ') @@ -1390,6 +1390,7 @@ ${line2}</span>" -kb-row-tab '' \ -dmenu \ -sep '\n' \ + -matching regex \ -kb-custom-1 "${add}" \ -kb-custom-2 "${insert}" \ -kb-custom-3 "${replace}" \ diff --git a/clerk_column.pl b/clerk_column.pl new file mode 100755 index 0000000..cbdca6c --- /dev/null +++ b/clerk_column.pl @@ -0,0 +1,28 @@ +#!/usr/bin/perl + +# written by Florian Pritz <bluewind@xinu.at> + +use Data::Dumper; +my %width = (); +my @lines = (); +while (my $line = <>) { + chomp $line; + push @lines, $line; + my @parts = split(/\t/, $line); + my $counter = 0; + for (; $counter < @parts; $counter++) { + my $partlen = length($parts[$counter]); + $width{$counter} = $partlen if !defined($width{$counter}) or $partlen > $width{$counter} + } +} + +for my $line (@lines) { + my @parts = split(/\t/, $line); + my $counter = 0; + for (; $counter < @parts; $counter++) { + $parts[$counter] =~ s/\s+$//; + my $partlen = $width{$counter}; + printf "%-*s\t", $partlen, $parts[$counter]; + } + printf "%s\n", $parts[-1]; +} |