закрытие в определенном порядке, если никто не использует компьютер

В аргументе, что окно далеко от окна, для людей, которые держат свои окна максимально, это не имеет значения. Больше окон у вас открыто, кажется, что немного больше места тратится впустую, когда не используется глобальное меню, поэтому мне нравится выбор дизайна Mac OS.

Кроме того, я не думаю, что многие люди идут перетаскивать их окна в нижнюю часть экрана или даже на полпути вниз по экрану. Я предполагаю, что они держат его наверху и изменят размеры нижних границ, чтобы увидеть как можно больше в окне.

Это не просто вопрос эффективности. Это выбор дизайна. Приятно видеть, что кто-то другой, кроме Apple, адаптирует глобальные меню.

Потратьте время, чтобы попробовать и насладиться выбором дизайна, прежде чем предположить, что он не будет работать ни для кого.

3
задан 1 May 2012 в 23:51

4 ответа

Это рабочий сценарий того, что вы хотите сделать:

#!/bin/bash
while true; do
   sleep 59m
   zenity --question --text "Are you using the pc (click anything)?"&
   zenity_id=$!
   #the user has 1 minute to answer, otherwise PC will shut down
   sleep 1m
   if kill $zenity_id 2> /dev/null; then 
      #zenity was still running, shutdown the pc
      dbus-send --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown
   fi
done

Каждый раз в час появляется всплывающее окно с вопросом: «Вы все еще здесь?», если пользователь нажимает на что-то, то он не выключается еще на один час (через час появляется всплывающее окно), но если более 1 минуты проходит без взаимодействия с диалоговым окном, компьютер автоматически отключается. Чтобы запустить это при запуске, создайте файл с указанным выше кодом и сделайте его выполнимым (щелкните правой кнопкой мыши-> свойства-> разрешения-> разрешить выполнение файла как программы) и нажмите кнопку питания в правом верхнем углу экрана, выберите запускающие приложения и добавьте этот скрипт.

3
ответ дан 25 May 2018 в 12:03

Один из способов сделать это - эмулировать нажатие кнопки питания. Затем появится следующее диалоговое окно и выключение компьютера через 60 секунд.

Для этого используйте acpi_fakekey 116, который «нажмет» кнопку выключения (номер 116). (По крайней мере, 116 - это моя кнопка останова. Если на вашем компьютере это не удается, попробуйте установить evtest и запустите его, пока вы нажимаете кнопку)

Чтобы автоматизировать это каждый час, добавьте его в корни crontab, как это :

sudo crontab -e и добавьте следующую строку:

0 * * * * /usr/bin/acpi_fakekey 116

Это нажмет кнопку на 0-й минуте каждого часа каждого дня каждую неделю каждого месяца.

5
ответ дан 25 May 2018 в 12:03
  • 1
    Спасибо, ваш совет полезен, но понял, что на этом компьютере установлен lubuntu, и он не работает так же, как в ubuntu, потому что я вижу новый фрейм с параметрами, но автоматическое время отключения не выполняется. – greg 1 May 2012 в 22:41

Вы можете написать простой скрипт с помощью команды shutdown 0 после подсказки.

Я должен добавить, вы можете использовать записать простой скрипт в цикле для реализации ожидание.

1
ответ дан 25 May 2018 в 12:03

Кажется утомительным, чтобы кто-то нажал кнопку на каждом заданном интервале.

Вы можете позволить gnome-screensaver работать для вас и проверить, как долго он работает.

В сценарии , вы можете сделать что-то вроде следующего:

#!/bin/bash

pidof X || exit #not running X!

export DISPLAY=":0" # use current display
DURATION="`gnome-screensaver-command -t | awk '{print $7}'`"

if [ $DURATION -gt 3600 ]; then #idle for an hour
  shutdown -h now
fi

Это ОЧЕНЬ простой пример, который может расширить каждый. Поместите его в задание cron или запустите его в режиме демона с помощью вызовов / сна.

Я бы не использовал его точно как есть, а просто для иллюстрации метода. Это делает предположение, что мы используем gnome-screensaver. xscreensaver имеет аналогичные вызовы.

1
ответ дан 25 May 2018 в 12:03

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

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