Экран не отключается при неактивном

Переименование достаточно просто с небольшим преобразованием с помощью rename. Следующее - инертное (удалите флаг -n, чтобы заставить его делать что-то), и он скажет вам, что он делает:

rename 'tr/A-Z/a-z/' -vn * 

Однако, если вы хотите построить это в обратимом скрипте, вы нужно сделать немного больше:

rename 'tr/A-Z/a-z/' -vn * | sed 's/ renamed as /#/' | awk -F'#' '{print "mv '\''" $2 "'\'' '\''" $1 "'\''"}' > reverse.sh

Если вам нужно изменить список файлов, входящих в это (например, рекурсивный), вы можете либо называть имена в rename: [ ! d3]

find | rename ...

Или используйте некоторые параметры Bash для рекурсивного воспроизведения:

shopt -s globstar
rename ... ** *
10
задан 11 May 2017 в 20:58

4 ответа

Я могу предложить обходное решение для этого

Не обращайте внимания на настройки в графическом интерфейсе, вы можете заблокировать экран и отправить свои экраны в режим ожидания через командную строку

Чтобы заблокировать экран, вы можете использовать

gnome-screensaver-command -l

или (если вы не используете gnome3)

xdg-screensaver lock

и поворачивать вы можете использовать

xset dpms force off

Теперь, поскольку вы не хотите делать это вручную, но через пару минут в режиме ожидания нам нужно выяснить, как долго вы работаете простаивал. Это можно сделать с помощью xprintidle

sudo apt-get install xprintidle

xprintidle вернет миллисекунды (xserver) idletime

Теперь давайте объединим это в скрипт (*). Используйте свой любимый редактор, чтобы скопировать / вставить следующее, изменив IDLE_TIME по своему вкусу

nano /home/yourusername/idle_stby_lock_screen.sh #!/bin/sh # Wanted trigger timeout in milliseconds. IDLE_TIME=$((5*60*1000)) # replace the '5' with how many minutes you'd like # Sequence to execute when timeout triggers. trigger_cmd() { echo "Triggered action $(date)" } sleep_time=$IDLE_TIME triggered=false while sleep $(((sleep_time+999)/1000)); do idle=$(xprintidle) if [ $idle -ge $IDLE_TIME ]; then if ! $triggered; then gnome-screensaver-command -l export DISPLAY=:0; xset dpms force off triggered=true sleep_time=$IDLE_TIME fi else triggered=false # Give 150 ms buffer to avoid frantic loops shortly before triggers. sleep_time=$((IDLE_TIME-idle+150)) fi done

Затем сделайте его исполняемым с помощью

chmod +x /home/yourusername/idle_stby_lock_screen.sh

Вы можете проверить его на командной строке

/home/yourusername/idle_stby_lock_screen.sh

, если вы довольны этим, вы можете добавить его к запуску своего Ubuntu, как описано в этих ответах здесь или с помощью приложения «Запуск» в Ubuntu - просто обязательно используйте абсолютный путь к вашему скрипту.

0
ответ дан 18 July 2018 в 15:06

Я могу предложить обходное решение для этого

Не обращайте внимания на настройки в графическом интерфейсе, вы можете заблокировать экран и отправить свои экраны в режим ожидания через командную строку

Чтобы заблокировать экран, вы можете использовать

gnome-screensaver-command -l

или (если вы не используете gnome3)

xdg-screensaver lock

и поворачивать вы можете использовать

xset dpms force off

Теперь, поскольку вы не хотите делать это вручную, но через пару минут в режиме ожидания нам нужно выяснить, как долго вы работаете простаивал. Это можно сделать с помощью xprintidle

sudo apt-get install xprintidle

xprintidle вернет миллисекунды (xserver) idletime

Теперь давайте объединим это в скрипт (*). Используйте свой любимый редактор, чтобы скопировать / вставить следующее, изменив IDLE_TIME по своему вкусу

nano /home/yourusername/idle_stby_lock_screen.sh #!/bin/sh # Wanted trigger timeout in milliseconds. IDLE_TIME=$((5*60*1000)) # replace the '5' with how many minutes you'd like # Sequence to execute when timeout triggers. trigger_cmd() { echo "Triggered action $(date)" } sleep_time=$IDLE_TIME triggered=false while sleep $(((sleep_time+999)/1000)); do idle=$(xprintidle) if [ $idle -ge $IDLE_TIME ]; then if ! $triggered; then gnome-screensaver-command -l export DISPLAY=:0; xset dpms force off triggered=true sleep_time=$IDLE_TIME fi else triggered=false # Give 150 ms buffer to avoid frantic loops shortly before triggers. sleep_time=$((IDLE_TIME-idle+150)) fi done

Затем сделайте его исполняемым с помощью

chmod +x /home/yourusername/idle_stby_lock_screen.sh

Вы можете проверить его на командной строке

/home/yourusername/idle_stby_lock_screen.sh

, если вы довольны этим, вы можете добавить его к запуску своего Ubuntu, как описано в этих ответах здесь или с помощью приложения «Запуск» в Ubuntu - просто обязательно используйте абсолютный путь к вашему скрипту.

0
ответ дан 24 July 2018 в 20:33
  • 1
    Хотя это решение будет работать, я не уверен, насколько жизнеспособным является то, что блокировка экрана / экранная заставка должна быть встроенной функцией Ubuntu. – Joe W 9 February 2018 в 00:54
  • 2
    @JoeW, как я сказал: обходной путь – Robert Riedl 9 February 2018 в 00:57
  • 3
    Кроме того, я использую это, чтобы убедиться, что мои экраны остаются в режиме ожидания, потому что иногда они просыпаются, по какой-то причине ... – Robert Riedl 9 February 2018 в 13:57

Я могу предложить обходное решение для этого

Не обращайте внимания на настройки в графическом интерфейсе, вы можете заблокировать экран и отправить свои экраны в режим ожидания через командную строку

Чтобы заблокировать экран, вы можете использовать

gnome-screensaver-command -l

или (если вы не используете gnome3)

xdg-screensaver lock

и поворачивать вы можете использовать

xset dpms force off

Теперь, поскольку вы не хотите делать это вручную, но через пару минут в режиме ожидания нам нужно выяснить, как долго вы работаете простаивал. Это можно сделать с помощью xprintidle

sudo apt-get install xprintidle

xprintidle вернет миллисекунды (xserver) idletime

Теперь давайте объединим это в скрипт (*). Используйте свой любимый редактор, чтобы скопировать / вставить следующее, изменив IDLE_TIME по своему вкусу

nano /home/yourusername/idle_stby_lock_screen.sh #!/bin/sh # Wanted trigger timeout in milliseconds. IDLE_TIME=$((5*60*1000)) # replace the '5' with how many minutes you'd like # Sequence to execute when timeout triggers. trigger_cmd() { echo "Triggered action $(date)" } sleep_time=$IDLE_TIME triggered=false while sleep $(((sleep_time+999)/1000)); do idle=$(xprintidle) if [ $idle -ge $IDLE_TIME ]; then if ! $triggered; then gnome-screensaver-command -l export DISPLAY=:0; xset dpms force off triggered=true sleep_time=$IDLE_TIME fi else triggered=false # Give 150 ms buffer to avoid frantic loops shortly before triggers. sleep_time=$((IDLE_TIME-idle+150)) fi done

Затем сделайте его исполняемым с помощью

chmod +x /home/yourusername/idle_stby_lock_screen.sh

Вы можете проверить его на командной строке

/home/yourusername/idle_stby_lock_screen.sh

, если вы довольны этим, вы можете добавить его к запуску своего Ubuntu, как описано в этих ответах здесь или с помощью приложения «Запуск» в Ubuntu - просто обязательно используйте абсолютный путь к вашему скрипту.

0
ответ дан 31 July 2018 в 10:58
  • 1
    Хотя это решение будет работать, я не уверен, насколько жизнеспособным является то, что блокировка экрана / экранная заставка должна быть встроенной функцией Ubuntu. – Joe W 9 February 2018 в 00:54
  • 2
    @JoeW, как я сказал: обходной путь – Robert Riedl 9 February 2018 в 00:57
  • 3
    Кроме того, я использую это, чтобы убедиться, что мои экраны остаются в режиме ожидания, потому что иногда они просыпаются, по какой-то причине ... – Robert Riedl 9 February 2018 в 13:57

Я могу предложить обходное решение для этого

Не обращайте внимания на настройки в графическом интерфейсе, вы можете заблокировать экран и отправить свои экраны в режим ожидания через командную строку

Чтобы заблокировать экран, вы можете использовать

gnome-screensaver-command -l

или (если вы не используете gnome3)

xdg-screensaver lock

и поворачивать вы можете использовать

xset dpms force off

Теперь, поскольку вы не хотите делать это вручную, но через пару минут в режиме ожидания нам нужно выяснить, как долго вы работаете простаивал. Это можно сделать с помощью xprintidle

sudo apt-get install xprintidle

xprintidle вернет миллисекунды (xserver) idletime

Теперь давайте объединим это в скрипт (*). Используйте свой любимый редактор, чтобы скопировать / вставить следующее, изменив IDLE_TIME по своему вкусу

nano /home/yourusername/idle_stby_lock_screen.sh #!/bin/sh # Wanted trigger timeout in milliseconds. IDLE_TIME=$((5*60*1000)) # replace the '5' with how many minutes you'd like # Sequence to execute when timeout triggers. trigger_cmd() { echo "Triggered action $(date)" } sleep_time=$IDLE_TIME triggered=false while sleep $(((sleep_time+999)/1000)); do idle=$(xprintidle) if [ $idle -ge $IDLE_TIME ]; then if ! $triggered; then gnome-screensaver-command -l export DISPLAY=:0; xset dpms force off triggered=true sleep_time=$IDLE_TIME fi else triggered=false # Give 150 ms buffer to avoid frantic loops shortly before triggers. sleep_time=$((IDLE_TIME-idle+150)) fi done

Затем сделайте его исполняемым с помощью

chmod +x /home/yourusername/idle_stby_lock_screen.sh

Вы можете проверить его на командной строке

/home/yourusername/idle_stby_lock_screen.sh

, если вы довольны этим, вы можете добавить его к запуску своего Ubuntu, как описано в этих ответах здесь или с помощью приложения «Запуск» в Ubuntu - просто обязательно используйте абсолютный путь к вашему скрипту.

0
ответ дан 31 July 2018 в 23:35
  • 1
    Хотя это решение будет работать, я не уверен, насколько жизнеспособным является то, что блокировка экрана / экранная заставка должна быть встроенной функцией Ubuntu. – Joe W 9 February 2018 в 00:54
  • 2
    @JoeW, как я сказал: обходной путь – Robert Riedl 9 February 2018 в 00:57
  • 3
    Кроме того, я использую это, чтобы убедиться, что мои экраны остаются в режиме ожидания, потому что иногда они просыпаются, по какой-то причине ... – Robert Riedl 9 February 2018 в 13:57

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

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