Commit Briefs

9a6271bd92 Brett Fisher

README.md, bxbar.1: Add user-facing documentation. (main)

- Create README.md detailing build, configuration, and pipeline. - Create bxbar.1 manual page with standard SEE ALSO references.


a06c6f9c6b Brett Fisher

bxinfo.c: Remove unnecessary comments.


c403f22497 Brett Fisher

bxbar.c: Standardize code structure and improve logging safety.

- Apply static qualifiers to run() and draw() for consistency. - Forward-declare text_fit() to match the call hierarchy. - Reorder functions to mirror the execution flow. - Remove redundant initial draw logic.


dd102aa1db Brett Fisher

bxbarrc.lua: Refactor workspace loop and refine battery UX.

- Use table.insert and table.concat for workspace string building. - Update battery icon logic to use math.ceil for more intuitive visual depletion. - Remove dead code remnants and redundant comments.


2dd667eec2 Brett Fisher

config.def.h: Remove comment, adjust spacing.


468b302a00 Brett Fisher

Makefile: Edit heading comment.


fc73d01e9b Brett Fisher

LICENSE.md: Select license and add file.


1157627b86 Brett Fisher

bxnet.c, config.def.h, bxbarrc.lua, Makefile: Implement C helper

for network interface status. - Create bxnet to monitor /sys/class/net/ for active interfaces. - Implement kernel-level detection for WiFi and Ethernet. - Define network state icons in config.def.h. - Update Makefile to build the new helper binary.


0c5cb07119 Brett Fisher

.gitignore: Update with bxnet.


f445665c06 Brett Fisher

bxbar.c, config.def.h: Implement die() and refine logging strategy.

- Introduce die() for fatal error handling and standardized exit codes. - Implement compile-time DEBUG_LOGGING gate in config.def.h. - Remove hardcoded log path; pipe logmsg() output to stderr. - Standardize error reporting using die() in setup and initialization.


Branches

Tags

This repository contains no tags

Tree

.gitignorecommits | blame
LICENSE.mdcommits | blame
Makefilecommits | blame
README.mdcommits | blame
bxbar.1commits | blame
bxbar.ccommits | blame
bxbarrc.luacommits | blame
bxinfo.ccommits | blame
bxnet.ccommits | blame
config.def.hcommits | blame

README.md

# bxbar

A very basic X status bar.

## Just the Right Amount of Info

Similar to my path with bxwm and bxhkd, I wanted a status bar that  
did neither more nor less than what I needed. I wanted a program  
that only renders text, leaving the logic of gathering system data  
to more appropriate tools. bxbar is the result: a minimal, EWMH  
compliant dock that simply renders a string from standard input.

## Dependencies

- Xlib
- Xft
- A C compiler compliant with the C11 standard.

## Build

Compile bxbar from source.

```
make
```

## Install

Install the binary, man page, and run command script. Note that root  
privileges are not required as the default destination is `~/.local/`.

```
make install
```

## Uninstall

Remove the binary, man page, and run command script.

```
make uninstall
```

## Configuration

__bxbar__ is configured at compile-time by editing config.def.h.  
After making changes, the program must be recompiled and  
reinstalled. See bxbar(1) for details.

## Design & Functionality

__bxbar__ is built around a set of opinionated primitives:

  - Renderer, NOT an orchestrator
    - Reads from stdin
    - Splits output into two sections (left and right) using an invisible separator (\x01)
    - Renders to the top of the screen adhering to EWMH docking standards
  - Helper Binaries
    - bxinfo: Queries EWMH atoms directly from the X server for workspace/window state
    - bxnet: Queries /sys/class/net/ to provide network connection status
  - Lua Orchestration
    - bxbarrc.lua: The orchestrator that gathers data from helpers and system files, formats the output, and pipes the string to bxbar

Add the following to your `/.xinitrc` to start __bxbar__.

```
"$HOME"/.local/bin/bxbarrc.lua | "$HOME"/.local/bin/bxbar &
```

When __bxbar__ is used with bxwm(1) and bxhkd(1), add the following  
to your `~/.xinitrc`.

```
# Start bxwm in the background, give it a moment to initialize
"$HOME"/.local/bin/bxwm &
sleep 1
# Now start the rest of the session
"$HOME"/.local/bin/bxbarrc.lua | "$HOME"/.local/bin/bxbar &
"$HOME"/.local/bin/bxhkd &
wait
```