I have always been discovering new things about Linux distros while distro hopping. And when I get something I really like, I just copy the package name and make sure I install it in every distro I use in the future.

Let me start:

  1. Clipboard manager (Gpaste)
  2. KDE connect
  • The stable setup on the laptop you can get by using a DE like Gnome that comes with batteries included. If you go for more minimal setups like a window manager it will take quite a bit longer. NixOS as a distribution is pretty easy to get running, if you are familiar with the desktop environment that you install in your system getting it setup is much much simpler than doing so in other distros like Arch, since it usually consists of adding a line like desktopEnvironment.gnome.enable = true to your config and the system takes care of almost everything. I even think that gnome gets installed by default on the first run.

    • Thanks! I ended up messing with Nixos a bunch in the past few weeks. My impression is generally positive, though while many of the things it does are very elegant (like the gnome example you mentioned), a lot of it also seems a bit hacky. Ultimately, figuring out how to declaratively configure specific things seems to take so much more time than my current approach of a written document detailing the steps of setting up my system.

      I’m going to keep tinkering in a VM though, and maybe I’ll have a breakthrough. Keeping configs working across two computers especially is tempting (read: an excuse to get a second computer).

      One last question - one of the things I worked on was Firefox with home manager. How did you get it set up so bookmarks were included in the config?

      • When you set a FF profile there is a key called bookmarks. You can set them there:

        programs.firefox = {
          enable = true;
          extensions = [
            pkgs.nur.repos.rycee.firefox-addons.vimium
            ...
          ];
          profiles = {
            my-profile = {
              name = "yourname";
              settings = {};
              bookmarks = [
                 {
                   name = "This is a folder";
                   toolbar = true;
                   bookmarks = [
                     {
                       name = "You can nest folders";
                       bookmarks = [
                         {
                           name = "This is a lemmy bookmark";
                           keyword = "lemmy";
                           url = "https://lemmy.ml/";
                         }
                    ...
                ];
              ];
            };
          };
        };
        

        You can always look at the home manager reference, I usually look here.