No description
Find a file
Oskar Rochowiak 7b9b4fee41
Some checks are pending
Rust Tests / Test and Lint (push) Waiting to run
update forgejo url
2026-02-10 14:16:48 +01:00
.forgejo update forgejo url 2026-02-10 14:16:48 +01:00
client update forgejo url 2026-02-10 14:16:48 +01:00
collector-dbus moxui update 2026-01-09 01:42:15 +01:00
config simplify 2026-02-03 00:08:11 +01:00
control_plane css thingies 2026-02-07 02:36:31 +01:00
ctl config path arg 2026-01-04 20:31:35 +01:00
indexer config path arg 2026-01-04 20:31:35 +01:00
janitor config path arg 2026-01-04 20:31:35 +01:00
nix update forgejo url 2026-02-10 14:16:48 +01:00
proto moxui update 2026-01-09 01:42:15 +01:00
scheduler config path arg 2026-01-04 20:31:35 +01:00
searcher config path arg 2026-01-04 20:31:35 +01:00
.envrc buttons auto works 2025-04-03 17:08:06 +02:00
.gitignore scheduler 2025-12-20 19:44:58 +01:00
.ignore focusing surface resets notification expiration 2025-06-16 17:21:31 +02:00
Cargo.lock remove unnecessary locking 2026-02-09 12:34:41 +01:00
Cargo.toml janitor 2026-01-01 12:36:54 +01:00
flake.lock update forgejo url 2026-02-10 14:16:48 +01:00
flake.nix update forgejo url 2026-02-10 14:16:48 +01:00
LICENSE packaging and license 2025-12-21 17:48:54 +01:00
pl.mox.notify.service.in packaging and license 2025-12-21 17:48:54 +01:00
README.md update readme 2026-01-05 00:22:17 +01:00
Tiltfile css thingies 2026-02-07 02:36:31 +01:00

Moxnotify

codecov

Feature-rich hardware-accelerated keyboard driven Wayland notification daemon.

https://github.com/user-attachments/assets/1996d46c-85cc-4d47-bcf1-5088a58d2192

Features

Configuration

Moxnotify configuration is written in nix and is located at $XDG_CONFIG_HOME/mox/moxnotify/default.nix or ~/.config/mox/moxnotify.nix

Example configuration

{
  client = {
    keymaps = [
      {
        mode = "n";
        keys = "d";
        action = "dismiss_notification";
      }
      {
        mode = "n";
        keys = "ge";
        action = "last_notification";
      }
    ];
    styles = [
      {
        selector = "*";
        style = {
          border.color = {
              urgency_critical = "#f38ba8";
              urgency_low = "#a6e3a1";
              urgency_normal = "#cba6f7";
          };
          font = {
            color = "#cdd6f4";
            family = "DejaVu Sans";
            size = 10;
          };
        };
      }
      {
        selector = [
          "next_counter"
          "prev_counter"
          "notification"
          "hints"
        ];
        style.background = {
          urgency_critical = "#181825FF";
          urgency_low = "#1e1e2eFF";
          urgency_normal = "#181825FF";
        };
      }
      {
        selector = "notification";
        state = "hover";
        style.background = {
          urgency_critical = "#313244FF";
          urgency_low = "#313244FF";
          urgency_normal = "#313244FF";
        };
      }
      {
        selector = "action";
        state = "hover";
        style.background = {
            urgency_critical = "#f38ba8";
            urgency_low = "#f2cdcd";
            urgency_normal = "#f2cdcd";
        };
      }
      {
        selector = "progress";
        style.background = {
          urgency_critical = "#f38ba8";
          urgency_low = "#f2cdcd";
          urgency_normal = "#f2cdcd";
        };
      }
      {
        selector = "dismiss";
        style.font.color = "#00000000";
      }
      {
        selector = "dismiss";
        state = "container_hover";
        style.font.color = "#000000";
      }
    ];
  };
}

Dependencies

  • Rust
  • pipewire
  • vulkan