Вы не можете написать учебник для создания одного скрипта. Это будет похоже на общий учебник по python, который вы можете найти во многих местах в Интернете.
То, что я сделал, это написать небольшой скрипт с комментариями, чтобы объяснить, что я сделал, чтобы проверить заряд батареи каждый 10 секунд. Это может быть преувеличено. Измените линию time.sleep(10), чтобы установить интервал (в секундах). Конечно, команды могут быть изменены, я отправил уведомление как есть.
Я запустил это сообщение или любую команду, которую вы ему дали, только один раз за инцидент, поэтому, если заряд превышает 80%, например, команда запускается только один раз, до следующего превышения определенных значений.
Как использовать
Сценарий предназначен для запуска в фон; скопируйте его в пустой файл, сохраните его как check_battery.py, сделайте его исполняемым и запустите его при входе в систему: Dash> Startup Applications> Add, добавьте команду:
/path/to/check_battery.py
Как использовать
#!/usr/bin/env python3
import subprocess
import time
def read_status():
"""
This function reads the output of your command, finds the line with
'percentage' (line 17, where first line = 0) and reads the figure
"""
command = "upower -i $(upower -e | grep BAT) | grep --color=never -E percentage|xargs|cut -d' ' -f2|sed s/%//"
get_batterydata = subprocess.Popen(["/bin/bash", "-c", command], stdout=subprocess.PIPE)
return get_batterydata.communicate()[0].decode("utf-8").replace("\n", "")
def take_action():
"""
When the charge is over 60% or below 40%, I assume the action does
not have to be repeated every 10 seconds. As it is, it only runs
1 time if charge exceeds the values. Then only if it exceeds the
limit again.
"""
# the two commands to run if charged over 80% or below 60%
command_above = "notify-send 'charged over 80'%"
command_below = "notify-send 'charged below 80%'"
times = 0
while True:
charge = int(read_status())
if charge > 60:
if times == 0:
subprocess.Popen(["/bin/bash", "-c", command_above])
times = 1
elif charge < 40:
if times == 0:
subprocess.Popen(["/bin/bash", "-c", command_below])
times = 1
else:
times = 0
time.sleep(10)
take_action()
Я нашел решение для реализации части 1 здесь. Хитрость заключается в том, чтобы хранить большие файлы на внешнем диске, синхронизировать с Dropbox через simlink, а затем выполнять выборочную синхронизацию, чтобы исключить этот каталог, сохраняя содержимое только в облаке.
Я до сих пор не знаю, как проиндексировать содержимое в HD. [Drop1-Pro предлагает здесь , чтобы выполнить это, но до сих пор нет дистрибутива linux :(].
Одна идея состоит в том, чтобы включить каталог в выборочную синхронизацию, но затем исключить все его подпункты -directories.Таким образом, использование dropbox exclude из консоли Linux должно содержать список всех исключенных подкаталогов. Не точно индекс, но довольно близко к музыке, организованной художником.
В качестве плюса, dropbox exclude remove <subdir> будет синхронизировать один такой подкаталог для сохранения в mp3-плеер через ноутбук. Затем dropbox exclude add <subdir> возвращается.
Я нашел решение для реализации части 1 здесь. Хитрость заключается в том, чтобы хранить большие файлы на внешнем диске, синхронизировать с Dropbox через simlink, а затем выполнять выборочную синхронизацию, чтобы исключить этот каталог, сохраняя содержимое только в облаке.
Я до сих пор не знаю, как проиндексировать содержимое в HD. [Drop1-Pro предлагает здесь , чтобы выполнить это, но до сих пор нет дистрибутива linux :(].
Одна идея состоит в том, чтобы включить каталог в выборочную синхронизацию, но затем исключить все его подпункты -directories.Таким образом, использование dropbox exclude из консоли Linux должно содержать список всех исключенных подкаталогов. Не точно индекс, но довольно близко к музыке, организованной художником.
В качестве плюса, dropbox exclude remove <subdir> будет синхронизировать один такой подкаталог для сохранения в mp3-плеер через ноутбук. Затем dropbox exclude add <subdir> возвращается.
Я нашел решение для реализации части 1 здесь. Хитрость заключается в том, чтобы хранить большие файлы на внешнем диске, синхронизировать с Dropbox через simlink, а затем выполнять выборочную синхронизацию, чтобы исключить этот каталог, сохраняя содержимое только в облаке.
Я до сих пор не знаю, как проиндексировать содержимое в HD. [Drop1-Pro предлагает здесь , чтобы выполнить это, но до сих пор нет дистрибутива linux :(].
Одна идея состоит в том, чтобы включить каталог в выборочную синхронизацию, но затем исключить все его подпункты -directories.Таким образом, использование dropbox exclude из консоли Linux должно содержать список всех исключенных подкаталогов. Не точно индекс, но довольно близко к музыке, организованной художником.
В качестве плюса, dropbox exclude remove <subdir> будет синхронизировать один такой подкаталог для сохранения в mp3-плеер через ноутбук. Затем dropbox exclude add <subdir> возвращается.