brand: change tagline to be more layman friendly

This commit is contained in:
atagen 2026-05-24 19:43:51 +10:00
parent 6efd841520
commit 0458ae0818
6 changed files with 48 additions and 26 deletions

View file

@ -14,8 +14,8 @@ version = "0.1.0"
edition = "2021"
rust-version = "1.86"
license = "GPL-3.0-or-later"
homepage = "https://github.com/amaanq/headroom"
repository = "https://github.com/amaanq/headroom"
homepage = "https://github.com/atagen/headroom"
repository = "https://github.com/atagen/headroom"
authors = ["Headroom contributors"]
[workspace.dependencies]

View file

@ -1,6 +1,6 @@
# headroom
AGC + compressor + true-peak limiter daemon for PipeWire, in Rust.
Automatic loudness and per-app volume control for PipeWire, in Rust.
Headroom puts a per-application audio safety net between noisy sources
(browsers, voice chat, random video) and your speakers, while leaving
@ -46,15 +46,15 @@ This repo is a flake; the daemon plus its systemd user unit and the
canonical profiles are exposed as a package.
```sh
nix run github:amaanq/headroom -- daemon # one-shot run
nix profile install github:amaanq/headroom # add to $PATH
nix run github:atagen/headroom -- daemon # one-shot run
nix profile install github:atagen/headroom # add to $PATH
```
For **Home Manager**, add the flake as an input and enable the module:
```nix
{
inputs.headroom.url = "github:amaanq/headroom";
inputs.headroom.url = "github:atagen/headroom";
# In your Home Manager configuration:
imports = [ inputs.headroom.homeModules.default ];
@ -72,7 +72,7 @@ For **NixOS** (system-wide binary install + systemd-user discovery):
```nix
{
inputs.headroom.url = "github:amaanq/headroom";
inputs.headroom.url = "github:atagen/headroom";
# In your NixOS configuration:
imports = [ inputs.headroom.nixosModules.default ];

View file

@ -1,6 +1,6 @@
[Unit]
Description=Headroom audio daemon (PipeWire AGC + compressor + true-peak limiter)
Documentation=https://github.com/amaanq/headroom
Description=Headroom audio daemon (automatic loudness and per-app volume control for PipeWire)
Documentation=https://github.com/atagen/headroom
# PipeWire is a hard dependency: headroom registers a virtual sink and
# wires explicit links via PW's link-factory, so we can't start before
# pw-mainloop is up. ConditionUser ensures this only ever runs as a

View file

@ -1,5 +1,5 @@
{
description = "Headroom AGC + compressor + true-peak limiter daemon for PipeWire";
description = "Headroom automatic loudness and per-app volume control for PipeWire";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

View file

@ -10,10 +10,21 @@
# delegates the heavy lifting to `services.headroom` (this file) when
# Home Manager is in use.
self:
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let
inherit (lib) mkEnableOption mkOption mkIf types literalExpression;
inherit (lib)
mkEnableOption
mkOption
mkIf
types
literalExpression
;
cfg = config.services.headroom;
@ -26,7 +37,7 @@ let
in
{
options.services.headroom = {
enable = mkEnableOption "Headroom PipeWire AGC + compressor + true-peak limiter daemon";
enable = mkEnableOption "Headroom automatic loudness and per-app volume control for PipeWire";
package = mkOption {
type = types.package;
@ -74,17 +85,19 @@ in
# regular files, so this is transparent.
xdg.configFile = lib.mkMerge [
(mkIf cfg.installDefaultProfiles (
lib.mapAttrs'
(name: _: lib.nameValuePair "headroom/profiles/${name}" {
lib.mapAttrs' (
name: _:
lib.nameValuePair "headroom/profiles/${name}" {
source = "${shippedProfilesDir}/${name}";
})
(builtins.readDir shippedProfilesDir)
}
) (builtins.readDir shippedProfilesDir)
))
(lib.mapAttrs'
(name: path: lib.nameValuePair "headroom/profiles/${name}" {
(lib.mapAttrs' (
name: path:
lib.nameValuePair "headroom/profiles/${name}" {
source = path;
})
cfg.extraProfiles)
}
) cfg.extraProfiles)
];
# systemd user unit. The unit shipped by the package already
@ -93,11 +106,20 @@ in
# let Home Manager start it via its systemd-user machinery.
systemd.user.services.headroom = {
Unit = {
Description = "Headroom audio daemon (PipeWire AGC + compressor + true-peak limiter)";
Documentation = "https://github.com/amaanq/headroom";
After = [ "pipewire.service" "pipewire-pulse.service" "wireplumber.service" ];
Description = "Headroom audio daemon (automatic loudness and per-app volume control for PipeWire)";
Documentation = "https://github.com/atagen/headroom";
After = [
"pipewire.service"
"pipewire-pulse.service"
"wireplumber.service"
"graphical-session.target"
];
Requires = [ "pipewire.service" ];
Wants = [ "wireplumber.service" ];
# Tie our lifecycle to the graphical session rather than the
# socket-activated pipewire.service (which has no stable
# "started for the session" lifecycle to WantedBy=).
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "simple";
@ -112,7 +134,7 @@ in
LimitNICE = -11;
};
Install = {
WantedBy = [ "pipewire.service" ];
WantedBy = [ "graphical-session.target" ];
};
};
};

View file

@ -33,7 +33,7 @@ let
in
{
options.programs.headroom = {
enable = mkEnableOption "Headroom PipeWire AGC + compressor + true-peak limiter daemon";
enable = mkEnableOption "Headroom automatic loudness and per-app volume control for PipeWire";
package = mkOption {
type = types.package;