All Projects → pltanton → yags

pltanton / yags

Licence: MIT License
Go powered statusline generator

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to yags

xmonad-log
DBus monitor for xmonad log events.
Stars: ✭ 31 (+72.22%)
Mutual labels:  statusbar, dbus
Awesome Pulseaudio widget
PulseAudio widgtet for the Awesome Window Manager that uses DBus
Stars: ✭ 29 (+61.11%)
Mutual labels:  dbus, pulseaudio
qtstatusbar
StatusBar for Qt allows setting the status bar color and theme on Android and iOS.
Stars: ✭ 89 (+394.44%)
Mutual labels:  statusbar
OnlySwitch
⚙️ All-in-One menu bar app, hide 💻MacBook Pro's notch, dark mode, AirPods, Shortcuts
Stars: ✭ 1,288 (+7055.56%)
Mutual labels:  statusbar
music visualizer
Shader viewer / music visualizer for Windows and Linux
Stars: ✭ 137 (+661.11%)
Mutual labels:  pulseaudio
reco
A simple audio recording app for modern Linux desktop environment like Pantheon
Stars: ✭ 47 (+161.11%)
Mutual labels:  pulseaudio
gonetworkmanager
Go D-Bus bindings for NetworkManager
Stars: ✭ 54 (+200%)
Mutual labels:  dbus
AndroidToRN
原生android中嵌入React Native
Stars: ✭ 95 (+427.78%)
Mutual labels:  statusbar
menuffy
menuffy is a status menu application that allows you to open the menu of the current application at hand.
Stars: ✭ 76 (+322.22%)
Mutual labels:  statusbar
mijia-homie
A Homie MQTT bridge for the Xiaomi Mijia 2 hygrometer-thermometer. This repo also serves as the monorepo for a handful of helper crates related to Homie and Bluetooth.
Stars: ✭ 40 (+122.22%)
Mutual labels:  dbus
pulsertp-multiroom
Synchronized multiroom audio with PulseAudio RTP
Stars: ✭ 25 (+38.89%)
Mutual labels:  pulseaudio
rn statusbar
React Native 项目中处理 StatusBar
Stars: ✭ 21 (+16.67%)
Mutual labels:  statusbar
java-systemd
Java access to systemd via D-Bus
Stars: ✭ 32 (+77.78%)
Mutual labels:  dbus
pulseaudio-module-xrdp
xrdp sink / source pulseaudio modules
Stars: ✭ 105 (+483.33%)
Mutual labels:  pulseaudio
MenubarCountdown
Menubar countdown timer for macOS
Stars: ✭ 91 (+405.56%)
Mutual labels:  statusbar
StatusBarFits
适配4.4以上版本的状态栏(颜色,内容布局延伸到状态栏)
Stars: ✭ 15 (-16.67%)
Mutual labels:  statusbar
oxbar
configurable X11 status bar for OpenBSD (and xstatbar successor)
Stars: ✭ 36 (+100%)
Mutual labels:  statusbar
osx-statusbar-countdown
⏳📅 A utility to count down to a date from your macOS menubar, written in Swift
Stars: ✭ 40 (+122.22%)
Mutual labels:  statusbar
bitw
Minimalist BitWarden client
Stars: ✭ 110 (+511.11%)
Mutual labels:  dbus
easyeffects
Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
Stars: ✭ 3,408 (+18833.33%)
Mutual labels:  pulseaudio

YetAnotherGoStatus

This program provides a simple configurable satatusline generator. It passes the formatted status line each time when callbacks from plugging is received.

Unlike conky, yags prints satatusline only when status really changed and not overloads disk with useless executions. By the way it is possible to configure plugins to implement the conky behavior of execution any command with constant pause.

Now it uses brand new golang's plugin system powered by plugin package. That mean, that this program would only work with go version newer or equal 1.8.

Installation

go get github.com/pltanton/yags

Usage

If you use conky or dzen you could pass yags output to them through pipe, for example:

yags /path/to/config.yml | dzen2 -x '866' -w '496' -ta 'r'

Plugins

Plugins is a go modules which provides callbacks when related to them action is appears and provides formatted result of that action to yags output. There are several implemented plugins:

  • battery -- uses upower dbus messages to monitor battery device
  • kbdd -- uses kbdd daemon to watch for keyboard layout
  • timer -- conky like plugin to execute any shell command with pause it includes predefined plugins for WiFi and time monitoring
  • maildir -- monitors new maildir dirrectory changing for new mails
  • volume -- uses alsalib to monitor volume changing and pamixer program to fetch an volume and a mute state, would be overwritten with pulselib in future
  • cpu -- alias for timer for cpu monitoring
  • ram -- alias for timer for ram monitoring

How to use

After you download a plugin via go get or any other way, you should build it as go plugin by go build -buildmode=plugin as documented in official golang docpage. As a result of building you should have a binary file ended by .so in working directory. Then you should pass path to that file by path plugin's configuration attribute (you can see it in config.example.yml).

How to implement custom plugin

TBD.

Configuration

You can configure yags by an any configuration file format, which viper supports and pass configuration file path as a first argument to yags command.

Exapmle of configuration you can find in root of this repository or in my dotfiles repository.

At the root of configuration file it few basic configuration fields:

Key Description Default value
varSeps symbols pair to wrap variables {}
format string which would be formatted, you should use wrapped plugins names by varSeps to display plugin's output. Only if plugin passed to format it would be triggered.
plugins subtree of configuration, where each plugin should be described

Plugins

Each plugin in plugin section should contain path key to specify go's plugin path to include.

YAGS will pass configuration subtree related to plugin into plugin, for information about configuration plugin in specific plugin page.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].