- Notifications
You must be signed in to change notification settings - Fork0
Walrus Bar: A wlroots status bar in zig.
License
elijahimmer/walrus-bar
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Moved to codeberghttps://codeberg.org/Elijah-Immer/walrus-bar
Azwlr-layer-shell-unstable-v1
Status bar for Wayland.If you don't know what that means, it just means it's a status bar for linuxthat shows the time, workspaces, etc.
This should work for most any compositor, and please submit anybug reports if it is found to not work on one of them.
A Clock, Battery, Brightness, and Workspaces widgets are all done.
Sofar this only has Hyprland workspace support, but more should be relatively easy to add.Just submit a bug report and ask for it, or make a PR and add it (look at#Contributing)
The Battery widget uses the/sys/class/power_supply/BAT0
directory for information by default, but can be specified.The Brightness widget uses the/sys/class/backlight/intel_backlight
directory for information by default, but can be specified.
If you find any dependencies I am missing here, please submit a bug report about it.I recommend nix for managing the dependencies, but if you cannot use it, or just don't want to,all the required build dependencies should be (exact versions not needed):
- pkg-config 0.29.* (you likely already have this)
- Zig 0.13.*
- wayland-client 1.23.*
- wayland-scanner 1.23.*
Everything else should be bundled in, or managed by the Zig compiler.
If you have nix installed, with a flake compatible system, run
nix build
If not, after you acquire the needed dependencies (listed above), run
zig build --release=safe
I recommend compiling with--release=safe
, but you can also do--release=fast
or--release=small
to optimize for speed and binary size respectively.
Every option is available via the CLI args, but that can get annoying so you can also specify a configuration file.By default, it looks for the file at$XDG_CONFIG_HOME/.config/walrus-bar/
, but the pathcan be specified by the--config-file=PATH
CLI argument.
When a directory is specified with the--config-file
, it will search that directory for files in that directory in this order:
- walrus-bar-config.ini
- walrus-bar.ini
- config.ini
If you want any added, please say so.
For options trywalrus-bar --help
Any widgets that don't get compiled in won't appear in the--help
menu, nor will it be checkedin the config file. You may see warning saying a setting is not found if the widget is disabled, which you can ignore.
As of 0.1.4, the slowest part of this is the overhead of the Wayland connections,but multiple outputs and HI-DPI outputs have yet to be thoroughly tested.
Normally this idles 0.0% to 0.1% CPU usage, and ~4 Mib of memory (much of which is the font).If you load a custom font (which is not yet supported), it will take up more.
Any and all (in good faith) contributions are welcome, be they PRs, bug reports, or some third thing I forgot about.I will try my best to get back to any bug reports, PRs, and questions. I will also try to provide feedback on what possible issues are with anyPR, before they are merged.
If you have any features you want supported, just ask.Just don't expect it to be done in general or at any short timespan.
Look atCONTRIBUTING.md for more details.
The versioning currently, as it is pre-release is0.MAJOR.MINOR
Where Major is breaking changes, and minor is backwards compatible.This will be followed loosely until the project is more established.
But once this is stable (likely not for a while), it will followSemantic Versioning 2.0Until them, it is just Semver shifted over one.
By default this embeds the Fira Nerd Font Mono font into the program,which is licensed separately (see#Dependencies), but you should be able tocompile in any font that is Unicode compatible.
Runtime font selection via a CLI argument is still planned for whenever I get to it.
A great font I use for everything (including embedded in this).
Everything in the ./fonts/ directory is related to this font, and I am using it the underSIL Open Font License, Version 1.1Nothing in this folder is my work.
A great library we use them for all the font rendering..Using this under theFreetype License
A fork of FreeType that replaces their several build systems with Zig.Using this under theFreetype License
I included both the core library (FreeType) and this to show where everything originates from.
This is used for wayland-scanner, libwayland-client. (you know, how it actually displays windows).
Using it under the X11 license, similar to the MIT License.
We also use several different Wayland protocols, which are licensed under MIT.
A great Command Line Argument Parser.
Using it under MIT
A great wayland protocol binding generator for zig.
Using it under MIT
A great language that I wanted to use.
Licensed under MIT
A great tool for building and maintaining packages and dependencies.(even if not used much here yet)
Licensed under LGPLv2.1
About
Walrus Bar: A wlroots status bar in zig.