Skip to content

About

Omarchy controls for Sennheiser momentum headphones using momentumctl

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

142 Commits

Folders and files

Repository files navigation

Momentum for Omarchy

A CLI and Omarchy control panel for Sennheiser Momentum 4 headphones. The panel shows the headset battery and firmware version, the Bluetooth codec and sample rate PipeWire is using, and controls:

  • Noise control: transparency (off, adaptive or a custom level) and anti-wind
  • Sound: sound mode (graphic EQ or Speech Clarity), bass boost, the equaliser's presets and band sliders, and the Bluetooth codec. Like Smart Control, the panel disables bass boost and the equaliser under Speech Clarity
  • Behaviour: Smart Pause, on-head detection, auto-answer, Comfort Call, touch controls, auto power off, and whether apps that use the headset mic can move it to the mono call profile

The Momentum panel

Requirements

  • Omarchy Quattro, for the panel
  • bluetoothctl, from bluez-utils
  • pactl, from libpulse, to show and switch the codec
  • wpctl, from wireplumber, for the call profile switch
  • A paired and connected Sennheiser Momentum 4

The headset protocol is reverse-engineered and features may vary with firmware. Settings the firmware rejects are hidden in the panel. Neither the CLI nor the panel implements firmware updates, factory resets, or undocumented commands.

The momentum CLI

Install momentum-bin or momentum-git from the AUR, or a package from the releases.

momentum status
momentum set transparency 40
momentum set eq-preset harman
momentum set eq -3.5 -0.5 2.5 -0.5 -0.5
momentum set sound-mode speech
momentum set codec aac
momentum set call-profile-switch off
momentum --help

The CLI finds the first connected Bluetooth device named MOMENTUM. Set MOMENTUM_ADDRESS to pick one by address instead.

Codec and call profile

These are PipeWire settings on the PC, not headset ones. Picking a codec switches the headset to its A2DP profile, which also leaves the call profile. The call profile switch is WirePlumber's bluetooth.autoswitch-to-headset-profile, saved with wpctl, so it applies to every Bluetooth headset. With it off, music stays in high quality but calls use another mic.

Equaliser

The headset has five bands, labelled 63 Hz, 250 Hz, 1 kHz, 4 kHz and 8 kHz in Smart Control. Gains are in dB, in tenths. The presets are Smart Control's eight, plus a Harman preset fitted from AutoEq's Momentum 4 corrections. The curve is stored on the headset, so it carries over to other devices.

Install the panel

Install the momentum CLI first. Review the plugin, then install it:

omarchy plugin add https://github.com/timmo001/omarchy-momentumctl.git

For an unattended install from a repository you already trust:

omarchy plugin add \
  https://github.com/timmo001/omarchy-momentumctl.git \
  --enable --yes

Open the panel through its shell IPC target:

omarchy-shell shell toggle timmo.momentumctl

Bind that command to a desktop hotkey for direct access.

In the panel, Up and Down move between controls, Enter activates the selected one, and Left and Right change the selected choice, level, preset or band. Enter on a band's value resets it to 0 dB. Type to filter the controls, and press Escape to clear the filter or close the panel.

Update

omarchy plugin update timmo.momentumctl

Remove

omarchy plugin remove timmo.momentumctl

Development

mise run build          # compile dist/momentum
mise run check          # CLI tests, lint, types and formatting
mise run check:plugin   # plugin manifest and QML

Credits

The headset protocol is reverse-engineered by the community and is not an official Sennheiser API. This project builds on:

  • omarchy-momentum4 by Daniel Smith (MIT), whose PROTOCOL.md documents the GAIA commands used here, and whose presets.json supplies Smart Control's EQ preset values.
  • momentum4-control by f3Y0 (MIT), the source of the protocol constants and the RFCOMM channel-probing approach.
  • momentumctl by Galen Abell (MIT), which the panel used before the momentum CLI, and the source of the battery, on-head, auto-answer, Smart Pause and Comfort Call command IDs.
  • AutoEq by Jaakko Pasanen, with Momentum 4 measurements from RTINGS and oratory1990, for the Harman preset.

About

Omarchy controls for Sennheiser momentum headphones using momentumctl

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages