Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.6
Creation-Date: 2021-10-26T11:56:24+08:00

====== 10 Скрипты ======
Создан Вторник 26 октября 2021

	Все мои скрипты в папке ~/MyApps, там же находятся портабельные программы

=== BTVol_Down ===

__#!/bin/sh__
__pactl set-sink-volume bluez_sink.1C_52_16_61_AD_1E.a2dp_sink -5%__
__pactl set-sink-volume bluez_sink.14_10_28_24_16_72.a2dp_sink -5%__
__pactl set-sink-volume bluez_sink.16_12_30_19_09_36.a2dp_sink -5%__

=== BTVol_Up ===

__#!/bin/sh__
__pactl set-sink-volume bluez_sink.1C_52_16_61_AD_1E.a2dp_sink +5%__
__pactl set-sink-volume bluez_sink.14_10_28_24_16_72.a2dp_sink +5%__
__pactl set-sink-volume bluez_sink.16_12_30_19_09_36.a2dp_sink +5%__

=== Canmore ===

__#!/bin/sh__
__#Canmore__
__cp /media/vvv/CANMORE/GP-102/Activities/* /home/Canmore/__
__pcmanfm-qt /home/Canmore/__

=== Download_Night ===

__#!/bin/sh__
__#Download_Night__
__# Запуск качалки в безлимитное ночное время__
__# Должно быть постоянно включено cron задание:__
__# crontab -e__
__# 5 0 * * *  expect -f ~/MyApps/Restart_Router__
__# Ctrl+O	запись в /tmp__
__# Ctrl+X	выход, окончательная запись__
__# Просмотр заданий crontab: crontab -l__
__pcmanfm-qt -w ~/Изображения/No_Shutdown.png --wallpaper-mode fit__
__BT=0:15__
__ET=6:30__
__yad --form --title "Ночная качалка" --center \__
__--on-top --timeout=10 \__
__--text="Время работы $BT-$ET" \__
__--button="Отмена!gtk-close" \__
__--button="Запись!gtk-ok:`echo DISPLAY=:0.0 transmission-qt | at $BT;echo killall transmission-qt | at $ET;aplay ~/.local/share/sounds/finish.wav`"__

=== Electro ===

__#!/bin/sh__
__#Electro__
__gnumeric '/home/Notebooks/My/000/Жилье/Эл-во/Электричество 2021.xls'__

=== FTP_Cubot ===

__#!/bin/sh__
__#FTP_Cubot__
__wget -N -P /home/GPSLogger/ ftp://192.168.1.27:2221/GPSLogger/*______________
__pcmanfm-qt /home/GPSLogger/__
__pcmanfm-qt ftp://192.168.1.27:2221/DCIM/HedgeCam/__

=== Insert_Date ===

__#!/bin/sh__
__# Insert_Date__
__# Коды клавиш > xev__
__wmctrl -a 'My - Zim'__
__xdotool mousemove 200 500__
__sleep 0.5__
__xdotool key ctrl+49__
__sleep 0.2__
__xdotool key ctrl+115__
__sleep 0.2__
__xdotool key ctrl+d__
__sleep 0.2__
__xdotool key Tab__
__xdotool key Tab__
__xdotool key Tab__
__xdotool key Tab__
__xdotool key Tab__
__sleep 0.5__
__xdotool key space__
__sleep 0.5__
__xdotool key Tab__
__xkb-switch -s ru__

=== kill_over_500MB ===

__#!/bin/sh__
__# Убиваются процессы, занимающие более 500 МБ памяти__
__ps aux | awk '{if($6 > 500000) print $2}' > /tmp/test.txt ; echo "$(tail -n +2 /tmp/test.txt)" > /tmp/test.txt ; for i in `cat /tmp/test.txt`; do kill -9 $i; done__

=== No_sleep ===

__#!/bin/sh__
__# Имитируется периодическое нажатие комбинации клавиш, ни за что не отвечающей__
__qterminal -e watch -n 540 xdotool key ctrl+10__

=== Photo_import ===

__#!/bin/sh__
__mon=`/bin/date +%Y/%m`__
__cd /home/Фото/$mon__
__gphoto2 -P __
__pcmanfm-qt /home/Фото/$mon__
__exit 0__

=== RHVC_buf ===

__#!/bin/sh__
__# RHVC_buf__
__xsel -b | RHVoice-test -p Anna -o /tmp/rhcv.mp3 ; cvlc /tmp/rhcv.mp3 --play-and-exit__

=== RHVC_sel ===

__#!/bin/sh__
__# RHVC_sel__
__xsel | RHVoice-test -p Anna -o /tmp/rhcv.mp3 ; cvlc /tmp/rhcv.mp3 --play-and-exit__

=== suspend_until ===

__#!/bin/bash__
__# Auto suspend and wake-up script__
__#__
__# Puts the computer on standby and automatically wakes it up at specified time__
__#__
__# Written by Romke van der Meulen <redge.online@gmail.com>__
__# Minor mods fossfreedom for AskUbuntu__
__#__
__# Takes a 24hour time HH:MM as its argument__
__# Example:__
__# suspend_until 9:30__
__# suspend_until 18:45__
__# ------------------------------------------------------__
__# Argument check__
__if [ $# -lt 1 ]; then__
__    echo "Usage: suspend_until HH:MM"__
__    exit__
__fi__
__# Check whether specified time today or tomorrow__
__DESIRED=$((`date +%s -d "$1"`))__
__NOW=$((`date +%s`))__
__if [ $DESIRED -lt $NOW ]; then__
__    DESIRED=$((`date +%s -d "$1"` + 24*60*60))__
__fi__
__# Kill rtcwake if already running__
__sudo killall rtcwake__
__# Set RTC wakeup time__
__# N.B. change "mem" for the suspend option__
__# find this by "man rtcwake"__
__sudo rtcwake -u -m no -t $DESIRED &__
__# feedback__
__echo "Suspending..."__
__# give rtcwake some time to make its stuff__
__sleep 2__
__# then suspend__
__# N.B. dont usually require this bit__
__#sudo pm-suspend__
__# Any commands you want to launch after wakeup can be placed here__
__# Remember: sudo may have expired by now__
__# Wake up with monitor enabled N.B. change "on" for "off" if __
__# you want the monitor to be disabled on wake__
__xset dpms force on__
__# and a fresh console__
__clear__
__echo "Доброе утро!"__
__# Для выбора параметра -m (по умолчанию mem) см.:__
__# man rtcwake__
__# Если в системе локальное время, то -l вместо -u__

=== Tracks ===

__#!/bin/sh__
__#Tracks__
__gnumeric '~/Notebooks/My/000/Велодвижение/Велодвижение 2021.xls'__

=== Tracks_all ===

__#!/bin/sh__
__#Tracks_all__
__gnumeric '~/Notebooks/My/000/Велодвижение/Велодвижение все.xls'__

=== TVVol_Down ===

__#!/bin/sh__
__pactl set-sink-volume alsa_output.pci-0000_00_1b.0.hdmi-stereo -10%__

=== TVVol_Up ===

__#!/bin/sh__
__pactl set-sink-volume alsa_output.pci-0000_00_1b.0.hdmi-stereo +10%__

=== unmaximize_all ===

__#!/bin/bash__
__#unmaximize_all__
__# Возвращает из максимизированного состояния все окна__
__window_ids=$(wmctrl -l | cut -f1 -d " ")__
__for window_id in $window_ids__
__do__
__    wmctrl -i -r "$window_id" -b remove,maximized_vert,maximized_horz__
__done__
__# Возможные варианты:__
__# remove|add|toggle__
__# Возможные варианты:__
__# remove|add|toggle__
__# modal, sticky, maximized_vert, maximized_horz, shaded, skip_taskbar, skip_pager, hidden, fullscreen, above, below__
--------------------
	В папке ~/vvv/MyApps/Tasker:

=== ATDeleter ===

__#! /bin/bash__
__# Удаление at задач__
__cd ~/MyApps/Tasker__
__frmdata=$(yad --form --title="Удаление заданий" \__
__--text="Введите номера заданий через пробелы" \__
__--field="Удалить":CBE --item-separator=" " )__
__atrm ${frmdata:: -1} # Удаление задач__

=== ATTasker ===

__#! /bin/bash__
__# Постановка at задач__
__cd ~/MyApps/Tasker__
__# Форма ввода времени и команды__
__frmdata=$(yad --form --title "Задачи" \__
__--field="Час:NUM" 0\!0..23\!1 \__
__--field="Мин:NUM" 0\!0..59\!1 \__
__--field="Команда:":TXT )__
__# Форма ввода даты__
__frmdate=$(yad --form --calendar --date-format="%D")__
__# Запись введенных значений в файл__
__echo $frmdata$frmdate > .atn.txt__
__# Чтение значения часов, добавление нуля, если однозначное число__
__HH=$(awk -F"|" '{ print $1 }' .atn.txt )__
__HH=$(printf '%02d' $HH)__
__# Чтение значения минут, добавление нуля, если однозначное число__
__MM=$(awk -F"|" '{ print $2 }' .atn.txt )__
__MM=$(printf '%02d' $MM)__
__# Чтение текста команды__
__TT=$(awk -F"|" '{ print $3 }' .atn.txt )__
__# Чтение значения даты__
__DD=$(awk -F"|" '{ print $4 }' .atn.txt )__
__# Подтверждение записи__
__yad --title="Запись задания" \__
__--text="$HH:$MM $DD $TT"__
__exval=$?__
__# При нажатии ОК выполнение команды записи задания (ОК=0)__
__# Иначе возврат к главному окну (Cancel=1)__
__case $exval in__
__   0) echo $TT | at $HH:$MM $DD;;__
__   1) bash -c ~/MyApps/Tasker/ATTasker;;__
__esac__
__rm -f .atn.txt # Удаление временного файла__

=== ATViewer ===

__#! /bin/bash__
__# Вывод списка всех at заданий с заданными командами__
__cd ~/MyApps/Tasker__
__# Вывод списка заданий в файл AT.txt__
__atq > AT.txt__
__: > TT.txt # Очистка файла__
__# Список номеров at заданий в файл .TN.txt__
__awk -F"\t" '{ print $1}' AT.txt > .TN.txt__
__# Счетчик__
__NL=0__
__# Фиктивное значение NumT для старта until__
__NumT=0__
__until  $NumT = ""  # Пока не появится пустая строка__
__do__
__  let "NL += 1"__
__  NumT=$(sed "${NL}q;d" .TN.txt) # Номер at задания__
__  at -c $NumT > .TTt.txt # Строка at задания в текст .TTt.txt__
__  sed '/^$/d' .TTt.txt > .TTtt.txt # Удаление пустых строк, и в файл .TTtt.txt__
__  sed "${NL}q;d" AT.txt >> TT.txt # Вывод atq в конец файла TT.txt__
__  awk 'END{print}' .TTtt.txt >> TT.txt # Последнюю строку в конец файла TT.txt__
__  echo -en "\n" >> TT.txt # Пустая строка в конец файла__
__done__
__featherpad ~/MyApps/Tasker/TT.txt # Просмотр списка at заданий__
__rm -f .TN.txt .TTt.txt .TTtt.txt .atn.txt # Удаление временных файлов__
__exit 0__

=== Reminder ===

__#! /bin/bash__
__# Задание напоминаний__
__cd ~/MyApps/Tasker__
__# Форма ввода времени и текста напоминания__
__frmdata=$(yad --form --title "Напоминалка" \__
__--field="Час:NUM" 0\!0..23\!1 \__
__--field="Мин:NUM" 0\!0..59\!1 \__
__--field="Действия:":TXT )__
__# Форма ввода даты напоминания__
__frmdate=$(yad --form --calendar --date-format="%D")__
__# Формат даты и времени для именования файла задания по времени создания__
__NN=$(date +%F_%H-%M-%S)__
__# Запись введенных значений в файл__
__echo $frmdata$frmdate > $NN.txt__
__# Чтение значения часов, добавление нуля, если однозначное число__
__HH=$(awk -F"|" '{ print $1 }' $NN.txt )__
__HH=$(printf '%02d' $HH)__
__# Чтение значения минут, добавление нуля, если однозначное число__
__MM=$(awk -F"|" '{ print $2 }' $NN.txt )__
__MM=$(printf '%02d' $MM)__
__# Чтение текста задания__
__TT=$(awk -F"|" '{ print $3 }' $NN.txt )__
__# Чтение значения даты__
__DD=$(awk -F"|" '{ print $4 }' $NN.txt )__
__# Подтверждение записи__
__yad --title="Запись задания" \__
__--text="$HH:$MM $DD $TT"__
__# При нажатии ОК (ОК=0, Cancel=1) выполнение команды__
__exval=$?__
__case $exval in__
__   0) echo DISPLAY=:0.0 ~/MyApps/Tasker/RemTime $NN | at $HH:$MM $DD;;__
__esac__
__exit 0__
__# Вывод списка заданий в файл atq.txt__
__atq > atq.txt__
__# Удаление файлов__
__rm -f TT.txt .TTt.txt .TTtt.txt__
__# Список номеров at заданий в файл .TN.txt__
__awk -F"\t" '{ print $1}' atq.txt > .TN.txt__
__# Счетчик__
__NL=0__
__# Фиктивное значение NumT для старта until__
__NumT=0__
__until  $NumT = ""  # Пока не появится пустая строка__
__do__
__  let "NL += 1"__
__  NumT=$(sed "${NL}q;d" .TN.txt) # Номер at задания__
__  at -c $NumT > .TTt.txt # Строка at задания в текст .TTt.txt__
__  sed '/^$/d' .TTt.txt > .TTtt.txt # Удаление пустых строк, и в файл .TTtt.txt__
__  sed "${NL}q;d" atq.txt >> TT.txt # Вывод atq в конец файла TT.txt__
__  awk 'END{print}' .TTtt.txt >> TT.txt # Последнюю строку в конец файла TT.txt__
__  echo -en "\n" >> TT.txt # Пустая строка в конец файла__
__done__
__exit 0__

=== RemTime ===

__#! /bin/bash__
__# Вывод напоминаний на экран__
__cd ~/MyApps/Tasker__
__# Имя файла из первого переданного параметра__
__RT=$1__
__# Чтение из файла значений часов, минут, даты и текста напоминания__
__HH=$(awk -F"|" '{ print $1 }' $RT.txt )__
__MM=$(awk -F"|" '{ print $2 }' $RT.txt )__
__DD=$(awk -F"|" '{ print $4 }' $RT.txt )__
__TT=$(awk -F"|" '{ print $3 }' $RT.txt )__
__# Имитация шевеления мыши для включения экрана монитора__
__xdotool mousemove 0 0__
__# Звуковой сигнал__
__paplay ~/.local/share/sounds/transfer_confirm.wav__
__sleep 0.5__
__paplay ~/.local/share/sounds/transfer_confirm.wav__
__# Пауза__
__sleep 1 &&__
__# Чтение голосом текста напоминания__
__#echo $TT | RHVoice-test -p Anna -r 60 -o /tmp/rhcv.mp3__
__#cvlc /tmp/rhcv.mp3 --play-and-exit__
__# Вывод напоминания по центру, на весь экран, на всех раб.столах, поверх__
__# других окон, с отступлением от края, текст по центру, формат текста__
__yad --form --title "Тревога!" --center --fullscreen --sticky --on-top \__
__--borders=300 --text-align=center --no-buttons \__
__--text="<span foreground='blue'><b><big><big><big>$TT</big></big></big></b></span>"__
__# Удаление файла с заданием__
__rm -f $RT.txt__

=== RemViewer ===

__#! /bin/bash__
__# Просмотр подробного списка всех напоминаний__
__cd ~/MyApps/Tasker__
__: > RM.txt # Очистка файла__
__cat 20*.txt > .rl.txt && # Запись в rl.txt всех напоминаний__
__sort .rl.txt > RM.txt # Запись в RM.txt после сортировки__
__featherpad ~/MyApps/Tasker/RM.txt # Просмотр напоминаний__
__rm -f .rl.txt # Удаление временного файла__
--------------------
	В папке ~/MyApps/Waker:

=== Waker ===

__#! /bin/bash__
__# Установка времени пробуждения ПК из дежурного режима__
__cd ~/MyApps/Waker__
__# Форма ввода времени__
__frmdata=$(yad --form --title "Будильник ПК" \__
__--field="Час:NUM" 0\!0..23\!1 \__
__--field="Мин:NUM" 0\!0..59\!1 )__
__# Форма ввода даты напоминания__
__frmdate=$(yad --form --calendar --date-format="%D")__
__# Запись введенных значений в файл__
__echo $frmdata$frmdate >> wtime.txt__
__# Чтение значения часов, добавление нуля, если однозначное число__
__HH=$(awk -F"|" '{ print $1 }' wtime.txt )__
__HH=$(printf '%02d' $HH)__
__# Чтение значения минут, добавление нуля, если однозначное число__
__MM=$(awk -F"|" '{ print $2 }' wtime.txt )__
__MM=$(printf '%02d' $MM)__
__# Чтение текста задания__
__TT=$(awk -F"|" '{ print $3 }' wtime.txt )__
__# Чтение значения даты__
__DD=$(awk -F"|" '{ print $4 }' wtime.txt )__
__# Подтверждение записи__
__yad --title="Запись времени и даты пробуждения" \__
__--text="$HH:$MM $DD"__
__# Дата и время в нужном формате__
__wdate=$(date -d $DD $HH:$MM '+%s')__
__# При нажатии ОК (ОК=0, Cancel=1) выполнение команды__
__exval=$?__
__case $exval in__
__   0) pkexec rtcwake -m no -l -t "$wdate";;__
__esac__
__exit 0__
--------------------
	Запуск wine программ:

=== Start_AlReader ===

__#!/bin/sh__
__cd '~/.wine/drive_c/Program Files/MyHomeLib/AlReader'__
__wine '~/.wine/drive_c/Program Files/MyHomeLib/AlReader/AlReader2.exe'__

=== Start_Erudit ===

__#!/bin/sh__
__cd '~/.wine/drive_c/Program Files/Erudit_VM'__
__wine '~/.wine/drive_c/Program Files/Erudit_VM/Erudit_VM.exe'__

=== Start_MyHomeLib ===

__#!/bin/sh__
__cd '~/.wine/drive_c/Program Files/MyHomeLib'__
__wine '~/.wine/drive_c/Program Files/MyHomeLib/MyHomeLib.exe'__

=== Start_SASPlanet ===

__#!/bin/sh__
__cd '~/.wine/drive_c/Program Files/SASPlanet'__
__wine '~/.wine/drive_c/Program Files/SASPlanet/SASPlanet.exe'__

=== Start_SlidingBlocks ===

__#!/bin/sh__
__cd '~/.wine/drive_c/Program Files/SlidingBlocks'__
__wine '~/.wine/drive_c/Program Files/SlidingBlocks/blocks.exe'__

=== Start_TorBrowser ===

__#!/bin/sh__
__sh -c '"~/MyApps/tor-browser_en-US/Browser/start-tor-browser" --detach || ([ !  -x "~/MyApps/tor-browser_en-US/Browser/start-tor-browser" ] && "$(dirname "$*")"/Browser/start-tor-browser --detach)' dummy %k__
--------------------
	Команда очистки кэша в памяти (в общем-то, никогда не требуется этого делать):
''su''
''sync; echo 1 > /proc/sys/vm/drop_caches''
