2cd0809a46
When using `get_screen_resources`, XRandR will query the hardware to detect any change. This takes some time. `get_screen_resources_current` uses the cached information and is pretty fast. In my case, the information is always already present in cache because it was set by the program that did configure the screens (autorandr in my case, but this applies to most frontends). As polybar is not used to configure stuff, I think this is fine. There should be something configuring the screen before polybar is able to use it. However, maybe some people are using `polybar --list-monitors` just after plugging a screen. It won't display the new screen in this case. So, maybe this is not a good idea. It makes polybar starts faster (500ms faster in my case when there are 3 screens plugged). Also, I did this change because running `polybar --list-monitor` in parallel with starting `polybar` (in a for loop for example), I get some curious bug where my screens disappear and reappear. I don't need this change as this was easy to fix by avoiding the parallel access to XRandR properties, but maybe this would avoid other people running into the same problem. Your take! |
||
---|---|---|
.github | ||
cmake | ||
common | ||
contrib | ||
doc | ||
include | ||
lib | ||
src | ||
tests | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
.readthedocs.yaml | ||
.valgrind-suppressions | ||
build.sh | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
SUPPORT.md | ||
version.txt |
A fast and easy-to-use tool for creating status bars.
Documentation | Installation | Support | Donate
Polybar aims to help users build beautiful and highly customizable status bars for their desktop environment, without the need of having a black belt in shell scripting.
Table of Contents
- Introduction
- Getting Help
- Contributing
- Getting started
- Community
- Contributors
- Donations
- License
- Signatures
Introduction
The main purpose of Polybar is to help users create awesome status bars. It has built-in functionality to display information about the most commonly used services. Some of the services included so far:
- Systray icons
- Window title
- Playback controls and status display for MPD using libmpdclient
- ALSA and PulseAudio volume controls
- Workspace and desktop panel for bspwm and i3
- Workspace module for EWMH compliant window managers
- Keyboard layout and indicator status
- CPU and memory load indicator
- Battery display
- Network connection details
- Backlight level
- Date and time label
- Time-based shell script execution
- Command output tailing
- User-defined menu tree
- Inter-process messaging
- And more...
See the wiki for more details.
Getting Help
If you find yourself stuck, have a look at our Support page for resources where you can find help.
Contributing
Read our contributing guidelines for how to get started with contributing to polybar.
Getting started
Installation
Polybar is already available in the package manager for many repositories. We list some of the more prominent ones here. Also click the image on the right to see a more complete list of available polybar packages.
If you are using Debian (bullseye/11/stable) or later, you can install polybar
using sudo apt install polybar
. Newer releases of polybar are sometimes provided in the backports
repository for stable users, you need to enable backports and then install using
sudo apt -t bullseye-backports install polybar
.
If you are using Ubuntu 20.10 (Groovy Gorilla) or later, you can install polybar
using sudo apt install polybar
.
If you are using Arch Linux, you can install
polybar to get the
latest stable release using sudo pacman -S polybar
. The latest unstable
changes are also available in the
polybar-git
package in the
AUR.
If you are using Manjaro, you can install polybar to get the latest stable release using sudo pacman -S polybar
.
If you are using Void Linux, you can install polybar using xbps-install -S polybar
.
If you are using NixOS, polybar is available in both the stable and unstable channels and can be installed with the command nix-env -iA nixos.polybar
.
If you are using Slackware, polybar is available from the SlackBuilds repository.
If you are using Source Mage GNU/Linux, polybar spell is available in test grimoire and can be installed via cast polybar
.
If you are using openSUSE Leap or openSUSE Tumbleweed, polybar is available from the
official
repositories
and can be installed via zypper install polybar
.
The package is available for openSUSE Leap 15.3 and above.
If you are using FreeBSD, polybar can be installed using pkg install polybar
. Make sure you are using the latest
package branch.
If you are using Gentoo, both release and git-master versions are available in the main repository.
If you are using Fedora, you can install polybar using sudo dnf install polybar
.
If you can't find your distro here, you will have to build from source.
First Steps
See the wiki for details on how to run and configure polybar.
Community
Want to get in touch?
- Visit our Discussion page
- Join our Gitter room at
gitter.im/polybar/polybar
- We have our own subreddit at
r/polybar
- Chat with us in the
#polybar
IRC channel on theirc.libera.chat:6697
server
Contributors
Maintainers
- Patrick Ziegler @patrick96
Owner
- Michael Carlberg @jaagr
Former Maintainers
- @Lomadriel
- @NBonaparte
- Chase Geigle @skystrife
Logo Design by
All Contributors
Donations
Polybar accepts donations through open collective.
Become a backer and support polybar!
Sponsors
Backers
License
Polybar is licensed under the MIT license. See LICENSE for more information.
Signatures
Release archives and tags are signed by a maintainer using GPG. Currently
everything is signed by Patrick Ziegler
with fingerprint 1D5791352D51A228D4DDDBA4521E5E03AEBCA1A7