【问题标题】:Run script on Fedora screen lock在 Fedora 屏幕锁定上运行脚本
【发布时间】:2012-01-20 13:06:51
【问题描述】:

我正在寻找一种在Fedora 15 (linux) 中锁定屏幕时运行程序的方法。基本上我想在屏幕锁定时开始运行运动检测程序,或者我手动点击Ctrl+Alt+L,但我没有不知道正在运行什么命令,也不知道在哪里为我自己的中间步骤设置别名。我假设它是:

gnome-screensaver-command --lock 

但我不知道该怎么做。任何人都知道如何,或开始寻找的方向?

编辑,因为链接在评论中: 这是通过dbus-monitor 完成的并描述了here

【问题讨论】:

  • 我重新标记了这个,希望更熟悉 Gnome 3 屏幕保护程序的人可能会出现并给你一个更直接有用的答案......

标签: locking fedora dbus x11 gnome-3


【解决方案1】:

dbus系统宣传锁屏;在org.gnome.ScreenSaver 上监视ActiveChanged。 (见http://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html

例如(为清楚起见,换行)

    signal sender=:1.68 -> dest=(null destination) 
           serial=53 path=/org/gnome/ScreenSaver; 
           interface=org.gnome.ScreenSaver; member=ActiveChanged
        boolean true

不幸的是,恐怕这将需要编写更多的代码,而不仅仅是一个 shell 脚本;尽管我很好奇您是否可以要求dbus 以某种方式调用您的程序作为该信号的处理程序;否则,我想您只需启动一个守护进程并监听该信号将被广播......

【讨论】:

  • 您的解决方案比我用别名清除程序链接要好得多,并且 ActiveChanged 成员确实会在锁定时触发,但我不确定如何向 dbus 添加处理程序。不过我会调查一下,谢谢。
  • 我不认为你能做到这一点,无论如何...... gnome-screensaver-command 只是触发 dbus 信号本身,我相信。
  • 我挖掘了 dbus 接口,结果发现它们在文档和 gnome 3 之间发生了很大变化,但它们在这里提供了一个很好、简单的 perl 脚本:live.gnome.org/GnomeScreensaver/…
  • @vityav 评论的正确链接:wiki.gnome.org/Projects/GnomeScreensaver/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多