HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
NixOS
nixos-hardware
Nix2017–2026
NixOS / nixos-hardware

nixos-hardware

A collection of NixOS modules covering hardware quirks.

16Distinct people
18Mentions
1Explicit recommenders
3.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A collection of NixOS modules covering hardware quirks.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

> People who complain about Linux usually either insist on customizing it (as you noted) or run it on hardware that it doesn't work well on. Even as someone who has customized…

tombert used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year18 dated mentions

Observed mentions: 2017-05-23 19:54:37 UTC to 2026-09-15 18:22:16 UTC.

012342017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC404
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC303
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC303

What Hacker News says

18 sources
tombert·Sep 15, 2026Recommendation phrase
> People who complain about Linux usually either insist on customizing it (as you noted) or run it on hardware that it doesn't work well on. Even as someone who has customized the hell out of my desktop, it does kind of annoy me that people act like you "just" need to customize it. "Customizable" is (often) just a synonym for "incomplete". Instead of giving you a full operating system, you have to "customize" it. Or, realistically, finish it. For example, much as I love the Sway desktop, I really don't feel like the stock package is decidedly unfinished and you need to install/make plugins to make it actually usable. > If you are willing to buy special hardware to run macOS, why not the same for Linux? Agreed. I like macOS, but macOS is a very walled-garden, and for the most part you can only run it on very specific, curated Apple hard
Read the rest
ware. Of course it works properly...they have a very finite set of hardware to test, which is untrue with Linux. If, when you buy a computer that you plan to run Linux on, you preemptively make sure that the hardware is compatible [1], then it usually works fine. When I bought my mother-in-law's Thinkbook, I made sure that the main hardware worked fine (e.g. graphics card, wifi, audio, etc.). It did, I installed Mint on there, and she seems to like it. [1] https://github.com/NixOS/nixos-hardware Even if you don't run NixOS, this is useful; if the laptop you're buying has very few or zero hacks required, it will likely work out of the box.
In Leaving Linux
This is one of the things I like with NixOS: it's easy enough to add new packages and patch existing ones that stuff like this can either live in the core nixpkgs repo or be managed through some community-supported overlay. (Great example of this is [nixos-hardware](https://github.com/nixos/nixos-hardware) which shares settings and fixes for specific laptop models and the like, or [emacs-overlay](https://github.com/nix-community/emacs-overlay) which has a bunch of extra Emacs-specific stuff that would not belong in the core repo.)
In Haiku R1/beta6 has been released
Interesting to see someone writing a blog post and explaining issues they've encountered with their laptop, I participate in the official repository of Nix configurations covering these kinds of hardware quirks [1]. I also have a InfinityBook Pro 14 Gen 9 (Intel Version) and began adding support for this laptop in NixOS Hardware in early March of this year, including settings sane defaults, loading drivers, and even refactoring/backporting modules for other InfinityBook versions. [1]: https://github.com/NixOS/nixos-hardware/tree/master/tuxedo/i...
In NixOS on a Tuxedo InfinityBook Pro 14 Gen9 AMD Laptop
> Part of the reason that it’s painful to use is because while it’s marketed as “declarative”, in actuality it’s functional You're correct, with a twist: NixOS is declarative, nix is not - it's indeed functional machinery. This exposes a declarative interface: https://github.com/NixOS/nixpkgs/tree/master/nixos/modules https://github.com/NixOS/nixos-hardware https://github.com/LnL7/nix-darwin/tree/master/modules This does not: https://github.com/NixOS/nixpkgs/tree/master/pkgs but being functional makes it easier for the declarative bits to exist, e.g the next step in this case (PR pending on my side to contribute just that upstream) is: - creating systemd.services."nqptp" with enabled = false as a default - transforming services.shairport-sync to reference systemd.services."nqptp".enabled = true when enableAirpla
Read the rest
y2 = true https://github.com/NixOS/nixpkgs/issues/258643 It also makes pinning/rollback to a specific version without touching the remainder of the system a spectacular non-event: https://github.com/NixOS/nixpkgs/issues/245769 Even when `.package` is not made available it's only slightly harder to use another module with disabledModules + import. > Another evening I sat down to make a minor feature to a Python library and decided to use a nix environment. In theory, this should have been better than a virtualenv. In practice, there’s no in-tree support for specifying specific versions of Python libraries, and mach-nix had trouble with the dependencies Maybe you tried too hard to "nixify" everything, including managing the whole of python stuff. That's what I use: # shell.nix { pkgs ? import <nixpkgs> {}, }: let # get these python packages from nix python_packages = python-packages: [ python-packages.pip ]; # use this pyton version, and include the above packages python = pkgs.python39.withPackages python_packages; in pkgs.mkShell { buildInputs = [ python ]; shellHook = '' # get python version export PYTHON_VERSION="$(python -c 'import platform; import re; print(re.sub(r"\.\d+$", "", platform.python_version()))')" # replicate virtualenv behaviour export PIP_PREFIX="$PWD/vendor/python/$PYTHON_VERSION/packages" export PYTHONPATH="$PIP_PREFIX/lib/python$PYTHON_VERSION/site-packages:$PYTHONPATH" unset SOURCE_DATE_EPOCH export PATH="$PIP_PREFIX/bin:$PATH" ''; } And then just `pip -r requirements` or whatever poetry you fancy. On a specific project I needed a bit more control, and some fix because of a braindead build system. Fix once and be done with it. # shell.nix { pinned ? import(fetchTarball("https://github.com/NixOS/nixpkgs/archive/88f63d51109.tar.gz")) {}, }: let # get these python packages from nix python_packages = python-packages: [ python-packages.pip ]; # use this pyton version, and include the above packages python = pinned.python39.withPackages python_packages; # control llvm/clang version (e.g for packages built from source) llvm = pinned.llvmPackages_12; in llvm.stdenv.mkDerivation { # unique project name for this environment derivation name = "whatevs.shell"; buildInputs = [ # version to use + default packages are declared above python # linters pinned.shellcheck # for scripts pinned.bash pinned.fswatch pinned.rsync # for c++ dependencies such as grpcio-tools llvm.libcxx.dev ]; shellHook = '' # get python version export PYTHON_VERSION="$(python -c 'import platform; import re; print(re.sub(r"\.\d+$", "", platform.python_version()))')" # replicate virtualenv behaviour export PIP_PREFIX="$PWD/vendor/python/$PYTHON_VERSION/packages" export PYTHONPATH="$PIP_PREFIX/lib/python$PYTHON_VERSION/site-packages:$PYTHONPATH" unset SOURCE_DATE_EPOCH export PATH="$PIP_PREFIX/bin:$PATH" # for grpcio-tools, which is building from source but doesn't pick up the proper include export CFLAGS="-I${llvm.libcxx.dev}/include/c++/v1" ''; } Sure that's not pure nix or flakesy or whatever, but simply delegating python things to python-land is a very pragmatic move, idealistic purity and reproducibility of everything be damned, it is instantly better than homebrew or docker because that setup gets you a consistent tooling environment on any Darwin (Intel or ARM, at whatever version) or Linux (whether it's NixOS or just nixpkgs). Also it's super amenable to collaborators who don't know the first thing about nix: they can blindly type `nix-shell` and be all the merrier, handling their python stuff as usual, and completely removing a whole class of "it works/breaks on my machine".
In macOS Sonoma Broke Grep
Not yet. I checked that it exists in nixos-hardware already: https://github.com/NixOS/nixos-hardware/tree/master/lenovo/t... Haven't bought one yet, I'm still quite happy with this X1 from a few years back. You need a quite recent kernel with that laptop, and the wifi is a Qualcomm, not Intel, so check how is the Linux support before buying. But... I am intrigued, just that I don't really need a fast laptop due to using a beefy desktop for development right now.
In Ask HN: How ready for daily driving is Asahi Linux?
You know, not to promote NixOS too much but the reproducibility of it makes this specific OS especially easy to support. There's already a community driven hardware support module to use [1]. If you look at it it doesn't hold a lot of things though, since NixOS is quite bleeding edge (Wi-Fi already supported) and you Framework is otherwise quite Linux friendly (Please make a 1080p-ish display tho, until Wayland is 4 real). LPT: NixOS installs by themselves aren't good for much, use NixOS-hardware and look into power configurations if you have specific requirements. 1: https://github.com/NixOS/nixos-hardware/blob/master/framewor...
In The new and upgraded Framework Laptop
It's not what you're asking but I wonder if NixOS's hardware repo could expand to support Framework with some good defaults That being said, I think there could be a good use case for "meta" NixOS distributions. I'm working on such a thing for a NixOS based RetroArch type thing. But could see a PopOS like configuration, focused on on an “out the box experience” https://github.com/NixOS/nixos-hardware
In NixOS on Framework Laptop

Showing the 15 most recent of 18 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.