LINUX.ORG.RU
ФорумTalks

Фавиконки на панели WM

 applications, ,


0

1

Здравствуйте.

Мне было бы интересней на панельке WM и в заголовке окна вместо дефолтной иконки браузера иметь фавиконку открытой в браузере страницы.

Понятно, что для разовой нужды перебить иконку сойдёт и специально приготовленный .desktop или скриптик, но без синхронизации с контентом оно не очень радует: я в браузере на новый адрес переключаюсь, а иконка приложения старой остаётся. Неаккуратненько как-то.

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

Браузер firefox, на всякмй случай. Спасибо за внимание.

★★★★★

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

Представь себе ситуацию, когда ты в одном приложении, у тебя док, и тебе нужно переключиться в firefox одним нажатием, а у него например иконка libreoffice, потому что ты сидел на этом сайте. Ну ты-то ладно, красноглазик, ты напишешь очередной скрипт который решит созданную проблему. А тысячи других?

Одним из столпов юзабилити, является интуитивная понятность, а цементом этого столпа есть постоянство. Знаю многих людей, которые даже корзину в винде размещают справа снизу, а ты таким предлагаешь раз в минуту иконку менять =)

- - -

Понятно, что для разовой нужды перебить иконку сойдёт и специально приготовленный .desktop

Нэд. Это поменяет только иконку ярлыка запускалки, а WM'у устанавливает иконку само приложение.

или скриптик

Скорее всего тоже нэд. Ну в общем ты конечно можешь выловить XID твоего окна (хотя я хз как ты это сделаешь для конкретно нужного тебе firefox - ведь их может быть запущено несколько), и заставить WM сменить иконку, но это будет до следующего выполнения приложением WM_ чото-там, а это могут быть секунды.

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

Технически это несложно. В код гонофокса мне лезть влом, покажу на примере epiphany.

https://github.com/GNOME/epiphany/blob/master/src/ephy-main.c - строка 436: gtk_window_set_default_icon_name (APPLICATION_ID);

Но здесь есть две проблемы:

1. Сраный гтк4 не позволяет ставить окну произвольную иконку, а только из списка текущей темы иконок, короче что-нибудь из /usr/share/icons/;

2. Менее сраный гтк3 мог в gtk_window_set_default_icon_from_file - и тогда ты бы мог например закомментировать эту строку, а вот там где процессишь favicon - сначала сохранять ее в например /dev/shm/epicon.png, а затем gtk_window_set_default_icon_from_file ("/dev/shm/epicon.png"); и проблема была бы решена. Но светлые времена гтк3 прошли.

Возможно, чисто теоретически, ты можешь накостылить в коде чтобы favicon сохранялся у тебя в каталоге тем под именем «firefox», а потом выполнять этот gtk_window_set_default_icon_name (APPLICATION_ID); - но тогда оригинальной иконки у тебя больше не будет, да и возможно придется постоянно update-icon-cache.

Можешь на досуге глянуть сюды: https://www.leonerd.org.uk/code/xseticon/

Но вообще менять параметры WM вне приложения я бы не рекомендовал.

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

Скриптик уж набросал, я awesomeц, там есть инструменты чтоб не терзать gtk, запускается исправно с любой картинкой какую назначу. А вот с обновлением этой штуки по контенту страницы и правда всё сложно, да.

Но светлые времена гтк3 прошли

Я живу в каменном веке, в моей бубунте четвёркой и не пахнет, есть перспективка)

Спасибо!

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 2)

https://www.reddit.com/r/unixporn/comments/1dao8bo/swabai_controlling_my_brow...

Вон там упоротый челик, под постом ссылки на гитхаб как это всё работает. Думаю и с иконкой можно и нужно через этот же механизм (https://playwright.dev/), но да оно богомерзкую ноду потянет за собой.

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

Видео выглядит завлекательно... Спасибо за наводку!

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

и потом

а ты таким предлагаешь

я ничего никаким предлагать в страшном сне не думал, я хочу сам для себя сделать)))

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

Скриптик уж набросал, я awesomeц, там есть инструменты чтоб не терзать gtk, запускается исправно с любой картинкой какую назначу. А вот с обновлением этой штуки по контенту страницы и правда всё сложно, да.

Ну тогда могу посоветовать вот что:

1. В твоем скрипте сделать циклическое чтение какого-нибудь файла, например как я указал выше, /dev/shm/favicon.png. Либо по триггеру изменения этого файла. Как только файл поменялся - обновляешь свою иконку;

2. В коде браузера который отвечает за формирование favicon - добавить полторы строчки, которые запишут png-файл в /dev/shm/favicon.png.

я awesomeц

Та я уже понял что красивое изменение кода браузера не твой стиль, тебе нужно обмазаться костылями в виде скриптов =)

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

Да, вот с этим действительно может помочь такое. Именно потому что берётся контент со страницы, а не производятся действия с UI браузера :)

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

не то, что не мой стиль - просто я этого никогда не делал ещё)

Ну да, породить ужасного недопередемона по таймеру, который раз в секунду будет перебирать все экземпляры броузера, опрашивать фавиконки загруженных страниц, и актуализировать иконки этих экземпляров. То есть мне уже не одну /dev/shm/favicon.png придётся пилить, а аж целый массив фавиконок. Это, блин, задача для профи, а я так, энтузиаст. Но спасибо, я стал понимать в этом всём немножечко больше, чем раньше!

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

красивое изменение кода браузера

Которое придётся производить при каждом обновлении. И пересобирать ещё эту дуру, которая час компиляется.

Если бы это была какая-нибудь тулза, которая не обновлялась уже 5 лет, это было бы хорошее решение. Но это браузер. Он постоянно обновляется, и каждый раз не только менять код, но и пересобирать жирнющую дуру — так себе развлечение.

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

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

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

какой же это упоротый.

Упоротый - это вот, монтирует вкладки браузера как файловую систему с помощью fuse.

Lrrr ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)