Skip to content

Enhancement: Improve NixOS Integration with Proper Service Module #263

@sacsbrainz

Description

@sacsbrainz

Background

Currently, users installing MControlCenter on NixOS need to add D-Bus configuration to their system configuration manually:

services.dbus.packages = [ pkgs.mcontrolcenter ];

This creates friction for NixOS users, as most packages in the NixOS ecosystem "just work" without requiring additional manual configuration steps.

Problem

The current approach has several issues:

  • Inconsistent with NixOS patterns: Most system/hardware tools provide proper service modules
  • Documentation burden: Users need to discover and understand the D-Bus requirement separately
  • Integration gaps: The package doesn't follow NixOS conventions for system services

Proposed Solution

Add a NixOS service module that handles D-Bus registration and system integration automatically. This would allow users to simply enable the service:

# configuration.nix
services.mcontrolcenter.enable = true;

Examples in NixOS Ecosystem

This pattern is used by many similar tools:

  • services.tlp.enable = true; (power management)
  • services.auto-cpufreq.enable = true; (CPU frequency scaling)
  • services.thermald.enable = true; (thermal management)

Backward Compatibility

This change would be fully backward compatible - existing manual D-Bus configuration would continue to work, but new users could use the cleaner service approach.


This enhancement would significantly improve the NixOS user experience and align MControlCenter with ecosystem best practices. Would you be open to this approach? I'd be happy to contribute a PR implementing this solution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions