StopwatchTimer
Скачать: yadi.sk (https://yadi.sk/d/UmQUcFwoYf3DEQ) upload.ee (https://www.upload.ee/files/12973708/StopwatchTimer.7z.html)
(https://i.imgur.com/tbzgPdX.png)
Назначение
Напоминает о краткосрочных событиях, от том что надо куда либо пойти (в магазин) или выключить чайник.
Использование
1. Жмём "Добавить"
2. Указываем интервал времени или задать по дате
3. Указываем сигнал и проверяем что он работает
4. Если таймер понадобится в будущем, то сохраняем его (избавление от настроек, просто кликаем сохранённый пункт)
5. Таймер запускается автоматически и сработает в заданное время.
А если юзер в это время отходил от пк?
B в пакетах, в *.desktop у вас нет Categories=
Обновил.
Окно масштабируется и сохраняется размер. Добавил флаги message и notify, если есть желание получить мессагу и/или уведомление попутно с запуском файла (но если файл не задан, то ничего не будет, эти вещи не разделял пока).
Использовал команды
zenity --info --title="Таймер" --text="Завершено"
notify-send 'Сигнал' 'Завершено'
чтобы не блокировали окно таймера
Указал Categories=Misc. Читал что если категория не указана, то попадает в "Прочее", то есть Misc
Обновил, добавил цвет цифр в ini-файле. Остальное пока лень, да и не понятно зачем в трей. На панели задач у меня сужаются кнопки по мере заполнения до ширины иконки, в итоге что эта иконка будет в трее, что на панели задач, не особо напрягает, а писать лишнее меню для трея и нагромождать функционалом трея, это вроде не та программ, которая будет постоянно висеть в трее и активно использоваться. И даже мешать на панели задач будет напоминая о наличии таймера. Закрывать в трей вынуждает делать выход через трей, уж лучше сворачивать в трей, а закрывать - завершать прогу.
Теперь в раскрывающемся списке появился пункт "Командная строка"
zenity --info --title=Тест --text=Тест—команды—удачно
то есть выполнится zenity с параметрами. Здесь может быть любой исполняемый файл и любая команда. Разделение проги от параметров происходит по первому пробелу. Если файл в папке /usr/bin/ то путь можно не указывать, если иной путь, то надо указать весь путь.
И есть идея, для команд например в строке допустить переменные %t %s %e, которые можно заменять на время таймера, начало и конец таймера. Вот только проблема, эти символы допускаются в путях, можно поломать путь, можно заменить на //t //s //e но опять же сомневаюсь в ссылках может быть такое, можно мудрёной комбинацией, например #%t%# или сделать флаг разрешающий обработку переменных вида %t %s %e, например var=1 тогда, если в ком строке они встретятся то будут заменены, это позволит например в уведомлении выводить даты таймера, а не просто выдать уведомление о сработке таймера.
это не Windows, только там можно весь путь в кавычки
Возможно я что-то не понял, но в линуксе cat "/home/qq ww/file" работает
заменить пробел на "\ " себя же с чертой
да
echo "1 2" |sed 's/ /\\ /g'
Но еще могут быть пробел тире и т.п.
Можно сделать прога и ключи в разных окнах ввода или в тултипе написать про кавычки
Может кому интересно, но я виндовую версию подкрутил до линуксовых обновлений и протестировал, хорошо что заранее в исходнике делал разделение на виндовую и линуксовую часть, поэтому практически сразу заработало.
Вот как это выглядит:
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
; некий виндовый код
CompilerCase #PB_OS_Linux
; некий линуксовый код
CompilerEndSelect
или так:
CompilerIf #PB_Compiler_OS= #PB_OS_Linux
; некий линуксовый код
CompilerEndIf
то есть компилятор взависимости от ОС выбирает что ему компилировать, а что игнорировать. Допустим это могут быть внутренние для ОС функции WinAPI или GTK3.
cat это же не исполняемый файл
file `which cat`
/usr/bin/cat: ELF 64-bit LSB pie executable ...
Везде в линукс путь "1 2"/3"4 5" будет равносилен "1 2/34 5"
то есть окончание пути доллар
это regex (https://wiki.puppyrus.org/programming/regexps) наверное
printf "123\n36" |egrep '3$'
посмотрел xdg-open и вывел мануал, он оказывается и ссылки может открывать в браузере по умолчанию, а я голову ломал, как получить браузер по умолчанию.
xdg-open запрашивает дефолную прогу ассоциированную с типом используя xdg-mime
default=`xdg-mime query default "$filetype"`
тут я получаю имя программы geany.desktop
xdg-mime query default `xdg-mime query filetype /home/user/Загрузки/Readme.txt`
Links2
да, я только что смотрел там код:
# if BROWSER variable is not set, check some well known browsers instead
if [ x"$BROWSER" = x"" ]; then
BROWSER=www-browser:links2:elinks:links:lynx:w3m
if has_display; then
BROWSER=x-www-browser:firefox:iceweasel:seamonkey:mozilla:epiphany:konqueror:chromium:chromium-browser:google-chrome:$BROWSER
fi
fi
чтобы понять как он это делает но в итоге ничего не понял, кроме описания: если переменная BROWSER не задана, то проверяем известные браузеры. То есть программно я бы искал в папке /usr/bin в порядке релевантности файлы-браузеры, чтобы как только будет найден первый использовать его, хотя это не будет браузер по умолчанию. А вот как получить переменную BROWSER? Тут (https://www.purebasic.fr/english/viewtopic.php?p=565208#p565208) недавно я задал вопрос, как сделать поддержку национальных языков, мне дали ссылку на чтение переменных:
If ExamineEnvironmentVariables()
While NextEnvironmentVariable()
Debug EnvironmentVariableName() + " = " + EnvironmentVariableValue()
Wend
EndIf
Я получил 44 переменных, но тут нет переменной BROWSER. Хотя в плане вопроса той темы я получил переменную LANGUAGE = ru, то есть определил язык ОС.