UP / HOME

Pyxis

Table of Contents

Pyxis is a simple twtxt client.

twtxt is a decentralised, minimalist microblogging service for hackers.

Demo

Screenshots

  • timeline [2020-08-30 Sun]

Screenshot of pyxis showing my twtxt timeline

Documentation

The feeds are saved in $XDG_DATA_HOME/pyxis, if it's not defined then $HOME/.local/share/pyxis is used. Feeds are configured in $XDG_CONFIG_HOME/pyxis.pl or $HOME/.config/pyxis.pl.

Commands

fetch

fetch will fetch all the latest feeds from config file. You can use Pyxis without this feature by fetching the files yourself manually to data directory.

timeline

timeline will print your timeline from all the feeds. You can also pass an optional argument to load custom feeds.

For example, you can pass multiple feeds like pyxis timeline f1 f2, it'll load both f1 & f2. If you pass an invalid feed then it prints a warning & goes to the next one.

Examples

pyxis fetch # fetch all feeds

# dispay emacs & perl feeds (if available)
pyxis timeline emacs perl

pyxis timeline # display all feeds

Configuration

There is an example config file under share/config.pl, move it to config directory & rename to pyxis.pl.

cp share/config.pl $HOME/.config/pyxis.pl

Warning: Pyxis will evaluate the configuration file, which means an attacker can use it to run malicious code.

Note: They could always add malicious code to .profile & do harm. Just thought I should put the warning.

#!/usr/bin/perl

use strict;
use warnings;

my %feeds = (
    andinus => "https://andinus.nand.sh/static/twtxt",
);

sub get_feeds { return %feeds; }

1;

Add your feeds to %feeds hash like shown above. You can remove those 2 use lines but it's good if you keep them.

Installation

Install these dependencies from CPAN. Then just clone the repository, copy the config & run pyxis!

Dependencies

  • Getopt::Long is required only for options.
  • :Tiny is only required if you use fetch.
  • Path::Tiny can be replaced with perl core.
  • Term::ANSIColor is just for good looks.
  • Time::Moment can be replaced with DateTime or you can just sort it directly. Sorting directly will mess up the order a bit but should be okay for most cases.

Andinus / / Modified: 2020-09-27 Sun 14:29 Emacs 27.1 (Org mode 9.4)