@hallettj@beehaw.org avatar

hallettj

@hallettj@beehaw.org

Programmer in California

I’m also on leminal.space/u/hallettj

This profile is from a federated server and may be incomplete. Browse more on the original instance.

Is Ubuntu deserving the hate? (lemmy.ml)

Long story short, I have a desktop with Fedora, lovely, fast, sleek and surprisingly reliable for a near rolling distro (it failed me only once back around Fedora 34 or something where it nuked Grub). Tried to install on a 2012 i7 MacBook Air… what a slog!!! Surprisingly Ubuntu runs very smooth on it. I have been bothering all...

hallettj,
@hallettj@beehaw.org avatar

Debian unstable is not really unstable, but it’s also not as stable as Ubuntu. I’m told that when bugs appear they are fixed fast.

I ran Debian testing for years. That is a rolling release where package updates are a few weeks behind unstable. The delay gives unstable users time to hit bugs before they get into testing.

When I wanted certain packages to be really up-to-date I would pin those select packages to unstable or to experimental. But I never tried running full unstable myself so I didn’t get the experience to know whether that would be less trouble overall.

hallettj, (edited )
@hallettj@beehaw.org avatar

I want to make a small correction - this is not true:

iirc I had to reboot every time for it to be applied while with Arch you can just install something and run it immediately.

nixos-rebuild behaves like most package managers: it makes new packages available immediately, and restarts relevant systemd services. Like other distros you have to reboot to run a new kernel.

And cleaning up Steam games is as issue with most distros too. But I kinda see your point.

Btw Nix (both NixOS and the Nix package manager running in other distros) has this feature where you can run packages without “installing” them if you just want to run them once:


<span style="color:#323232;">$ nix shell nixpkgs#package-name
</span>

That puts you in a shell with one or more packages temporarily installed. The packages are downloaded to /nix/store/ as usual, but will get garbage-collected sometime after you close the shell.

hallettj,
@hallettj@beehaw.org avatar

I think NixOS is awesome, but it certainly doesn’t offer “access to (basically) all Linux-capable software, no matter from what repo.” - at least not natively.

I don’t quite agree with this. In NixOS you can write custom expressions that fetch software from any source, and stitch them into your configuration as first-class packages. So you do get access to all Linux-capable software natively, but not necessarily easily. (There is a learning curve to packaging stuff yourself.)

I use this process to bring nightly releases of neovim and nushell into my reproducible config. Ok, I do use flakes that other people published for building those projects, which is a bit like installing from a community PPA. But when I wanted to install Niri, a very new window manager I wrote the package and NixOS module expressions all by myself!

hallettj,
@hallettj@beehaw.org avatar

It’s Mao Zedong. He said, “Political power grows out of the barrel of a gun.” He also led China to mass starvation and terrible poverty, so not someone Picard would subscribe to.

hallettj,
@hallettj@beehaw.org avatar

Sharing the link because it took me a minute to find it: codeberg.org/dnkl/fuzzel

hallettj,
@hallettj@beehaw.org avatar

I sometimes write a flake with those 4 lines of Nix code, and it comes out just messy enough that tbh I’m happier adding an input to handle that. But I recently learned that the nixpkgs flake exports the lib.* helpers through nixpkgs.lib (as opposed to nixpkgs.legacyPackages.${system}.lib) so you can call helpers before specifying a system. And nixpkgs.lib.genAttrs is kinda close enough to flake-utils.lib.eachSystem that it might make a better solution.

Like where with flake-utils you would write,


<span style="color:#323232;">flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-darwin" ] (system:
</span><span style="color:#323232;">let
</span><span style="color:#323232;">  pkgs = nixpkgs.legacyPackages.${system};
</span><span style="color:#323232;">in
</span><span style="color:#323232;">{
</span><span style="color:#323232;">  devShells.default = pkgs.mkShell {
</span><span style="color:#323232;">    nativeBuildInputs = with pkgs; [
</span><span style="color:#323232;">      hello
</span><span style="color:#323232;">    ];
</span><span style="color:#323232;">  };
</span><span style="color:#323232;">})
</span>

Instead you can use genAttrs,


<span style="color:#323232;">let
</span><span style="color:#323232;">  forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-darwin" ];
</span><span style="color:#323232;">  pkgs = forAllSystems (system:
</span><span style="color:#323232;">    nixpkgs.legacyPackages.${system}
</span><span style="color:#323232;">  );
</span><span style="color:#323232;">in
</span><span style="color:#323232;">{
</span><span style="color:#323232;">  devShells = forAllSystems (system: {
</span><span style="color:#323232;">    default = pkgs.${system}.mkShell {
</span><span style="color:#323232;">      nativeBuildInputs = with pkgs.${system}; [
</span><span style="color:#323232;">        hello
</span><span style="color:#323232;">      ];
</span><span style="color:#323232;">    };
</span><span style="color:#323232;">  });
</span><span style="color:#323232;">}
</span>

It’s more verbose, but it makes the structure of outputs more transparent.

hallettj,
@hallettj@beehaw.org avatar

If you put an FHS on the actual system you wouldn’t be able to install multiple versions of the same package, updates wouldn’t be atomic - you wouldn’t get the big selling points of Nix.

hallettj,
@hallettj@beehaw.org avatar

I use that r function regularly to go to the git project root. But I call it gtop. I mostly use that and zoxide to get around.

hallettj,
@hallettj@beehaw.org avatar

As a Nix fanboy I would write a Nix expression that downloads the AppImage, and also writes the desktop file with the appropriate path written into it via string interpolation. That can be done either through a NixOS configuration, or in any Linux distro using Home Manager.

hallettj,
@hallettj@beehaw.org avatar

I thought the changeling that shared Odo’s look chose it to make Odo feel like he belonged. And her disdain for solids might have made her not want to look too much like them.

The only other changelings I remember from DS9 were,

other changelingsThe other changeling sent into the galaxy alone like Odo who had more detailed hair and features, and the espionage agent Sisko talked to in Paradise Lost who did a convincing imitation of O’Brien.

hallettj,
@hallettj@beehaw.org avatar

Wayland replaces the older X protocol. It doesn’t have to operate with older protocols. You might be thinking of XWayland which is a proxy that receives X API calls from apps written for X, and translates those to the Wayland API so that those apps can run under Wayland implementations. Window managers can optionally run XWayland, and many do. But as more apps are updated to work natively with Wayland, XWayland becomes less important, and might fade away someday.

PipeWire replaces PulseAudio (the most popular sound server before PipeWire). Systems running PipeWire often run pipewire-pulse which does basically the same thing that XWayland does - it translates from the PulseAudio API to the PipeWire API. It’s a technically optional, but realistically necessary compatibility layer that may become less relevant over time if apps tend to update to work with PipeWire natively.

So no, both Wayland and PipeWire are capable of operating independently of other protocols.

hallettj,
@hallettj@beehaw.org avatar

Try sudo apt update before running the install command. The ISO might not be preloaded with a full package index, or it might be out of date.

If that doesn’t work take a look at /etc/apt/sources.list to see if maybe the ISO uses some minimal repo that doesn’t have the full set of packages.

hallettj,
@hallettj@beehaw.org avatar

Although they’re not in the search, they are in the manual so you can find them searching that page. This one is listed as,


<span style="color:#323232;">security.pam.services..fprintAuth
</span>

But it does take some inferences to find this, and to realize that you can put doas in place of ``

hallettj, (edited )
@hallettj@beehaw.org avatar

I did some digging around in the manual, and I tested this option which seems to work:


<span style="color:#323232;">security.pam.services.doas.fprintAuth = true;
</span>

On my machine that adds this line to /etc/pam.d/doas:


<span style="color:#323232;">auth sufficient /nix/store/fq4vbhdk8dqywxirg3wb99zidfss7sbi-fprintd-1.94.2/lib/security/pam_fprintd.so # fprintd (order 11400)
</span>

Edit: Note that the NixOS option puts in the full path to pam_fprintd.so. That’s necessary because NixOS doesn’t put so files in search paths.

Without doing more research I don’t know how to add arbitrary options to pam files in case you run into something that isn’t mapped to a NixOS option yet. The implementation for the pam options is here; there might be something in there that would work.

hallettj,
@hallettj@beehaw.org avatar

Well now the tense standoffs in TNG will forever be undercut by giggling

hallettj,
@hallettj@beehaw.org avatar

Hmm, good point. But it was Ursula Le Guin who coined the word. Maybe there’s a workable reference in Left Hand of Darkness, or The Dispossessed.

hallettj,
@hallettj@beehaw.org avatar

Somehow I’m very familiar with the first line, but none of the other lyrics. TIL!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #