1. 44
  1. 24

    I really disagree with the statement “linux users are expected to figure things out on their own”. Linux users deserve documentation just as much as anyone else.

    1. 15

      I think the author was not deliberately saying that Linux users don’t need manpages. He is a macOS user and it seems that he miss some knowledge on Linux specific config files, keyring configuration, daemon starting, or that those were not part of his tutorial

      By letting the part “o maybe try apt install spotifyd spotify-tui followed by sudo systemctl start spotifyd and see if that works ¯\_(ツ)_/¯ out of your quoting line you are creating a misrepresentation of him/his opinions.

      It’s not that hard to access the spotifyd repository to find Linux specific instructions.

      1. 7

        Not only Linux users deserve documentation, Linux users have way more useful documentation than Windows or MacOS users.

      2. 9

        I’ve noticed the same issue with Electron apps on my low RAM devices. Anything with 4GB or less of RAM doesn’t allow you to run more than 2 instances of the programs, without chugging into swap space or worse, oom-killing.

        Particularly worrying is most of my messaging apps are exactly like that: Riot/Element, FB Messenger, WhatsApp, Telegram (this last one is actually pretty optimized and doesn’t eat too much). Long gone are the days where an XMPP bridge would solve the issue, as most of the content is now images, audio messages, animated GIFs, emojis and other rich content.

        Thanks for the article, at least I know that i can replace one of the culprits with a daemonized, non-Electron app and just use the phone as a remote control.

        1. 9

          As far as I am aware, Telegram is not Electron, it is actually a Qt based app.

          1. 7

            Long gone are the days where an XMPP bridge would solve the issue, as most of the content is now images, audio messages, animated GIFs, emojis and other rich content.

            I’m not sure what you mean. Most XMPP clients today (like Conversations, Dino, etc.) gracefully handle all of the items you mentioned, and with much less resources than a full web browser would require. I definitely recommend XMPP bridges when possible where the only alternative is an “app” that is really a full web browser.

            1. 4

              Of those listed, I think Riot will maybe disappear at some point. Riot has (amazingly) managed to have native desktop clients pop up, Quarternion, gomatrix and nheko are all packaged for my Linux distribution.

              1. 3

                I understand the desire to use something browser-ish and cross-platform. I don’t fully understand why Electron (hundreds of mb footprint) is so popular over Sciter (5mb footprint).

                1. 1

                  Electron is fully free, Sciter is closed-source with a Kickstarter campaign in progress to open-source it.

                  For the large companies, the price of something like Sciter should be a non-issue. If I were reviewing a proposal to use it, though, I’d be asking about security review and liability: HTML/CSS/JS have proven to be hard to get secure, Electron leverages the sugar-daddy of Google maintaining Chrome with security fixes, what is the situation with Sciter like?

                  Ideally, the internal review would go “okay, but if we only connect to our servers, and we make sure we’re not messing up TLS/HTTPS, then the only attack model is around user-data from other users being rendered in these contexts, and we have to have corner-case testing there no matter which engine we use, to make sure there are no leaks, so this is all manageable”. But I can see that “manageable” might not be enough to overcome the initial knee-jerk reactions.

                2. 2

                  Long gone are the days where an XMPP bridge would solve the issue

                  I use Dino on desktop to replace the bloated Discord & WhatsApp clients, and it works fine (with inline images, file sharing, etc working too).

                  Disclaimer: I did, however, write the WhatsApp bridge :p

                  1. 1

                    Isn’t the reason that XMPP isn’t useful more to do with these services wanting to maintain walled gardens? And further, isn’t that a result of the incentives in a world of “free” services?

                  2. 5

                    I just installed the latest versions of spotifyd and spotify-tui using cargo (compiling the Rust code on my machine) and it works! Some tweaks were required for my System76 / Pop OS install:

                    • When configuring spotifyd, I ended up putting my username and password in quotes. That was incorrect, and it wouldn’t log in! When I removed the quotes for all of the values in spotifyd.conf, I was able to log in as expected.
                    • When attempting to compile spotifyd, I got an error complaining “Package alsa was not found in the pkg-config search path”. I had pkg-config installed both through apt and Homebrew for Linux. Uninstalling the Homebrew for Linux copy of pkg-config let it compile.
                    • I want Rust packages to update regularly as if they were in a package manager, so I use https://github.com/nabijaczleweli/cargo-update to check for updates. In this case, I wanted to compile spotifyd with the dbus_mpris feature flag to get multimedia key support on my Gnome desktop, and I wanted future updates to remember that. Cargo-update supports this, so I did cargo install-update-config spotifyd -f dbus_mpris to store that preference.
                    1. 4

                      I haven’t used spotify in years, but isn’t this somthing like the MPD server that was cool to use in 2014?

                      1. 3

                        I really think Electron as a whole is really neat, but it depresses me a lot that even billion-dollar companies like Slack somehow don’t have the resources/willpower/objective of making nice native frontends (at least for Windows and Mac!)

                        I mean…. surely some skunkworks think must have tried it out and seen it be snappier! Just feels like a good win overall if you have the resources to maintain that kind of team, and would make your experience miles better than the competition

                        1. 3

                          Had some bad experience with spotify or more correctly spotify’s api it is using. It was really unstable.

                          1. 3

                            I’m going to have to try this. I’ve been using ncspot, which is also based on the same rust implementation of spotify. The nice thing about ncspot is it doesn’t take up a listening slot, the bad thing is it doesn’t take up a listening slot and can’t be controlled…

                            1. 3

                              I gotta correct something about the article. Spotify doesn’t use Electron itself. It uses a lower level and faster relative to Electron, the “Chromium Embedded Framework”(https://en.wikipedia.org/wiki/Chromium_Embedded_Framework). I think it consumes less memory and power than a standard Electron App.

                              1. 5

                                But it’s still running a chrom(ium|e) instance, which is way to heavy for some older/low end systems.

                              2. 2

                                I believe cmus has an extension that might be able to free you a bit more. Haven’t tried the extension myself, but cmus reminds one of iTunes glory days.

                                1. 2

                                  I tried this on my FreeBSD setup (which isn’t supported by Spotify in any way, unlike Linux) and it works a treat. One less reason to boot into Ubuntu :)

                                  1. 1

                                    Electron apps are a plague.


                                    1. 7

                                      But aren’t they? The article which author had linked there is from 2016, and in 2020 the problem is more relevant than ever before.

                                      Telling a hypertext document viewer to run without any of its own UI elements and then modifying the document on-the fly faster than users’ could notice does not automagically make the HTML document an “application”.

                                      1. 3

                                        I’m getting downvoted for:

                                        • -1 me-too (?)
                                        • -3 spam
                                        • -1 troll

                                        Why “plague” specifically? You can say plenty of things about electron. It’s relatively wasteful of resources. It’s an accessible technology to a broad demographic for building cross platform apps. Subjectively, some electron apps are significantly more responsive than others. Popular opinion here clearly is not pro-electron, and we have plenty reason to critique it. But the level of performative disdain for a technology that doesn’t satisfy the tradeoff aesthetics of the author is cringy at best.

                                        1. 1

                                          I spent a little time investigating what would be involved porting an Electron app to FreeBSD, and I have to agree with that quote, for reasons I list here: https://lobste.rs/s/mk6t29/1password_for_linux_development_preview#c_jspacv

                                        2. 1

                                          I’ve been looking for something like this for my office. If you want to share music with your coworkers but you don’t want to keep switching out the bluetooth. The same thing with a dorm or a party. Everyone is given equal control to the music simultaneously. That’s really handy.

                                          1. 1

                                            Is this all legal? Probably not.

                                            Is it? I wouldn’t think so, unless you’re using it to store unencrypted copies of media.

                                            1. 1

                                              I just tried installing spotifyd but it just errors out with cryptic error messages about /home/myusername/.config/spotifyd not existing (it does) and that I have to set backend to one of alsa, pulseaudio (I set it to pulseaudio). I took the config file straight from the main repo page. I am guessing this pull request may be to blame.

                                              It is my guess that they broke compatibility and the new config format can’t be parsed by the slightly older version of the software which I installed using pacman. Given that assumption I am afraid I am too tired of constantly fighting with my setup and fixing it so a project that does this is a pass for me.

                                              1. 1

                                                I find it funny that the conclusion of this is basically “I run this off my phone through my desktop’s connection.”

                                                But you could just plug your speakers into your phone’s headphone port. Or use bluetooth. Then you eliminate Spotify entirely from your desktop. I guess there’s nothing to write about in that case.

                                                1. 1

                                                  If he’s doing multiple things involving audio at once, that wouldn’t be the best solution. Even though they’re using their phone as a remote control for their computer, the fact that they’re still playing the music from their computer means it’s less insane to try and say, listen to some music while they’re on a conference call, or watching a video, etc.

                                                  1. 1

                                                    You can use the web browser to control it too if you want. You don’t need to download the full app if all you want to do is change your song.

                                                  2. 1

                                                    Presumably they wouldn’t have been using the Spotify Electron App in the first place if that’s all they wanted to do.

                                                  3. 1

                                                    I love spotifyd, but I can’t make it work for my use case because it doesn’t fully support the MPRIS standard. It doesn’t emit the correct signals when changing properties (track changed, position changed, etc).

                                                    1. 2

                                                      Seems like they’re working on it. Hope this gets fixed/implemented soon, though it’s not that big a deal for me as I’m not utilizing this in my specific setup.

                                                      1. 1

                                                        Thanx for pointing me to the ticket. I remember looking at the Rust MPRIS library and giving up to come up with a working solution. :(

                                                        My use case is that I capture the track changed event with a small user daemon which then submits the data to last.fm, libre.fm or audioscrobbler.

                                                        For a while I circumvented this problem by using the SpotPRIS2 project, which creates MPRIS devices for all your Spotify devices, and reads the data using Spotify’s API. It gives better info than the official linux client, but it crashes a lot, so in the long term not worth it, sadly.

                                                    2. 1

                                                      Not only Linux users deserve documentation, Linux users have way more useful documentation than Windows or MacOS users. I say this as a primarily MacOS user. We don’t have documentation, we have bits and pieces of Stackoverflow or Apple support questions that are often unanswered, or answered by “yeah, that cannot be done, sorry”.

                                                      Nobody says “that cannot be done” for things that can be done in Linux world.