Skip to content

l3afyb0y/changed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

changed

This project is in Pre-Release, and is subject to changes or instability.

changed is a lightweight system tuning changelog for systemd-based Linux systems.

It keeps a readable history of config changes while a dedicated daemon is running, with separate user and system scopes, line-numbered diffs for tracked files, and systemd service integration for long-running use.

It helps to answer:

  • What did I change over time?
  • Which changes mattered for CPU, GPU, boot, services, shell, or build tuning?
  • What do I need to carry forward to a new install or new hardware?

Who it's for:

  • System tuners
  • Desktop tinkerers
  • People who frequently adjust shell, boot, service, CPU, GPU, or build config
  • Anyone who wants a readable changelog of config edits

It is not a backup, rollback, recovery, or snapshot tool.

Diff Example

Current Release

The main feature set is in place today:

  • user and system scoped tracking
  • event-driven changedd daemon
  • readable journal output with line-numbered changed-only diffs
  • changed setup for first-run preset seeding
  • changed status for operational diagnostics
  • changed service for local/dev unit management
  • diff and redaction controls per tracked path

Still planned:

  • package event tracking
  • service-state event tracking
  • CLI config management and setup refinement

Quick Start

Packaged installs already ship both systemd unit files. After installing the package, a normal first run looks like this:

sudo changed setup
systemctl --user enable --now changedd.service
sudo systemctl enable --now changedd.service
changed status -U
sudo changed status -S

If you only want private per-user tracking, start only the user service:

sudo changed setup
systemctl --user enable --now changedd.service
changed status
changed list

The default read behavior is user-scoped:

  • changed list reads current-user history
  • changed status reads current-user diagnostics
  • -SU is the explicit merged read across system plus current-user scope

Common Commands

changed list
changed list -U -a
changed list -P
sudo changed list -S -a
changed status -P
changed track -U ~/.config/fish/config.fish
sudo changed track -S /etc/makepkg.conf
changed diff -U enable ~/.config/fish/config.fish
changed redact -U enable ~/.config/fish/config.fish
changed history clear -U
sudo changed history clear -SU

For packaged installs, enable services with systemctl directly. For local or non-packaged installs, changed service install can generate scoped unit files that point at the current binary location.

Development

With two binaries in the workspace, local cargo runs should be explicit:

cargo build
cargo run --bin changed -- --help
cargo run --bin changedd -- --help

Typical local flow:

cargo run --bin changed -- init -U
cargo run --bin changed -- init -S
sudo cargo run --bin changed -- setup
cargo run --bin changedd -- --user --once
sudo cargo run --bin changedd -- --system --once

Documentation

Packaging

This repo includes a local-source PKGBUILD plus packaged systemd units under:

Packaged upgrades do not restart either scope automatically. Restart the scope you use explicitly after reinstalling or upgrading:

systemctl --user restart changedd.service
sudo systemctl restart changedd.service

About

A lightweight daemon meant to help track system config changes on Systemd-based Linux systems.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors