LINUX.ORG.RU

Как обернуть консольное приложение в отдельное для gnome?

 , ,


1

1

Доброго вечера, есть система Debian 10 и на ней Gnome + dushtodock.

И вот используя Vim мне захотелось чтобы он отображался отдельным значком на моем dash а не как сейчас иконка gnome-terminal)) Один способ я знаю это нацепить другую иконку на gnome-terminal. Но это как то не по фэн-шую.

Как его обернуть в отдельный app, чтобы и в процессах был виден как vim, и гном его за терминал не считал.

PS: Neovim и gVim не предлагать.

А как ты изначально создал иконку для него? Вообще, ответ для чайника - воспользуйся редактором меню наподобие alacarte или menulibre.

eternal_sorrow ★★★★★ ()

Один способ я знаю это нацепить другую иконку на gnome-terminal. Но это как то не по фэн-шую.

Ну вот, полдела сделал, теперь надо, чтобы открывая несколько окон они не смешивались с окнами терминала в даше в один значёк.

Придумай название класса, скажем MyVim, и заставь приложение юзать его, вот тебе и отдельный Апп.

Exec=<твоя команда> --class MyVim
StartupWMClass=MyVim
papin-aziat ★★★★★ ()
Ответ на: комментарий от snake266

Да нет Vim консольное приложение, терминал. Соответственно даже если я и создам ярлык он будет нечто вроде gnome-terminal vim.

Все равно оконный менеджер будет видеть его как gnome-terminal. Соответственно dash будет отображать его как gnome-terminal

Вопрос не в том как создать ярлычок, а как обернуть консольное приложение, дать ему уникальное имя.

ettaluni ()
Ответ на: комментарий от ettaluni

Соответственно даже если я и создам ярлык он будет нечто вроде gnome-terminal vim.

Ты сначала разберись с *.desktop файлом, помести его ~/.local/share/applications, а потом говори.

anonymous ()
Ответ на: комментарий от ettaluni

Можно задать свое значение Icon и будет отображаться та иконка, которую вы захотите. По ссылке, которую я вам скинул, можно найти пример, в котором все разобрано. Есть еще спецификация на сайте гноме: https://developer.gnome.org/desktop-entry-spec/

snake266 ★★ ()
Ответ на: комментарий от snake266

Ярлык уже сделан иконку я на него поставил, вопрос в том как сделать чтобы в боковой панели отображалось сбоку не как gnome terminal.

ettaluni ()
Ответ на: комментарий от ettaluni

Чтобы оно не смешивалось в одну иконку, с gnome-terminal, в панеле? Попробуй прописать в свой .desktop файл это: Как обернуть консольное приложение в отдельное для gnome? (комментарий). Ну и не забудь добавить этот ярлык на панель.

snake266 ★★ ()
Последнее исправление: snake266 (всего исправлений: 1)
Ответ на: комментарий от papin-aziat

Почему то не работает, все равно в одну кучку

Version=8.2
Type=Application
Name=Vim
Comment=Text Processor
Exec=gnome-terminal -e 	vim --class MyVim
StartupWMClass=MyVim
Icon=/home/sandis/.local/app/icon/vim.png
MimeType=image/x-foo;
Actions=IDE;Text;

ettaluni ()
Ответ на: комментарий от ettaluni

Вот так у меня все работает и иконка отдельная:

[Desktop Entry]
Version=8.2
Type=Application
Name=Vim
Comment=Text Processor
Terminal=true
Exec=gnome-terminal -e 	vim --class MyVim
StartupWMClass=MyVim
Icon=/home/sandis/.local/app/icon/vim.png
MimeType=image/x-foo;
Actions=IDE;Text;
snake266 ★★ ()
Ответ на: комментарий от ettaluni

Тоже кину тут рабочий вариант, это ютубчик из лисы-87 с vaapi, esr так не умеет.

[Desktop Entry]
Name=YouTube
GenericName=Web Browser
Comment=Firefox for YouTube
Exec=youtube --class youtube 
Icon=youtube
Type=Application
Terminal=false
Encoding=UTF-8
StartupNotify=false
StartupWMClass=youtube
NoDisplay=false
papin-aziat ★★★★★ ()

Все равно не получается, с конфигами что со мной поделились, запускает но не группирует.

С Exec=vim --class не работает, не запускается

ettaluni ()
Последнее исправление: ettaluni (всего исправлений: 1)
Ответ на: комментарий от ettaluni

Иконку *.png можно просто положить в ~/.local/share/icons

MimeType зачем?

Actions зачем, если их нет?

Если не работает, я бы попробовал разные варианты с Exec. Первым делом попробовал бы всё сделать через gnome-terminal, там много интересного, если глянуть с --help-all.

--class=CLASS                   Program class as used by the window manager
--name=NAME                     Program name as used by the window manager
--geometry=GEOMETRY             Set the window size; for example: 80x24, or 80x24+200+200 (COLSxROWS+X+Y)
--role=ROLE                     Set the window role
--profile=PROFILE-NAME          Use the given profile instead of the default profile
-t, --title=TITLE               Set the initial terminal title

Так что задавай свой редактор в новом профайле вместо дефолтного шелла, а остальное в десктоп-файл в Exec, остальное связанное с классом из файла убирай, думаю так, сам не делал.

papin-aziat ★★★★★ ()
Ответ на: комментарий от papin-aziat

Неа, не смог заюзать. Пробовал другие терминалы ставить но с ними все аналогично.

Спасибо тебе, и всем остальным. Походу придется на питоне обертку как нибуть написать, или на Си

ettaluni ()
Ответ на: комментарий от snake266

Terminal=true
Exec=gnome-terminal -e vim –class MyVim

Вот зачем true, если и так запускается терминал?

anonymous ()
Ответ на: комментарий от ettaluni

Возьми готовый *.desktop файл, например от htop или чего-нибудь другого консольного и отредактируй под vim.

anonymous ()

Кароче, проблема в архитектуре терминала, я ссылку дал, у меня получилось, сделай по шагам, должно тоже получиться.

Чтобы лишнего не писать в Exec, создай новый профайл в терминале, например vim, и там в секции Command настрой запускать свою команду вместо шелла, ну и прочее, если интересно.

Теперь найди где в системе лежит gnome-terminal-server

sudo updatedb && locate gnome-terminal-server

Теперь надо 2 файла создать.

gedit -s ~/.config/systemd/user/gnome-terminal-server-VIM.service

В этот файл положи

[Unit]
Description=GNOME VIM Terminal Server
[Service]
KillMode=process
Type=dbus
BusName=org.gnome.Terminal-VIM
ExecStart=/usr/libexec/gnome-terminal-server --class=org.gnome.Terminal-VIM --app-id org.gnome.Terminal-VIM

Только замени usr/libexec/gnome-terminal-server на свой, что у тебя там в выхлопе locate, я выше давал команду.

gedit -s ~/.local/share/dbus-1/services/org.gnome.Terminal-VIM.service

Туда положи

[D-BUS Service]
Name=org.gnome.Terminal-VIM
SystemdService=gnome-terminal-server-VIM.service
Exec=/usr/libexec/gnome-terminal-server --class=org.gnome.Terminal-VIM --app-id org.gnome.Terminal-VIM

Опять замени gnome-terminal-server на свой, как в предыдущем.

В десктоп-файле мне хватило так, работает.

[Desktop Entry]
Name=vim
Exec=gnome-terminal --app-id org.gnome.Terminal-VIM --profile=vim
Icon=vim
Type=Application

Сессию надо перезапустить.

Фух, мишн кымплит.

papin-aziat ★★★★★ ()
Последнее исправление: papin-aziat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Не я виноват, а Сранский!

Кароче, у меня рхел, там ESR(78), ясное дело, он хороший, да вот с vaapi умеет только на вяленом, в остальном же на вяленом там довольно неудобно, старый он на рхеле. Ладно, сидел я спокойно на бинарниках с сайта мозиллы пока в 88-ом не сломали что-то опять, в этот раз кажется вебрендер. 88-й стал дергаться, фпс просел, противно. А учитывая, что эти бинари с сайта неидеально работали в принципе (для меня, я придирчивый), то терпеть это только ради vaapi надоело и я перелез на ESR, где всё прекрасно, кроме одно, не умеет гпу-ускорение на иксах, вот я и запилил из 87-ого смотрелку ютуба, жду 89-ого, может починят. Вот такая драма :-)

papin-aziat ★★★★★ ()
Ответ на: комментарий от papin-aziat

Жесть какая.

Хотя да, что-то странное с WebRender творится. Словил зависание рендеринга интерфейса, если так можно выразиться. Ничего не видно, но браузер работает. Можно было ютуб открыть, ткнуть туда, где примерно будет прямоугольник с видео, и оно играть будет. Но только звук.

Раньше, неделями держал WebRender включенным, всё было нормально. А теперь он включился по дефолту сам, и вот такие шальные баги.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

На вэйланде? На нем я проверил на скорую руку, всё было плавно, проблемы только на иксах. Сейчас не помню, я быстро переобулся, но кажется я выключил webrender и полегчало, отчего пришел к такому выводу, но это как-то не вариант — сидеть без вебрендера.

papin-aziat ★★★★★ ()

PS: Neovim и gVim не предлагать.

А мусьё знает толк!

beastie ★★★★★ ()
Ответ на: комментарий от i-rinat

Интересно, ты не заметил разницы в плавности и фпс скроллинга, когда обновился с 87 на 88?

А драйвер интелловский или модесеттинг?

У меня хасвелл, может в этом причина тоже.

papin-aziat ★★★★★ ()
Ответ на: комментарий от papin-aziat

разницы в плавности и фпс скроллинга

Да у меня почти всегда было плавно, и раньше, и сейчас на 88.0.1. Но у меня в иксах всегда какой-нибудь композитор включен. Раньше был compton, а сейчас родной из состава Xfce.

Сейчас ещё попробовал выключить, и в Firefox появился тиринг o_O. По диагонали, из левого верхнего в правый нижний угол. Такого я вообще не ожидал. WebRender через OpenGL работает, и вряд ли там выключили вертикальную синхронизацию.

А драйвер интелловский или модесеттинг?

Сейчас modesetting. Пару месяцев назад был i915. Во всех случаях нормально было и есть, если включен композитор. Когда рендерер был Basic, выключение композитора давало горизонтальный тиринг.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Да у меня почти всегда было плавно

Тут ещё мощный проц может играть роль, тупо быстрее работает в общем.

Сейчас ещё попробовал выключить, и в Firefox появился тиринг o_O.

Это да, будет тиринг полюбому, в кедах тоже жесть, пока не настроишь, гномеры это убрали, молодцы, но я не знаю как это все работает в принципе, просто кручу-верчу пока не заработает как надо :-)

papin-aziat ★★★★★ ()
Ответ на: комментарий от papin-aziat

будет тиринг полюбому

В том-то и дело, что не должно быть. Это же WebRender, он работает через OpenGL. В OpenGL программа сначала рисует кадр в задний буфер, пока на экране показывает передний, потом даёт команду на смену заднего и переднего буферов местами. По умолчанию команда смены буферов ждёт вертикальной синхронизации, и поэтому тиринга быть не должно.

Даже если приложение (Firefox) зачем-то отключает привязку к вертикальной синхронизации и пытается сам подгадывать время, максимально плохое, что может случиться — горизонтальные разрывы. А то, что я вижу, либо кривое рисование в самом Firefox, либо баг драйверов.

В Chrome такого нет. Правда, в Chrome непонятно, что и как происходит, а на странице chrome://gpu он запросто может наврать.

i-rinat ★★★★★ ()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Это же WebRender, он работает через OpenGL. В OpenGL программа сначала рисует кадр в задний буфер, пока на экране показывает передний, потом даёт команду на смену заднего и переднего буферов местами.

Ага, ясно куда девается тиринг. Кстати в mpv и vlc его тоже в гноме нет, а вот в тотеме и sushi есть, если фуллскрин, но это фича для геймеров, чинится расширением. Однако, удалось ловить тиринг в плеерах и браузере, но уже забыл как.

в Chrome непонятно, что и как

Вот интересно, когда с 88-м начались проблемы, я думал из гугл-хрома сделать смотрелку ютуба, но обнаружил, что и он перестал работать с vaapi, а ведь хорошо работал!

papin-aziat ★★★★★ ()
Ответ на: комментарий от papin-aziat

он перестал работать с vaapi

Chrome, Версия 90.0.4430.212 (Официальная сборка), (64 бит). Если включить chrome://flags/#enable-accelerated-video-decode, то начинает использовать видеодекодер. Замерять разницу в энергопотреблении лениво пока что.

i-rinat ★★★★★ ()
Ответ на: комментарий от papin-aziat

он перестал

Хм. В бета-версии (91) действительно настройка не включается больше. Просто пишет, мол, недоступно на вашей платформе.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

У меня с 89 точно не работает, причем все в настройках в порядке.

Просто пишет, мол, недоступно на вашей платформе.

Странно, я тогда подумал, что они переехали на intel-media-driver и забросили libva. Хотя гуглил, там были жалобы, что типа разрабы хрома устали что-то там костылить.

papin-aziat ★★★★★ ()
Ответ на: комментарий от papin-aziat

Стабильный Chrome обновился до версии 91.0.4472.77, и настройка для включения VA-API декодера пропала. И действительно, он больше не использует VA-API для видео.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Ага, обновил https://i.ibb.co/JCWfygn/2021-05-27-22-06.png

Поигрались и хватит :-)

Недолго радовались любители хромого, хотя, судя по лору, здесь как-то особо никто не парится по поводу ускорения видосов и плавности работы, для меня это загадка.

papin-aziat ★★★★★ ()
Ответ на: комментарий от papin-aziat

png

Там вообще-то «encode». Про декодирование вообще упоминания убрали.

ускорения видосов и плавности работы

Тормозящее видео я наблюдал только на Celeron P4500 лет десять назад. А потом с плавностью всё было хорошо. Грелось сильнее, чем хотелось бы, это да. Но не тормозило. От нагрева помогало обкладывание Flash’а костылями. Сейчас обкладывать стало нечего, нужно стало влезать в браузеры, а это организационно сложнее.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

encode

Упс, не заметил.

Тормозящее видео я наблюдал только на Celeron P4500 лет десять назад.

Софтверно да, тормозов нет очень давно, я имею в виду, что когда очередной раз сделают хардверное ускорение, а потом опять сломают, как-то не наблюдается ни радости, ни нытья, просто тихо, а ведь нужное дело, особенно ноутбучникам.

А потом с плавностью всё было хорошо. Грелось сильнее, чем хотелось бы, это да. Но не тормозило.

Я там синтаксис нарушил, сори, я имел в виду плавность прокрутки страниц, тоже с этим то более менее, то опять сломают, и всё тихо…

papin-aziat ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.