=pod
=for HTML
=for HTML
=head1 NAME
txtnix - Client for twtxt, the minimalist microblogging service for hackers
=head1 SYNOPSIS
$ txtnix --help
Command:
tweet Append a new tweet to your twtxt file.
timeline Retrieve your personal timeline.
view Show feed of given source.
follow Add a new source to your followings.
unfollow Remove an existing source from your followings.
following Return the list of sources you're following.
config Get or set config item.
query Query your registry.
register Register at your registry.
Options:
--help Print a help message and exit.
--config Specify a custom config file location.
$ txtnix follow bob http://example.com/twtxt.txt
$ txtnix tweet 'Hello twtxt world'
$ txtnix timeline
=head1 DESCRIPTION
I is a client for the decentralised, minimalist microblogging service
for hackers L.
Instead of signing up at a closed and/or regulated microblogging platform,
getting your status updates out with twtxt is as easy as putting them in a
publicly accessible text file. The URL pointing to this file is your identity,
your account. twtxt then tracks these text files, like a feedreader, and builds
your unique timeline out of them, depending on which files you track. The
format is simple, human readable, and integrates well with UNIX command line
utilities.
All subcommand of I provides extensive help, so don't hesitate
to call them with the I<--help> option.
=head1 INSTALLATION
You can check L
to see all different ways to install txtnix but if want to use the fast and
easy way, the following commands will install txtnix and all dependencies to
~/perl5 and add lines to your bashrc to adjust some environment variables.
$ curl -L http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
$ eval $(perl -I ~/perl5/lib/perl5 -Mlocal::lib=~/perl5)
$ echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >> ~/.bashrc
$ cpanm https://github.com/mdom/txtnix.git
=head1 CONFIGURATION FILE
twtxt uses a simple INI-like configuration file. It checks
~/.config/twtxt/config for its configuration, but you can overwrite it
with the command line switch I<--config>.
Here's an example conf file, showing every currently supported option:
[twtxt]
nick = bob
twtfile = ~/twtxt.txt
twturl = http://example.org/twtxt.txt
check_following = 0
use_pager = 0
use_cache = 1
disclose_identity = 0
limit_timeline = 20
timeout = 5
sorting = descending
pre_tweet_hook = "scp buckket@example.org:~/public_html/twtxt.txt {twtfile}"
post_tweet_hook = "scp {twtfile} buckket@example.org:~/public_html/twtxt.txt"
[following]
alice = https://example.org/alice.txt
charlie = https://example.org/charlie.txt
=head2 twtxt
=over 4
=item nick
Your nick, will be displayed in your timeline, expanded in your tweets
and send in your user agent string if you set I
to true. Defaults to your local username.
=item twtfile
Path to your local twtxt file. Defaults to I<~/twtxt.txt>.
=item twturl
URL to your public twtxt file. This is only needed in case you decide
to disclose your identity.
=item use_pager
Use a pager (less) to display your timeline. Defaults to false.
=item use_cache
Cache remote twtxt files locally. This defaults to true as their usually is no
reason not to do this. Every URL is checked with a I
header, so you still get always the most up-to-date timeline.
=item ca_file
Path to TLS certificate authority file used to verify the peer
certificate. Also activates hostname verification. Defaults to
I. The file does not have to exist
to activate hostname verification. Setting this to an empty value
disables hostname verification on a global basis which is definitely
not recommended.
=item key_file
Path to TLS key file.
=item cert_file
Path to TLS cert file.
=item disclose_identity
Include nick and twturl in twtxt's user-agent. To respect your privacy this
feature is disabled by default. But you may enable it to let other users
discover that you follow them.
=item limit_timeline
Limit amount of tweets shown in your timeline. Defaults to 20.
=item timeout
Time a http request is allowed to take. Defaults to 5 seconds.
=item rewrite_urls
Rewrite urls you are following depending on their http response
code. Addresses that return 301 (moved permanently) are rewritten
to their new url. Return code 410 (gone) results in unfollowing that
address. Defaults to true. You get a warning if a url is rewritten.
=item embed_names
I expands the local names in your tweets to their urls. So I<@bob>
becomes I<@Ehttp://example.com/twtxt.txtE>. With embed names you can
also share your local nickname with your followers. If this is set to true
mentions will be rewritten to I<@Ebob http://example.com/twtxt.txtE>.
Defaults to true.
=item sorting
Order in which to sort the timeline. Can be either I or
I. Defaults to I, so the newest tweets are on the top of
the timeline.
=item time_format
How to format dates in your timeline. This should be a strftime-like
format string. Defaults to I<%F %H:%M>.
=item pre_tweet_hook
Command to be executed before tweeting.
=item post_tweet_hook
Command to be executed after tweeting.
=item write_metadata
Write metadata about who you followed or unfollowed in your twtfile. The twtxt
file format does not specify any way to add metadata to your feed, so the
current implementation to use a text starting with I/> is a properiaty
extension of txtnix. Use at your own risk. Defaults to false.
=item hide_metadata
Hide txtnix style metadata. Defaults to true.
=item use_colors
Use ANSI-colors for the I layout. Defaults to true.
=item display_layout
In which format to display your timeline. I defines two different
layout: I is a line oriented very basic layout. I looks
less dense and supports ANSI colors and text wrapping. Defaults to simple.
=item wrap_text
If to wrap text in pretty display. Defaults to true.
=back
=head2 followings
This section holds all your followings as nick, URL pairs. You can edit
this section manually or use the follow/unfollow commands of twtxt for
greater comfort.
=head2 colors
In I mentions, hashtags, the nick and timestamp can be colorized
with ANSI colors. You can set either I, I, I