$ show CachyOS/ananicy-rules
This repository is a curated collection of rules for the ananicy-cpp daemon, which automatically adjusts process nice/ionice/scheduling priorities on Linux. It is primarily a dataset of process name to type mappings, organized by category (audio-video, browsers, games, desktop environments, services, tools, etc.), with additional cgroup CPU quota definitions. The rules are manually curated by the community and cover thousands of applications, including Linux native and Wine/Proton games, with detailed per-game executable entries. The repository includes JSON schemas for validation, a linting script, a sorting script for game rules, and a Makefile for installation. It is actively maintained and serves as the default ruleset for the CachyOS Linux distribution's ananicy-cpp package. No ETL pipelines or analytical models are present; the primary data product is the ruleset itself.
The LLM identified 4 files worth highlighting for reuse:
A standalone Python script that validates all .rules, .types, and .cgroups files in the repository. Uses fastjsonschema to check conformance against the JSON schemas, ensures no duplicate names within the same type, and verifies that all referenced types exist. This is a reusable validation component for any ananicy rules repository, demonstrating a practical pattern for maintaining large configuration datasets.
A shell script that sorts game rule files alphabetically by game name. Supports --proton, --native, --common, and --all flags to target specific file groups. It preserves comment-to-entry associations and ensures consistent ordering, which is critical for maintainability of a large, manually curated dataset. This pattern can be adapted for any multi-file data collection requiring sorted entries.
A JSON Schema defining the structure of rule files: each line must be a JSON object with a 'name' (string) and 'type' (string), plus optional 'nice' and 'ionice' overrides. This schema enables automated validation and provides a formal contract for contributors. Reusable as a template for any configuration dataset with similar line-oriented JSON format.
Defines all allowed process types and their default scheduling parameters (nice, ionice, sched). This is the core taxonomy of the ruleset, covering categories like Game, Service, BG_CPUIO, LowLatency_RT, etc. It serves as a referenceable classification system that could be reused or extended for other process prioritization tools.