Есть ли способ получить уведомление, когда аккумулятор заполнен? [Дубликат]

Это не очень понятно из вашего вопроса, но похоже, что вы ищете urllib. Обратите внимание, что urllib ожидает 8-битные строки, поэтому вам нужно будет сделать некоторые fancy decode / encode. Добро пожаловать в python2 немного странную поддержку юникода, pythn3 лучше.

# -*- coding: utf-8 -*-
import urllib

url=u'/home/javier/Área'

url2 = url.encode('utf-8') # urllib expects 8-bit string
url3 = urllib.quote_plus(url2)
print url3  # >> %2Fhome%2Fjavier%2F%C3%81rea
url4 = urllib.unquote(url3) # It will return a 8-bit string
print url4  # >> /home/javier/Área
print url4.decode('utf-8')

Вы можете использовать urllib.qoute вместо * urllib.quote_plus *, он не будет указывать пробелы, + (плюсы) и / ( косая черта). Обе функции принимают строку как второй параметр, они будут содержать любой символ в этой строке, как есть (я имею в виду, что он не будет приводить его) в выходной строке. Обратите внимание, что значение по умолчанию для безопасного имени второго параметра - «/» для цитаты и «» для quote_plus. Если вы не включаете косую черту во второй кавычки параметра, это изменит ее.

urllib.quote_plus('a/a','/')  # 'a/a'
3
задан 13 June 2012 в 16:10

7 ответов

Эта функция присутствовала на старом gnome2, но из-за последнего gnome.Gnome power manager должен давать уведомление, когда батарея заполнена, но это не так (это может быть ошибка). Я также не мог найти какой-либо вариант с dconf. Мне кажется, что единственный способ добиться этого через работу cron, которая регулярно проверяет, заполнена ли батарея или нет.

Первый открытый терминал & amp; type ls /proc/acpi/battery/. В моем случае выход C241 . Ваш может отличаться (обычно batt0 ot batt1). Также проверьте тип адаптера переменного тока, ls /proc/acpi/ac_adapter. Его C240 ​​ для меня. Open gedit & amp; скопируйте следующий скрипт.

Не забудьте заменить C241 & amp; C240 с вашим типом батареи и усилителем; ac.

#!/bin/bash

cd ~/.scripts
notification=$(grep 'notification:' notification|awk '{print $2}')

cd /proc/acpi/ac_adapter/C240;
power=$(grep 'state:' state|awk '{print $2}')
s1="$power"

s2="charged"
s3="on-line"
s4="on"

export DISPLAY=:0

if [ "$s1" = "on-line" ]; then
  cd /proc/acpi/battery/C241;
  state=$(grep 'charging state:' state|awk '{print $3}')
  if [ $state = $s2 ] && [ "$notification" = "$s4" ];
    then
            notify-send  --urgency=critical "Power Manager" "battery is full" -i battery_full
            echo "notification: off" >~/.scripts/notification

    fi

else
  if [ $notification != "on" ]; then
    echo "notification: on" >~/.scripts/notification
  fi
fi

сохраните файл как batteryfull.sh в ~ / .scripts (или где угодно). Сделайте исполняемый файл chmod a+x batteryfull.sh.

Тип терминала echo "notification: on" >~/.scripts/notification. Также добавьте ту же строку в конец вашего ~ / .profile.

Установите gnome-schedule (sudo apt-get install gnome-schedule). Запустите его, выберите новую задачу & amp; выберите «задача, которая запускается рекуррентно». В командной части поместите полный путь к файлу скрипта. В моем случае его ~ / .scripts / batteryfull.sh.Вы можете установить продолжительность работы кукурузы каждый мин или каждые 5 мин. Использовать. Вы можете проверить выполняемые задания, набрав crontab -l в терминале.

gnome-schedule [/g2]

Вы можете запустить этот скрипт при каждой загрузке, добавив gnome-schedule в качестве приложения для запуска (может не потребоваться в вашем случае ).

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

2
ответ дан 25 July 2018 в 18:31

Эта функция присутствовала на старом gnome2, но из-за последнего gnome.Gnome power manager должен давать уведомление, когда батарея заполнена, но это не так (это может быть ошибка). Я также не мог найти какой-либо вариант с dconf. Мне кажется, что единственный способ добиться этого через работу cron, которая регулярно проверяет, заполнена ли батарея или нет.

Первый открытый терминал & amp; type ls /proc/acpi/battery/. В моем случае выход C241 . Ваш может отличаться (обычно batt0 ot batt1). Также проверьте тип адаптера переменного тока, ls /proc/acpi/ac_adapter. Его C240 ​​ для меня. Open gedit & amp; скопируйте следующий скрипт.

Не забудьте заменить C241 & amp; C240 с вашим типом батареи и усилителем; ac.

#!/bin/bash

cd ~/.scripts
notification=$(grep 'notification:' notification|awk '{print $2}')

cd /proc/acpi/ac_adapter/C240;
power=$(grep 'state:' state|awk '{print $2}')
s1="$power"

s2="charged"
s3="on-line"
s4="on"

export DISPLAY=:0

if [ "$s1" = "on-line" ]; then
  cd /proc/acpi/battery/C241;
  state=$(grep 'charging state:' state|awk '{print $3}')
  if [ $state = $s2 ] && [ "$notification" = "$s4" ];
    then
            notify-send  --urgency=critical "Power Manager" "battery is full" -i battery_full
            echo "notification: off" >~/.scripts/notification

    fi

else
  if [ $notification != "on" ]; then
    echo "notification: on" >~/.scripts/notification
  fi
fi

сохраните файл как batteryfull.sh в ~ / .scripts (или где угодно). Сделайте исполняемый файл chmod a+x batteryfull.sh.

Тип терминала echo "notification: on" >~/.scripts/notification. Также добавьте ту же строку в конец вашего ~ / .profile.

Установите gnome-schedule (sudo apt-get install gnome-schedule). Запустите его, выберите новую задачу & amp; выберите «задача, которая запускается рекуррентно». В командной части поместите полный путь к файлу скрипта. В моем случае его ~ / .scripts / batteryfull.sh.Вы можете установить продолжительность работы кукурузы каждый мин или каждые 5 мин. Использовать. Вы можете проверить выполняемые задания, набрав crontab -l в терминале.

gnome-schedule [/g2]

Вы можете запустить этот скрипт при каждой загрузке, добавив gnome-schedule в качестве приложения для запуска (может не потребоваться в вашем случае ).

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

2
ответ дан 2 August 2018 в 00:42

Эта функция присутствовала на старом gnome2, но из-за последнего gnome.Gnome power manager должен давать уведомление, когда батарея заполнена, но это не так (это может быть ошибка). Я также не мог найти какой-либо вариант с dconf. Мне кажется, что единственный способ добиться этого через работу cron, которая регулярно проверяет, заполнена ли батарея или нет.

Первый открытый терминал & amp; type ls /proc/acpi/battery/. В моем случае выход C241 . Ваш может отличаться (обычно batt0 ot batt1). Также проверьте тип адаптера переменного тока, ls /proc/acpi/ac_adapter. Его C240 ​​ для меня. Open gedit & amp; скопируйте следующий скрипт.

Не забудьте заменить C241 & amp; C240 с вашим типом батареи и усилителем; ac.

#!/bin/bash

cd ~/.scripts
notification=$(grep 'notification:' notification|awk '{print $2}')

cd /proc/acpi/ac_adapter/C240;
power=$(grep 'state:' state|awk '{print $2}')
s1="$power"

s2="charged"
s3="on-line"
s4="on"

export DISPLAY=:0

if [ "$s1" = "on-line" ]; then
  cd /proc/acpi/battery/C241;
  state=$(grep 'charging state:' state|awk '{print $3}')
  if [ $state = $s2 ] && [ "$notification" = "$s4" ];
    then
            notify-send  --urgency=critical "Power Manager" "battery is full" -i battery_full
            echo "notification: off" >~/.scripts/notification

    fi

else
  if [ $notification != "on" ]; then
    echo "notification: on" >~/.scripts/notification
  fi
fi

сохраните файл как batteryfull.sh в ~ / .scripts (или где угодно). Сделайте исполняемый файл chmod a+x batteryfull.sh.

Тип терминала echo "notification: on" >~/.scripts/notification. Также добавьте ту же строку в конец вашего ~ / .profile.

Установите gnome-schedule (sudo apt-get install gnome-schedule). Запустите его, выберите новую задачу & amp; выберите «задача, которая запускается рекуррентно». В командной части поместите полный путь к файлу скрипта. В моем случае его ~ / .scripts / batteryfull.sh.Вы можете установить продолжительность работы кукурузы каждый мин или каждые 5 мин. Использовать. Вы можете проверить выполняемые задания, набрав crontab -l в терминале.

gnome-schedule [/g2]

Вы можете запустить этот скрипт при каждой загрузке, добавив gnome-schedule в качестве приложения для запуска (может не потребоваться в вашем случае ).

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

2
ответ дан 4 August 2018 в 16:12

Эта функция присутствовала на старом gnome2, но из-за последнего gnome.Gnome power manager должен давать уведомление, когда батарея заполнена, но это не так (это может быть ошибка). Я также не мог найти какой-либо вариант с dconf. Мне кажется, что единственный способ добиться этого через работу cron, которая регулярно проверяет, заполнена ли батарея или нет.

Первый открытый терминал & amp; type ls /proc/acpi/battery/. В моем случае выход C241 . Ваш может отличаться (обычно batt0 ot batt1). Также проверьте тип адаптера переменного тока, ls /proc/acpi/ac_adapter. Его C240 ​​ для меня. Open gedit & amp; скопируйте следующий скрипт.

Не забудьте заменить C241 & amp; C240 с вашим типом батареи и усилителем; ac.

#!/bin/bash

cd ~/.scripts
notification=$(grep 'notification:' notification|awk '{print $2}')

cd /proc/acpi/ac_adapter/C240;
power=$(grep 'state:' state|awk '{print $2}')
s1="$power"

s2="charged"
s3="on-line"
s4="on"

export DISPLAY=:0

if [ "$s1" = "on-line" ]; then
  cd /proc/acpi/battery/C241;
  state=$(grep 'charging state:' state|awk '{print $3}')
  if [ $state = $s2 ] && [ "$notification" = "$s4" ];
    then
            notify-send  --urgency=critical "Power Manager" "battery is full" -i battery_full
            echo "notification: off" >~/.scripts/notification

    fi

else
  if [ $notification != "on" ]; then
    echo "notification: on" >~/.scripts/notification
  fi
fi

сохраните файл как batteryfull.sh в ~ / .scripts (или где угодно). Сделайте исполняемый файл chmod a+x batteryfull.sh.

Тип терминала echo "notification: on" >~/.scripts/notification. Также добавьте ту же строку в конец вашего ~ / .profile.

Установите gnome-schedule (sudo apt-get install gnome-schedule). Запустите его, выберите новую задачу & amp; выберите «задача, которая запускается рекуррентно». В командной части поместите полный путь к файлу скрипта. В моем случае его ~ / .scripts / batteryfull.sh.Вы можете установить продолжительность работы кукурузы каждый мин или каждые 5 мин. Использовать. Вы можете проверить выполняемые задания, набрав crontab -l в терминале.

gnome-schedule [/g2]

Вы можете запустить этот скрипт при каждой загрузке, добавив gnome-schedule в качестве приложения для запуска (может не потребоваться в вашем случае ).

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

2
ответ дан 6 August 2018 в 00:51

Эта функция присутствовала на старом gnome2, но из-за последнего gnome.Gnome power manager должен давать уведомление, когда батарея заполнена, но это не так (это может быть ошибка). Я также не мог найти какой-либо вариант с dconf. Мне кажется, что единственный способ добиться этого через работу cron, которая регулярно проверяет, заполнена ли батарея или нет.

Первый открытый терминал & amp; type ls /proc/acpi/battery/. В моем случае выход C241 . Ваш может отличаться (обычно batt0 ot batt1). Также проверьте тип адаптера переменного тока, ls /proc/acpi/ac_adapter. Его C240 ​​ для меня. Open gedit & amp; скопируйте следующий скрипт.

Не забудьте заменить C241 & amp; C240 с вашим типом батареи и усилителем; ac.

#!/bin/bash

cd ~/.scripts
notification=$(grep 'notification:' notification|awk '{print $2}')

cd /proc/acpi/ac_adapter/C240;
power=$(grep 'state:' state|awk '{print $2}')
s1="$power"

s2="charged"
s3="on-line"
s4="on"

export DISPLAY=:0

if [ "$s1" = "on-line" ]; then
  cd /proc/acpi/battery/C241;
  state=$(grep 'charging state:' state|awk '{print $3}')
  if [ $state = $s2 ] && [ "$notification" = "$s4" ];
    then
            notify-send  --urgency=critical "Power Manager" "battery is full" -i battery_full
            echo "notification: off" >~/.scripts/notification

    fi

else
  if [ $notification != "on" ]; then
    echo "notification: on" >~/.scripts/notification
  fi
fi

сохраните файл как batteryfull.sh в ~ / .scripts (или где угодно). Сделайте исполняемый файл chmod a+x batteryfull.sh.

Тип терминала echo "notification: on" >~/.scripts/notification. Также добавьте ту же строку в конец вашего ~ / .profile.

Установите gnome-schedule (sudo apt-get install gnome-schedule). Запустите его, выберите новую задачу & amp; выберите «задача, которая запускается рекуррентно». В командной части поместите полный путь к файлу скрипта. В моем случае его ~ / .scripts / batteryfull.sh.Вы можете установить продолжительность работы кукурузы каждый мин или каждые 5 мин. Использовать. Вы можете проверить выполняемые задания, набрав crontab -l в терминале.

gnome-schedule [/g2]

Вы можете запустить этот скрипт при каждой загрузке, добавив gnome-schedule в качестве приложения для запуска (может не потребоваться в вашем случае ).

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

2
ответ дан 7 August 2018 в 18:16

Эта функция присутствовала на старом gnome2, но из-за последнего gnome.Gnome power manager должен давать уведомление, когда батарея заполнена, но это не так (это может быть ошибка). Я также не мог найти какой-либо вариант с dconf. Мне кажется, что единственный способ добиться этого через работу cron, которая регулярно проверяет, заполнена ли батарея или нет.

Первый открытый терминал & amp; type ls /proc/acpi/battery/. В моем случае выход C241 . Ваш может отличаться (обычно batt0 ot batt1). Также проверьте тип адаптера переменного тока, ls /proc/acpi/ac_adapter. Его C240 ​​ для меня. Open gedit & amp; скопируйте следующий скрипт.

Не забудьте заменить C241 & amp; C240 с вашим типом батареи и усилителем; ac.

#!/bin/bash

cd ~/.scripts
notification=$(grep 'notification:' notification|awk '{print $2}')

cd /proc/acpi/ac_adapter/C240;
power=$(grep 'state:' state|awk '{print $2}')
s1="$power"

s2="charged"
s3="on-line"
s4="on"

export DISPLAY=:0

if [ "$s1" = "on-line" ]; then
  cd /proc/acpi/battery/C241;
  state=$(grep 'charging state:' state|awk '{print $3}')
  if [ $state = $s2 ] && [ "$notification" = "$s4" ];
    then
            notify-send  --urgency=critical "Power Manager" "battery is full" -i battery_full
            echo "notification: off" >~/.scripts/notification

    fi

else
  if [ $notification != "on" ]; then
    echo "notification: on" >~/.scripts/notification
  fi
fi

сохраните файл как batteryfull.sh в ~ / .scripts (или где угодно). Сделайте исполняемый файл chmod a+x batteryfull.sh.

Тип терминала echo "notification: on" >~/.scripts/notification. Также добавьте ту же строку в конец вашего ~ / .profile.

Установите gnome-schedule (sudo apt-get install gnome-schedule). Запустите его, выберите новую задачу & amp; выберите «задача, которая запускается рекуррентно». В командной части поместите полный путь к файлу скрипта. В моем случае его ~ / .scripts / batteryfull.sh.Вы можете установить продолжительность работы кукурузы каждый мин или каждые 5 мин. Использовать. Вы можете проверить выполняемые задания, набрав crontab -l в терминале.

gnome-schedule [/g2]

Вы можете запустить этот скрипт при каждой загрузке, добавив gnome-schedule в качестве приложения для запуска (может не потребоваться в вашем случае ).

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

2
ответ дан 10 August 2018 в 07:00

Эта функция присутствовала на старом gnome2, но из-за последнего gnome.Gnome power manager должен давать уведомление, когда батарея заполнена, но это не так (это может быть ошибка). Я также не мог найти какой-либо вариант с dconf. Мне кажется, что единственный способ добиться этого через работу cron, которая регулярно проверяет, заполнена ли батарея или нет.

Первый открытый терминал & amp; type ls /proc/acpi/battery/. В моем случае выход C241 . Ваш может отличаться (обычно batt0 ot batt1). Также проверьте тип адаптера переменного тока, ls /proc/acpi/ac_adapter. Его C240 ​​ для меня. Open gedit & amp; скопируйте следующий скрипт.

Не забудьте заменить C241 & amp; C240 с вашим типом батареи и усилителем; ac.

#!/bin/bash

cd ~/.scripts
notification=$(grep 'notification:' notification|awk '{print $2}')

cd /proc/acpi/ac_adapter/C240;
power=$(grep 'state:' state|awk '{print $2}')
s1="$power"

s2="charged"
s3="on-line"
s4="on"

export DISPLAY=:0

if [ "$s1" = "on-line" ]; then
  cd /proc/acpi/battery/C241;
  state=$(grep 'charging state:' state|awk '{print $3}')
  if [ $state = $s2 ] && [ "$notification" = "$s4" ];
    then
            notify-send  --urgency=critical "Power Manager" "battery is full" -i battery_full
            echo "notification: off" >~/.scripts/notification

    fi

else
  if [ $notification != "on" ]; then
    echo "notification: on" >~/.scripts/notification
  fi
fi

сохраните файл как batteryfull.sh в ~ / .scripts (или где угодно). Сделайте исполняемый файл chmod a+x batteryfull.sh.

Тип терминала echo "notification: on" >~/.scripts/notification. Также добавьте ту же строку в конец вашего ~ / .profile.

Установите gnome-schedule (sudo apt-get install gnome-schedule). Запустите его, выберите новую задачу & amp; выберите «задача, которая запускается рекуррентно». В командной части поместите полный путь к файлу скрипта. В моем случае его ~ / .scripts / batteryfull.sh.Вы можете установить продолжительность работы кукурузы каждый мин или каждые 5 мин. Использовать. Вы можете проверить выполняемые задания, набрав crontab -l в терминале.

gnome-schedule [/g2]

Вы можете запустить этот скрипт при каждой загрузке, добавив gnome-schedule в качестве приложения для запуска (может не потребоваться в вашем случае ).

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

2
ответ дан 15 August 2018 в 18:58
  • 1
    Попробуйте установить переменную envorinment (или даже файл), когда батарея заполнена, а когда батарея начнет истощаться, сбросьте ее, чтобы уведомление могло быть перезапущено, когда батарея снова заполнена. – hexafraction 15 June 2012 в 03:07
  • 2
    Первоначально это был мой план. Я сделал общесистемную переменную типа «export NOTIFICATION = on». & Амп; добавлен в ~ / .profile. Но не смог изменить (установить / отключить) эту переменную из сценария bash. Наконец, я создал отдельный файл & amp; прочитайте данные оттуда. – Khurshid Alam 15 June 2012 в 18:30
  • 3
    спасибо, он работает после добавления файла уведомления с помощью echo "notification: on" >~/.scripts/notification – sohaibafifi 16 June 2012 в 01:42

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

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