mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 04:19:00 +02:00
Merge pull request #231384 from mrcjkb/tuxedo-rs
This commit is contained in:
commit
31c647207a
|
@ -11835,6 +11835,13 @@
|
|||
githubId = 2072185;
|
||||
name = "Marc Scholten";
|
||||
};
|
||||
mrcjkb = {
|
||||
email = "marc@jakobi.dev";
|
||||
matrix = "@mrcjk:matrix.org";
|
||||
name = "Marc Jakobi";
|
||||
github = "mrcjkb";
|
||||
githubId = 12857160;
|
||||
};
|
||||
mredaelli = {
|
||||
email = "massimo@typish.io";
|
||||
github = "mredaelli";
|
||||
|
|
|
@ -80,6 +80,8 @@
|
|||
|
||||
- [NNCP](http://www.nncpgo.org/). Added nncp-daemon and nncp-caller services. Configuration is set with [programs.nncp.settings](#opt-programs.nncp.settings) and the daemons are enabled at [services.nncp](#opt-services.nncp.caller.enable).
|
||||
|
||||
- [tuxedo-rs](https://github.com/AaronErhardt/tuxedo-rs), Rust utilities for interacting with hardware from TUXEDO Computers.
|
||||
|
||||
## Backward Incompatibilities {#sec-release-23.11-incompatibilities}
|
||||
|
||||
- The `boot.loader.raspberryPi` options have been marked deprecated, with intent for removal for NixOS 24.11. They had a limited use-case, and do not work like people expect. They required either very old installs ([before mid-2019](https://github.com/NixOS/nixpkgs/pull/62462)) or customized builds out of scope of the standard and generic AArch64 support. That option set never supported the Raspberry Pi 4 family of devices.
|
||||
|
|
|
@ -541,6 +541,7 @@
|
|||
./services/hardware/tlp.nix
|
||||
./services/hardware/trezord.nix
|
||||
./services/hardware/triggerhappy.nix
|
||||
./services/hardware/tuxedo-rs.nix
|
||||
./services/hardware/udev.nix
|
||||
./services/hardware/udisks2.nix
|
||||
./services/hardware/undervolt.nix
|
||||
|
|
49
nixos/modules/services/hardware/tuxedo-rs.nix
Normal file
49
nixos/modules/services/hardware/tuxedo-rs.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.hardware.tuxedo-rs;
|
||||
|
||||
in
|
||||
{
|
||||
options = {
|
||||
hardware.tuxedo-rs = {
|
||||
enable = mkEnableOption (lib.mdDoc "Rust utilities for interacting with hardware from TUXEDO Computers.");
|
||||
|
||||
tailor-gui.enable = mkEnableOption (lib.mdDoc "Alternative to TUXEDO Control Center, written in Rust.");
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
{
|
||||
hardware.tuxedo-keyboard.enable = true;
|
||||
|
||||
systemd = {
|
||||
services.tailord = {
|
||||
enable = true;
|
||||
description = "Tuxedo Tailor hardware control service";
|
||||
after = [ "systemd-logind.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "dbus";
|
||||
BusName = "com.tux.Tailor";
|
||||
ExecStart = "${pkgs.tuxedo-rs}/bin/tailord";
|
||||
Environment = "RUST_BACKTRACE=1";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.dbus.packages = [ pkgs.tuxedo-rs ];
|
||||
|
||||
environment.systemPackages = [ pkgs.tuxedo-rs ];
|
||||
}
|
||||
(mkIf cfg.tailor-gui.enable {
|
||||
environment.systemPackages = [ pkgs.tailor-gui ];
|
||||
})
|
||||
]);
|
||||
|
||||
meta.maintainers = with maintainers; [ mrcjkb ];
|
||||
}
|
60
pkgs/os-specific/linux/tailor-gui/default.nix
Normal file
60
pkgs/os-specific/linux/tailor-gui/default.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, rustPlatform
|
||||
, cargo
|
||||
, rustc
|
||||
, pkg-config
|
||||
, desktop-file-utils
|
||||
, appstream-glib
|
||||
, wrapGAppsHook4
|
||||
, meson
|
||||
, ninja
|
||||
, libadwaita
|
||||
, gtk4
|
||||
, tuxedo-rs
|
||||
}:
|
||||
let
|
||||
src = tuxedo-rs.src;
|
||||
sourceRoot = "source/tailor_gui";
|
||||
pname = "tailor_gui";
|
||||
version = tuxedo-rs.version;
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
|
||||
inherit src sourceRoot pname version;
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src sourceRoot;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-DUaSLv1V6skWXQ7aqD62uspq+I9KiWmjlwwxykVve5A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.cargoSetupHook
|
||||
pkg-config
|
||||
desktop-file-utils
|
||||
appstream-glib
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cargo
|
||||
rustc
|
||||
meson
|
||||
ninja
|
||||
libadwaita
|
||||
gtk4
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Rust GUI for interacting with hardware from TUXEDO Computers";
|
||||
longDescription = ''
|
||||
An alternative to the TUXEDO Control Center (https://www.tuxedocomputers.com/en/TUXEDO-Control-Center.tuxedo),
|
||||
written in Rust.
|
||||
'';
|
||||
homepage = "https://github.com/AaronErhardt/tuxedo-rs";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ mrcjkb ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
47
pkgs/os-specific/linux/tuxedo-rs/default.nix
Normal file
47
pkgs/os-specific/linux/tuxedo-rs/default.nix
Normal file
|
@ -0,0 +1,47 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
}:
|
||||
let
|
||||
|
||||
# NOTE: This src is shared with tailor-gui.
|
||||
# When updating, the tailor-gui.cargoDeps hash needs to be updated.
|
||||
src = fetchFromGitHub {
|
||||
owner = "AaronErhardt";
|
||||
repo = "tuxedo-rs";
|
||||
rev = "a77a9f6c64e6dd1ede3511934392cbc16271ef6b";
|
||||
hash = "sha256-bk17vI1gLHayvCWfmZdCMqgmbJFOTDaaCaHcj9cLpMY=";
|
||||
};
|
||||
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "tuxedo-rs";
|
||||
version = "0.2.2";
|
||||
|
||||
inherit src;
|
||||
|
||||
# Some of the tests are impure and rely on files in /etc/tailord
|
||||
doCheck = false;
|
||||
|
||||
cargoHash = "sha256-vuXqab9W8NSD5U9dk15xM4fM/vd/fGgGdsvReMncWHg=";
|
||||
|
||||
postInstall = ''
|
||||
install -Dm444 tailord/com.tux.Tailor.conf -t $out/share/dbus-1/system.d
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Rust utilities for interacting with hardware from TUXEDO Computers";
|
||||
longDescription = ''
|
||||
An alternative to the TUXEDO Control Center daemon.
|
||||
|
||||
Contains the following binaries:
|
||||
- tailord: Daemon handling fan, keyboard and general HW support for Tuxedo laptops
|
||||
- tailor: CLI
|
||||
'';
|
||||
homepage = "https://github.com/AaronErhardt/tuxedo-rs";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ mrcjkb ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -35862,6 +35862,8 @@ with pkgs;
|
|||
|
||||
tailor = callPackage ../applications/version-management/tailor { };
|
||||
|
||||
tailor-gui = callPackage ../os-specific/linux/tailor-gui { };
|
||||
|
||||
taizen = callPackage ../applications/misc/taizen { };
|
||||
|
||||
talosctl = callPackage ../applications/networking/cluster/talosctl { };
|
||||
|
@ -36192,6 +36194,8 @@ with pkgs;
|
|||
|
||||
tut = callPackage ../applications/misc/tut { };
|
||||
|
||||
tuxedo-rs = callPackage ../os-specific/linux/tuxedo-rs { };
|
||||
|
||||
tuxguitar = callPackage ../applications/editors/music/tuxguitar {
|
||||
jre = jre8;
|
||||
swt = swt_jdk8;
|
||||
|
|
Loading…
Reference in a new issue