Crates.io | caydence |
lib.rs | caydence |
version | 0.2.1 |
source | src |
created_at | 2024-03-02 08:05:42.910565 |
updated_at | 2024-05-04 06:06:12.790157 |
description | a wallpaper switching utility with pomodoro capabilities |
homepage | |
repository | https://github.com/joshcbrown/caydence |
max_upload_size | |
id | 1159570 |
size | 41,542 |
caydence is a small utility built on top of swww. the main goal is to switch wallpapers at specific intervals. it switches the wallpapers in two manners:
the tool is best used when you have your wallpaper in sight as you work. for those that don't use gaps/blur, i suggest looking elsewhere for a dedicated timer app (might i suggest pogodoro? :P)
https://github.com/joshcbrown/caydence/assets/80245312/3a3f5774-7e48-468b-9ed8-a43b927ca84f
to get started, run caydence daemon <wallpaper directory>
. this will prompt the daemon to switch wallpapers every 20 minutes.
you may want to pipe stdout to a log file, e.g. caydence daemon &> /tmp/caydence.log
.
run one of the query commands via caydence client
, e.g.,
caydence client toggle
to switch to pomodoro mode. caydence
will respond to client commands via libnotify.
there are a number of customisation options available; run caydence help <command> to see more
.
the idea is that the daemon is started in a launch script on your wm/dm, and the client commands are given keybinds. in my sway config, i have:
exec swww init
exec ~/.cargo/bin/caydence daemon ~/.config/sway/wallpapers/
bindsym $mod+p exec ~/.cargo/bin/caydence client toggle
bindsym $mod+x exec ~/.cargo/bin/caydence client skip
bindsym $mod+t exec ~/.cargo/bin/caydence client time
caydence requires swww to run (and hence, can only be run on wayland). an error message will be printed if it isn't found on the path when running the daemon.
to install, run cargo install caydence
.
caydence
is a nix flake, so if you're running flakes on nixOS you can install it via
adding it to your inputs:
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
#...
caydence.url = "github:joshcbrown/caydence";
};
and then adding it to a list of packages via caydence.packages.${pkgs.system}.default
.
i'm pretty sure this is total overkill, but i'm having fun so