jwdj / EasyABC

EasyABC
GNU General Public License v2.0
87 stars 36 forks source link

Linux package #72

Open mausch opened 1 year ago

mausch commented 1 year ago

This isn't an issue, more like an announcement that others might find useful.

Like many others, I wanted to run EasyABC on Linux, and found it difficult to get the right version of each component, config, etc. So I packaged EasyABC with Nix. This package includes abcmidi, ghostscript, python, fluidsynth, soundfont, everything. And they will all be preconfigured when EasyABC starts, no need for the user to set the paths in config.

All a Linux user has to do to run EasyABC from Nix is:

  1. Install Nix
  2. Run nix run github:nixos/nixpkgs/644fed2285c00e2b232f271773b2c1d0d26e7234#easyabc

I've tested this on NixOS and on Ubuntu 22.04.

smithtim commented 1 year ago

Thank you! This is great.

I noticed that when I install the Nix package, it does not add an entry to the desktop menu in MATE. I guess it should appear in the "Sound & Video" section. Any way to make this happen when the package is installed?

mausch commented 1 year ago

Hi, when you run nix run ... nothing is actually installed permanently. There are different Nix commands to actually do that, and Nix does have a way to define desktop menu items/icons. The Nix package would have to be modified to add that (using the makeDesktopItem nix function), but I have no idea if that works outside of NixOS really.

smithtim commented 1 year ago

Yes, I ran nix-env -iA nixos.easyabc to install it to my local profile. For other applications, after installing them and refreshing the MATE panel, they appear in the desktop menu, but for EasyABC, that didn't happen.

I see there is a related issue #58 that EasyABC is missing a shortcut and icon for Debian.

Perhaps a .desktop file should be created here in the EasyABC repo, and then NixOS (and Debian) could make use of that?

mausch commented 1 year ago

You can also just write the .desktop file as part of the nix package. Look for other packages in nixpkgs using the makeDesktopItem nix function