Popcorn
Minimal, fast, configurable OSD popup renderer for Linux.
Designed for use with lightweight desktops.
Popcorn shows a small on-screen popup for events like volume, brightness, or battery changes.
It is a one-shot renderer: other daemons or scripts call this binary with values and Popcorn displays the popup and exits.
Popcorn uses Slint for rendering and supports complete styling through a simple TOML configuration file.
Features
- Extremely lightweight and fast
- Works perfectly on tiling WMs
- Fully configurable
- Unicode glyphs as icons: Works well with Nerd Fonts.
- Designed to be triggered by scripts, daemons, or key-bindings.
- CLI-supplied dynamic values (icon, percent, colors)
- Config-supplied static styling (size, fonts, colors, position, padding, timeout)
- Resolution-independent placement
Installation
Install using cargo:
cargo install --git https://git.candifloss.cc/candifloss/popcorn.git popcorn
Optionally move the binary into your $PATH:
sudo mv ~/.cargo/bin/popcorn /usr/bin/
Usage
Popcorn is typically invoked by a system daemon, widget, or window manager keybindings. Configure your app or WM keybinding to execute:
popcorn --value={percent_value} --icon="{osd_icon}" --color="{hex_color_string}"
Arguments
| Option | Description |
|---|---|
--value <PERCENT> |
Percentage value for the popup (0 to 100). Used for volume, brightness, battery, etc. |
--icon <GLYPH> |
UTF-8 icon glyph. Nerd Fonts recommended. |
--color <AARRGGBB> |
Fill color. If omitted, config fallback is used. |
Example calls
Volume change
popcorn --value=45 --icon="" --color="ff55aaff" # Normal volume: Bluish color.
Brightness change
popcorn --value=80 --icon="" # No color specified. Falls back to default.
Battery status
popcorn --value=20 --icon="" --color="ffcc4444" # Low battery: Reddish color.
Configiration
See the configuration guide.
License
This project is licensed under the GNU General Public License (GPL) version 3 or later. You can redistribute it and/or modify it under the terms of this License.
This software is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.
For a copy of the full license, see the LICENSE file in the project repository.