Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Программирование и компиляция => Тема начата: Dobrov от 17 Ноябрь 2019, 17:46:49

Название: RUN - запуск часто используемых действий
Отправлено: Dobrov от 17 Ноябрь 2019, 17:46:49
запуск часто используемых действий (скрипт содержит примерно 80 команд и сотню функций). без опций: динамическая справка всех команд/функций

run xorg_vt wine "$game" запуск любого приложения в новом графическом сеансе

run demo скрипт демонстрирует примеры использования нескольких команд/функций.

Exec=run ? nemo thunar caja… запуск из .desktop-ярлыка первой найденной в $PATH команды
снимок экрана, захват текста, утилиты консоли: статус дисков, mount, другие упрощения…
справка для текущего окна: показать html-файл/man консоли/поиск википедии/вывод --help
В зависимости от класса окна или имени процесса активного окна открывается встроенный html или ваш, или man или браузер ищет имя программы в указанной поисковой системе (описание всплывающей справки в конце скрипта)
запустите mpv, повесьте на hotkey команду: run spravka и нажмите над окном. в демо-html сейчас забиты mpv и firefox-esr.
Запуск bash-функций: run ИМЯ ФУНКЦИИ [опции] из секции # <zsfunc> Если вписать новую функцию, она автоматически появится в справке.

диалоги на yad - просмотр видео в mpv команда run weburl и создание ссылок - тестируйте, делайте замечания, пожелания…
Требования: yad и мой скрипт run. создать Символические или Жёсткие ссылки с Абсолютным/Относительным путём
Удалять существующие целевые файлы, если перезаписываемая ссылка указывает на другой объект.
Создать дубликаты, не удаляя совпадающие файлы, т.е. ссылки вида dir/link_[RND].ext
Код
<Program>
  <ID>{0404DF3D-71EB-4C36-AF0B-520E67CA25BD}</ID>
  <Icon>link</Icon>
  <Hint>create Symbolic Links</Hint>
  <Command>run</Command>
  <Params>ln_yad %L %Dt %DC_CONFIG_PATH%/doublecmd.log</Params>
</Program>
Название: Re: RUN - запуск часто используемых действий
Отправлено: krasnyh от 17 Ноябрь 2019, 19:14:48
просмотр видео в mpv команда run weburl
Для маленькой системы маленький плеер. Была попытка у sfs написать гуи для mpv (http://forum.puppyrus.org/index.php?topic=17431.0) (скрин1), попытка удачная, но по мне в нем не хватает некоторых важных функций. Я конечно могу настроить то, что мне надо в mpv.conf (так и делаю), но это уже другое и не для всех.
И тут появляется гуи того же mpv (скрин2), но с расширенными возможностями. Smplayer придется подвинутся.  :)
Скрины.


p.s.  Если у вас в menu.lst что-то отображается квадратиками, то наверно отсутствует модуль ttf-dejavu. Тогда и в run некоторая графика не покажется. Возможно будет не хватать и otf-font-awesome. (https://www.archlinux.org/packages/community/any/otf-font-awesome/)
У меня с отображением скрипта все ok. P.s. (кроме 408 строки, неуловимый шрифт какой-то).
Но это конечно мелочи. )
Название: Re: RUN - запуск часто используемых действий
Отправлено: krasnyh от 17 Ноябрь 2019, 19:22:05
Я тут иногда запускаю какое-нибудь приложение и вдруг оказывается что мне надо запустить его же, но под root. Или какое-то окно надо выставить поверх всех.
Вот было бы что-то подобное W-f1, т.е. фокус на окно приложения, хоткей и получаем нужное... Это для лентяев конечно. :)

upd. Похоже с графическим su/sudo беда в арче. Никак не смог организовать это ни в PRA, ни в IceArch. И не найти каких-то легких аналогов:
Цитата
sudo ) # запуск от суперпользователя, интерактивный запрос пароля
      $(WHICH kdesu tdesu gksudo) "$(which "$1" 2>/dev/null || echo $1)" ${@:2}& # можно указать полный путь. gksudo не работает с пробелами
Название: Re: RUN - запуск часто используемых действий
Отправлено: krasnyh от 17 Ноябрь 2019, 20:06:37
Еще у Dobrov интересно настроен Basilisk помощью CustomButtons, правкой кода. Это заменяет кучу расширений, которые как известно могут тормозить браузер и обычно не рекомендуется ими злоупотреблять.

Думаю многим будет это интересно. Можно в этом (http://forum.puppyrus.org/index.php?board=179.0) разделе создать тему. А если там выложить и пакет для firefox, о котором говорилось на другом форуме (если я все правильно понял), то вообще будет замечательно.
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 18 Ноябрь 2019, 01:54:43
Еще у Dobrov интересно настроен Basilisk помощью CustomButtons
Пока недостаточно протестирован, распишу побольше справку, может создам тему…

у меня с отображением скрипта все ok. P.s. (кроме 408 строки, неуловимый шрифт какой-то)
для меня наглядней иконки в комментах, использую шрифты: Font Awesome, Noto Sans Symbols2, MSGothic
P.S. вот символы Font Awesome в браузере почему-то не показываются, хотя в Sublime3 всё OK: 

запуск от суперпользователя, интерактивный запрос пароля
Ещё добавлю, что функции запуска приложений run_one, run_atop теперь учитывают только процессы текущего юзера:
Пример: запустили под ROOT Double Commander, кликаем иконку с командой: run DC и командер запускается под юзером. При следующем клике активируется только окно DC.
Ранее запуск не происходил. Позже добавлю ключ выбора (учитывать/не учитывать процессы всех юзеров)
Название: Re: RUN - запуск часто используемых действий
Отправлено: sfs от 18 Ноябрь 2019, 09:26:36
с графическим su/sudo беда в арче
sudoq (http://forum.puppyrus.org/index.php?topic=20146.0) (у меня не прижилось)
появляется гуи того же mpv (скрин1)
На скрине точно гуй к mpv? Ничего не перепутано?
Smplayer придется подвинутся.
Разве кто-то кроме него может youtube без youtube-dl?
у Dobrov интересно настроен Basilisk помощью CustomButtons, правкой кода. Это заменяет кучу расширений
каких?
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 18 Ноябрь 2019, 14:26:03
    Это заменяет кучу расширений
каких?
Не знаю, но вот примерно треть возможностей профиля:
GreaseMonkey: скрипты пользователя
GESTURES жесты мыши; CB drag and go перетаскивание
Обработка кликов, горячих клавиш, долгих нажатий
Проиграть/скачать видео-ссылку внешним приложением
Сохранить страницу\выделенную часть в единый html
Расширение downloads-button, PanelUI, bookmarks-menu, urlbar-button…
Полоса загрузки в адресной строке
URL-панель кнопок в панели адреса, Подчеркивание домена
Автоскрытие панели вкладок
Прокрутка вкладок колёсиком
Context Search, zoomButton, RSS feed-button
Журнал URL-адресов по ширине строки, + контекстное меню
Выделение вкладки, добавленой в закладки
Подсказки к ссылкам, Остановить загрузку всех вкладок
Открыть закладку средним кликом, не закрывая меню
Адрес закладки в подсказке вкладки
Восстановить иконки закладок в меню папок закладок
Закладки в контекстном меню страницы
Закладки: контекстное меню на клавише/клике мыши
Сохранить изображение из меню или жестом, учитывая ImagePicker
Поиск похожих изображений в Google
Редактировать сохранённые логины и пароли
Раскрыть пароли в полях ввода ***
Добавить закладку двойным кликом на папке закладок
Скрыть Findbar после клика мыши
Стили некоторых кнопок, tooltip и scrollbar

Экспертный или Простой режим - меняются подсказки действий, управление

Горячие клавиши:
F4 история адресной строки
правый Ctrl (нажать дважды) поиск в Яндекс
Alt+S сохранить страницу или выделенную часть
Ctrl+Alt+R режим для чтения (userscript)
Ctrl+E редактировать страницу (поместить на панель кнопку расширения Page Hacker)

ЖЕСТЫ МЫШИ …
L>R нажать левую, затем правую кнопку мыши. R>L - наоборот
Переключение вкладок: Ctrl+PageUp/Down, Alt+Scroll±, колесико+Scroll ±
Ускоренное листание страницы Shift+Scroll ±
Название: Re: RUN - запуск часто используемых действий
Отправлено: krasnyh от 19 Ноябрь 2019, 22:01:21
Когда-то я установил себе zsh (http://forum.puppyrus.org/index.php?topic=21152.0), чтобы в полной мере насладиться удобствами для ленивых. :) Автодополнение (скрин1), подстановка из истории, раскрытие путей по TAB (/u/l/b (https://agladky.ru/blog/why-zsh-is-better-than-bash/#раскрытие-полного-пути)), множество дефолтных алиасов (vi =pacman2pfs).


В run я вижу нечто подобное - инструмент, призванный сделать жизнь юзера проще. Пока не разобрался во всех возможностях, но что уже видно:
- Если используется несколько систем с разным набором приложений, то можно использовать общий 'хомяк'. Всегда будут запускаться именно те проги, которые присутствуют в данной сборке (аналог скриптов default* PRA). P.s. На счет общего 'хомяка', это упрощение.
- Возможность быстро поменять пользователя у активного окна  (если я правильно понял, это можно делать хоткеем)
- Простое монтирование разделов (скрин2)
- Просмотр видео в mpv ("run weburl" на хоткей + должны быть xclip и youtube-dl  ; выделяем/копируем ссылку, нажимаем хоткей; скрин выше).
И т.д., весь потенциал скрипта еще не разобрал.

upd. Да, еще run spravka (W-f1 на активное окно). Но тут, мне кажется, необходимость такого функционала переоценена (имхо). Хотя, если не для домашнего пользователя, а вот для таких массовых сборок как PRA, Puppy, IceArch. Когда их юзает новичок в линукс...
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 20 Ноябрь 2019, 02:39:11
run spravka (W-f1 на активное окно). Но тут, мне кажется, необходимость такого функционала переоценена (имхо).
Вообще-то, определив Активное окно, можно выполнять множество действий. В KDE это делается проще, скриптом kwin, я же пытался предоставить универсальный вариант.
У меня основное назначение - при нажатии hotkey над Активным окном показываются html-заметки именно для конкретной программы, но можно выполнять и другие команды…
Название: Re: RUN - запуск часто используемых действий
Отправлено: sfs от 20 Ноябрь 2019, 09:54:55
массовых сборок как PRA, , IceArch
Я бы не переоценивал "массовость" наших местечковых сборок  ;)
Название: Re: RUN - запуск часто используемых действий
Отправлено: krasnyh от 20 Ноябрь 2019, 18:15:23
Или какое-то окно надо выставить поверх всех.
Оказывается штатный WM это сам умеет:
Цитата
<keybind key="W-F8">
  <action name="ToggleAlwaysOnTop"/>
</keybind>
Нажимаем W-F8 - закрепляем окно ontop, еще раз жмем - normal.
http://openbox.org/wiki/Help:Actions#ToggleAlwaysOnTop
Название: Re: RUN - запуск часто используемых действий
Отправлено: knn от 20 Ноябрь 2019, 18:31:15
Оказывается штатный WM это сам умеет:
- смотря что считать штатным...
IceWM --ПКМ по рамке-окна, --Слой, --выбрать нужное ( видел может в openbox, может в jwm, может там и там - ~также)
Название: Re: RUN - запуск часто используемых действий
Отправлено: krasnyh от 20 Ноябрь 2019, 18:36:42
Это само собой ПКМ по рамке окна - Положение - Всегда наверху. Я искал более короткое решение и желательно хоткеем, чтобы не выцеливать мышкой. )

Так сроднюсь с хоткеями, что замахнусь на сам i3wm/sway (https://wiki.archlinux.org/index.php/Sway)!  :)
Название: Re: RUN - запуск часто используемых действий
Отправлено: kostyalamer от 20 Ноябрь 2019, 22:34:06
Так сроднюсь с хоткеями, что замахнусь на сам i3wm/sway!
И переучиваться особо не надо будет, очень много хоткеев ледяного утащено мною как раз из i3
Название: Re: RUN - запуск часто используемых действий
Отправлено: sfs от 30 Ноябрь 2019, 18:12:06
обрати внимание на Run от Dobrov
Ознакомился. Такой скрипт надо "выстрадать" самому. Тогда будет удобно

По функционалу заинтересовал только
Символические или Жёсткие ссылки с Абсолютным/Относительным путём
Не помню, где мне подобное было нужно. Мне бы удобнее такое было прикрутить к mc

Остальное - в моих дистрах есть аналоги или не очень представляю  зачем и где нужны некоторые функци

Много вызовов внешних прог, которых в моих дистрах нет

В итоге включать RUN в свои дистры желания не возникло. Кому надо - здесь скачают. Остальные такой скрипт все равно не найдут

Автору + Мало у нас осталось скриптописателей. Не пропадайте  ;)
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 10 Декабрь 2019, 18:05:02
По скрипту run - тем, кто пользуется, СОВЕТУЮ обновить…

+интерактивный sudo, т.е. работаем в консоли: запрос пароля там же, запустили скрипт из Иксов: GUI-диалог.
должны заработать функции у пользователей со стандартной политикой запроса паролей, т.е. без правки sudoers.
Изменений много, но не включены ещё некоторые интересные фишки…
функции с запросом root-прав: sudo xorg_vt webtv (для /opt/ptv3) adb-mount part_mount path_bind part_unmount status_sd update aur_helper killall
Название: Re: RUN - запуск часто используемых действий
Отправлено: sfs от 11 Декабрь 2019, 09:24:46
+интерактивный sudo, т.е. работаем в консоли: запрос пароля там же, запустили скрипт из Иксов: GUI-диалог.
гуй самодельный?
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 11 Декабрь 2019, 13:15:35
гуй самодельный?
Всё штатно:
Код
which_ex(){ # список команд: >возврат найденной в $PATH команды с опциями
for flag in "$@"; do set -- $flag; exe=; exe="$(which "$1" 2>/dev/null) ${@:2}"&& break
done; [[ -n $exe ]]&& echo "$exe" #в конце опции либо пробел
}
is_interactive() { # 0 ввод в консоли доступен, иначе запуск из графической среды
ps -o stat= -p $$ | grep -q '+'
}
is_interactive && sudoX=sudo || sudoX=$(which_ex "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY" gksudo kdesu tdesu lxqt-sudo)
exec $sudoX "$(which "$1" 2>/dev/null || echo $1)" ${@:2} # можно указать полный путь. gksudo не работает с пробелами
Название: Re: RUN - запуск часто используемых действий
Отправлено: sfs от 11 Декабрь 2019, 13:23:32
За пояснительные комментарии в коде + (не то что у меня  :))
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 06 Март 2020, 00:20:33
Запуск приложения в новом графическом сеансе без root-прав - переписал заново, обновите скрипт run до версии 2.95 или выше:
run xorg_vt [-w DM] [tty №] command args # если № tty не занят, запустить там, иначе в первой свободной консоли…

Пример: run -b xorg_vt wine "$game" #запуск игры или приложения в первой свободной консоли со звуком (beep)
Название: Re: RUN - запуск часто используемых действий
Отправлено: sfs от 06 Март 2020, 10:49:00
Запуск приложения в новом графическом сеансе без root-прав
у меня есть аналогичный скрипт (http://forum.puppyrus.org/index.php?topic=20622.msg142743#msg142743) . В основном запускать браузеры для перестраховки. Но там попроще
Зачем новый граф. сеанс? Это запуск еще одного X сервера? Это же доп. ресурсы ест
Почему не в имеющемся сеансе?
Название: Re: RUN - запуск часто используемых действий
Отправлено: krasnyh от 06 Март 2020, 11:08:33
Чаще при запуске игр так делают.

Цитата
Отдельный X сервер дает некоторые преимущества, например более высокую производительность, возможность перехода в игру по клавишам CTRL-ALT-F7 / CTRL-ALT-F8, не требуется завершать основную сессию X-ов (она продолжает работать) в случае конфликта игры с видеодрайвером.
https://wiki.archlinux.org/index.php/Gaming#Starting_games_in_a_separate_X_server
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 07 Март 2020, 00:36:26
Зачем новый граф. сеанс? Это запуск еще одного X сервера? Почему не в имеющемся сеансе?
Надо! Запуск еще одного X-сервера востребован, обсуждается во многих статьях и krasnyh показал основные преимущества создания нового графического сеанса.
Например, запускать wine-игры и нестабильные приложения, тестировать другие графические окружения (enlightenment и т.п.), отлаживать свои разработки (у нас ведь форум для разработчиков!)

P.S. а вопросы типа «Нафига это надо?» по-моему явный флуд.
Название: Re: RUN - запуск часто используемых действий
Отправлено: sfs от 07 Март 2020, 08:44:33
вопросы типа «Нафига это надо?» по-моему явный флуд.
Не хотел никого обидеть. Не утверждал что это не нужно. Хотел понять замысел. Теперь понятно. Спасибо
Название: Re: RUN - запуск часто используемых действий
Отправлено: DdShurick от 07 Март 2020, 08:47:44
вопросы типа «Нафига это надо?»
Это главный вопрос!
Название: Re: RUN - запуск часто используемых действий
Отправлено: kostyalamer от 07 Март 2020, 10:10:14
Это главный вопрос!
У нас в ледяном это точно надо: получается по сути отдельные X-совые песочницы, при этом зависание одних X-сов  никак не влияет на родительскую систему и другие запущенные X-сы . Супер , особенно интересно это делать из нашего консольного reen-а , можно например запустить несколько разных рабочих столов и переключаться между ними вживую.
Название: Re: RUN - запуск часто используемых действий
Отправлено: sfs от 07 Март 2020, 10:17:40
зависание одних X-сов
Уже давно не сталкивался... У Вас такое бывает? Чем удается убить Х?
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 07 Март 2020, 10:42:03
Да, бывает в процессе отладки мои скрипты иногда выдают неожиданные результаты…
Название: Re: RUN - запуск часто используемых действий
Отправлено: k0l0p0k от 07 Март 2020, 11:08:17
зависание одних X-сов
Уже давно не сталкивался... У Вас такое бывает? Чем удается убить Х?
например (там правда не сам X зависал) :
http://forum.puppyrus.org/index.php?topic=21556.msg155393#msg155393
Название: Re: RUN - запуск часто используемых действий
Отправлено: kostyalamer от 07 Март 2020, 17:22:02
Уже давно не сталкивался... У Вас такое бывает? Чем удается убить Х?
Иногда бывает , прекрасно убивается либо в reen по Ctrl+C либо тем же способом в терминале в котором они были запущены через run.
Название: Re: RUN - запуск часто используемых действий
Отправлено: betcher от 14 Март 2020, 11:11:21
Чаще при запуске игр так делают.
Давно, году в 2009 делал такое на мандриве. Запускал контру в отдельной икс сессии. Но фишка была не в том чтоб организовать песочницу, а в том что проприетарный драйвер нвидиа изредка да падал. Так вот иксы с которыми стартовала система грузились с vesa, а иксы для игры с нвидиа дровами. Тупо использовались разные конфиги иксов.
Это как идея :)
Название: Re: RUN - запуск часто используемых действий
Отправлено: Dobrov от 25 Апрель 2020, 12:18:59
Доработал функцию wine_ex, можно использовать win-версии в /opt,PlayOnLinux,Lutris

Сделал Меню на dialog\Xdialog, работающее в Иксах и консоли. Преимущества: простой синтаксис меню, каждый пункт можно скрывать/показывать по произвольным условиям, например в режиме консоли одна команда запуска mpv, в Иксах другая; скрыть пункт меню, если пользователь не root, если пакет не установлен и т.п.
Два типа строк меню (можно сделать больше): обычная команда и переключатель, меняющий режимы работы и строки меню.
Показ активных сеансов пользователей, перелючение на консоли активных пользователей
Запуск установленных Окружений рабочего стола (xsessions)

Описание в конце скрипта или запуск справки: run --help.  Пример скрипта в шапке…