Frequently Asked Questions
I'm having a problem with Beagle!
(Not a question, but OK!)
Please read the Troubleshooting page for common issues, how to gather useful information for bug reports, and more information.
Is Beagle a GNOME technology? (or, does Beagle work in KDE?)
Beagle is designed to be desktop independent. Beagle does require the GLib library for the daemon, and may require other GNOME libraries for GNOME-specific backends (such as the Evolution backends), but those dependencies are optional, and do not stop it from working on KDE or other desktop environments.
Beagle supports many KDE-specific backends. Check the Supported Filetypes page to see a list.
The included user interface is a GNOME application, but it too is an optional build. There are many other search interfaces that are shipped separately. KDE interfaces include Kerry and yaBi.
Is inotify required to run Beagle?
No, but it is strongly recommended. Without it, reliable change notification throughout your entire home directory is impossible, meaning that files that are created, modified, or deleted aren't reflected in your index immediately. Features like live queries won't work in many cases. If you're just trying out beagle, don't worry about building an inotify kernel, but if you plan on running it on a regular basis, you really should.
inotify has been included in the upstream kernel tree as of 2.6.13, so if you are running it or newer, you don't need to do anything to get inotify support.
Binary kernels for many distributions are available from the Inotify Kernel page.
Do I really need extended attributes?
It is strongly recommended. There is an sqlite-based fallback in place, but using this as the primary store is slow and noticably degrades performance.
Note that, with extended attributes. beagle will use some extra space for storing the attributes of each file. It depends on the filesystem how much is used for each attribute and it is a small amount. However, it can add up to some 10s of MBs for several GBs of files. Also, writing extended attributes changes the ctime of a file; this might cause problem if you are using any backup utility that compares ctime to backup changed files. If you want to run with extended attributes disabled, set the environment variale BEAGLE_DISABLE_XATTR. Keep in mind that beagle will run slower with extended attribute disabled.
What if I enable extended attributes after I installed Beagle?
All files that are indexed subsequently will use extended attributes. If a file was previously indexed and its information was stored in the sqlite fallback database, it will be removed from that database and use xattrs instead.
Where does Beagle store its data?
Generally, Beagle stores its data in the directory .beagle in the user's home directory. These location can be overriden by using Environment Variables. In addition to it, beagle stores the last indexed information about each file in its extended attributes.
How much space does Beagle require?
The answer to this question is generally "depends on the type of data being indexed" (mostly media like photos/movies vs. lots of text documents, which take up more indexing space), but 5-10% of the size of the data to be indexed seems to be a good ballpark figure.
Does Beagle support NFS?
Yes! As of Beagle 0.1.0, NFS home directories can be indexed. Note however that this will be an extremely slow operation, as every byte of your data has to be transferred between the NFS server and your client desktop. Beagle will index your data locally in a temporary directory and checkpoint the index back into your home directory every so often.
You may want to look into using Static Indexes for indexing your NFS home directory on the server. While your data won't be indexed in real-time this way, it will be much faster to index.
Does inotify work with NFS?
Somewhat. Local changes done on your client computer will be noticed by inotify, because they are passing through the VFS layer in the Linux kernel. However, no remote changes will be seen, because Linux's NFS implementation does not support any kind of change notification.
Does Beagle support Reiser4?
Yes, but extended attributes won't be used. Reiser4 implements its own extended attribute interface, which means that while Beagle will be fully functional, it will be slower than on other filesystems, such as ext3. If/when Reiser4 supports extended attributes, there is no other reason why performance cannot match or exceed other filesystems.
Beagle only indexes my home directory. Can I make it index other places too?
Yes! Beagle includes a GUI utility capable of doing this, beagle-settings. You can also use the beagle-config command line utility (use the AddRoot option of the indexing section). E.g.
$ beagle-config FilesQueryable Roots /mnt/windows/drive_c
will add the directory /mnt/windows/drive_c and its subdirectories to beagle for indexing.
You can also add / (root directory) to beagle. This will tell it to index the whole filesystem. Please note that in doing so
- beagle will require a lot of time to finish indexing and will consume extra system resource in watching the whole filesystem for changes in files.
- A lot of the files in your filesystem probably do not have interesting content like executables, libraries and configuration files. If you are only looking forward to searching for filenames, there is a much simpler solution of using the programs locate and updatedb.
- If you really want to search in the contents of some specific system directories e.g. documentations or installed programs, you should use system-wide indexes.
How do I force Beagle to index faster?
Beagle intentionally keeps its indexing low-priority so that it can adjust to CPU loading, and not adversely effect the user's desktop experience. Beagle is aware of laptops on battery power and idle desktop sessions (running a screensaver), and will optimize indexing performance for these cases.
At times, however, you may wish Beagle to index at full speed, such as when Beagle is freshly installed. With beagled running, simply enter:
$ beagle-shutdown $ export BEAGLE_EXERCISE_THE_DOG=1 $ beagled
You can monitor the daemon's progress with the beagle-index-info and beagle-status tools. Note that this will significantly impact your computer's performance.
Does Beagle require root to run?
No. In fact, since 0.0.10 the Beagle Daemon will refuse to run as root. The daemon is designed to handle per-user indexing. This is why it's run as the user, and why it only indexes home directories. (You can, however, add other directories outside of the home directory if you wish)
If you want beagle to run as root for some reason, you have to turn on a flag by
$ beagle-config Daemon AllowRoot true
Does Beagle support Mozilla Thunderbird?
Beagle is no longer built with default Thunderbird support, as of version 0.2.15. (Support for indexing email, news, RSS, and addresses had originally been added in Beagle 0.2.8, but was removed due to memory issues.)
Google Summer of Code 2007 sponsored a beagle project on the Thunderbird backend. The work is finished and was merged in svn trunk in September, 2007. The thunderbird backend is available in 0.3.0+.
Does Beagle require D-Bus?
No. D-Bus was dropped as a dependency in version 0.0.10. It is still a dependency for Galago, however, so if you build with Galago support there is an indirect dependency on it.
Yes, since beagle-0.3.x, beagle-search requires D-Bus for instance management (since instance of beagle-search vs multiple instances). The daemon, beagled, also uses D-Bus to talk to Hal about battery information though this feature is silently disabled if D-Bus is not running.
What about this D-Bus crash in beagled ?! ERROR EX: Failed to access dbus session bus
Don't panic! This is not a crash or anything bad.
If beagle detects the system is running on battery, it slows down indexing to the maximum possible level. It reads battery/ac-adapter information from HAL using dbus. The above error is emitted if beagle cannot access HAL; if this happens then the battery status will not be monitored. Beagle-0.2.x and 0.3.x does not require DBUS for its querying and indexing mechanism.
This can happen if dbus is not running. Though session dbus is autostarted at login for most distributions and most desktop environments, under some distributions session dbus is not started at login. This will break the above functionality of beagle and other applications that depend on session dbus. Manually starting dbus and restarting beagled will remove the problem.
This can also happen if beagled is run from an SSH session. SSH sessions do not start session dbus. Again starting the session dbus manually before starting beagled would fix this problem.
How can I just search within a directory?
This is not well implemented because Beagle is trying to remove the boundaries between directories! To this end, the main Beagle front-end does allow a directory to be selected. That said, if you search within the Nautilus GUI (using the Beagle extensions) you can choose a starting directory for the search.
From the command line you can narrow your search down by using grep on the results, using the command line tool beagle-query. Additionally, for frequently searched directories, you may wish to look into Static Indexes.
You can do a limited search among files directly in a directory (but not among the files in subdirectories in the directory) by using the inuri syntax described in search syntax.
How to search only within files or emails or images?
Use beagle search syntax to specify the types and source of documents that you wish to search.
Beagle is not returning all results!
By default beagle returns the latest 100 results (100 last modified) per backend. The query API allows a user to change the default limit. But all the known clients (including beagle-search) have no option to increase the limit. However beagle-query, the command line tool, has an option to increase the limit.
beagle-search is not searching the system documentation index.
Beagle-search does not search the system documentation index. That index is used solely by yelp, the Gnome help browser.
beagle is not searching everywhere
Beagle only searches for known data sources and that mostly includes files in your home directory, your emails and so on. If you want to search the whole computer you should really consider using Static Indexes.
Since version 0.3.6, you can also enable the locate backend which will search using locate and return results from it. This backend is very limited in its functionality and provides a way to use locate from the beagle frontends. However, in this case you are much better off directly using locate from a terminal or using catfish.
This backend is disabled by default. To enable it use beagle-settings or
$ beagle-config Daemon DeniedBackends - Locate
Make sure the FileSystem backend is also enabled and used by beagled. If you want to run only with the locate backend (not recommended), you still need to enable the FileSystem backend but tell beagled to not start it.
$ beagled --backend Files --backend Locate --indexing-delay -1
What is the Beagle IRC channel?
Server: irc.gimp.org Channel: #dashboard
Is there a Beagle mailing list?
Yes, the dashboard-hackers list. Use that list rather than using the Wiki's talk pages for discussion.
Is there a way to disable F12 binding to beagle on KDE?
Yes. In the KDE Panel, right-click on the Kerry Beagle Search icon and choose Configure Kerry.
In the window that opens, in the Search tab, under Global Shortcuts, change the setting for Show Search Dialog. Change the global shortcut as you would in any KDE application.
How to remove beagle and all its data ?
To remove beagle, use the standard procedure. If you installed from a package then uninstall the package. If you installed from the tarball, then run as root from the tarball directory
# make uninstall
Regarding removing beagle data, start by removing the directory where beagle stores most of its indexes and other data ~/.beagle. Beagle also stores some bookkeeping information in the extended attributes of the files. Though the information in the extended attributes is tiny, still over a large number of files they could total to a significant amount. There is no standard way to remove them, but you can use the following command/script (obtained from a Gentoo forum):
$ cat > ~/remove_beagle.sh
/bin/sh
getfattr "$@" | grep -o '.*.Beagle.*' | xargs -i setfattr "$@" -x \{\}
<ctrl-d>
$ chmod +x ~/remove_beagle.sh
$ find ~ -xdev -mindepth 1 -type f -exec ~/remove_beagle.sh \{\} \;
Lastly, you might want to remove any system wide indexes that you might have. These are usually located in the directory /var/cache/beagle.
Can I disable Beagle and stop it from running?
If Beagle is started automatically by your distribution, you can usually disable it for a given user by going to the "Search & Indexing" preferences in the control panel or by running the beagle-settings tool and unchecking the "Start search & indexing services automatically" box.
If you want to remove it for all users on the system, the best way is to remove the package from your system. On most distributions it is named beagle.
