Async xsetroot status bar updater made in Go
  • Go 94.6%
  • Shell 5.4%
Find a file
2026-07-06 21:14:24 +02:00
battery Fixed runtime parsing errors in battery and brightness, 2026-07-03 16:30:14 +02:00
brightness Fixed runtime parsing errors in battery and brightness, 2026-07-03 16:30:14 +02:00
datetime Network: reversed how args work from hide_ to show_, defaulting to false 2026-06-25 17:51:41 +02:00
network Network: refined the check if interface is loopback 2026-07-06 21:14:24 +02:00
username Network: reversed how args work from hide_ to show_, defaulting to false 2026-06-25 17:51:41 +02:00
volume Network: reversed how args work from hide_ to show_, defaulting to false 2026-06-25 17:51:41 +02:00
weather Network: reversed how args work from hide_ to show_, defaulting to false 2026-06-25 17:51:41 +02:00
.gitignore Created a README and a LICENSE 2026-05-28 03:00:05 +02:00
config.json Network: Added options to hide loopback and hide interfaces that are OperState DOWN 2026-07-06 21:08:29 +02:00
go.mod Created a draft for an interactive main.go 2026-05-27 15:43:20 +02:00
go.sum Created a draft for an interactive main.go 2026-05-27 15:43:20 +02:00
LICENSE.md Created a README and a LICENSE 2026-05-28 03:00:05 +02:00
main.go Created Brightness and Battery widgets 2026-07-03 15:56:37 +02:00
PKGBUILD Major refactoring and rewrite 2026-06-25 15:37:35 +02:00
README.md Network: Added options to hide loopback and hide interfaces that are OperState DOWN 2026-07-06 21:08:29 +02:00

gostatbar

Async xsetroot status bar updater made in Go

Installation

Arch Linux

Clone the git repository and run makepkg -si, the pkgbuild will take care of the rest

git clone https://git.fibermouse.xyz/mkowalski/gostatbar.git
cd gostatbar
makepkg -si

gostatbar

Build it yourself

Make sure you have Go installed

go --version

Then, clone the repo, and cd

git clone https://git.fibermouse.xyz/mkowalski/gostatbar.git
cd gostatbar

Compile the application and optionally copy it to /usr/local/bin/

go build -o gostatbar main.go
cp gostatbar /usr/local/bin/

All done (as long as /usr/local/bin/ is in your $PATH that is)

gostatbar

Usage

Gostatbar will attempt to read the following locations for a config file:

  • "$XDG_CONFIG_HOME/gostatbar/config.json"
  • "$HOME/.config/gostatbar/config.json"

If neither is readable, a default config will be used as fallback.
The default config, for convenience installed at "/usr/share/gostatbar/config.json" looks as follows:

{
    "mode": "xsetroot",
    "start": " ",
    "separator": " | ",
    "end": " |",
    "widgets": [
        {
            "type": "username"
        },
        {
            "type": "network",
            "update_sec": 5,
            "args": {
                "hide_addresses": false,
                "hide_down": false,
                "hide_loopback": false,
                "show_nonglobal": false,
                "show_temporary": false
            }
        },
        {
            "type": "volume",
            "update_sig": "SIGUSR1"
        },
        {
            "type": "weather",
            "update_sec": 900,
            "args": {
                "latitude": 50.03,
                "longitude": 19.56,
                "api": "api.open-meteo.com"
            }
        },
        {
            "type": "brightness",
            "update_sig": "SIGUSR2"
        },
        {
            "type": "battery",
            "update_sec": 5
        },
        {
            "type": "datetime",
            "update_sec": 1,
            "args": {
                "format": "RFC1123"
            }
        }
    ]
}