Apps for doing Research in Linux

On the topic of research and apps that help document research and write research papers in Linux (Fedora Workstation 31) this is my experience and opinion:

LibreOffice is most compatible with the all formats for research conferences and journal paper publication, it even supports LaTex format. https://www.libreoffice.org/download/download/

Gnome Latex works great and is one of the best apps for Latex format. https://github.com/GNOME/gnome-latex

Zotero is a great application for research for references and bibliographies organization, supports Open ID login by OpenID Foundation https://www.zotero.org

Atom is one of the best text editors for code writing, you can “hack it” (legally and supported by FOSS licence) and make it your own to best suite you + post it on github https://atom.io

(I hope Microsoft will not change that and give priority to their VSCode text editor)

DataHub (Guthub for datasets) CLI tool works in Linux, website works fine, they should have a graphical tool soon (not sure if CLI works in other Operating Systems) https://datahub.io

(Get Archive https://github.com/datopian/data-cli/releases/download/v0.9.5/data-linux.gz

unzip archive, make file executable “chmod +rwx data-linux” or “chmod 777 data linux” and start from terminal.)

Joplin is great note taking to do list app, supporting markdown format https://joplinapp.org
syncing with NextCloud https://nextcloud.com (other sync options supported).

Firefox one of the best browsers that respect privacy and is not chromium based. https://www.mozilla.org/en-US/firefox/new/

My Recommended Linux Operating system is Fedora Workstation with software from https://labs.fedoraproject.org or just use Fedora Labs from start.
My Recommendation based on experience for doing research in Linux (Fedora Workstation) is:
LibreOffice + Gnome Latex + Zotero + Atom (and github) + datahub CLI + Joplin + Firefox

Any comments or advice are welcome here, I am always happy to learn about new FOSS (free and open source software) applications that are used in research today.

My Current Goal is to try install and test out all of this apps in current NixOS any advice is welcome

Regards, Alex

Hi Alex,

To install most of the applications you mention in NixOS, you can just look for them at NixOS packages, and there if you look for Zotero for example, you have the installation command, in this case:

> nix-env -iA nixos.zotero

For Mendely it would be:

> nix-env -iA nixos.mendeley

Note that some packages like Mendeley are not open-source. So you will need to set in your configuration.nix that non-free programs can be installed. In general with this method you can explore all the packages available. Ideally you might want to add them to your configuration.nix once you learn more of NixOS.

In my experience, you have other options regarding the package selection you did:

JabRef is very nice. In NixOS it is working well, some distributions have problems with fonts visualizations/fonts rendering but in NixOS it is smooth. However, this package has not been updated from a while because since JabRef version 4 it is needed Java-OpenFX which is not in the default version of Java in NixOS (but you can configure with overlays, I guess). Anyway you can directly install JabRef v3.8.1. JabRef is the most complete solution for those interested in manage bibtex references and their associated pdf. Also, it is able to update entries based on DOI, look for references on the web etc…, you can integrate with web-browsers and with LibreOffice. Other option that has been updated recently is KBibTex.

However, recently I decided to move to CLI apps. After check initially papis, now I am using pubs. So I don’t have to open any application to get info about my database of papers, just few commands on the terminal are enough. Both pubs and papis are in NixOS. If you are able to read in spanish, here is explained a workflow with pubs in CLI apps. In general, I was looking for is a scheme with bibtex plus pdfs that I can use directly with the terminal.

To write in LaTeX, I mainly use neo-vim with vim-latex and zathura to visualize pdfs. But all the editors you mention are in NixOS.

Cheers!

1 Like

Thank you for the time and input

I am familiar with JabRef, but Zotero works much better when I tried it on Fedora.
I have to be honest JabRer feels like it is build for MacOS as a primary OS not Linux.
And I personally prefer JS over Java. Zotero is based on JS and JabRef on Java.
Zotero has same feature like firefox integration as JabRef.

Joplin Notes has great CLI app and we use it a work a lot lately even for Project Tracking.

as far as I remember I did not mention or have ever used mendeley, cause its not FOSS.

Regards, Alex

I did not know about JS vs Java. In MacOS there is BibDesk which is FOSS, and which I would choose over JabRef. I had good feeling with JabRef but no idea about last versions and how the project is evolving.

Totally agree, I don’t like Mendeley as well, because it is not FOSS, because the app itself, and because it was created by the controversial Elsevier Editorial, see The Cost of Knowledge. But in this HowTo section I tried to explain potential problems on the method I gave you to install packages. It would fail for non-FOSS applications as the default configuration of NixOS does not allow non-free applications, see unfree on NixOS.

Good luck with NixOS, and I will take a look to Joplin!

1 Like

Thanks for your time and input, don’t care about Mendeley it is not FOSS, so never tried it never will.
not sure I will need unfree on NixOS, since I don’t use non FOSS but its good to have the info.

Joplin is quite powerful, just you need to setup sync, I use netxcloud (other options are supported)
the mobile app works great also even on the non android Linux based mobile OS.

Regards, Alex

1 Like

nix-env still suffers in that it essentially mutates global state. The true power of nix is being able to define your system/home in a declarative fashion. I would check out home-manager if you’re using nix from another distribution. https://github.com/rycee/home-manager

1 Like

thank you for the input but I use the NixOS not from other distro, I only said I use Fedora as core OS,
and I test out other distributions as separate Operating system on a real hardware no VM like NixOS.
its good to have about configuring the home manager in case I need it in the future.

Regards, Alex

Would there be a day when wine programs could be single “click” installable?

Say: pkgs.wine .... WithPrograms AgeOfEmpiresHD, MicrosoftOneNote

it actually exits Lutris, PlayOnLinux, Steam Play Proton, Lutris, you select a game, select steam or origin or battle net and lutris installs it all with one click, it was even present when PlayOnLinux started many years ago for Warcraft 3. I left windows around before windows 7 not sure I know what onenote is, and I play a lot of games but don’t know of AgeOfEmpiresHD, do you mean Age Of Empires 2 HD? or Age of Empires 2 HD Definitive edition from 2019? I run Age Of Empires 2 HD on steam on Linux, using steam play proton, it installs with one click (proton is around since 2018 sooner in beta it supports about 10,000 games). more then 100 people reported the game to work perfectly on steam play, https://www.protondb.com/app/813780 even if you don’t have the game from steam, you can install the game your cd usb, etc and then add it to the steam library and still play it via steam play proton.

Regards, Alex

1 Like

I think @SRGOM meant that it would be cool if these Windows programs were directly available as Nix derivations, wrapped with WINE. I guess the closest thing so far is a project that wraps WINE + applications in Flatpaks (seems unmaintained):

http://www.winepak.org/

1 Like

I am not exactly sure since I never cared to remember the info, but I believe that PlayOnLinux had a one click install for MS Office 2010 or 2007,
I quit windows before windows 7, so last one I used was office 2003 and WinXP, I never bothered to look for Windows Software how to work in Linux cause I always find good alternatives for the same app in Linux.
danieldk thank you for the info about winepak, info is not useful to me but could be very useful to someone else.

Regards, Alex

@AstraAdria4Ari

Gnome Latex works great and is one of the best apps for Latex format.

Offtopic, I’ve had pleasant typesetting experience with Lyx. You may try that.

My Current Goal is to try install and test out all of this apps

No problem! Here’s recommended way to setup these apps using Nix. Make a file, say, research.nix

with import <nixpkgs> {
  config.allowUnfree = true; # firefox-bin is unfree
};
let

  datahub = runCommand "datahub" {
    src = fetchurl {
      url = "https://github.com/datopian/data-cli/releases/download/v0.9.5/data-linux.gz";
      #sha256 = lib.fakeSha256;  # use this if you don't know hash
      sha256 = "11bdml1nkd9pgm688xmiw0j80xmyk7j2rb57qn5lckim6w7c75n8";
    };
  } ''
    ${gzip}/bin/gunzip -c $src > data-linux
    mkdir -p $out/bin
    cp data-linux $out/bin/
    chmod +x $out/bin/data-linux
  '';

in buildEnv rec {
  name = "my-research-tools";
  paths = [
    libreoffice
    gnome-latex
    lyx         # alternative to gnome-latex
    zotero
    atom
    datahub     #
    joplin
    joplin-desktop
    firefox-bin
  ];
  buildInputs = paths;
}

All your apps are described here. Now build it:

$ nix build -f research.nix -I nixpkgs=channel:nixpkgs-unstable -o research-tools

It took 800Mb download and 4Gb space used after installation.

Then use it:

nix-shell research.nix -I nixpkgs=channel:nixpkgs-unstable

It will drop you into new bash shell with all the tools installed.

Alternatively, you can install it into current profile:

$ nix-env -i ./research-tools  # this was specified by -o switch during nix build

then it will be available in graphical environment as well.

To uninstall it:

$ nix-env -e my-research-tools    # this was specified as buildEnv name
$ rm ./research-tools
$ nix-collect-garbage

EDIT: rewrote script using buildEnv

1 Like

thank you for your time, the input and for the use they may come handing when I need them.

Regards, Alex

There is of course another option, that can cover most of them in one place - emacs with org-mode:

  • LibreOffice. You write in org-mode and export to whatever format you desire.
  • Gnome Latex. One of the outputs supported is latex and org allows you to embed latex directly as well.
  • Atom.
  • Joplin. org-mode is a “note taking to do list app” x 100000

Regarding zotero, org-mode does support references/bibliographies but I don’t know to what extent.

That just leaves datahub as the only non-emacs thing.

I cannot recommend the emacs/org-mode strongly enough, just in case that wasn’t clear… :wink:

And I would of course run all of this on nixos.

1 Like

org-mode is also really handy for lab notebooks, since you can execute code in-place. The results of executing code can be used as is, or you could generate tables, plots through gnuplot, etc.

you don’t need NixOS to try this. This is pure Nix, so should run on Fedora too. Actually, I’ve tested that script on Ubuntu, not on NixOS.

If you try it on your Fedora you risk nothing (given extra time and disk space). Nix tries hard to be as hermetic as Docker is. And in my experience, Nix is more space-efficient than docker.

PS: we (Nix) should have such marketing site like Fedora Labs. It should be very easy to implement in Nix

thank you everyone for the input I will consider them,
peterhoeg I am aware of emacs with org-mode but prefer stand alone.
danieldk I work in a R&D Lab and we have our own web services combo like emacs with org specialized for our work and we do 100% of our work via web services including code execution testing etc.
danbst well I wanna try out NixOS, my main OS Is Fedora, but I always distro hop around other distro’s so I know it can all work under fedora but I wanna use NixOS.

Rrgards, Alex

Have you tested whether any of the programs has latex as a dependency? Otherwise one would need to either add a latex installation to this environment, or globally.

https://nixos.org/nixpkgs/manual/#sec-language-texlive lists different ways to compose your environment, https://nixos.wiki/wiki/TexLive has a shirt description of what is included uneach collection

ysndr thank you for your input will try it out this week sounds like a good suggestion (latex dependency). probably not today, too many meetings as it is the start of the week work day.

Regards, Alex