Обновить уровень яркости в зависимости от источника питания на 16.04 LTS

#!/bin/bash
while read hostname
do
ping -c 1 -t 1 "$hostname" > /dev/null 2>&1 && 
echo "Ping Status of $hostname : Success" || 
echo "Ping Status of $hostname : Failed" 
done < host.txt

$ cat host.txt

host1.example.com
192.168.0.123
8.8.8.8
...
...
google.com

См. http://www.thelinuxtips.com/2012/06/shell-script-to-ping-multiple-hosts/ [ ! d1]

1
задан 18 June 2016 в 07:12

3 ответа

Intro

Нижеприведенный сценарий позволяет запомнить уровни яркости в зависимости от источника питания, используемого ноутбуком. По умолчанию он составляет 50% от батареи, 90% - от переменного тока.

Intro

source_monitor.sh [-a INT] [-b INT] [-v] [-h]

-a set initial brightness on AC adapter
-b set initial brightness on batter
-v enable verbose output
-h prints this help text

Установка

Установка с использованием git через терминал:

Запустить [ f4] для установки git Запустить mkdir $HOME/bin. Пропустите этот шаг, если $HOME/bin уже существует cd $HOME/bin Запуск git clone https://github.com/SergKolo/sergrep.git Сценарий будет находиться в $HOME/bin/sergrep/source_monitor.sh. Убедитесь, что сценарий выполним с помощью chmod +x $HOME/bin/sergrep/source_monitor.sh Добавьте скрипт в качестве приложения для запуска. Найдите меню «Запуск приложений» в режиме поиска Unity Dash или Gnome. Кроме того, запустите меню gnome-session-properties в терминале, чтобы запустить меню. Добавьте полный путь к скрипту в качестве приложения для запуска, чтобы он запускался при каждом входе в графический интерфейс.

В качестве альтернативы вы можете скопировать и сохранить исходный код сценария самостоятельно, chmod +x file и пройти описанный выше шаг #.

Чтобы сценарий автоматически запускался каждый раз при входе в систему в Gnome или Unity, используйте утилиту Startup Applications.

Установка

#!/usr/bin/env bash
#
###########################################################
# Author: Serg Kolo , contact: 1047481448@qq.com 
# Date: June 18th 2016
# Purpose: Script that remembers and sets brightness
#      depending on power sources
# 
# Written for: https://askubuntu.com/q/788383/295286
# Tested on: Ubuntu 16.04 LTS , Ubuntu Kylin 16.04 LTS
###########################################################
# Copyright: Serg Kolo , 2016
#    
#     Permission to use, copy, modify, and distribute this software is hereby granted
#     without fee, provided that  the copyright notice above and this permission statement
#     appear in all copies.
#
#     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
#     THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
#     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
#     DEALINGS IN THE SOFTWARE.

ARGV0="$0"
ARGC=$#
wait_ac_connect()
{
  while ! on_ac_power ; do : ; sleep 0.25 ; done
  $VERBOSE && echo "<<< adapter plugged in"
}

wait_ac_disconnect()
{
  while on_ac_power ; do : ; sleep 1.25 ; done 
  $VERBOSE && echo "<<< adapter unplugged"
}

change_brightness()
{
  qdbus org.gnome.SettingsDaemon \
       /org/gnome/SettingsDaemon/Power \
      org.gnome.SettingsDaemon.Power.Screen.SetPercentage "$1"
}

get_brightness()
{
  qdbus org.gnome.SettingsDaemon \
        /org/gnome/SettingsDaemon/Power \
        org.gnome.SettingsDaemon.Power.Screen.GetPercentage
}

print_usage()
{
cat <<EOF

source_monitor.sh [-a INT] [-b INT] [-v] [-h]

-a set initial brightness on AC adapter
-b set initial brightness on batter
-v enable verbose output
-h prints this help text

Copyright Serg Kolo , 2016
EOF
}

parse_args()
{
 # boiler-pate code for reusing, options may change
 local OPTIND opt  # OPTIND must be there, 
                   # opt can be renamed to anything
 # no leading : means errors reported(which is what i want)
 # : after letter means options takes args, no :  - no args
 while getopts "a:b:vh" opt
 do
   case ${opt} in
      a)  AC_PERCENTAGE="${OPTARG}"
        ;;
      b) BAT_PERCENTAGE="${OPTARG}"
        ;;
      v) VERBOSE=true
        ;;
      h) print_usage && exit 0
        ;;
     \?)
      echo "Invalid option: -$OPTARG" >&2
      ;;
    esac
  done
  shift $((OPTIND-1))
}

main()
{

    # default values, if -a,-b, or -v options given
    # they will be changed
    local BAT_PERCENTAGE=50
    local AC_PERCENTAGE=90
    local VERBOSE=false # for debugging

    parse_args "$@"

    while true
    do

      if on_ac_power ; then
         wait_ac_disconnect
          AC_PERCENTAGE=$(($(get_brightness)+1)) # too long to explain why +1
                         # just try it for yourself
          sleep 0.25
          change_brightness "$BAT_PERCENTAGE" > /dev/null
      else
          wait_ac_connect
          BAT_PERCENTAGE=$(($(get_brightness)+1))
          sleep 0.25
          change_brightness "$AC_PERCENTAGE" > /dev/null
      fi

      sleep 0.25

    done

}

main "$@"
2
ответ дан 23 May 2018 в 09:10
  • 1
    Один вопрос: в чем разница между этим методом, используя qdbus и просто используя echo 500 | sudo tee /sys/class/backlight/intel_backlight/brightness? – thethakuri 19 June 2016 в 08:28
  • 2
    Если вы хотите, посмотрите на мою другую проблему link . – thethakuri 19 June 2016 в 08:31
  • 3
    Большая разница в том, что для qdbus вам не нужно sudo. Он ведет себя так, как будто вы нажимаете функциональные клавиши на клавиатуре. Во-вторых, речь идет о процентах вместо фактических значений, которые понимает графическая карта, поэтому мне не нужно каждый раз изобретать колесо. Я уже рассмотрел вашу другую проблему, но до сих пор у меня нет идеи - я не очень хорошо разбираюсь в индикаторах на верхней панели. – Sergiy Kolodyazhnyy 19 June 2016 в 08:54
  • 4
    Да, я понял, что это будет доступ к суду и проблемы с абсолютной ценностью. В любом случае спасибо за скрипт! – thethakuri 19 June 2016 в 09:40
  • 5
    В настоящее время я тестирую этот скрипт, и я столкнулся с чем-то другим. Когда на экране входа в систему и я включаю и выключаю источник питания, рассчитанный процент составляет 50% от переменного тока и 25% от BAT (возможно, максимальное значение яркости по умолчанию сброшено до 50%). Есть ли способ сделать hardcode процент max_brightness? – thethakuri 19 June 2016 в 10:48

Другим способом может быть создание правил для udev и вызов простого скрипта для изменения значения яркости: во-первых, создайте файл с именем auto-backlight.sh в своем домашнем каталоге (или любой другой из ваших предпочтений) с вашим любимым редактором, например gedit, и скопируйте и вставьте следующий код:

#!/bin/sh
# Adjust brightness of backlights based on power source
case $1 in
    # On battery
    true)
        # Dim screen backlight
        expr `cat /sys/class/backlight/intel_backlight/max_brightness` / 10 > \
            /sys/class/backlight/intel_backlight/brightness
    ;;

    # On AC
    false)
        # Dim screen backlight
        cat /sys/class/backlight/intel_backlight/max_brightness > \
            /sys/class/backlight/intel_backlight/brightness
    ;;
esac

return 0

Обратите внимание, что /sys/class/backlight/intel_backlight/ может быть чем-то другим в вашей системе, например /sys/class/backlight/acpi_video0/. Также обратите внимание, что, возможно, вам нужно изменить значение / 10 в зависимости от значения max_brightness, это может быть 100, 50, 5 и т. Д., Так как это фактор деления.

Дать исполнение разрешений для нового созданного скрипта: chmod 771 auto-backlight.sh

Затем создайте файл с именем 99auto-backlight.rules с вашим любимым редактором и поместите его в папку /etc/udev/rules.d/: sudo gedit /etc/udev/rules.d/99auto-backlight.rules (или свяжите его с помощью " ln "), содержащую следующие две строки:

SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/path/to/your/script/auto-backlight.sh true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/path/to/your/script/auto-backlight.sh false"

Заменить /path/to/your/script/ на фактический путь, где был установлен скрипт auto-backlight.sh.

Credit to Alex Лейтон за его идею здесь: https://unix.stackexchange.com/a/110469 и Pilot6 за его идею здесь: https://askubuntu.com/a/613816

1
ответ дан 23 May 2018 в 09:10

Cuttlefish - это инструмент, который помогает автоматизировать изменения настроек на основе таких событий, как подключение и отключение питания

0
ответ дан 23 May 2018 в 09:10

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

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