/tuxedo-nixos

Tuxedo Control Center Derivation and Module for NixOS

Primary LanguageNix

Tuxedo Control Center for NixOS

Build

Overview

This repository provides a Nix derivation for the Tuxedo Control Center until it is packaged in Nixpkgs (see NixOS/nixpkgs#132206).

Tuxedo is a German laptop manufacturer that provides Linux-friendly laptops. Their system control is done via an app called "Tuxedo Control Center" (TCC). This open source app provides fan control settings among other things. Without this app, the Tuxedo laptops default to very noisy fan control settings. It lives on Github.

Usage

To enable Tuxedo Control Center, add the module from this repository to your /etc/nixos/configuration.nix.

Option 1: Stable Nix

{ config, pkgs, ... }:
let
  tuxedo = import (builtins.fetchTarball "https://github.com/blitz/tuxedo-nixos/archive/master.tar.gz");
in {

 # ...

 imports = [
   tuxedo.module
 ];

 hardware.tuxedo-control-center.enable = true;
}

Option 2: Nix Flake

This repository is a Nix Flake. As such, it exports its module in a way that makes it somewhat convenient to use in your Flakes-enabled NixOS configuration.

First enable the module in your flake.nix:

{
  inputs = rec {
	nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.11";

	# ...

	tuxedo-nixos = {
	  url = "github:blitz/tuxedo-nixos";

	  # Avoid pulling in the nixpkgs that we pin in the tuxedo-nixos repo.
	  # This should give the least surprises and saves on disk space.
	  inputs = {
		inherit nixpkgs;
	  };
	};
  };

  outputs = { self, nixpkgs, tuxedo-nixos }: {
	nixosConfigurations = {
	  your-system = nixpkgs.lib.nixosSystem {

	  # ...

	  modules = [
		./configuration.nix
		tuxedo-nixos.nixosModule

		# ...
	  ];

	  # ...

	  };
	};
  };
}

Then enable the module in configuration.nix:

  hardware.tuxedo-control-center.enable = true;

Troubleshooting

The Tuxedo Control Center currently requires an outdated Electron version, which can break your build. There is an upstream issue that tracks this.

Until this is fixed follow the instructions that the failing build gives you to workaround the issue.

Updating

To update to a new version, see the updating instructions.