#notifications #font #pino #title #screen #delay #unix

app pino-rs

simple pretty minimal notification app for Unix (x11 only)

1 unstable release

new 0.1.2 Feb 20, 2025
0.1.1 Feb 20, 2025

#388 in Unix APIs

MIT/Apache

18KB
458 lines

Pino: Pixel Notification

Pino is a fully customizable notification tool rewritten in Rust. It allows you to display notifications with various options, including dynamic theming, configurable fonts, and system integration.


Shortcuts


Features

  • Customizable Notifications: Set titles, messages, delay, and fonts.
  • Dynamic Theming with Pywal: Automatically matches the notification theme to your wallpaper.
  • Configurable Settings: Adjust themes, screen placement, fonts, and more via a TOML config file.
  • Script Integration: Automate notifications using scripts in any language.

Installation

Arch Linux

sudo pacman -S rust

Debian-based Distros

sudo apt install rustc cargo

Then, build the project:

cargo build --release

Copy the binary to /usr/bin:

sudo cp target/release/pino /usr/bin/

Dependencies

Pino requires the following dependencies:

  • Rust (for building from source)
  • Pywal (optional) for dynamic theming

Usage

Pino supports the following command-line options:

Usage: pino -t <title> -m <message> [-d <delay>] [-f] [-c <config>]

Options:
  -t, --title       Set the notification title content
  -m, --message     Set the notification message content
  -d, --delay       Set the delay before the program closes (in seconds)
  -f, --font        Print all the available fonts
  -c, --config      Set a custom configuration file
  --help, help      Display usage information

Note:

If you want to insert a new line (wrap text) in the message, use \n in the argument parameter.

Example: Low Battery Alert

You can create a script to notify about low battery status:

pino -t "Battery Warning" -m "Low battery!\nPlease connect your charger." -d 5

Configuration

The app uses a TOML configuration file located at ~/.config/pino/config.toml. Example:

[screen]
monitor = 0
horizontal = "left"
vertical = "top"
x = 25
y = 55
width = 300
height = 100
delay = 5

[frame]
fg_color = "#1a1e24"
font_family = "Fira Code"

[border]
weight = 4
color = "#ffffff"
radius = 8

[title]
color = "#c5c6c8"
font_size = 19
x = 4
y = 10

[message]
color = "#626977"
font_size = 15
x = 10
y = 45

[pywal]
pywal = true
background_color  = "bg"
border_color      = "color1"
title_color       = "fg"
message_color     = "color8"

[optional]
sound = false

Hardware Usage

Pino is lightweight and efficient. The graphical notification window typically uses approximately 18-25MB of RAM when active, ensuring minimal system resource consumption.

Dependencies

~16MB
~336K SLoC