Coder Social home page Coder Social logo

claireneveu / ironbar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jakestanger/ironbar

0.0 0.0 0.0 1.83 MB

Customisable Wayland gtk bar written in Rust.

Home Page: https://crates.io/crates/ironbar

License: MIT License

Shell 0.52% Rust 97.38% Nix 2.06% Lua 0.04%

ironbar's Introduction

--- Ironbar ---


A customisable and feature-rich GTK bar for wlroots compositors, written in Rust.

Ironbar is designed to support anything from a lightweight bar to a full desktop panel with ease.


Getting Started

Wiki | Configuration Guide | Style Guide


Screenshot of fully configured bar with MPD widget open

✨ Looking for a starting point, or want to show off? Head to Show and tell


Features

  • First-class support for Sway and Hyprland
  • Fully themeable with hot-loaded CSS
  • Popups to show rich content
  • Ability to create custom widgets, run scripts and embed dynamic content
  • Easy to configure anything from a single bar across all monitors, to multiple different unique bars per monitor
  • Support for multiple config languages

Installation

Packaging status

Cargo

crate

Ensure you have the build dependencies installed.

cargo install ironbar

Arch Linux

aur package

yay -S ironbar-git

Nix

nix package

nix-shell -p ironbar

Flake

A flake is included with the repo which can be used with Home Manager.

Example usage
{
  # Add the ironbar flake input
  inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
  inputs.ironbar = {
    url = "github:JakeStanger/ironbar";
    inputs.nixpkgs.follows = "nixpkgs";
  };
  inputs.hm = {
    url = "github:nix-community/home-manager";
    inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = inputs: {
    homeManagerConfigurations."USER@HOSTNAME" = inputs.hm.lib.homeManagerConfiguration {
      pkgs = nixpkgs.legacyPackages.x86_64-linux;
      modules = [
        # And add the home-manager module
        inputs.ironbar.homeManagerModules.default
        {
          # And configure
          programs.ironbar = {
            enable = true;
            config = {};
            style = "";
            package = inputs.ironbar;
            features = ["feature" "another_feature"];
          };
        }
      ];
    };
  };
}

CI builds are automatically cached by Garnix. You can use their binary cache by following the steps here.

Void Linux

void package

xbps-install ironbar

Source

repo

Ensure you have the build dependencies installed.

git clone https://github.com/jakestanger/ironbar.git
cd ironbar
cargo build --release
# change path to wherever you want to install
install target/release/ironbar ~/.local/bin/ironbar

By default, all features are enabled. See here for controlling which features are included.

Running

Once installed, you will need to create a config and optionally a stylesheet in .config/ironbar. See the Configuration Guide and Style Guide for full details.

Ironbar can be launched using the ironbar binary.

The IRONBAR_LOG and IRONBAR_FILE_LOG environment variables can be set to change console and file log verbosity respectively. You can use any of error, warn, info, debug or trace.

These default to IRONBAR_LOG=info and IRONBAR_FILE_LOG=warn. Note that you cannot increase the file log verbosity above console verbosity.

Log files can be found at ~/.local/share/ironbar/.log.

Status

Ironbar is an alpha project. It is unfinished and subject to constant breaking changes, and will continue that way until the foundation is rock solid.

If you would like to take the risk and help shape development, any bug reports, feature requests and discussion is welcome.

I use Ironbar on my daily driver, so development is active. Features aim to be stable and well documented before being merged.

Contribution Guidelines

All are welcome, but I ask a few basic things to help make things easier. Please check here for details.

Acknowledgements

  • Waybar - A lot of the initial inspiration, and a pretty great bar.
  • Rustbar - Served as a good demo for writing a basic GTK bar in Rust
  • Smithay Client Toolkit - Essential in being able to communicate to Wayland
  • gtk-layer-shell - Ironbar and many other projects would be impossible without this
  • Mixxc - Basis for Ironbar's PulseAudio client code and a cool standalone volume widget.

ironbar's People

Contributors

jakestanger avatar dependabot[bot] avatar github-actions[bot] avatar yavko avatar slowsage avatar claireneveu avatar disr0 avatar nyadiia avatar a-cloud-ninja avatar body20002 avatar malicean avatar p00f avatar chmanie avatar christoph00 avatar colemickens avatar delliottxyz avatar cyhyraethz avatar oknozor avatar rdnelson avatar calops avatar schweber avatar serrapi avatar drendog avatar pinkcreeper100 avatar thmasq avatar ttoino avatar eclairevoyant avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.