Как заблокировать / разблокировать экран с помощью iPhone и USB-док-станции?

Это метод, который я использовал для установки Google Earth на моем 64-битном ноутбуке, и он отлично работал

. Во-первых, я убедился, что все мои медиакодеки установлены, а затем следуйте этим инструкциям:

Если вы используете 64-разрядную версию Ubuntu 12.04, вам также понадобится:

sudo apt-get install ia32-libs

Чтобы установить копию Google Earth и вставить следующую команду в окно терминала.

[ f2]

Google Earth 6.2 Последняя обновленная версия:

Загрузить Google Earth 6.2 здесь

Выберите либо: 32-разрядный .deb (для Debian / Ubuntu), либо 64-разрядный .deb (Для Debian / Ubuntu)

в зависимости от архитектуры вашего ПК и установки в Software Center.

It's It

Я не вижу упоминания в вашем вопросе или последующих ответьте на ia32-libs. Установили ли вы это. Это необходимо и для 64-битных.

6
задан 17 December 2010 в 15:51

23 ответа

Найден отличный сценарий здесь, любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства с помощью lsusb

Создайте сценарий под домашним режком (воспользуемся для этого примера /home/me/iPhoneLock.sh ), который выглядит примерно так:

#!/bin/bash

#Replace with the ID of your USB device
id="ID ffff:1234 Apple, Inc. iPhone 3G"
serial="12345"

#runs every 2 seconds
for ((i=0; i<=30; i++))
do
if [ -z "`lsusb -v 2> /dev/null | grep "$serial"`" ]
then

    echo "Device is NOT plugged in"

    if [ -n "`DISPLAY=:0 gnome-screensaver-command --query | grep "is active"`" ]
    then
    if [ -e /tmp/autoUnlock.lock ]
    then
    #stop locking the screen
    rm /tmp/autoUnlock.lock

fi

elif [ -e /tmp/autoUnlock.lock ]
then

    DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Disconnected" "Locking     screen"
    #lock the desktop
    DISPLAY=:0 gnome-screensaver-command --lock

    rm /tmp/autoUnlock.lock

fi
else

    echo "iPhone IS plugged in"
    if [ ! -e /tmp/autoUnlock.lock ]
    then
    DISPLAY=:0 gnome-screensaver-command --deactivate
    DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Connected" "Welcome     Back!"
    touch /tmp/autoUnlock.lock

    fi

fi
sleep 2
done

Затем отредактируйте свой crontab:

crontab -e

Наконец настройте его так, чтобы он запускался каждую минуту:

* * * * * bash /home/username/bin/autoUnlock & >/dev/null 2>&1

lsusb Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать ваш экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

/home/me/iPhoneLock.sh

5
ответ дан 25 May 2018 в 23:55

Найден отличный сценарий здесь, любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства с помощью lsusb

Создайте сценарий под домашним режком (воспользуемся для этого примера /home/me/iPhoneLock.sh ), который выглядит примерно так:

#!/bin/bash #Replace with the ID of your USB device id="ID ffff:1234 Apple, Inc. iPhone 3G" serial="12345" #runs every 2 seconds for ((i=0; i<=30; i++)) do if [ -z "`lsusb -v 2> /dev/null | grep "$serial"`" ] then echo "Device is NOT plugged in" if [ -n "`DISPLAY=:0 gnome-screensaver-command --query | grep "is active"`" ] then if [ -e /tmp/autoUnlock.lock ] then #stop locking the screen rm /tmp/autoUnlock.lock fi elif [ -e /tmp/autoUnlock.lock ] then DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Disconnected" "Locking screen" #lock the desktop DISPLAY=:0 gnome-screensaver-command --lock rm /tmp/autoUnlock.lock fi else echo "iPhone IS plugged in" if [ ! -e /tmp/autoUnlock.lock ] then DISPLAY=:0 gnome-screensaver-command --deactivate DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Connected" "Welcome Back!" touch /tmp/autoUnlock.lock fi fi sleep 2 done

Затем отредактируйте свой crontab:

crontab -e

Наконец настройте его так, чтобы он запускался каждую минуту:

* * * * * bash /home/username/bin/autoUnlock & >/dev/null 2>&1

lsusb Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать ваш экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

/home/me/iPhoneLock.sh

5
ответ дан 25 July 2018 в 22:44

Найден отличный сценарий здесь, любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства с помощью lsusb

Создайте сценарий под домашним режком (воспользуемся для этого примера /home/me/iPhoneLock.sh ), который выглядит примерно так:

#!/bin/bash #Replace with the ID of your USB device id="ID ffff:1234 Apple, Inc. iPhone 3G" serial="12345" #runs every 2 seconds for ((i=0; i<=30; i++)) do if [ -z "`lsusb -v 2> /dev/null | grep "$serial"`" ] then echo "Device is NOT plugged in" if [ -n "`DISPLAY=:0 gnome-screensaver-command --query | grep "is active"`" ] then if [ -e /tmp/autoUnlock.lock ] then #stop locking the screen rm /tmp/autoUnlock.lock fi elif [ -e /tmp/autoUnlock.lock ] then DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Disconnected" "Locking screen" #lock the desktop DISPLAY=:0 gnome-screensaver-command --lock rm /tmp/autoUnlock.lock fi else echo "iPhone IS plugged in" if [ ! -e /tmp/autoUnlock.lock ] then DISPLAY=:0 gnome-screensaver-command --deactivate DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Connected" "Welcome Back!" touch /tmp/autoUnlock.lock fi fi sleep 2 done

Затем отредактируйте свой crontab:

crontab -e

Наконец настройте его так, чтобы он запускался каждую минуту:

* * * * * bash /home/username/bin/autoUnlock & >/dev/null 2>&1

lsusb Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать ваш экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

/home/me/iPhoneLock.sh

5
ответ дан 31 July 2018 в 12:23

Найден отличный сценарий здесь, любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства с помощью lsusb

Создайте сценарий под домашним режком (воспользуемся для этого примера /home/me/iPhoneLock.sh ), который выглядит примерно так:

#!/bin/bash #Replace with the ID of your USB device id="ID ffff:1234 Apple, Inc. iPhone 3G" serial="12345" #runs every 2 seconds for ((i=0; i<=30; i++)) do if [ -z "`lsusb -v 2> /dev/null | grep "$serial"`" ] then echo "Device is NOT plugged in" if [ -n "`DISPLAY=:0 gnome-screensaver-command --query | grep "is active"`" ] then if [ -e /tmp/autoUnlock.lock ] then #stop locking the screen rm /tmp/autoUnlock.lock fi elif [ -e /tmp/autoUnlock.lock ] then DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Disconnected" "Locking screen" #lock the desktop DISPLAY=:0 gnome-screensaver-command --lock rm /tmp/autoUnlock.lock fi else echo "iPhone IS plugged in" if [ ! -e /tmp/autoUnlock.lock ] then DISPLAY=:0 gnome-screensaver-command --deactivate DISPLAY=:0 notify-send -t 5000 --icon=dialog-info "iPhone Connected" "Welcome Back!" touch /tmp/autoUnlock.lock fi fi sleep 2 done

Затем отредактируйте свой crontab:

crontab -e

Наконец настройте его так, чтобы он запускался каждую минуту:

* * * * * bash /home/username/bin/autoUnlock & >/dev/null 2>&1

lsusb Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать ваш экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

/home/me/iPhoneLock.sh

5
ответ дан 2 August 2018 в 04:09

Найден отличный сценарий здесь , любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства, используя lsusb

Создайте сценарий под домашним режком (давайте использовать /home/me/iPhoneLock.sh для этого примера) выглядит так:

  #! / bin / bash # Записывать идентификатор вашего USB-устройства id = "ID ffff: 1234 Apple, Inc  iPhone 3G "serial =" 12345 "#runs каждые 2 секунды для ((i = 0; i & lt; = 30; i ++)), если [-z" `lsusb -v 2 & gt; / dev / null \ grep" $ serial  "` "] then echo« Устройство НЕ подключено », если [-n« DISPLAY =: 0 gnome-screensaver-command --query | grep »активен« `»], а затем, если [-e / tmp / autoUnlock.  lock] затем #stop блокировка экрана rm /tmp/autoUnlock.lock fi elif [-e /tmp/autoUnlock.lock], затем DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info «iPhone отключен» "  Запирающий экран «#lock на рабочем столе DISPLAY =: 0 gnome-screensaver-command -lock rm /tmp/autoUnlock.lock fi else echo« iPhone подключен », если [!  -e /tmp/autoUnlock.lock], затем DISPLAY =: 0 gnome-screensaver-command --deactivate DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info "iPhone подключен" "Добро пожаловать!"  touch /tmp/autoUnlock.lock fi fi sleep 2 done  

Затем отредактируйте свой crontab:

  crontab -e  

Наконец настройте его так, чтобы он запускался каждую минуту:

  * * * * * bash / home / username / bin / autoUnlock & amp;  & gt; / dev / null 2 ​​& amp; 1  

Примечание предупреждения: Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

Сценарий лицензируется в соответствии с CC-GNU GPL версии 2.0 или новее.

5
ответ дан 4 August 2018 в 20:13

Найден отличный сценарий здесь , любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства, используя lsusb

Создайте сценарий под домашним режком (давайте использовать /home/me/iPhoneLock.sh для этого примера) выглядит так:

  #! / bin / bash # Записывать идентификатор вашего USB-устройства id = "ID ffff: 1234 Apple, Inc  iPhone 3G "serial =" 12345 "#runs каждые 2 секунды для ((i = 0; i & lt; = 30; i ++)), если [-z" `lsusb -v 2 & gt; / dev / null \ grep" $ serial  "` "] then echo« Устройство НЕ подключено », если [-n« DISPLAY =: 0 gnome-screensaver-command --query | grep »активен« `»], а затем, если [-e / tmp / autoUnlock.  lock] затем #stop блокировка экрана rm /tmp/autoUnlock.lock fi elif [-e /tmp/autoUnlock.lock], затем DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info «iPhone отключен» "  Запирающий экран «#lock на рабочем столе DISPLAY =: 0 gnome-screensaver-command -lock rm /tmp/autoUnlock.lock fi else echo« iPhone подключен », если [!  -e /tmp/autoUnlock.lock], затем DISPLAY =: 0 gnome-screensaver-command --deactivate DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info "iPhone подключен" "Добро пожаловать!"  touch /tmp/autoUnlock.lock fi fi sleep 2 done  

Затем отредактируйте свой crontab:

  crontab -e  

Наконец настройте его так, чтобы он запускался каждую минуту:

  * * * * * bash / home / username / bin / autoUnlock & amp;  & gt; / dev / null 2 ​​& amp; 1  

Примечание предупреждения: Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

Сценарий лицензируется в соответствии с CC-GNU GPL версии 2.0 или новее.

5
ответ дан 6 August 2018 в 04:14

Найден отличный сценарий здесь , любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства, используя lsusb

Создайте сценарий под домашним режком (давайте использовать /home/me/iPhoneLock.sh для этого примера) выглядит так:

  #! / bin / bash # Записывать идентификатор вашего USB-устройства id = "ID ffff: 1234 Apple, Inc  iPhone 3G "serial =" 12345 "#runs каждые 2 секунды для ((i = 0; i & lt; = 30; i ++)), если [-z" `lsusb -v 2 & gt; / dev / null \ grep" $ serial  "` "] then echo« Устройство НЕ подключено », если [-n« DISPLAY =: 0 gnome-screensaver-command --query | grep »активен« `»], а затем, если [-e / tmp / autoUnlock.  lock] затем #stop блокировка экрана rm /tmp/autoUnlock.lock fi elif [-e /tmp/autoUnlock.lock], затем DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info «iPhone отключен» "  Запирающий экран «#lock на рабочем столе DISPLAY =: 0 gnome-screensaver-command -lock rm /tmp/autoUnlock.lock fi else echo« iPhone подключен », если [!  -e /tmp/autoUnlock.lock], затем DISPLAY =: 0 gnome-screensaver-command --deactivate DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info "iPhone подключен" "Добро пожаловать!"  touch /tmp/autoUnlock.lock fi fi sleep 2 done  

Затем отредактируйте свой crontab:

  crontab -e  

Наконец настройте его так, чтобы он запускался каждую минуту:

  * * * * * bash / home / username / bin / autoUnlock & amp;  & gt; / dev / null 2 ​​& amp; 1  

Примечание предупреждения: Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

Сценарий лицензируется в соответствии с CC-GNU GPL версии 2.0 или новее.

5
ответ дан 7 August 2018 в 22:18

Найден отличный сценарий здесь , любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства, используя lsusb

Создайте сценарий под домашним режком (давайте использовать /home/me/iPhoneLock.sh для этого примера) выглядит так:

  #! / bin / bash # Записывать идентификатор вашего USB-устройства id = "ID ffff: 1234 Apple, Inc  iPhone 3G "serial =" 12345 "#runs каждые 2 секунды для ((i = 0; i & lt; = 30; i ++)), если [-z" `lsusb -v 2 & gt; / dev / null \ grep" $ serial  "` "] then echo« Устройство НЕ подключено », если [-n« DISPLAY =: 0 gnome-screensaver-command --query | grep »активен« `»], а затем, если [-e / tmp / autoUnlock.  lock] затем #stop блокировка экрана rm /tmp/autoUnlock.lock fi elif [-e /tmp/autoUnlock.lock], затем DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info «iPhone отключен» "  Запирающий экран «#lock на рабочем столе DISPLAY =: 0 gnome-screensaver-command -lock rm /tmp/autoUnlock.lock fi else echo« iPhone подключен », если [!  -e /tmp/autoUnlock.lock], затем DISPLAY =: 0 gnome-screensaver-command --deactivate DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info "iPhone подключен" "Добро пожаловать!"  touch /tmp/autoUnlock.lock fi fi sleep 2 done  

Затем отредактируйте свой crontab:

  crontab -e  

Наконец настройте его так, чтобы он запускался каждую минуту:

  * * * * * bash / home / username / bin / autoUnlock & amp;  & gt; / dev / null 2 ​​& amp; 1  

Примечание предупреждения: Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

Сценарий лицензируется в соответствии с CC-GNU GPL версии 2.0 или новее.

5
ответ дан 10 August 2018 в 10:28

Найден отличный сценарий здесь , любезно предоставленный Эваном Болдтом о том, как это сделать. Спасибо Evan!

Сначала узнайте идентификатор вашего устройства, используя lsusb

Создайте сценарий под домашним режком (давайте использовать /home/me/iPhoneLock.sh для этого примера) выглядит так:

  #! / bin / bash # Записывать идентификатор вашего USB-устройства id = "ID ffff: 1234 Apple, Inc  iPhone 3G "serial =" 12345 "#runs каждые 2 секунды для ((i = 0; i & lt; = 30; i ++)), если [-z" `lsusb -v 2 & gt; / dev / null \ grep" $ serial  "` "] then echo« Устройство НЕ подключено », если [-n« DISPLAY =: 0 gnome-screensaver-command --query | grep »активен« `»], а затем, если [-e / tmp / autoUnlock.  lock] затем #stop блокировка экрана rm /tmp/autoUnlock.lock fi elif [-e /tmp/autoUnlock.lock], затем DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info «iPhone отключен» "  Запирающий экран «#lock на рабочем столе DISPLAY =: 0 gnome-screensaver-command -lock rm /tmp/autoUnlock.lock fi else echo« iPhone подключен », если [!  -e /tmp/autoUnlock.lock], затем DISPLAY =: 0 gnome-screensaver-command --deactivate DISPLAY =: 0 notify-send -t 5000 --icon = dialog-info "iPhone подключен" "Добро пожаловать!"  touch /tmp/autoUnlock.lock fi fi sleep 2 done  

Затем отредактируйте свой crontab:

  crontab -e  

Наконец настройте его так, чтобы он запускался каждую минуту:

  * * * * * bash / home / username / bin / autoUnlock & amp;  & gt; / dev / null 2 ​​& amp; 1  

Примечание предупреждения: Конечно, это означает, что любой, у кого есть телефон, сможет разблокировать экран. Хорошим улучшением было бы только разблокировать экран, если ваш телефон был разблокирован.

Это, конечно, применимо к любому USB-устройству.

Сценарий лицензируется в соответствии с CC-GNU GPL версии 2.0 или новее.

5
ответ дан 13 August 2018 в 16:54

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

[ f1]

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 25 May 2018 в 23:55

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

[ f1]

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 25 May 2018 в 23:55

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

[ f1]

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 25 May 2018 в 23:55

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

[ f1]

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 25 May 2018 в 23:55

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

[ f1]

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 25 May 2018 в 23:55

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

[ f1]

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 25 May 2018 в 23:55

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

#!/bin/sh key="0a12:0001" #ID of the USB device to use as a "key" if [ `fuser $0|wc -w` -gt "1" ];then exit; fi # exit if already running while [ 1 -gt 0 ]; do device=$(lsusb | grep $key) # is "key" connected? ss_state=$(gnome-screensaver-command -q | grep inactive) #is screen locked? if [ -z "$device" ]; then gnome-screensaver-command -l; #no key, lock the screen else if [ -z "$ss_state" ]; then #key present & screen locked so unlock gnome-screensaver-command -d; else #key present, not locked, just poke it gnome-screensaver-command -p; fi fi sleep 10; #sleep for a few seconds before looking again done

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 25 July 2018 в 22:44

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

#!/bin/sh key="0a12:0001" #ID of the USB device to use as a "key" if [ `fuser $0|wc -w` -gt "1" ];then exit; fi # exit if already running while [ 1 -gt 0 ]; do device=$(lsusb | grep $key) # is "key" connected? ss_state=$(gnome-screensaver-command -q | grep inactive) #is screen locked? if [ -z "$device" ]; then gnome-screensaver-command -l; #no key, lock the screen else if [ -z "$ss_state" ]; then #key present & screen locked so unlock gnome-screensaver-command -d; else #key present, not locked, just poke it gnome-screensaver-command -p; fi fi sleep 10; #sleep for a few seconds before looking again done

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 31 July 2018 в 12:23

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

#!/bin/sh key="0a12:0001" #ID of the USB device to use as a "key" if [ `fuser $0|wc -w` -gt "1" ];then exit; fi # exit if already running while [ 1 -gt 0 ]; do device=$(lsusb | grep $key) # is "key" connected? ss_state=$(gnome-screensaver-command -q | grep inactive) #is screen locked? if [ -z "$device" ]; then gnome-screensaver-command -l; #no key, lock the screen else if [ -z "$ss_state" ]; then #key present & screen locked so unlock gnome-screensaver-command -d; else #key present, not locked, just poke it gnome-screensaver-command -p; fi fi sleep 10; #sleep for a few seconds before looking again done

, а затем просто cron, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... скрипт должен работать непрерывно, но выйдет, если cron попытается запустить второй копия. Чтобы cron влиял на приложение GUI, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установив путь)

* * * * * export DISPLAY=:0 && /home/someuser/checkKey.sh
0
ответ дан 2 August 2018 в 04:09

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

  #! / bin / sh key = "0a12: 0001" #ID устройства USB для использования в качестве «ключа», если [`fuser $ 0 | wc -w` -gt" 1 "], затем выйти  ;  fi # выход, если он уже работает в то время как [1 -gt 0];  do device = $ (lsusb | grep $ key) # есть ли ключ?  ss_state = $ (gnome-screensaver-command -q | grep inactive) # экран заблокирован?  если [-z "$ device"];  затем gnome-screensaver-command -l;  #no, заблокируйте экран else, если [-z "$ ss_state"];  затем #key present & amp;  экран заблокирован, так что разблокируйте gnome-screensaver-command -d;  else #key присутствует, а не заблокирован, просто вытащить его gnome-screensaver-command -p;  fi fi sleep 10;  # sleep в течение нескольких секунд, прежде чем снова посмотреть  

, а затем просто запустите это, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... сценарий должен работать непрерывно, но будет завершен, если cron попытается запустить вторую копию. Чтобы cron влиял на графическое приложение, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установите путь)

  * * * *  * export DISPLAY =: 0 & amp; & amp;  /home/someuser/checkKey.sh  
0
ответ дан 4 August 2018 в 20:13

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

  #! / bin / sh key = "0a12: 0001" #ID устройства USB для использования в качестве «ключа», если [`fuser $ 0 | wc -w` -gt" 1 "], затем выйти  ;  fi # выход, если он уже работает в то время как [1 -gt 0];  do device = $ (lsusb | grep $ key) # есть ли ключ?  ss_state = $ (gnome-screensaver-command -q | grep inactive) # экран заблокирован?  если [-z "$ device"];  затем gnome-screensaver-command -l;  #no, заблокируйте экран else, если [-z "$ ss_state"];  затем #key present & amp;  экран заблокирован, так что разблокируйте gnome-screensaver-command -d;  else #key присутствует, а не заблокирован, просто вытащить его gnome-screensaver-command -p;  fi fi sleep 10;  # sleep в течение нескольких секунд, прежде чем снова посмотреть  

, а затем просто запустите это, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... сценарий должен работать непрерывно, но будет завершен, если cron попытается запустить вторую копию. Чтобы cron влиял на графическое приложение, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установите путь)

  * * * *  * export DISPLAY =: 0 & amp; & amp;  /home/someuser/checkKey.sh  
0
ответ дан 6 August 2018 в 04:14

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

  #! / bin / sh key = "0a12: 0001" #ID устройства USB для использования в качестве «ключа», если [`fuser $ 0 | wc -w` -gt" 1 "], затем выйти  ;  fi # выход, если он уже работает в то время как [1 -gt 0];  do device = $ (lsusb | grep $ key) # есть ли ключ?  ss_state = $ (gnome-screensaver-command -q | grep inactive) # экран заблокирован?  если [-z "$ device"];  затем gnome-screensaver-command -l;  #no, заблокируйте экран else, если [-z "$ ss_state"];  затем #key present & amp;  экран заблокирован, так что разблокируйте gnome-screensaver-command -d;  else #key присутствует, а не заблокирован, просто вытащить его gnome-screensaver-command -p;  fi fi sleep 10;  # sleep в течение нескольких секунд, прежде чем снова посмотреть  

, а затем просто запустите это, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... сценарий должен работать непрерывно, но будет завершен, если cron попытается запустить вторую копию. Чтобы cron влиял на графическое приложение, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установите путь)

  * * * *  * export DISPLAY =: 0 & amp; & amp;  /home/someuser/checkKey.sh  
0
ответ дан 7 August 2018 в 22:18

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

  #! / bin / sh key = "0a12: 0001" #ID устройства USB для использования в качестве «ключа», если [`fuser $ 0 | wc -w` -gt" 1 "], затем выйти  ;  fi # выход, если он уже работает в то время как [1 -gt 0];  do device = $ (lsusb | grep $ key) # есть ли ключ?  ss_state = $ (gnome-screensaver-command -q | grep inactive) # экран заблокирован?  если [-z "$ device"];  затем gnome-screensaver-command -l;  #no, заблокируйте экран else, если [-z "$ ss_state"];  затем #key present & amp;  экран заблокирован, так что разблокируйте gnome-screensaver-command -d;  else #key присутствует, а не заблокирован, просто вытащить его gnome-screensaver-command -p;  fi fi sleep 10;  # sleep в течение нескольких секунд, прежде чем снова посмотреть  

, а затем просто запустите это, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... сценарий должен работать непрерывно, но будет завершен, если cron попытается запустить вторую копию. Чтобы cron влиял на графическое приложение, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установите путь)

  * * * *  * export DISPLAY =: 0 & amp; & amp;  /home/someuser/checkKey.sh  
0
ответ дан 10 August 2018 в 10:28

даже более простой скрипт

использует lsusb для получения идентификатора устройства устройства USB, которое вы хотите использовать в качестве своего «ключа», и замените его в этом скрипте (так называемый checkKey.sh)

  #! / bin / sh key = "0a12: 0001" #ID устройства USB для использования в качестве «ключа», если [`fuser $ 0 | wc -w` -gt" 1 "], затем выйти  ;  fi # выход, если он уже работает в то время как [1 -gt 0];  do device = $ (lsusb | grep $ key) # есть ли ключ?  ss_state = $ (gnome-screensaver-command -q | grep inactive) # экран заблокирован?  если [-z "$ device"];  затем gnome-screensaver-command -l;  #no, заблокируйте экран else, если [-z "$ ss_state"];  затем #key present & amp;  экран заблокирован, так что разблокируйте gnome-screensaver-command -d;  else #key присутствует, а не заблокирован, просто вытащить его gnome-screensaver-command -p;  fi fi sleep 10;  # sleep в течение нескольких секунд, прежде чем снова посмотреть  

, а затем просто запустите это, чтобы запускать каждые несколько минут ... таким образом, он снова запустится, если он по какой-то причине остановится ... сценарий должен работать непрерывно, но будет завершен, если cron попытается запустить вторую копию. Чтобы cron влиял на графическое приложение, например экранную заставку, вы должны сказать, какой дисплей использовать, поэтому поставьте это в свой crontab (очевидно, правильно установите путь)

  * * * *  * export DISPLAY =: 0 & amp; & amp;  /home/someuser/checkKey.sh  
0
ответ дан 13 August 2018 в 16:54

Другие вопросы по тегам:

Похожие вопросы: