]> Git — Sourcephile - julm/julm-nix.git/blob - home-manager/profiles/arbtt.nix
git: ignore formatting with nixfmt-rfc-style
[julm/julm-nix.git] / home-manager / profiles / arbtt.nix
1 {
2 pkgs,
3 lib,
4 config,
5 ...
6 }:
7 {
8 systemd.user = {
9 services.arbtt-capture = {
10 Service = {
11 Environment = [
12 "PATH=${
13 lib.makeBinPath [
14 pkgs.coreutils
15 ]
16 }"
17 ];
18 ExecStart = pkgs.writeShellScript "arbtt-capture-start" ''
19 set -eu
20 LOG=${config.xdg.dataHome}/arbtt/$(date +%Y).capture
21 ln -snf "$LOG" "${config.xdg.dataHome}/arbtt/capture.log"
22 exec ${pkgs.haskellPackages.arbtt}/bin/arbtt-capture --logfile="$LOG"
23 '';
24 Restart = "always";
25 };
26 Unit = {
27 Description = "Arbtt capture service";
28 PartOf = [ "graphical-session.target" ];
29 After = [
30 "graphical-session-pre.target"
31 ];
32 };
33 Install = {
34 WantedBy = [ "graphical-session.target" ];
35 };
36 };
37 };
38
39 home.activation.linkDotfiles = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
40 ln -sfn ${config.xdg.dataHome}/arbtt $HOME/.arbtt
41 '';
42 xdg.dataFile."arbtt/categorize.cfg".text = lib.mkDefault ''
43 -- Simple rule that just tags the current program
44 $idle > 30 ==> tag inactive,
45 tag Program:$current.program,
46 '';
47 home.packages = [
48 pkgs.haskellPackages.arbtt
49 (pkgs.writeShellScriptBin "arbtt-stats-for" ''
50 set -eu
51 period=''${1-}
52 shift
53 case "$period" in
54 today)
55 today=$(date +"%Y-%m-%d")
56 echo "$today"
57 arbtt-stats -m 0.1 --filter='$date>='$today "$@"
58 ;;
59 week)
60 today=$(date +"%Y-%m-%d")
61 today=$(date -dlast-monday +%Y-%m-%d)
62 echo "$today to Now"
63 arbtt-stats -m 0.1 --filter='$date>='$today "$@"
64 ;;
65 month)
66 today=$(date +"%Y-%m-01")
67 echo "$today to Now"
68 arbtt-stats -m 0.01 --filter='$date>='$today "$@"
69 ;;
70 prevmonth)
71 startday=$(date --date="$(date +%Y-%m-15) -1 month" +'%Y-%m-01')
72 endday=$(date --date="$(date +%Y-%m-01) -1 day" +'%Y-%m-%d')
73 echo "$startday to $endday"
74 arbtt-stats -m 0.01 --filter='$date>='$startday' && $date<='$(date +%Y-%m-01) "$@"
75 ;;
76 prevday)
77 startday=$(date --date="$(date +%Y-%m-%d) -1 day" +'%Y-%m-%d')
78 endday=$(date +%Y-%m-%d)
79 echo "$startday"
80 arbtt-stats -m 0.1 --filter='$date>='$startday' && $date<='$endday "$@"
81 ;;
82 -d)
83 startday=$2
84 endday=$(date --date="$2 +1 day" +'%Y-%m-%d')
85 echo "$startday"
86 arbtt-stats -m 0.1 --filter='$date>='$startday' && $date<='$endday "$@"
87 ;;
88 *)
89 echo "Usage: arbtt [OPTIONS...]"
90 echo " today"
91 echo " week"
92 echo " month"
93 echo " prevmonth"
94 echo " prevday"
95 echo " -d [%Y-%m-%d]"
96 esac
97 '')
98 ];
99 }