0
0
mirror of https://github.com/cucumber-sp/yandex-music-linux.git synced 2024-12-23 14:12:59 +03:00
Repacked Electron client of Yandex Music for Linux
Go to file
Andrey Onishchenko 8bf13524b5 Better Icons
Nix Fix
2024-03-07 22:16:25 +03:00
.github/workflows Switch from sh to bash 2024-03-02 14:55:37 +03:00
icons Better Icons 2024-03-07 22:16:25 +03:00
nix Better Icons 2024-03-07 22:16:25 +03:00
patches Patches fix 2024-03-07 10:38:27 +03:00
templates Run with no sandbox from desktop file 2024-03-02 19:01:35 +03:00
utility Update packages to Beta 5.0.14 2024-03-07 00:26:18 +00:00
.gitignore Deb packages build script 2024-01-31 16:47:17 +03:00
build_deb.sh Switch from sh to bash 2024-03-02 14:55:37 +03:00
flake.lock Update packages to Beta 5.0.14 2024-03-07 00:26:18 +00:00
flake.nix Update packages to Beta 5.0.14 2024-03-07 00:26:18 +00:00
LICENSE.md Swtiched to .asar + PKGBUILD generation 2024-01-29 21:41:52 +03:00
PKGBUILD Update packages to Beta 5.0.14 2024-03-07 00:26:18 +00:00
README.md Switch from sh to bash 2024-03-02 14:55:37 +03:00
repack.sh Better Icons 2024-03-07 22:16:25 +03:00

yandex-music-linux

About

Native YandexMusic client for Linux. Built using repacking of Windows client (Electron app).

Table of content

Screenshots

image image

Installation

Arch Linux


AUR

You can obtain the latest version of package from AUR using one of the AUR Helpers. Then install it with yandex-music as package name.

For this example I will use yay

yay -S yandex-music

Binary package file

Download prebuilt binary package from Releases section.

Then you can install it with the following command

pacman -U yandex-music-<version>-any.pkg.tar.zst

Debian/Ubuntu


APT

Package is currently unavailable at APT. We're still working on it

Binary package file

Download prebuilt binary package from Releases section.

Then you can install it with the following command

dpkg -i yandex-music_<version>_<arch>.deb

Manual Build

Prerequisites

That's the list of packages you might need to install to be able to manually build the app. However, you should remember that it might be different for your distro/machine.

- nodejs
- npm
- jq
- 7z (p7zip)
- unzip
- python

In addition you will need to install Asar tool with npm. I recommend install it globally with the following command

npm install -g @electron/asar

Last step is to download original client .exe file. You can get it yourself or take link to the latest version from ./utility/version_info.json file.


Extract app only

If you only want to get extracted app project with applied patches, you can use the following command:

bash repack.sh -x [-o OUTPUT_DIR default=./app] <YM.exe>

ASAR archive

.asar is archive file that containes all electron app resources and information, but doesn't hold Electron binaries. If you have .asar file you can launch app using electron <app>.asar. You can build this archive with the following command:

bash repack.sh [-o OUTPUT_DIR default=./app] <YM.exe>

Arch Linux

You can build pacman package file manually using PKGBUILD file from the this repository. Run following commands in folder with PKGBUILD file inside to get .pkg.tar.zst package:

pacman -S electron libpulse
makepkg

Debian/Ubuntu

You can build .deb binary package using the following command:

bash build_deb.sh  [-a <x64|armv7l|arm64|all> default=x64]

Run with nix

The yandex-music package has unlicensed license, so you need to have allowUnfree option enabled.

Run with flakes

Execute next to build and run yandex music directly from github

nix run github:cucumber-sp/yandex-music-linux

Run old style

Execute next in this repository to build yandex-music package without using flakes.

nix-build --expr '(import <nixpkgs> {}).callPackage ./nix {}'

Install to NixOS

  1. Add input in your flake.nix

    inputs = {
      yandex-music.url = "github:cucumber-sp/yandex-music-linux";
    };
    
  2. Import module in your configuration.nix or home-manager.nix

    imports = [
      yandex-music.nixosModule
    ];
    
  3. Add package yandex-music

    For configuration.nix:

    environment.systemPackages = with pkgs; [
      yandex-music
    ];
    

    For Home Manager:

    home.packages = with pkgs; [
      yandex-music
    ];