I want to make use of all the icons which are installed on my computer to make art, posters and designs, what is the best way of making them all easily browsable from inkscape?
5 Answers
If you want to make a copy of them all in to one directory try the following:
sudo updatedb
mkdir $HOME/svg
locate *.svg | awk -F'/' '{X=NF-1;Y=NF-2;Z=NF-3}{ system("cp "$0" '$HOME'/svg/"$Z"\"-\""$Y"\"-\""$X"\"-\""$NF) }'That will copy all SVG files into an svg folder in your home. You can of course adjust those paths as needed. Since a lot of the System SVG's (Icon sets) are the same name among theme. This will copy them into the SVG folder like so:
This /usr/share/icons/Humanity/actions/22/mail-read.svg becomes ~/svg/Humanity-actions-22-mail-read.svg meaning you can view them in one Nautilus folder without having to traverse often cumbersome directory structures.
Another alternative - to keep all your SVGs in the same location, but have them update when theme icon-sets get updated - would be to symlink them all to that folder. As long as you performed a "Save-As" instead of overwriting icons when working on them:
sudo updatedb
mkdir $HOME/svg
locate *.svg | awk -F'/' '{X=NF-1;Y=NF-2;Z=NF-3}{ system("ln -s "$0" '$HOME'/svg/"$Z"\"-\""$Y"\"-\""$X"\"-\""$NF) }' 2 In nautilus:
- Go to /usr/
- Click the search button and type .svg
- Go to the bookmarks window and click "Add Bookmark"
The virtual search folder will update automatically. It wont be fast... But it should work.
1You can use locate and it will be fast but will only contain the files since the last updatedb was executed (usually executed from /etc/)
locate -i *.svgthe -i option make the pattern case insensitive.
2I've found locate to be the fastest/most useful tool for things like this. Try running locate *.svg > ~/svgs.txt in a terminal or from Alt+F2.
To access them from inkscape, you could possibly do a little scripting (I'm no bash genius :P), so that you produce symlinks to a new folder with all the existing svgs (from the output of locate). Maybe if you can make a script that reads the contents of each line and does ln -s $line ~/Art/svgs or something.
sudo find / -name *.svg This will list all files with .svg extension
To get the output to a file:
sudo find / -name *.svg > output.txtUPDATE: To copy all .svg files in to a specific folder
find ./ -name "*.svg" -exec cp '{}' ./mnt/output_folder/ ';'This will copy all .svg files to /mnt/output_folder
2