From 7e5fcb0d2d80ca2c558800d6b88ff0d49366daa1 Mon Sep 17 00:00:00 2001 From: Nikolay Bely Date: Fri, 7 Feb 2025 10:47:54 +0700 Subject: [PATCH 1/4] Refact current patches --- patches/0001-Dev-Tools-from-config.patch | 14 ++++++++++++++ ...pose.patch => 0002-Custom-title-bar.patch} | 19 ++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) rename patches/{0002-Custom-title-bar-and-Dev-Tools-expose.patch => 0002-Custom-title-bar.patch} (72%) diff --git a/patches/0001-Dev-Tools-from-config.patch b/patches/0001-Dev-Tools-from-config.patch index dc1039c..7c996d8 100644 --- a/patches/0001-Dev-Tools-from-config.patch +++ b/patches/0001-Dev-Tools-from-config.patch @@ -13,3 +13,17 @@ diff --git a/main/config.js b/main/config.js enableWebSecurity: true, enableAutoUpdate: true, enableUpdateByProbability: true, + + +diff --git a/main/lib/preload.js b/main/lib/preload.js +--- a/main/lib/preload.js ++++ b/main/lib/preload.js +@@ -9,6 +9,8 @@ const deviceInfo_js_1 = require("./deviceInfo.js"); + const deviceInfo = (0, deviceInfo_js_1.getDeviceInfo)(); ++const devTools = process.env.DEV_TOOLS && process.env.DEV_TOOLS > 0; + electron_1.contextBridge.exposeInMainWorld('VERSION', String(config_js_1.config.buildInfo.VERSION)); + electron_1.contextBridge.exposeInMainWorld('BRANCH', String(config_js_1.config.buildInfo.BRANCH)); + electron_1.contextBridge.exposeInMainWorld('PLATFORM', deviceInfo.os); + electron_1.contextBridge.exposeInMainWorld('DEVICE_INFO', deviceInfo); ++electron_1.contextBridge.exposeInMainWorld('IS_DEVTOOLS_ENABLED', devTools); + electron_1.contextBridge.exposeInMainWorld('desktopEvents', { diff --git a/patches/0002-Custom-title-bar-and-Dev-Tools-expose.patch b/patches/0002-Custom-title-bar.patch similarity index 72% rename from patches/0002-Custom-title-bar-and-Dev-Tools-expose.patch rename to patches/0002-Custom-title-bar.patch index c6e1e07..f11eb48 100644 --- a/patches/0002-Custom-title-bar-and-Dev-Tools-expose.patch +++ b/patches/0002-Custom-title-bar.patch @@ -20,7 +20,7 @@ diff --git a/main/index.js b/main/index.js diff --git a/main/lib/createWindow.js b/main/lib/createWindow.js --- a/main/lib/createWindow.js +++ b/main/lib/createWindow.js -@@ -38,13 +38,13 @@ const toggleWindowState = (window) => { +@@ -38,13 +38,14 @@ const toggleWindowState = (window) => { (0, tray_js_1.updateTrayMenu)(window); }; exports.toggleWindowState = toggleWindowState; @@ -33,27 +33,20 @@ diff --git a/main/lib/createWindow.js b/main/lib/createWindow.js center: true, frame: withFrame, - titleBarStyle: 'hidden', ++ ...(customTitleBar ? { titleBarStyle: 'hidden'} : {}), trafficLightPosition: { x: 16, y: 10 - diff --git a/main/lib/preload.js b/main/lib/preload.js --- a/main/lib/preload.js +++ b/main/lib/preload.js -@@ -7,10 +7,14 @@ const deviceInfo_js_1 = require("./deviceInfo.js"); - const theme_js_1 = require("../types/theme.js"); - const hostnamePatterns_js_1 = require("../constants/hostnamePatterns.js"); - const deviceInfo = (0, deviceInfo_js_1.getDeviceInfo)(); +@@ -10,2 +10,3 @@ + const devTools = process.env.DEV_TOOLS && process.env.DEV_TOOLS > 0; +const customTitleBar = process.env.CUSTOM_TITLE_BAR && process.env.CUSTOM_TITLE_BAR > 0; -+const devTools = process.env.DEV_TOOLS && process.env.DEV_TOOLS > 0; electron_1.contextBridge.exposeInMainWorld('VERSION', String(config_js_1.config.buildInfo.VERSION)); - electron_1.contextBridge.exposeInMainWorld('BRANCH', String(config_js_1.config.buildInfo.BRANCH)); - electron_1.contextBridge.exposeInMainWorld('PLATFORM', deviceInfo.os); - electron_1.contextBridge.exposeInMainWorld('DEVICE_INFO', deviceInfo); +@@ -15,2 +16,3 @@ + electron_1.contextBridge.exposeInMainWorld('IS_DEVTOOLS_ENABLED', devTools); +electron_1.contextBridge.exposeInMainWorld('CUSTOM_TITLE_BAR', customTitleBar); -+electron_1.contextBridge.exposeInMainWorld('IS_DEVTOOLS_ENABLED', devTools); electron_1.contextBridge.exposeInMainWorld('desktopEvents', { - send(name, ...args) { - electron_1.ipcRenderer.send(name, ...args); From 8bb5e79f2a3c51a381d874efcc687b70e1297bea Mon Sep 17 00:00:00 2001 From: Nikolay Bely Date: Fri, 7 Feb 2025 10:53:39 +0700 Subject: [PATCH 2/4] Add icons --- PKGBUILD | 3 +- README.md | 4 +- build_tarball.sh | 3 +- icons/favicon-512x512.png | Bin 0 -> 29931 bytes icons/favicon-dark.png | Bin 0 -> 1179 bytes icons/favicon-light.png | Bin 0 -> 1169 bytes nix/default.nix | 3 +- patches/0003-Create-app-tray-icon.patch | 107 ++++++++++++++++++++++++ repack.sh | 3 + templates/PKGBUILD | 3 +- templates/rpm.spec | 3 +- 11 files changed, 121 insertions(+), 8 deletions(-) create mode 100644 icons/favicon-512x512.png create mode 100644 icons/favicon-dark.png create mode 100644 icons/favicon-light.png create mode 100644 patches/0003-Create-app-tray-icon.patch diff --git a/PKGBUILD b/PKGBUILD index 714f02d..304233a 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -26,9 +26,10 @@ package() { install -Dm644 "$srcdir/app/favicon.png" "$pkgdir/usr/share/pixmaps/yandex-music.png" install -Dm644 "$srcdir/app/favicon.png" "$pkgdir/usr/share/icons/hicolor/48x48/apps/yandex-music.png" + install -Dm644 "$srcdir/app/favicon-512x512.png" "$pkgdir/usr/share/icons/hicolor/512x512/apps/yandex-music.png" install -Dm644 "$srcdir/app/favicon.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/yandex-music.svg" - install -Dm644 "$srcdir/yandex-music-linux/templates/desktop" "$pkgdir/usr/share/applications/yandex-music.desktop" + install -Dm644 "$srcdir/yandex-music-linux/templates/desktop" "$pkgdir/usr/share/applications/YandexMusic.desktop" install -Dm644 "$srcdir/yandex-music-linux/templates/default.conf" "$pkgdir/usr/lib/yandex-music/default.conf" diff --git a/README.md b/README.md index 7f0df2c..ce0e2b6 100644 --- a/README.md +++ b/README.md @@ -143,9 +143,7 @@ ELECTRON_ARGS="--no-sandbox --trace-warnings" ### Tray mode -Tray mode is disabled by default. It allows program to be minimized to tray instead of closing. To enable it set `TRAY_ENABLED` option to `1`. - -Temporary unavailable from v5.30.3 +Tray mode is disabled by default. It allows program to be minimized to tray instead of closing. To enable it set `TRAY_ENABLED` option to `1`, `2` - mono black icon, `3` - mono white. ![image](https://github.com/cucumber-sp/yandex-music-linux/assets/100789522/5998ba7f-9ee7-4725-9d51-fbe5510a799d) diff --git a/build_tarball.sh b/build_tarball.sh index f9be65e..8eb8a3a 100644 --- a/build_tarball.sh +++ b/build_tarball.sh @@ -33,9 +33,10 @@ build_tarball(){ install -Dm644 "${TEMPDIR}/app/favicon.png" "${app_dir}/usr/share/pixmaps/yandex-music.png" install -Dm644 "${TEMPDIR}/app/favicon.png" "${app_dir}/usr/share/icons/hicolor/48x48/apps/yandex-music.png" + install -Dm644 "${TEMPDIR}/app/favicon-512x512.png" "${app_dir}/usr/share/icons/hicolor/512x512/apps/yandex-music.png" install -Dm644 "${TEMPDIR}/app/favicon.svg" "${app_dir}/usr/share/icons/hicolor/scalable/apps/yandex-music.svg" - install -Dm644 "./templates/desktop" "${app_dir}/usr/share/applications/yandex-music.desktop" + install -Dm644 "./templates/desktop" "${app_dir}/usr/share/applications/YandexMusic.desktop" install -Dm644 "./templates/default.conf" "${app_dir}/usr/lib/yandex-music/default.conf" install -Dm644 "./LICENSE.md" "${app_dir}/usr/share/licenses/yandex-music/LICENSE" mv "${TEMPDIR}/electron-${arch}/" "${app_dir}/usr/lib/yandex-music/electron" diff --git a/icons/favicon-512x512.png b/icons/favicon-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..fffd079376dc263bf95e5fa41811d5baf9bc0743 GIT binary patch literal 29931 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 C6Nz>J literal 0 HcmV?d00001 diff --git a/icons/favicon-dark.png b/icons/favicon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6aaf042afd9c54217d0ab8c5d3eede8f65802c0e GIT binary patch literal 1179 zcmV;M1Z4Y(P)?pY(}jADU@wRMh&h)5V!(hts?Je(Za83HE{E%$esu=lTC< z<~(QSeM5}V|JlZjG=ZVosDP2SQ2`J_m>5F1p$_J@5W)lPh?iTtX5eqE3L$I@Axsl4w4O&FKj_oue!Gwj=` zt!p@DU@1OM0S{sWt|^OAB!^v@i1#oJucrGROvlO$Gre*FiChQn!?7&*fi&t}8E#4v z*@ropg!J7%mik4UL`T+lF1F@Nt!)CbAZO#Lw0>h&zQv=Mk45;W3)L~4kWC;x-r)38?Y zEofE1`etIbZ8H}_=)hz}TD%uOxA2&g_#=dHeF$M@Lvho{)glxWnPhUho{Op3{j|(K z73Z`-xSn<6Q$^~&Kh_}IF#!2xcpdHCcr|ZF@D=tZE+@-?nllhW=)@e%zy;|#1GBRF z_=-q>f^~Q&#(20Mc)%r8w_^xr;XK6`b#{&VOvMhh72B*>GCg&X?aV@1HVSye(9-Eg zxOiC8Xd-_mcC<+P5MI{*_3p;X;rtHFz=uN|`DKa&&RzQVPFpddQUSO+jbJTOzw6() z)haz%eXneHi_7phZmLWGZdII%%fyZ=HhfbOvD|k!tAB^5v-?{bj@^cr^+Cn%u}uC= z%uBd&{<|w(j=xgzum9;HRZBy_KenDs31>lNAwlDCpw2a0N(&yO>-;Fa;duR6U ztj_Rr@f#j)s{q9>4u9&;92+pHfqwfl0Z*2EJ5&3*Qu`7d#niS4z(eU}J%txAtBH5z zcp}-0IVJxc$+xXW-&I&XBmpTqY)L`h!h$AeZE-gGyK49+rP=(T+2tH#ti7Es*q9 zb+DTi-KW+5o*3i4ssdCkV4(&^e<;@Sp}wJqhj24? t#zqe3t;VQQz;M{;|HLD0qXI_S{srg}kg2rfo(TW|002ovPDHLkV1hYUCiVaT literal 0 HcmV?d00001 diff --git a/icons/favicon-light.png b/icons/favicon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..1070e9d5ee10cb5002effbd67526af6807851e49 GIT binary patch literal 1169 zcmV;C1aA9@P)f2-D-C2SwNxtVDane-vLW?qDlc2jI!SV4qD7xqPw-9;BcHwH!& zQ6|_$W`PocLA zdH!e4IrBU-9V-84Oc-ki+Qm45vBo%oh$+BLO=Ru>9xln=e<+KUF8UPIW}xk)gL%U0K9t zs|p=CWR^!qhtzvheTNO0pJ=;MJ+AgwO`u=>QGHrn+=R>;>sY6r9@{^UZ7(Nex5u`= zQ}G0rs=K4X{pz#owHah4sM``GK2oQtZ^ru}wO740A=7&*2%t_^sv|&cp0dz;Fx`Fe7p2YpMM1K!( zZUKjzVG#Hd*bO{H2w6_Tqy~!1fVU|*@G5}Az_-9a^yNfapwSbU3d{kf0~f{XbYNzp z-dTyu@CC3M_y9Q6On9^<)C^|>7XZD$?2P&h!bB9odcu+!YARXsDO4*R>f>#kM5>>u zmo&3gh4W{rTM9aTP<`F{+k4OuFP$<1)74K4I$y&wwM)IndhE1OJ)>#@*BE9n3%^?r z+_Er~s1JB@bbE#Rlp)WkjKJ;cu?)xlF$8?w(Xk{BCF*YZk%n)jt-Yq|1@MBCEX)~$Z8{-RE;g1}YL*&2=-mQm*@Ixi;V2h}rU z`&8?DC;3%kuKJt$SlI-YtA9p=Lx!BVD~Db!nOA)#)weaauTHfuQIDuSWf6GPuvv%I zSJas~^(GrmBMr&QoK*i^v2Rm`?h3ux*-~QPhHRgX$+rWYS@<1-(`53AGbIz zYQu0kiN!!4&=0&-ATaAo)L+Qx9|U#)3kr;#dkN+FBG;(A6lZ_0Iww_~GFu4A%IsDLulfha6yP#KT)$xyxg)@bz{RZ^sG7ihLMphKkRFbP z^}xPX4dmIx?O;*7uFWC4xrl+PpFkh53;3ie1631PNWR%GjCPXxJh%neN}lArAgU%% jImZ7Jk2S^#j5YoRXdcA@x9()c00000NkvXXu0mjf4znZ# literal 0 HcmV?d00001 diff --git a/nix/default.nix b/nix/default.nix index 35363f9..9d5c176 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -71,9 +71,10 @@ stdenvNoCC.mkDerivation install -Dm644 "./app/favicon.png" "$out/share/pixmaps/yandex-music.png" install -Dm644 "./app/favicon.png" "$out/share/icons/hicolor/48x48/apps/yandex-music.png" + install -Dm644 "./app/favicon-512x512.png" "$out/usr/share/icons/hicolor/512x512/apps/yandex-music.png" install -Dm644 "./app/favicon.svg" "$out/share/icons/hicolor/scalable/apps/yandex-music.svg" - install -Dm644 "$desktopItem" "$out/share/applications/yandex-music.desktop" + install -Dm644 "$desktopItem" "$out/share/applications/YandexMusic.desktop" ''; meta = { diff --git a/patches/0003-Create-app-tray-icon.patch b/patches/0003-Create-app-tray-icon.patch new file mode 100644 index 0000000..39c8743 --- /dev/null +++ b/patches/0003-Create-app-tray-icon.patch @@ -0,0 +1,107 @@ +diff --git a/main/lib/preload.js b/main/lib/preload.js +--- a/main/lib/preload.js ++++ b/main/lib/preload.js +@@ -11,2 +11,3 @@ const deviceInfo_js_1 = require("./deviceInfo.js"); + const customTitleBar = process.env.CUSTOM_TITLE_BAR && process.env.CUSTOM_TITLE_BAR > 0; ++const trayEnabled = process.env.TRAY_ENABLED && process.env.TRAY_ENABLED > 0; + electron_1.contextBridge.exposeInMainWorld('VERSION', String(config_js_1.config.buildInfo.VERSION)); +@@ -17,2 +17,3 @@ const deviceInfo_js_1 = require("./deviceInfo.js"); + electron_1.contextBridge.exposeInMainWorld('CUSTOM_TITLE_BAR', customTitleBar); ++electron_1.contextBridge.exposeInMainWorld('IS_TRAY_ENABLED', trayEnabled); + electron_1.contextBridge.exposeInMainWorld('desktopEvents', { + + +diff --git a/main/index.js b/main/index.js +--- a/main/index.js ++++ b/main/index.js +@@ -34,4 +34,6 @@ Logger_js_1.Logger.setupLogger(); + const window = await (0, createWindow_js_1.createWindow)(); ++ const isPlatformWindows = deviceInfo_js_1.devicePlatform === platform_js_1.Platform.WINDOWS; ++ const trayEnabled = process.env.TRAY_ENABLED && process.env.TRAY_ENABLED > 0; +- if (deviceInfo_js_1.devicePlatform === platform_js_1.Platform.WINDOWS) { ++ if (trayEnabled || isPlatformWindows) { + (0, tray_js_1.setupTray)(window); + } + + +diff --git a/main/lib/handlers/handleWindowLifecycleEvents.js b/main/lib/handlers/handleWindowLifecycleEvents.js +--- a/main/lib/handlers/handleWindowLifecycleEvents.js ++++ b/main/lib/handlers/handleWindowLifecycleEvents.js +@@ -24,2 +24,4 @@ + const handleWindowLifecycleEvents = (window) => { ++ const isPlatformWindows = deviceInfo_js_1.devicePlatform === platform_js_1.Platform.WINDOWS; ++ const isTrayEnabled = process.env.TRAY_ENABLED && process.env.TRAY_ENABLED > 0; + electron_1.app.on('activate', () => { +@@ -31,5 +33,5 @@ const handleWindowLifecycleEvents = (window) => { + electron_1.app.on('window-all-closed', () => { +- if ([platform_js_1.Platform.WINDOWS, platform_js_1.Platform.LINUX].includes(deviceInfo_js_1.devicePlatform)) { ++ if (!isTrayEnabled || isPlatformWindows) { + electron_1.app.quit(); + } + }); +@@ -54,18 +56,10 @@ const handleWindowLifecycleEvents = (window) => { + window.on('close', (event) => { +- if (deviceInfo_js_1.devicePlatform !== platform_js_1.Platform.MACOS) { +- return; +- } ++ if (!isTrayEnabled) { ++ electron_1.app.quit(); ++ } + if (state_js_1.state.willQuit) { + return; + } + event.preventDefault(); +- if (window.isFullScreen()) { +- window.once('leave-full-screen', () => { +- (0, createWindow_js_1.toggleWindowVisibility)(window, false); +- }); +- window.setFullScreen(false); +- } +- else { +- (0, createWindow_js_1.toggleWindowVisibility)(window, false); +- } ++ (0, createWindow_js_1.toggleWindowVisibility)(window, false); + }); + + +diff --git a/main/lib/tray.js b/main/lib/tray.js +--- a/main/lib/tray.js ++++ b/main/lib/tray.js +@@ -5,3 +5,2 @@ + const node_path_1 = require("node:path"); +-const updater_js_1 = require("./updater.js"); + const i18n_js_1 = require("./i18n.js"); +@@ -14,4 +13,6 @@ + const trayIcon = () => { +- const iconPath = (0, node_path_1.join)(process.resourcesPath, 'assets', 'icon.ico'); ++ const isTrayEnabled = process.env.TRAY_ENABLED; ++ const iconFile = isTrayEnabled == 2 ? 'favicon-dark.png' : (isTrayEnabled == 3 ? `favicon-light.png` : 'favicon.png'); ++ const iconPath = (0, node_path_1.join)(__dirname, '../../app', iconFile); + return electron_1.nativeImage.createFromPath(iconPath); + }; +@@ -18,3 +20,2 @@ + const createContextMenu = (window) => { +- const updater = (0, updater_js_1.getUpdater)(); + const windowStateLabel = state_js_1.state.isWindowHidden || window.isMinimized() +@@ -32,8 +33,2 @@ const createContextMenu = (window) => { + }, +- { +- label: (0, i18n_js_1.formatMessage)({ id: 'desktop.check-for-updates' }), +- click() { +- updater.check(); +- } +- }, + { +@@ -83,8 +79,6 @@ const setupTray = (window) => { + (0, exports.updateTrayMenu)(window); +- tray.on('click', () => { +- (0, createWindow_js_1.toggleWindowState)(window); +- }); +- tray.on('double-click', () => { +- (0, createWindow_js_1.toggleWindowState)(window); +- }); ++ tray.on('click', () => { ++ window.show(); ++ }); ++ tray.setIgnoreDoubleClickEvents(true); + }; diff --git a/repack.sh b/repack.sh index 9064faf..9252acd 100755 --- a/repack.sh +++ b/repack.sh @@ -134,5 +134,8 @@ asar pack "$TEMPDIR/app" "$dst/yandex-music.asar" for ext in png svg; do mv "$TEMPDIR/app/app/favicon.$ext" "$dst" done +mv "$TEMPDIR/app/app/favicon-512x512.png" "$dst" +mv "$TEMPDIR/app/app/favicon-dark.png" "$dst" +mv "$TEMPDIR/app/app/favicon-light.png" "$dst" echo "Done" diff --git a/templates/PKGBUILD b/templates/PKGBUILD index 09a7a11..d93cd5f 100644 --- a/templates/PKGBUILD +++ b/templates/PKGBUILD @@ -26,9 +26,10 @@ package() { install -Dm644 "$srcdir/app/favicon.png" "$pkgdir/usr/share/pixmaps/yandex-music.png" install -Dm644 "$srcdir/app/favicon.png" "$pkgdir/usr/share/icons/hicolor/48x48/apps/yandex-music.png" + install -Dm644 "$srcdir/app/favicon-512x512.png" "$pkgdir/usr/share/icons/hicolor/512x512/apps/yandex-music.png" install -Dm644 "$srcdir/app/favicon.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/yandex-music.svg" - install -Dm644 "$srcdir/yandex-music-linux/templates/desktop" "$pkgdir/usr/share/applications/yandex-music.desktop" + install -Dm644 "$srcdir/yandex-music-linux/templates/desktop" "$pkgdir/usr/share/applications/YandexMusic.desktop" install -Dm644 "$srcdir/yandex-music-linux/templates/default.conf" "$pkgdir/usr/lib/yandex-music/default.conf" diff --git a/templates/rpm.spec b/templates/rpm.spec index d09bb93..9350277 100644 --- a/templates/rpm.spec +++ b/templates/rpm.spec @@ -26,8 +26,9 @@ chmod 755 %{buildroot}/usr/bin/yandex-music %files /usr/bin/yandex-music /usr/lib/yandex-music -/usr/share/applications/yandex-music.desktop +/usr/share/applications/YandexMusic.desktop /usr/share/icons/hicolor/48x48/apps/yandex-music.png +/usr/share/icons/hicolor/512x512/apps/yandex-music.png /usr/share/icons/hicolor/scalable/apps/yandex-music.svg /usr/share/licenses/yandex-music /usr/share/pixmaps/yandex-music.png \ No newline at end of file From 1d88ac55995832bc4044341cbab25fcf49884dd1 Mon Sep 17 00:00:00 2001 From: Nikolay Bely Date: Sat, 8 Feb 2025 23:06:45 +0700 Subject: [PATCH 3/4] Rename YandexMusic to yandex-music --- PKGBUILD | 2 +- build_tarball.sh | 2 +- nix/default.nix | 2 +- templates/PKGBUILD | 2 +- templates/desktop | 4 ++-- templates/rpm.spec | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 304233a..e1ad10d 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -29,7 +29,7 @@ package() { install -Dm644 "$srcdir/app/favicon-512x512.png" "$pkgdir/usr/share/icons/hicolor/512x512/apps/yandex-music.png" install -Dm644 "$srcdir/app/favicon.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/yandex-music.svg" - install -Dm644 "$srcdir/yandex-music-linux/templates/desktop" "$pkgdir/usr/share/applications/YandexMusic.desktop" + install -Dm644 "$srcdir/yandex-music-linux/templates/desktop" "$pkgdir/usr/share/applications/yandex-music.desktop" install -Dm644 "$srcdir/yandex-music-linux/templates/default.conf" "$pkgdir/usr/lib/yandex-music/default.conf" diff --git a/build_tarball.sh b/build_tarball.sh index 8eb8a3a..dc34f80 100644 --- a/build_tarball.sh +++ b/build_tarball.sh @@ -36,7 +36,7 @@ build_tarball(){ install -Dm644 "${TEMPDIR}/app/favicon-512x512.png" "${app_dir}/usr/share/icons/hicolor/512x512/apps/yandex-music.png" install -Dm644 "${TEMPDIR}/app/favicon.svg" "${app_dir}/usr/share/icons/hicolor/scalable/apps/yandex-music.svg" - install -Dm644 "./templates/desktop" "${app_dir}/usr/share/applications/YandexMusic.desktop" + install -Dm644 "./templates/desktop" "${app_dir}/usr/share/applications/yandex-music.desktop" install -Dm644 "./templates/default.conf" "${app_dir}/usr/lib/yandex-music/default.conf" install -Dm644 "./LICENSE.md" "${app_dir}/usr/share/licenses/yandex-music/LICENSE" mv "${TEMPDIR}/electron-${arch}/" "${app_dir}/usr/lib/yandex-music/electron" diff --git a/nix/default.nix b/nix/default.nix index 9d5c176..89b0f91 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -74,7 +74,7 @@ stdenvNoCC.mkDerivation install -Dm644 "./app/favicon-512x512.png" "$out/usr/share/icons/hicolor/512x512/apps/yandex-music.png" install -Dm644 "./app/favicon.svg" "$out/share/icons/hicolor/scalable/apps/yandex-music.svg" - install -Dm644 "$desktopItem" "$out/share/applications/YandexMusic.desktop" + install -Dm644 "$desktopItem" "$out/share/applications/yandex-music.desktop" ''; meta = { diff --git a/templates/PKGBUILD b/templates/PKGBUILD index d93cd5f..efa8ab1 100644 --- a/templates/PKGBUILD +++ b/templates/PKGBUILD @@ -29,7 +29,7 @@ package() { install -Dm644 "$srcdir/app/favicon-512x512.png" "$pkgdir/usr/share/icons/hicolor/512x512/apps/yandex-music.png" install -Dm644 "$srcdir/app/favicon.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/yandex-music.svg" - install -Dm644 "$srcdir/yandex-music-linux/templates/desktop" "$pkgdir/usr/share/applications/YandexMusic.desktop" + install -Dm644 "$srcdir/yandex-music-linux/templates/desktop" "$pkgdir/usr/share/applications/yandex-music.desktop" install -Dm644 "$srcdir/yandex-music-linux/templates/default.conf" "$pkgdir/usr/lib/yandex-music/default.conf" diff --git a/templates/desktop b/templates/desktop index aefda5f..6857881 100644 --- a/templates/desktop +++ b/templates/desktop @@ -3,11 +3,11 @@ Name=Yandex Music Name[ru]=Яндекс Музыка Comment=Yandex Music — we collect music for you Comment[ru]=Яндекс Музыка — собираем музыку для вас -GenericName=YandexMusic +GenericName=yandex-music Exec=yandex-music --no-sandbox %U Icon=yandex-music Type=Application StartupNotify=true -StartupWMClass=YandexMusic +StartupWMClass=yandex-music MimeType=x-scheme-handler/yandexmusic Categories=Audio;Music;Player;AudioVideo diff --git a/templates/rpm.spec b/templates/rpm.spec index 9350277..463772f 100644 --- a/templates/rpm.spec +++ b/templates/rpm.spec @@ -26,7 +26,7 @@ chmod 755 %{buildroot}/usr/bin/yandex-music %files /usr/bin/yandex-music /usr/lib/yandex-music -/usr/share/applications/YandexMusic.desktop +/usr/share/applications/yandex-music.desktop /usr/share/icons/hicolor/48x48/apps/yandex-music.png /usr/share/icons/hicolor/512x512/apps/yandex-music.png /usr/share/icons/hicolor/scalable/apps/yandex-music.svg From cd179cef3c396746ea8a042053aed03d1ac678f9 Mon Sep 17 00:00:00 2001 From: Nikolay Bely Date: Sat, 8 Feb 2025 23:10:26 +0700 Subject: [PATCH 4/4] Fix app_id --- patches/0003-Create-app-tray-icon.patch | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/patches/0003-Create-app-tray-icon.patch b/patches/0003-Create-app-tray-icon.patch index 39c8743..74c7400 100644 --- a/patches/0003-Create-app-tray-icon.patch +++ b/patches/0003-Create-app-tray-icon.patch @@ -105,3 +105,13 @@ diff --git a/main/lib/tray.js b/main/lib/tray.js + }); + tray.setIgnoreDoubleClickEvents(true); }; + + +diff --git a/package.json b/package.json +--- a/package.json ++++ b/package.json +@@ -2,3 +2,3 @@ { + "private": true, +- "name": "YandexMusic", ++ "name": "yandex-music", + "version": "5.37.1",