Mitar is definitely the right answer, you can use dbus to retrieve the information.
The interesting aspect of it is that some tabs in Firefox will create the problem and others do not. As I tested now I can tell it's smart enough to add/remove the inhibition depending on the content of the page—i.e. on YouTube you have a video, that inhibits the screensaver.
I wrote a script in PHP in order to list the inhibitors as a simple list. I bet there are tools/libraries in python to do that (because many of the OS code uses that language) but unfortunately I don't know python enough to do that.
Copy the following in a file such as
~/bin/inhibitors and then make it executable with
chmod 755 ~/bin/inhibitors. Now in your console you can type:
inhibitors and you get a list of tools preventing your OS from going to sleep.
$list = `dbus-send --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.GetInhibitors`;
$l = explode("\n", $list);
$found = false;
foreach($l as $a)
$a = trim($a);
if($a == "]")
if(substr($a, 0, 13) == 'object path "')
$inhibitor = substr($a, 13, strlen($a) - 14);
$info = `dbus-send --print-reply --dest=org.gnome.SessionManager $inhibitor org.gnome.SessionManager.Inhibitor.GetAppId`;
$names = explode("\n", $info);
$n = trim($names);
if(substr($n, 0, 8) == 'string "')
$name = substr($n, 8, strlen($n) - 9);
echo $inhibitor, " ", $name, "\n";
elseif($a == "array [")
$found = true;
Here is an example of output:
In this case Firefox and Totem block my screensaver.