cucumber-sp / yandex-music-linux

Linux client of Yandex Music
Other
235 stars 5 forks source link

Some fixes after shipping to asar package #11

Closed ein-shved closed 5 months ago

ein-shved commented 5 months ago
  1. Use mkdir in scripts to create temporary directories
  2. Use trap to clean temporary files on exit
  3. Fix some shellcheck warnings
  4. Reuse icon from source package for PKBUILD
  5. Switch nix to asar package (#10)
  6. Add do not fix flag (see commit message)

Unfortunately Github review system does not allow to create per-commit review, like gerrit does. Here is 4 pretty atomic commits but they are grouped to the relation chain. Better to see changes in commits.

I did not test the PKBUILD yet. Will come later.

cucumber-sp commented 5 months ago

Все выглядит отлично, только пара вопросов. Первый - для чего есть необходимость убирать закрытие приложения при закрытии окна? И второй - хотел бы чтобы если возможно вы тоже создали темплейты nix файлов которые указывают на exe файлы и дальше чтобы generate_packages копировал их в основную директорию и вставлял нужные ссылки/хеши. Я для этого и сделал его чтобы при выходе новой версии запустить просто раз и обновить сразу все)

ein-shved commented 5 months ago

По поводу флага dontFixQuit описано в commit-message https://github.com/cucumber-sp/yandex-music-linux/pull/11/commits/ce1699556d0497b50e3fea54c302050ace96dd93. Вкратце - чтобы оно играло музыку без открытого окна. С открытым окном електрон много жрет цпу, а сворачивание в трей не завезли.

По поводу generate_packages и nix - сомнительный путь. NIx по факту сам всем этим занимается придумывать ничего не надо. Я просто в URL меняю версию, а nix генерирует lock-файл с нужными хэшами. Да и в принципе подобный Вашему подход я нигде не видел. Можете скинуть примеры подобного? Как люди мэйтейнят проприетаные пакеты под различные дистры?

cucumber-sp commented 5 months ago

Я скорее о том что у вас хард ссылка на exe файл. https://github.com/cucumber-sp/yandex-music-linux/blob/6c245936164306b70b3a573fb4237a5678e942a6/flake.nix#L5 Мне бы просто хотелось чтобы с выходом новой версии музыки я мог запустить скрипт и везде обновить ссылку. Если nix генерирует lock это отлично, я про ваше

в URL меняю версию

и говорю. По хорошему просто менять версию в скрипте и далее вызвать обновление lock файла (если это возможно сделать из скрипта). С nix не особо знаком поэтому и говорю. Из того что я знаю на других проектах люди зачастую просто руками меняют ссылки на файлы.

а сворачивание в трей не завезли.

это на никсе? у меня на арче+gnome вроде все хорошо работало, сейчас правда по работе сижу на windows но через wsl arch использую и тоже вроде работает

ein-shved commented 5 months ago

Хммм так оно генерирует иконку в трее? Возможно чего-то не дотянуто (кажется, я нашел, что https://github.com/NixOS/nixpkgs/pull/91375/files). Тем не менее не закрывать приложение по крестику полностью, а просто убирать главное окно - это на мой взгляд наиболее предпочтительное поведение. Так что, предлагаю оставить эту опцию конфигурируемой.

Да я вот думаю пристегнуть смену url, но скорее sed'ом. Я помню встречал, люди клали скрипты в nixpkgs, которые обновляли версии пакетов и хэши. Но до кучи надо бы будет притянуть заполнение версии и меты в пакете, а так же схлопнуть пакет в один.

cucumber-sp commented 5 months ago

Хммм так оно генерирует иконку в трее?

При закрытии нет, при сворачивании да. При сворачивании уже должен прекращаться рендер. По крайней мере на винде/маке так.

Да я вот думаю пристегнуть смену url, но скорее sed'ом

ну я именно этого и прошу. с PKGBUILD я так и делаю, для удобства только вынес в template а не меняю на месте все это. PR думаю сейчас приму чтобы дальше от него самому тоже работать а остальное тогда уже отдельным pr сделать по типу заполнения

ein-shved commented 5 months ago

При закрытии нет, при сворачивании да. При сворачивании уже должен прекращаться рендер. По крайней мере на винде/маке так.

Мы точно об одном и том же говорим?

Вот пример панели задач: тут открытый хром рядом с Xfce-шной кнопкой меню: image В него YM, конечно сворачивается, но это не то что мне интересно. Мне интересно закрывать главное окно приложения, при рабочей на фоне музыке.

А вот пример трея: image Тут рядом с плагином пейджера и клипмана находится трей, в котором сидят телеграм и blueman.

cucumber-sp commented 5 months ago

Вот пример панели задач: тут открытый хром рядом с Xfce-шной кнопкой меню:

Про это и говорю, при сворачивании окна в такую панель потребление CPU должно уменьшатся почти до 0. Сворачивание в трей разве есть в дефолтном функционале?

ein-shved commented 5 months ago

Сворачивание в трей разве есть в дефолтном функционале Вот я и говорю, что этого нет. А Обычное сворачивание лично для меня не удобно.

cucumber-sp commented 5 months ago

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

ein-shved commented 5 months ago

@cucumber-sp дык оно так и сделано. Флаг -q отключает фикс

cucumber-sp commented 5 months ago

@cucumber-sp дык оно так и сделано. Флаг -q отключает фикс

именно в конфиге приложения, а не при сборке. Плюс генерировать иконку в Trey, у электрона был функционал для этого

ein-shved commented 5 months ago

Для этого нужно править напрямую исходники приложухи.