Crate leechbar [−] [src]
Leechbar is a crate for creating your own bar/panel/dock.
The goal of leechbar is to provide a library that allows creating a completely custom bar. The purpose is not simplicity. So if you don't plan on using more than just simple text, you might want to look at something like lemonbar instead.
Usage
This crate can be installed through crates.io and can be
used by adding it to your Cargo.toml
.
[dependencies]
leechbar = "0.2.1"
Examples
These snippets just touch the basics of using leechbar, for more complete examples you can take a look at the github repository.
The first thing that needs to be done for using leechbar, is setting up the bar configuration
itself. This is done using the BarBuilder
struct.
use leechbar::{BarBuilder, Color}; // All method calls that take parameters are optional BarBuilder::new() .background_color(Color::new(255, 0, 255, 255)) .font("Fira Mono Medium 14") .output("DVI-1") .height(30) .spawn() .unwrap();
After creating a configuration using BarBuilder
, you have to add your components to the
bar. This is a little more complicated, because you need to implement the Component
trait.
use leechbar::{Bar, BarBuilder, Component, Text, Foreground}; struct MyComponent { bar: Bar, } // You can define your own custom components like this impl Component for MyComponent { // Print "Hello, World!" as text fn foreground(&self) -> Foreground { Text::new(&self.bar, "Hello, World", None, None).unwrap().into() } } // Create a new bar let mut bar = BarBuilder::new().spawn().unwrap(); // Create an instance of the component let comp = MyComponent { bar: bar.clone() }; // Add an instance of your component to your bar bar.add(comp); // Start the event loop that handles all X events bar.start_event_loop();
Logging
This crate supports log
, if you want to enable this logging, you can add env_logger
to
your binary.
extern crate env_logger; fn main() { env_logger::init().unwrap(); // All the cool bar stuff }
Structs
Background |
Background of a component. |
Bar |
The main bar. |
BarBuilder |
The bar configuration. |
BarError |
Bar creation error. |
ClickEvent |
Mouse click on the component. |
Color |
RGBA color structure. |
Foreground |
Foreground of a component. |
Image |
A cached image. |
MotionEvent |
Motion inside the component. |
Text |
A cached text. |
Width |
Width of a component. |
Enums
Alignment |
Alignment inside a container. |
BarErrorKind |
Different types of bar creation errors. |
Event |
Event that indicates interaction with the component. |
MouseButton |
Mouse Buttons. |
Traits
Component |
Trait for creating custom components. |