【问题标题】:Run a script at unlock?在解锁时运行脚本?
【发布时间】:2010-10-30 01:06:33
【问题描述】:

嘿,我想在 KDE 4 上每次解锁我的计算机时运行一个 shell 脚本。我了解到我可以通过用一个 shell 脚本覆盖 /usr/lib/kde4/libexec/krunner_lock 来运行一个脚本它的东西,然后是原始的 krunner_lock 二进制文件,我基本上想做相反的事情:启动一个脚本来“撤消”锁定脚本的作用。 我使用的是 Kubuntu 9.04 64 位,但我感谢任何操作系统的答案,以防我想在该系统上做同样的事情。

【问题讨论】:

    标签: bash scripting kde kde4 unlock


    【解决方案1】:

    在 Kubuntu 14.10 下使用 Desktop Widgets locker 的 2015 年版本:

    #!/bin/bash
    
    lockpidname="/usr/bin/plasma-overlay --nofork"
    
    $lockpidname
    
    check_slock () {
    if [[ $(pgrep -fla $lockpidname) ]]; then 
    SLOCKED=1
    else
    SLOCKED=0
    fi
    }
    
    while true; do
      sleep 5
      check_slock
      case $SLOCKED  in 
      0) 
      echo "System unlocked run something here"
      break
      ;; 
      esac
    
    done
    

    这适用于您想要在全局键盘快捷键中的自定义部分下分配 CTRL+ATL+L 组合的情况。

    【讨论】:

      【解决方案2】:

      KDE forums here 上找到了答案。 Porges 的解决方案非常接近答案,但还没有完全实现。您必须将脚本接收到的参数传递给真正的 krunner_lock,如下所示:krunner_lock_bin $@

      【讨论】:

      • 只是好奇 "real krunner_lock" eq "real_krunner_lock"
      【解决方案3】:

      this page 读取,似乎krunner_lock 将在屏幕锁定时保持运行,因此您应该能够将命令放在运行它的行之后,一旦屏幕解锁,它们就会运行。

      例如

      #!/bin/bash
      ...
      # do stuff
      ...
      real_krunner_lock # exits once screen unlocks...
      ...
      # undo stuff
      

      【讨论】:

        猜你喜欢
        • 2010-09-21
        • 2010-12-22
        • 2018-04-14
        • 2011-12-11
        • 2012-01-20
        • 2015-05-12
        • 1970-01-01
        • 1970-01-01
        • 2022-09-23
        相关资源
        最近更新 更多