Listing Unity’s Scopes and Originating Package
I recently upgraded to Ubuntu 14.04 (beta2), and I got all of my “lenses” (searching additional items in the dash menu), that look like this:
Of course there’s a way to disable those lenses, but I actually want to
remove those I’ll never use (like flickr).
The problem - lenses are installed using packages that don’t always
match the lens’ name. Using apt-file
(a utility for finding files inside
packages) and parallel
, I built a little script.
First, install parallel
and apt-file
, and update apt-file’s cache:
sudo apt-get install parallel apt-file
sudo apt-file update
Then execute this script:
find /usr/share/unity/scopes/ -name \*.scope | parallel '
ROW=$(apt-file search {});
FILE=$(echo $ROW | cut -f 2 -d ":");
PACK=$(echo $ROW | cut -f 1 -d ":");
NAME=$(cat $FILE | grep ^Name | head -1 | sed "s/^Name\=//");
echo "$PACK: $NAME"' | sort
you’ll see a list of lens friendly names, sorted by containing package, like this:
...
unity-scope-gourmet: Gourmet
unity-scope-guayadeque: Guayadeque
unity-scope-manpages: Manpages
unity-scope-musicstores: Music store
unity-scope-musique: Musique
unity-scope-openclipart: OpenClipArt
unity-scopes-master-default: Applications
unity-scopes-master-default: Books
...
That way you can see which lenses you’ll never use and remove the
matching package (using apt-get
or your favorite package manager).
Of course, if you remove a package you’ll lose access to all lenses inside it, so think it through!