NAME

i3xrocks - A minimalist scheduler for your status line scripts

SYNOPSIS

i3xrocks [OPTION]…​

DESCRIPTION

The i3xrocks(1) command generates a status line for i3bar(1). It schedules command lines described in a simple configuration file at specified time intervals, upon signal reception or on clicks.

OPTIONS

-h

Show the help message and exit.

-c CONFIGFILE

Specifies an alternate configuration file path.

-v

Increase log level. This option is a cumulative. By default only fatal errors are shown in the status bar. Passing this option once will show error messages as well. Using -vv and more will show more debug output on standard error.

CONFIGURATION

i3xrocks must be defined as the status line command of the bar block described in your i3(1) configuration file:

bar {
  status_command i3xrocks
}

By default, i3xrocks looks for a configuration file in the following order (note that /etc may be prefixed with /usr/local depending on the compilation flags):

  1. $XDG_CONFIG_HOME/i3xrocks/config (or ~/.config/i3xrocks/config)

  2. ~/.i3xrocks.conf

  3. $XDG_CONFIG_DIRS/i3xrocks/config (or /etc/xdg/i3xrocks/config)

  4. /etc/i3xrocks.conf

The configuration file uses a simplified INI format. Each section describes a new block to be displayed in the status bar. A line beginning with a # sign is a comment, and empty lines are ignored. A property is one key=value pair per line, without spaces surrounding the equal sign. Properties declared outside a block (i.e. at the beginning of the file) describe global settings and are merged into every block definitions.

You must refer to http://i3wm.org/docs/i3bar-protocol.html to know what properties are understood by i3bar(1).

The following properties are interpreted by i3xrocks to describe how the optional command must be scheduled.

command

The command line to be invoked with sh -c.

It can be relative to the configuration file where it is defined.

Data read from the standard output of the command is used to update the block properties. Data is interpreted depending of the specified format.

interval

If it is a positive integer, then the block is spawned on startup and the value is used as a time interval in seconds to schedule future updates. If undefined or 0, the block won’t be executed on startup (which is useful to simulate buttons).

If once (or -1), the block will be scheduled only on startup (note that a click or signal will still trigger an update).

If repeat (or -2), the block will be scheduled on startup, and as soon as it terminates (useful to repeat blocking commands).

If persist (or -3), the block will be scheduled only on startup, and updated as soon as it outputs a line. Updates are thus limited to single lines.

signal

The signal number used to update the block. All the real-time (think prioritized and queueable) signals are available to the user. The number is valid between 1 and N, where SIGRTMIN+N=SIGRTMAX. (Note that there are 31 real-time signals in Linux.) For instance, signal=10 means that this block will be updated when i3xrocks receives the SIGRTMIN+10 signal.

format

This property specifies the format of the output text.

When undefined, the raw format is assumed. In this format, each non-empty line of the output is used to update an i3bar key, in the order of definition found in the i3bar protocol:

  1. full_text

  2. short_text

  3. color

  4. background

Excess lines are considered an error.

If json (or 1) is used, the block output is read as a JSON object and will be merged into the block properties.

SEE ALSO

i3(1), i3bar(1), i3status(1)

AUTHORS

i3xrocks is written by Vivien Didelot and other contributors.

RESOURCES

Git source repository and issue tracker: https://github.com/vivien/i3xrocks

Official collection of scripts for i3xrocks: https://github.com/vivien/i3xrocks-contrib

COPYING

Copyright © Vivien Didelot. Free use of this software is granted under the terms of the GPLv3+ License.