Papaertimed is a little daemon to controll which wallpaper is shown at what time.
Currently, only installation via a nix flake is supported:
Add this flake input to your flake:
# flake.nix
{
inputs.papertimed.url = "github:jakobhuemer/papertimed";
}Then import the module and enable the service:
{
imports = [
inputs.papertimed.homeModules.default
];
services.papertimed = {
enable = true;
# settings = { };
};
}Use the overlay:
{
inputs.papertimed.url = "github:jakobhuemer/papertimed";
outputs = { self, nixpkgs, papertimed, ... }: {
nixosConfigurations.yourHost = nixpkgs.lib.nixosSystem {
modules = [
{
nixpkgs.overlays = [ papertimed.overlays.default ];
environment.systemPackages = with pkgs; [
papertimed
];
}
];
};
};
}First, make sure that your current background utility does not automatically switch wallpapers itself on a scheduled basis as this conflicts with papertimed.
The configuration file for papertimed is located at
~/.config/papertimed/config.yaml.
Supported file formats are: JSON, TOML, YAML, INI, RON, JSON5, CORN
An example of a valid configuration is in examples/config.yaml.
wpaperd: Overwrites the configuration at~/.config/wpaperd/wallpaper.tomlhyprpaper: Required hyprpaper ipc to be turned on. More info on hyprpapercustom: Define a custom shell command that is executed for every image on every monitor with monitor and image injected using MiniJinja for templating. e.g.:awww -o {{ monitor }} {{ image }}
adapter: The background ulility e.g.wpaperd. see at Supported Adapters
An array of wallpapers where each element has:
filename: The filename of the background imageschedules: An array of scheduleids when the immage should be shown
An array of all schedules that can then be assigned to wallpapers:
id: A string identifying the schedulerules: All rules of must be true for the schedule to take effect. You can define rules for daytime, weekday or day of the year, etc.
day_time: Define when on the day the schedule runs. e.g. 05:00 - 15:00from/to: Daytime e.g.05:23:50.- e.g. from = 05:23:50, to = 14:15:00
week_days: Array of days when to run this schedule. e.g.["monday", "tuesday", "wed"]year_days: Array of days in a year when to run this schedule. e.g.[1, 4, 340]
- Basic daily/weekly/yearly wallpaper schedule for
wpaperdutility - Support for multiple wallpaper utilities
- Preset profiles for different wallpaper utilities like
wpaperd,hyprpaper, - Per monitor schedules/wallpapers etc.
- Wallpaper schedules support custom metadata that can be forwarded to the
wallpaper utility per wallpaper (like meta.fit being
coverfor one andfitfor another image) - [ ] Manual and automatic timezone selection - Custom schedule definition with a shell command
- Scheduled sleep instead of polling
- Restructure config to allow reusing wallpapers and have a binding allowing
- Home Manager Module + overlay config structure
- Add support for schedule types
- cron
- rrules