Go to file
Olivier Gayot 4cf8bebf71 Do not return true from slurp() if it failed to read
Failing to read() some data into the destination buffer from the slurp()
function was not considered an error. This means that we were
potentially leaving the caller with an uninitialized destination buffer
without letting him know it's uninitialized.

It is quite unlikely that a single call to read() would ever fail right
after a successful call to open(..., O_RDONLY). However, one practical
example of this happening is when the file being opened is actually a
directory.

Fixed by propagating the error (i.e. returning false from slurp()) if
the call to read() fails.

Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2019-09-19 15:47:14 +02:00
contrib Consolidate measure speed script (#188) 2017-01-02 16:06:06 +01:00
include Added function to print content from file (#331) 2019-02-21 15:34:32 +01:00
m4 Switch to autotools (#316) 2019-01-23 08:56:40 +01:00
man release v2.13 2019-06-30 19:55:28 +02:00
src Do not return true from slurp() if it failed to read 2019-09-19 15:47:14 +02:00
testcases print_file_contents: allocate enough to include \0 2019-06-10 16:36:18 +02:00
travis Switch to autotools (#316) 2019-01-23 08:56:40 +01:00
.clang-format switch to clang 3.8 & ignore sort oder of includes 2018-07-08 13:48:28 +02:00
.gitignore Switch to autotools (#316) 2019-01-23 08:56:40 +01:00
.travis.yml make pulseaudio an optional dependency, follow best practices 2019-07-29 21:07:40 +02:00
CHANGELOG release v2.13 2019-06-30 19:55:28 +02:00
configure.ac Improve NetBSD port. (#361) 2019-07-29 13:46:20 -07:00
CONTRIBUTING.md add CONTRIBUTING file 2015-03-16 10:02:22 +01:00
i3status.c make pulseaudio an optional dependency, follow best practices 2019-07-29 21:07:40 +02:00
i3status.conf default config: move disk info out of network info 2019-02-03 16:38:17 +03:00
I3STATUS_VERSION release v2.13 2019-06-30 19:55:28 +02:00
LICENSE Separate license into file LICENSE 2009-10-15 20:44:24 +02:00
Makefile.am conditionally compile pulse.c only when using pulseaudio 2019-07-11 15:23:08 +02:00
README.md README: update build instructions 2019-02-11 09:52:23 +01:00

i3status

Description

i3status is a small program for generating a status bar for i3bar, dzen2, xmobar or similar programs. It is designed to be very efficient by issuing a very small number of system calls, as one generally wants to update such a status line every second. This ensures that even under high load, your status bar is updated correctly. Also, it saves a bit of energy by not hogging your CPU as much as spawning the corresponding amount of shell commands would.

Development

i3status has the following dependencies:

  • libconfuse-dev
  • libyajl-dev
  • libasound2-dev
  • libnl-genl-3-dev
  • asciidoc (only for the documentation)
  • libpulse-dev (for getting the current volume using PulseAudio)

On debian-based systems, the following line will install all requirements:

apt-get install libconfuse-dev libyajl-dev libasound2-dev libiw-dev asciidoc libpulse-dev libnl-genl-3-dev

Upstream

i3status is developed at https://github.com/i3/i3status

Compilation

Prefer installing i3status via your Linux distributions package manager.

If you absolutely have to build from source, use:

  autoreconf -fi
  mkdir build
  cd build
  ../configure
  make -j8
  sudo make install