summaryrefslogtreecommitdiffstats
path: root/scripts/scrolling-title.nix
blob: 0bafa1b51365d24e2ac9049eea7c49fd48d80449 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{ pkgs }:
pkgs.writeShellApplication {
  name = "scrolling-title";
  runtimeInputs = with pkgs; [ mpc coreutils ];
  text = ''
    WIDTH=16
    PADDING="          "
    
    RAW_STR=$(mpc current)
    
    if [ -z "$RAW_STR" ]; then
      echo "Stopped"
      exit 0
    fi

    STR="$RAW_STR$PADDING"
    LEN=''${#STR} 

    T=$(date +%s)
    INDEX=$(( T % LEN ))

    # Output the scrolled window
    echo "$STR$STR" | cut -c "$((INDEX + 1))-$((INDEX + WIDTH))"'';
}