GithubHelp home page GithubHelp logo

flathub / com.napster.napster-bigscreen-electron Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 0.0 4.31 MB

Home Page: https://flathub.org/apps/details/com.napster.napster-bigscreen-electron

License: GNU General Public License v3.0

JavaScript 100.00%

com.napster.napster-bigscreen-electron's Introduction

About

Official client for Napster streaming service, providing a native Linux desktop experince.

Disclaimer

It is simply an Electron wrapper that loads the official Napster bigscreen application page, just as it would in a regular web browser.

Steamdeck

Find the assets for your library here:

Manual Installation

  • Go to the latest release.
  • Download the specific file that best fits your disto.

Building from source

Pre-requisites

  • A machine running Arch/Ubuntu on a x86_64 achitecture (VMs/docker should work)
  • nmp & node for building only the electron app, see .nvmrc file
  • flatpak installed on your local machine as well as the flatpak-builder package from apt/dnf/pamac
  • org.freedesktop.Platform flatpak
  • org.freedesktop.Sdk flatpak
  • org.electronjs.Electron2.BaseApp flatpak

Cloning the source code

Once you have npm, clone the wrapper to a convenient location:

git clone https://github.com/flathub/com.napster.napster-bigscreen-electron.git

Building Electron Only

npm install
npm run build

The package should be inside the <project-root>/dist; If built on mac, generates a dmg as well as .app files; Linux gets electron zip as well as AppImage

Building Flatpak Only

npm run build:flatpak

Building Flatpak with a specific Electron build

You can point to a different electron build (zip) by changing the following lines inside the yaml file:

From:

sources:
      - type: file
        url: https://github.com/flathub/com.napster.napster-bigscreen-electron/releases/download/v1.0.0/napster-bigscreen-electron_1.0.0_linux.zip
        sha256: 4c7b6f7cfbb7d07303aa4b7bf1dd93f12382dc3a32333497df90361dad2c46da

To:

sources:
      - type: file
        path: path/to/my/build/napster-bigscreen-electron_1.0.0_linux.zip
        sha256: (update the sha265 here; mac use `shasum` command; linux use `sha256sum` command)

Testing

Use a gamepad! It's intended to be used with gamepads, however, up/down/left/right/enter/backspace can be used for navigation as well as touch-screen/mouse. Note that you cannot input text with your keyboard on text fields as you'll need to use the virtual on-screen keyboard (Issue #1); This is so we can have a cross-platform app.

Set your window to 1280x800 to simulate Steamdeck's aspect ratio and resolution.

For testing you have two approaches:

  • using the electron build, described above, which is multi-platform (mac,linux,windows,x64,arm) thanks to electron-builder;
  • using the flatpak build, described above, which internally pulls the latest zip release from github

Publishing

Until we solve the below to-dos:

  1. Generate a new electron build on a linux/x86_64 environment
  2. Upload it to the project's releases here
  3. Update the url and sha on the yaml file under "sources"
  4. Push these changes to the master branch

Pending Tasks

  1. Use flatpak's node package to build the app in-place (and support multi-platform builds)
  2. Automation to update the version on github's releases

Links

com.napster.napster-bigscreen-electron's People

Contributors

mvgiacomello avatar

Stargazers

 avatar Newbyte avatar

Watchers

 avatar Lewis Hunt avatar  avatar

com.napster.napster-bigscreen-electron's Issues

Can't manipulate search field with keyboard

I'm hugely grateful that a Napster client is now available on Flatpak too. Unfortunately I can't manipulate the search field with my USB keyboard at all, instead I'm forced to click on the search page's on-screen keyboard to input or remove any character.

I'd really appreciate it if I could also use the keyboard to do that.
Screenshot from 2022-08-21 23-43-29

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.